一、uboot移植
1. 下载u-boot
直接从NXP官网下载uboot:NXP-uboot
2. 编译uboot
直接使用正点原子提供的uboot:uboot-imx-2016.03-2.1.0-g0ae7e33-v1.7.tar.bz2
- mx6ull_alientek_nand.sh
tar -vxjf uboot-imx-2016.03-2.1.0-g0ae7e33-v1.7.tar.bz2
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12
编译出u-boot.bin,增加头部生成最终的uboot镜像文件u-boot.imx。
3. uboot烧写与启动
chmod 777 imxdownload
./imxdownload u-boot.bin /dev/sdb
4. uboot命令
- 信息查询命令 bdinfo & printenv & version
bdinfo # 获取板子信息 board information
printenv # 打印环境变量:波特率baudrate/板子名字board_name/boot命令bootcmd/启动延时时间bootdelay
version # uboot版本号
- 环境变量操作命令 setenv & saveenv
使用命令setenv修改的是DRAM中的环境变量值,修改以后要使用saveenv命令将修改后的环境变量保存到flash中,否则uboot下一次重启会继续使用以前的环境变量值。
setenv bootdelay 5 # 启动延时时间5s
saveenv
有空格的环境变量要用单引号括起来
setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
saveenv
不加参数相当于赋空值,就可以删除环境变量。
- 内存操作命令 md & nm & mm & mw & cp & cmp
查看以0x8000_0000开始的20(0x14)个字节的内存值,显示格式为 .b
md.b 80000000 14
- 网络操作命令 ping & dhcp & nfs & tftp
nfs 和 tftp命令用来从Ubuntu主机中下载文件。
- EMMC和SD卡操作命令 mmc
- FAT格式文件系统操作命令 fatinfo、 fatls、 fstype、 fatload和 fatwrite
- EXT格式文件系统操作命令 ext2load、 ext2ls、 ext4load、 ext4ls和 ext4write
- NAND操作命令 nand
- BOOT操作命令 bootz、bootm和boot
可以从 EMMC或者 NAND等存储设备中将 Linux镜像和设备树文件拷贝到 DRAM,也可以通过 nfs或者 tftp将 Linux镜像文件和设备树文件下载到 DRAM中。
不管用那种方法,只要能将 Linux镜像和设备树文件存到 DRAM中就行,然后使用 bootz命令来启动, bootz命令用于启动 zImage镜像文件.
boot会读取环境变量bootcmd来启动Linux系统。
5. uboot移植
半导体厂商会将uboot移植到自己的原厂开发板上,测试好以后就会将这个uboot发布出去,这就是常说的原厂BSP包。
- NXP的uboot:uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2
- 参考的configs文件:mx6ull_14x14_evk_emmc_defconfig
- 顶层Makefile中添加ARCH和CROSS_COMPILE
ARCH=arm
CROSS_COMPILE=arm-linux-gnueabihf-
make mx6ull_14x14_evk_emmc_defconfig
make V=1 -j16
二、kernel移植
使用 NXP提供的Linux源码,并修改网络驱动。
三、rootfs移植
1. BusyBox是一个集成了大量的Linux命令和工具的软件,可以编译BusyBox构建根文件系统。
2. 根文件系统缺少lib文件,可以将交叉编译器用到的lib库文件添加到根文件系统。
3. 在根文件系统中创建其他文件夹,如 dev、 proc、 mnt、 sys、 tmp和 root等。
4. 完善根文件系统
- 创建/etc/init.d/rcS文件
- 创建/etc/fstab文件
- 创建/etc/inittab文件
1465

被折叠的 条评论
为什么被折叠?



