From: Chris M. <ch...@mc...> - 2007-09-13 15:56:37
|
All, I'm curious about the procedure to save the flash that has been loaded to the gumstix. Here's a link to the wiki where the process is described: http://docwiki.gumstix.org/Replacing_the_filesystem_image#Copying_the_flash_image The contents of that section are here: ---------------------------------------------- Copying the flash image You can make a copy of the flash u-boot dd if=/dev/mtdblock0 of=/tmp/saved-mtd0 root mount -o remount,ro / dd if=/dev/mtdblock1 of=/tmp/saved-mtd1 then move this copy off the gumstix using scp or copy it to a mounted mmc or cf card ----------------------------------------------- Since the "modern" build root process produces three files - rootfs, uboot and Image - do these instuctions require modification? For example, I assume I would now do: dd if=/dev/mtdblock2 of=/tmp/saved-mtd2 but I'm not sure which is kernel and which is rootfs. Also, are the saved files suitable for restoring to a gumstix board in this format by the process described in the replacing the file system described here http://docwiki.gumstix.org/Replacing_the_filesystem_image? Thanks, Chris |
From: Tim R. <gu...@ec...> - 2007-09-13 17:45:05
|
I have a question which I think is the same as this, I am trying to restore the bin image of the factory gumstix build from sourceforge... its a single .bin file. I presume this includes at least the file system and the kernel, probably uboot as well... but I am wary to flash the entire gumstix without knowing this for sure. Does anyone know definitively how to restore this .bin image of the factory software install for the gumstix? > All, > > I'm curious about the procedure to save the flash that has been loaded > to the gumstix. > > Here's a link to the wiki where the process is described: > > http://docwiki.gumstix.org/Replacing_the_filesystem_image#Copying_the_flash_image > > The contents of that section are here: > > ---------------------------------------------- > Copying the flash image > > You can make a copy of the flash > u-boot > dd if=/dev/mtdblock0 of=/tmp/saved-mtd0 > root > mount -o remount,ro / > dd if=/dev/mtdblock1 of=/tmp/saved-mtd1 > then move this copy off the gumstix using scp or copy it to a mounted > mmc or cf card > ----------------------------------------------- > > Since the "modern" build root process produces three files - rootfs, > uboot and Image - do these instuctions require modification? For > example, I assume I would now do: > > dd if=/dev/mtdblock2 of=/tmp/saved-mtd2 > > but I'm not sure which is kernel and which is rootfs. Also, are the > saved files suitable for restoring to a gumstix board in this format by > the process described in the replacing the file system described here > http://docwiki.gumstix.org/Replacing_the_filesystem_image? > > Thanks, > > Chris > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > |
From: Dave H. <dhy...@gm...> - 2007-09-13 18:26:14
|
Hi Tim, On 9/13/07, Tim Redfern <gu...@ec...> wrote: > I have a question which I think is the same as this, I am trying to > restore the bin image of the factory gumstix build from sourceforge... > its a single .bin file. I presume this includes at least the file system > and the kernel, probably uboot as well... but I am wary to flash the > entire gumstix without knowing this for sure. Does anyone know > definitively how to restore this .bin image of the factory software > install for the gumstix? In the single .bin file case, the kernel is included in the rootfs. In this case, you need to modify the bootargs in u-boot to use the fsload command instead of the katload command. -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |
From: Tim R. <gu...@ec...> - 2007-09-13 20:26:23
|
hi i know i'm doing something stupid, i'm trying to compile my c++ project for gumstix using a makefile (for the 1st time ever) in order to use the cross-compile toolchain. after squashing swathes of errors one by one, i'm now getting a weird one invoking posix threads: undefined reference to `pthread_create' even though I have put the options CXXFLAGS += -lpthread CXXFLAGS += -pthread in the makefile and I can compile the project for x86-linux using g++ -pthread foo foo.cpp looking closely at the output from make, I see that arm-linux-uclibcgnueabi-g++: -lpthread: linker input file unused because linking not done does anyone understand this situation? Is there a way to enable threads in the cross compiler toolchain? thanks! Tim |
From: Dave H. <dhy...@gm...> - 2007-09-13 21:40:04
|
Hi Tim, On 9/13/07, Tim Redfern <gu...@ec...> wrote: > hi i know i'm doing something stupid, i'm trying to compile my c++ > project for gumstix using a makefile (for the 1st time ever) in order to > use the cross-compile toolchain. > > after squashing swathes of errors one by one, i'm now getting a weird > one invoking posix threads: > > undefined reference to `pthread_create' > > even though I have put the options > > CXXFLAGS += -lpthread > CXXFLAGS += -pthread The first one looks good. I don't think -pthread is a valid option. It should just be -lpthread > in the makefile and I can compile the project for x86-linux using > > g++ -pthread foo foo.cpp Presumably you meant: g++ -lpthread -o foo foo.cpp > looking closely at the output from make, I see that > > arm-linux-uclibcgnueabi-g++: -lpthread: linker input file unused because > linking not done Perhaps you can show us the Makefile, and the full output of make? -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |
From: Tim R. <gu...@ec...> - 2007-09-13 21:55:43
|
> > Perhaps you can show us the Makefile, and the full output of make? > > > > absolutely. and thank you so much... I modified this from the makefile given for the 'hello world' example on gumstix.org, nb, I compiled libserial seperately afetr unsuccessfully trying to add it to the buildroot. re:- -pthread, yeah I tried it both ways. i.e. with either both or neither -------------------------here is the makefile FLITEDIR=/home/tim/gumstix-buildroot1410/build_arm_nofpu/flite-1.3-release SERIALDIR=/home/tim/smsage-gum/libserial-0.5.2/build LDFLAGS += -L $(FLITEDIR)/build/arm-linux-gnu/lib CPPFLAGS += -I $(SERIALDIR)/include LDLIBS += -L $(SERIALDIR)/lib CPPFLAGS += -I $(FLITEDIR)/include LDLIBS += -lserial LDLIBS +=-I$(FLITEDIR)/include LDLIBS +=-lflite_cmu_us_kal16 LDLIBS +=-lflite_usenglish LDLIBS +=-lflite_cmulex LDLIBS +=-lflite CXXFLAGS += -pthread CXXFLAGS += -lpthread ############################################################################# ifeq ($(DEBUG),y) CFLAGS += -O -g # -O is need to expand inlines else CFLAGS += -O2 endif TARGET = smsage PWD := $(shell pwd) GUMSTIX_BUILDROOT = $(PWD)/../gumstix-buildroot1410 BUILD_ARM = $(wildcard $(GUMSTIX_BUILDROOT)/build_arm*) CROSS_COMPILE = $(patsubst %g++, %, $(wildcard $(BUILD_ARM)/staging_dir/bin/arm-linux-uclibc*-g++)) ifeq ($(strip $(CROSS_COMPILE)),) $(error Unable to detect C++ Cross Compiler) endif TARGET_ARCH=-Os -march=armv5te -mtune=xscale -Wa,-mcpu=xscale CC = $(CROSS_COMPILE)gcc CXX = $(CROSS_COMPILE)g++ # # If you need additional serch paths for include files, then use the -I flag # and add them to the CPPFLAGS variable # # CPPFLAGS += -I somedir # # If you need to add C language specific flags, then add them to the CFLAGS variable # # If you need to add C++ language specific flags, then add them to the CXXFLAGS variable # # # If you need addional search paths for library files, then use the -L flag # and add them to LDFLAGS. # # LDFLAGS += -L somedir # # If you need additional libraries, then use -lxxx to search for libxxx.a # # LDLIBS += -lxxx # # By default, LINK.o is set to # # $(CC) $(LDFLAGS) $(TARGET_ARCH) # # however, when linking C++ files, we want to use g++ rather than gcc in # order to get the correct C++ libraries linked in. # LINK.o = $(CXX) $(LDFLAGS) $(TARGET_ARCH) .PHONY: all all: depend $(TARGET) # # You can change the $(TARGET).c if that's not your main file and you can # add additional .o files to the end of the line # C_SRCS = CPP_SRCS = $(TARGET).cpp OBJS = $(CPP_SRCS:.cpp=.o) $(C_SRCS:.c=.o) $(TARGET) : $(OBJS) clean: rm -rf $(OBJS) core .depend $(TARGET) depend .depend dep: rm -f .depend ifneq ($(CPP_SRCS),) $(CXX) $(CXXFLAGS) $(CPPFLAGS) -M $(CPP_SRCS) >> .depend endif ifneq ($(C_SRCS),) $(CC) $(CFLAGS) $(CPPFLAGS) -M $(C_SRCS) >> .depend endif ifeq (.depend,$(wildcard .depend)) include .depend endif ------------------------------------------------ the ouput from make is: tim@herge:~/smsage-gum$ make rm -f .depend /home/tim/smsage-gum/../gumstix-buildroot1410/build_arm_nofpu/staging_dir/bin/arm-linux-uclibcgnueabi-g++ -pthread -lpthread -I /home/tim/smsage-gum/libserial-0.5.2/build/include -I /home/tim/gumstix-buildroot1410/build_arm_nofpu/flite-1.3-release/include -M smsage.cpp >> .depend arm-linux-uclibcgnueabi-g++: -lpthread: linker input file unused because linking not done /home/tim/smsage-gum/../gumstix-buildroot1410/build_arm_nofpu/staging_dir/bin/arm-linux-uclibcgnueabi-g++ -pthread -lpthread -I /home/tim/smsage-gum/libserial-0.5.2/build/include -I /home/tim/gumstix-buildroot1410/build_arm_nofpu/flite-1.3-release/include -Os -march=armv5te -mtune=xscale -Wa,-mcpu=xscale -c -o smsage.o smsage.cpp arm-linux-uclibcgnueabi-g++: -lpthread: linker input file unused because linking not done arm-linux-uclibcgnueabi-g++: -lpthread: linker input file unused because linking not done /home/tim/smsage-gum/../gumstix-buildroot1410/build_arm_nofpu/staging_dir/bin/arm-linux-uclibcgnueabi-g++ -L /home/tim/gumstix-buildroot1410/build_arm_nofpu/flite-1.3-release/build/arm-linux-gnu/lib -Os -march=armv5te -mtune=xscale -Wa,-mcpu=xscale smsage.o -L /home/tim/smsage-gum/libserial-0.5.2/build/lib -lserial -I/home/tim/gumstix-buildroot1410/build_arm_nofpu/flite-1.3-release/include -lflite_cmu_us_kal16 -lflite_usenglish -lflite_cmulex -lflite -o smsage smsage.o: In function `main': smsage.cpp:(.text+0xdc0): undefined reference to `pthread_create' smsage.cpp:(.text+0xdd4): undefined reference to `pthread_create' collect2: ld returned 1 exit status make: *** [smsage] Error 1 tim@herge:~/smsage-gum$ |
From: Dave H. <dhy...@gm...> - 2007-09-13 22:10:36
|
Hi Tim, > I modified this from the makefile given for the 'hello world' example on > gumstix.org, OK - I was able to reproduce the problem. You need to use LDLIBS += -lpthread and not CXXFLAGS += -lpthread The -I options (capital eye) for specifying include paths, should be added to CPPFLAGS and not CXXFLAGS or LDLIBS (I see you have at least one include path specified using LDLIBS) So to summarize: -I (capital eye) should be added to CPPFLAGS -L (capital ell) should added to LDFLAGS -l (little ell) should be added to LDLIBS C specific compiler options should be added to CFLAGS C++ specific compiler options should be added to CXXFLAGS -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |