先下载一个最新的u-boot程序----u-boot-1.3.4,以及atmel官网上对应的补丁u-boot-1.3.4-exp.5。首先解压缩[zhh@localhost ~]$ sudo tar xjvf ./u-boot-1.3.4.tar.bz2解压缩成功后,如下[zhh@localhost ~]$ ls2.6.27-at91.patch cramfs.img linux-2.6.27.cramfs.tar.gz ramdisk40M.gz u-boot-1.3.4-exp.5.diffarm-2007q1 cvs linux-2.6.27.ramdisk.tar.gz ramdisk40M.gz.bak u-boot-1.3.4.tar.bz2arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 cvs-root.tar.gz linux-2.6.27.tar.gz ramdisk40M.gzdf u-boot.tar.gzarm-softfloat-linux-gnu Desktop linux-2.6.28-omap rootfs udev-114backup Documents my_rootfs test udev-114.tar.gzbusybox-1.14.1 Download my_rootfs.tar.gz.ramdisk u-boot-1.1.5-at91busybox-1.14.1.tar.tar linux-2.6.27 ramdisk40M--- u-boot-1.3.4[zhh@localhost ~]$ 多了一个u-boot-1.3.4的文件夹,这里要注意,U-boot-1.3.4-exp.5.diff与u-boot-1.3.4在同一级目录下。接下来进入u-boot-1.3.4[zhh@localhost ~]$ cd ./u-boot-1.3.4然后打补丁[zhh@localhost u-boot-1.3.4]$ sudo cat ../u-boot-1.3.4-exp.5.diff | patch -p1patching file cpu/arm926ejs/at91sam9/usb.cpatch: **** Can't rename file /tmp/po74444y to cpu/arm926ejs/at91sam9/usb.c :Permission denied[zhh@localhost u-boot-1.3.4]$ 出现了错误,权限不够,换成root用户[zhh@localhost u-boot-1.3.4]$ su rootPassword: [root@localhost u-boot-1.3.4]#然后再解压缩[root@localhost u-boot-1.3.4]# sudo cat ../u-boot-1.3.4-exp.5.diff | patch -p1patching file cpu/arm926ejs/at91sam9/usb.cpatching file lib_arm/board.cpatching file doc/README.at91patching file Makefilepatching file include/asm-arm/arch-at91sam9/at91_wdt.hpatching file include/asm-arm/arch-at91sam9/hardware.hpatching file include/asm-arm/arch-at91sam9/at91sam9g45_matrix.hpatching file include/asm-arm/arch-at91sam9/at91sam9g45.hpatching file include/asm-arm/mach-types.hpatching file include/configs/at91sam9g10ek.hpatching file include/configs/at91sam9m10g45ek.hpatching file include/configs/at91sam9rlek.hpatching file include/configs/at91sam9g20ek.hpatching file include/configs/at91sam9263ek.hpatching file include/configs/at91sam9260ek.hpatching file include/configs/at91sam9261ek.hpatching file net/eth.cpatching file board/atmel/at91sam9260ek/at91sam9260ek.cpatching file board/atmel/at91sam9g10ek/at91sam9g10ek.cpatching file board/atmel/at91sam9g10ek/nand.cpatching file board/atmel/at91sam9g10ek/led.cpatching file board/atmel/at91sam9g10ek/partition.cpatching file board/atmel/at91sam9g10ek/config.mkpatching file board/atmel/at91sam9g10ek/Makefilepatching file board/atmel/at91sam9g20ek/nand.cpatching file board/atmel/at91sam9g20ek/at91sam9g20ek.cpatching file board/atmel/at91sam9g20ek/led.cpatching file board/atmel/at91sam9g20ek/partition.cpatching file board/atmel/at91sam9g20ek/config.mkpatching file board/atmel/at91sam9g20ek/Makefilepatching file board/atmel/at91sam9263ek/at91sam9263ek.cpatching file board/atmel/at91sam9m10g45ek/nand.cpatching file board/atmel/at91sam9m10g45ek/led.cpatching file board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.cpatching file board/atmel/at91sam9m10g45ek/partition.cpatching file board/atmel/at91sam9m10g45ek/config.mkpatching file board/atmel/at91sam9m10g45ek/Makefilepatching file common/main.cpatching file drivers/serial/atmel_usart.cpatching file drivers/net/macb.cpatching file drivers/watchdog/at91sam9_wdt.cpatching file drivers/watchdog/Makefile[root@localhost u-boot-1.3.4]#用root用户操作可不是好习惯,所以换回去。第一步当然是看README文件了,简单的了解下该怎么编译成你所想要的文件。其实主要是2个操作:1,打开目录下的Makefile文件,把交叉编译器改成本机linux下装的交叉编译器;2,配置u-boot成你所想要的板子,因为大多数板子都是以官方开发板为基础的,所以即使你的板子不是标准的官方开发板,你也可以根据手头的板子与官方板子上的异同简单修改下,就可以使用。这是原文For all supported boards there are ready-to-use defaultconfigurations available; just type "make _config". Example: For a TQM823L module type: cd u-boot make TQM823L_config For the Cogent platform, you need to specify the CPU type as well;e.g. "make cogent_mpc8xx_config". And also configure the cogentdirectory according to the instructions in cogent/README.所以先修改Makefile找到ifeq ($(ARCH),arm)CROSS_COMPILE = arm-linux-endif修改成#CROSS_COMPILE = arm-linux-CROSS_COMPILE = /home/zhh/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-endif这里为什么要写全目录名呢,因为我用了好几个交叉编译器,所以只能这样了。继续往下看,因为我使用的是TE-9263,所以找到at91sam9263相关的配置,如下at91sam9263ek_nandflash_config \at91sam9263ek_dataflash_config \at91sam9263ek_dataflash_cs0_config \at91sam9263ek_config : unconfig @mkdir -p $(obj)include @if [ "$(findstring _nandflash,$@)" ] ; then \ echo "#define CFG_USE_NANDFLASH 1" >>$(obj)include/config.h; \ $(XECHO) "... with environment variable in NAND FLASH" ; \ else \ echo "#define CFG_USE_DATAFLASH 1" >>$(obj)include/config.h; \ $(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \ fi; @$(MKCONFIG) -a at91sam9263ek arm arm926ejs at91sam9263ek atmel at91sam9因为要使用dataflash,如下[root@localhost u-boot-1.3.4]# sudo make at91sam9263ek_dataflash_config... with environment variable in SPI DATAFLASH CS0Configuring for at91sam9263ek board...[root@localhost u-boot-1.3.4]# 然后make不出意外就会生成u-boot.bin
at91sam9263的linux编程----u-boot编译
最新推荐文章于 2021-04-29 13:50:47 发布