to be myself
分类: 嵌入式
2013-03-03 11:57:37
linux:linux-2.6.32.2-mini2440-20100921
busybox:busybox-1.13.3-mini2440
交叉工具链:arm-linux-gcc-4.4.3
━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
内核配置和编译
1.make distclean清理中间文件
2.选择参考配置文件,一般位于arch/
cp config-mini2440 .config
3.配置内核makemenuconfig ARCH=arm CROSS_COMPILE=arm-linux-
4.编译内核makeuImage ARCH=arm CROSS_COMPILE=arm-linux-(要拷贝编译u-boot后产生的mkimage工具到/usr/bin下)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
构建nfsroot
1.创建根文件系统主目录和必须的子目录
2.创建设备文件
3.安装etc
4.编译内核模块makemodules ARCH=arm CROSS_COMPILE=arm-linux-
5.安装内核模块到根文件系统makemodules_install ARCH=arm INSTALL_MOD_PATH=../rootfs
6.配置busybox:makemenuconfig
选择静态链接
交叉工具使用arm-linux-
Dont'tuse /usr
配置安装目录
7.编译busybox:makeARCH=arm CROSS_COMPILE=arm-linux-
8.安装busybox:makeinstall
9.修改/etc/exports配置文件,重启nfs
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
nfs起根文件系统(uImage= kernel, 根文件系统在开发机上)
1.选择参考配置文件,一般位于arch/
cp config-mini2440 .config
2.修改CONFIG_CMDLINE
CONFIG_CMDLINE="root=/dev/nfs rwnfsroot=192.168.0.2:/home/David/mini2440/rootfs ip=192.168.0.3 console=ttySAC0mem=64M"
3.配置内核makemenuconfig ARCH=arm CROSS_COMPILE=arm-linux-
使支持NFSRoot file
4.编译内核makeuImage ARCH=arm CROSS_COMPILE=arm-linux-(要拷贝编译u-boot后产生的mkimage工具到/usr/bin下)
5.拷贝uImage到tftp共享根目录
6.u-boot通过tftp下载到0x31000000
7.bootm 0x31000000启动内核
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
制作ramdisk文件系统
1.删除上面制作的/rootfs根文件系统lib/modules/2.6.29.4-FriendlyARM/*内核模块
2.用genext2fs制作ramdisk
./genext2fs -b 8192 -d ./rootfsramdisk
gzip -9 -f ramdisk
3.将上面产生的uImage_ram和ramdisk.gz都拷贝到tftp共享目录
4.u-boot通过tftp下载uImage-ram到0x31000000
5.u-boot通过tftp下载ramdisk.gz到0x32000000
6.bootm 0x31000000启动内核
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ramdisk起根文件系统(uImage_ram = kernel + fs(装入固定划分的内存))
1.选择参考配置文件,一般位于arch/
cp config-mini2440-ramdisk .config
2.配置CMDLINE
CONFIG_CMDLINE="initrd=0x32000000,0x200000root=/dev/ram rw console=ttySAC0 mem=64M"
3.配置内核makemenuconfig ARCH=arm CROSS_COMPILE=arm-linux-
General setup->(*)Initial RAMfilesystem and RAM disk(initramfs/initrd)support
Device Drivers->Blockdevices->(*)RAM block device support
默认ram大小4096改为8192
File system->(*)Second extended fssupport
4.编译内核makeuImage ARCH=arm CROSS_COMPILE=arm-linux-(要拷贝编译u-boot后产生的mkimage工具到/usr/bin下)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
initramfs起根文件系统(uImage_initramfs = kernel + fs(自动配置更多的内存))
1.建立init软连接到busybox
ln -s ./bin/busybox init
2.选择参考配置文件,一般位于arch/
cp config-mini2440 .config
3.修改CONFIG_CMDLINE
CONFIG_CMDLINE="console=ttySAC0mem=64M"
4.配置内核makemenuconfig ARCH=arm CROSS_COMPILE=arm-linux-
General setup->(*)Initial RAMfilesystem and RAM disk(initramfs/initrd)support
(../../rootfs)Initramfs source file(s)
5.编译内核makeuImage ARCH=arm CROSS_COMPILE=arm-linux-(要拷贝编译u-boot后产生的mkimage工具到/usr/bin下)
6.拷贝uImage_initramfs到tftp共享根目录
7.u-boot通过tftp下载到0x31000000
8.bootm 0x31000000启动内核
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2011-07-20 19:54 发表于百度空间,今搬至CU。