先给自己打个广告,本人的微信公众号正式上线了,搜索:张笑生的地盘,主要关注嵌入式软件开发,股票基金定投,足球等等,希望大家多多关注,有问题可以直接留言给我,一定尽心尽力回答大家的问题
一 what
二 why
三 how
(1)编译busybox
tar xjf busybox-1.20.0.tar.bz2
设置交叉编译工具链
make menuconfig
Busybox Settings --->
Build Options --->
Cross Compiler prefix arm-linux-
make
(2)安装
make install CONFIG_PREFIX=/work/nfs_root/fs_mini_mdev_new
(3)查看当前的交叉编译工具链,需要保证和编译内核kernel时使用相同的交叉编译工具链
echo $PATCH
cd /work/tools/usr/local/arm/4.3.2 //当前使用的toolchain
(4)制作lib和usr/lib
cd /work/nfs_root/fs_mini_mdev_new
//将当前编译器中的lib下的所有so库文件拷贝到跟文件系统lib下
mkdir lib
cp /work/tools/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*so* /work/nfs_root/fs_mini_mdev_new/lib -d
mkdir /work/nfs_root/fs_mini_mdev_new/usr/lib -p
//将当前编译器中的usr/lib下的所有so库文件拷贝到跟文件系统usr/lib下
cp /work/tools/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib/*so* /work/nfs_root/fs_mini_mdev_new/usr/lib -d
(5)制作etc目录
//这里取了一个讨巧的办法,直接从别的根文件系统拷贝了一份过来,实际上我们需要参照下图,创建对应的文件或者目录
cp first_fs/etc fs_mini_mdev_new -rf
(6)制作dev目录
mkdir /work/nfs_root/fs_mini_mdev_new/dev
cd dev
sudo mknod console c 5 1
sudo mknod null c 1 3
(7)制作其他目录
mkdir proc tmp mnt sys root
(8)制作映像文件
mkfs.jffs2 -n -s 2048 -e 128KiB -d fs_mini_mdev_new -o fs_mini_mdev_new.jffs2
(9)烧写
在uboot下烧写
set serverip 192.168.31.145
tftp 30000000 fs_mini_mdev_new.jffs2
nand erase.part rootfs
nand write.jffs2 30000000 0x00260000 3b8ba8
set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=jffs2