主题 : 求助uboot编译的问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 5195
精华: 0
发帖: 24
金钱: 140 两
威望: 52 点
贡献值: 0 点
综合积分: 48 分
注册时间: 2009-04-13
最后登录: 2014-04-30
楼主  发表于: 2011-07-01 19:18

 求助uboot编译的问题

VM装的Fedora9.编译环境是arm-linux-gcc 4.3.2。开发板友善之臂micro2440.

首先我把micro2440-20100609.iso里面的\OpenSourceBootloader\u-boot-1.1.6-FA24x0.tar.gz。cp到工作目录,然后tar,然后进入工作目录的u-boot-1.1.6。

make smdk2410_config,然后make all。编译出错。注:我未对文件作任何修改!

而在几个月前,我装的是red hat。当时make smdk2410_config,然后make all生产u-boot.bin是没有问题的,板子也能跑,少了很多功能,但是好歹能启动啊。后来因为我重装系统,改成了fedora,就不行了。

最开始的时候报错为:
In file included from /root/mylab/uboot/bootloader/u-boot-1.1.6/include/nand.h:29,
  from cmd_menu.c:9:
/root/mylab/uboot/bootloader/u-boot-1.1.6/include/linux/mtd/nand.h:412: error: 'NAND_MAX_CHIPS' undeclared here (not in a function)
cmd_menu.c:61: warning: function declaration isn't a prototype
cmd_menu.c: In function 'param_menu_shell':
cmd_menu.c:77: warning: unused variable 'val_buf'
cmd_menu.c:76: warning: unused variable 'name_buf'
cmd_menu.c: In function 'menu_shell':
cmd_menu.c:184: warning: implicit declaration of function 'bBootFrmNORFlash'
cmd_menu.c:285: warning: passing argument 2 of 'memsize_parse2' from incompatible pointer type
cmd_menu.c:173: warning: unused variable 'mtd'
cmd_menu.c:172: warning: unused variable 'offset'
make[1]: *** [cmd_menu.o] Error 1
make[1]: Leaving directory `/root/mylab/uboot/bootloader/u-boot-1.1.6/common'
make: *** [common/libcommon.a] Error  2

然后我到nand.h去看,结果'NAND_MAX_CHIPS' 果然没有,于是我加上了#define NAND_MAX_CHIPS 1,只有一块nand_flash嘛。
继续make smdk2410_config,然后make all。又报错:
make[1]: Leaving directory `/root/mylab/uboot/u-boot-1.1.6/common'
UNDEF_SYM=`arm-linux-objdump -x lib_generic/libgeneric.a board/smdk2410/libsmdk2410.a cpu/arm920t/libarm920t.a cpu/arm920t/s3c24x0/libs3c24x0.a lib_arm/libarm.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/nand/libnand.a drivers/nand_legacy/libnand_legacy.a drivers/usb/libusb.a drivers/sk98lin/libsk98lin.a common/libcommon.a |sed  -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
        cd /root/mylab/uboot/u-boot-1.1.6 && arm-linux-ld -Bstatic -T /root/mylab/uboot/u-boot-1.1.6/board/smdk2410/u-boot.lds -Ttext 0x33F80000  $UNDEF_SYM cpu/arm920t/start.o \
            --start-group lib_generic/libgeneric.a board/smdk2410/libsmdk2410.a cpu/arm920t/libarm920t.a cpu/arm920t/s3c24x0/libs3c24x0.a lib_arm/libarm.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/nand/libnand.a drivers/nand_legacy/libnand_legacy.a drivers/usb/libusb.a drivers/sk98lin/libsk98lin.a common/libcommon.a --end-group -L /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t -lgcc \
            -Map u-boot.map -o u-boot
cpu/arm920t/start.o: In function `stack_setup':
/root/mylab/uboot/u-boot-1.1.6/cpu/arm920t/start.S:193: undefined reference to `clock_init'
cpu/arm920t/start.o: In function `relocate':
/root/mylab/uboot/u-boot-1.1.6/cpu/arm920t/start.S:207: undefined reference to `CopyCode2Ram'
common/libcommon.a(cmd_menu.o): In function `menu_shell':
/root/mylab/uboot/u-boot-1.1.6/common/cmd_menu.c:184: undefined reference to `bBootFrmNORFlash'
make: *** [u-boot] Error 1
这个问题为啥我就不清楚了,我更不清楚的是为啥好好的,换个系统就不行了,比如第一次那个错误,我换我的系统不至于把NAND_MAX_CHIPS换没了吧?呃,我承认我很郁闷,请高手解惑!
级别: 新手上路
UID: 56003
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
贡献值: 0 点
综合积分: 10 分
注册时间: 2011-09-27
最后登录: 2011-11-25
1楼  发表于: 2011-11-02 14:12
遇到同样的问题,求解答
级别: 新手上路
UID: 63905
精华: 0
发帖: 2
金钱: 10 两
威望: 2 点
贡献值: 0 点
综合积分: 4 分
注册时间: 2012-02-26
最后登录: 2012-11-21
2楼  发表于: 2012-02-28 23:27
同样,你们解决了吗
级别: 新手上路
UID: 64145
精华: 0
发帖: 1
金钱: 10 两
威望: 2 点
贡献值: 0 点
综合积分: 2 分
注册时间: 2012-02-29
最后登录: 2012-05-03
3楼  发表于: 2012-03-22 11:30
            -Map u-boot.map -o u-boot
/opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-ld: cannot find -lc
make: *** [u-boot] 错误 1
我的是这样的错误,不知道为什么