嵌入式Linux移植相关经验积累:基于AT91SAM9X35EK

2019-07-13 04:15发布

不断的归类,再重新走几遍,明白会更深入


主要解决的问题:
(1)BusyBox的选择
(2)交叉编译器的选择
(3)lib的问题,交叉编译器的库
(4)根文件系统初始化问题。


以上为主要的问题,
         再就是文件系统制作需要的几个主要的初始化文件,主要为文件系统挂载,初始化,开始的rcS,需要有执行的权限。


接下来,通过源码的阅读再进行一次移植,上次的全部归档,作为备用。


一:相关源码


(1)arm-2010q1-202-arm-none-linux-gnueabi.tar.bz2            交叉编译工具 gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202)
(2)Bootstrap-V3.5.tar.bz2                        ATmel提供的一级Boot
(3)u-boot-2014.04.tar.bz2                        Uboot
(4)linux-2.6.39_OK.tar.bz2                        Linux Kernel
(5)busybox-1.13.0.tar.bz2                        制作根文件系统的工具包一
(6)e2fsprogs-1.42.13.tar.bz2                        PC端的制作UBI文件系统的打包工具:生成为mkfs.ubifs与ubinize
(7)lzo-2.03.tar.bz2                            UBI文件系统用到的库
(8)zlib-1.2.8.tar.bz2                            UBI文件系统用到的库
(9)mtd-utils.tar.bz2                            Uboot端烧写UBI用到的工具
(10)rootfs_ubi.tar.bz2                        制作的根文件系统:




把根文件系统打包,然后烧写入NandFlash即可。




二:烧写文件:


(1)at91sam9x5ek-nandflashboot-uboot-3.6.0.bin            BootStrap
(2)u-boot.bin                            Uboot
(3)uImage                            Linux内核文件:Linux 2.6.39
(4)ubi.img                            UBI根文件系统。




三:编译命令:


编译AT91SAM9X35ek AT91Bootstrap 3.6.0 的命令:


(1)make mrproper
(2)make at91sam9x5eknf_uboot_defconfig
(3)make ARCH=arm menuconfig
(4)make CROSS_COMPILE=arm-none-linux-gnueabi-


编译Uboot 2014.04的命令如下:
make distclean  
make at91sam9x5ek_nandflash_config            (这里采用bootstrap + uboot+kernel+rootfs全烧写在nandflash里,也就是nandflash启动。)
make CROSS_COMPILE=arm-none-linux-gnueabi-


编译Linux 2.6.39内核的命令如下:
make distclean
make ARCH=arm menuconfig
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage(这是需要Uboot里的工具:mkimage)


编译BusyBox 1.13.0
修改Makefile文件,
CROSS_COMPILE = arm-none-linux-gnueabi-
ARCH = arm


make menuconfig(这里选择静态编译)
make
make install


然后在_install文件夹下,会生成根文件系统用到的相关命令集。






打包UBI根文件
首先需要获取PC端的两个工具:mkfs.ubifs    ubinize


mkfs.ubifs -r rootfs -m 2048 -e 126976 -c 1872 -o rootfs.img
ubinize -o ubi.img -m 2048 -p 128KiB -s 2048 ubinize.cfg


ubinize.cfg文件的内容如下:
[ubifs]
mode=ubi
image=rootfs.img
vol_id=0
vol_size=200MiB 
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize    


其他:
sam-ba_2.15.exe 烧写软件:Windows下的。
Jlink 烧写工具
SecureCRT.rar 串口监控工具,类似于超级终端


     后期将不断细化移植过程中的问题与经验总结并写出来,不断前进。化技术为应用。