////////////////arm平台/////////////////////////////
1.清理内核 make distclean 清理.o和.config文件
//////////////////////////////////////////
2.配置内核 一般直接参考现已的配置文件来配置
cp config_file ./linux-tq2440/.config
make menuconfig ARCH=arm 基于文本模式的菜单型配置
<M>选中后之编译成.o文件,保存到硬盘了,不在生成的内核镜像中,节省内存
<*>选中后之编译成.o文件,然后连接成内核镜像文件zImage
<>不选择该功能
内核文件的配置结果:ls -a 会看到.config vim .config
使用已有的内核配置文件((ls /boot/ X86平台的)(ls arch/arm/configs ARM平台的) 可看到虚拟机的配置文件,可以把他复制到内核文件中,
然后make menuconfig,把已有的配置问价添加进去)简化内核配置,不清楚的最好保持默认配置
//////////////////////////////////////////
2.1 cp mkimage /bin/ 添加头 需要用uboot代码里面的mkimage工具
2.1编译内核 make uImage ARCH=arm CROSS_COMPILE=arm-linux-
然后添加根文件系统
////////////////////////////////////////////////////////////////////////////
//////////////////////根文件系统制作////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
1.1创建目录 mkdir rootfs
然后在rootfs目录下创建一下目录
mkdir bin dev etc lib proc sbin sys usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
1.2创建设备文件 cd rootfs/dev
mknod -m 666 console c 5 1 //c表明是字符设备,5是主设备号,1是次设备号
mknod -m 666 null c 1 3
1.3加入配置文件 tar xvzf etc.tar.gz
cp etc/* rootfs/etc/ -rf //把etc目录下的所以文件及目录拷贝到/rootfs/etc/目录下
1.建立根文件系统目录与文件 1.4添加内核模块 cd /home/lesson/part4/armlinux
make modules ARCH=arm CROSS_COMPILE=arm-linux-
make modules_install ARCH=arm INSTALL_MOD_PATH=/home/lesson/part4/4/rootfs //会在lib/modules里看到驱动文件
1.5编译busybox 1.5.1配置busybox,用来提供嵌入式系统中的命令,如:ls,cd等
#make menuconfig //进入busybox目录下配置
Busybox Settings 里build Options->选中 “Build busybox as a static binary”, 静态链接
Cross makeCompiler prefix (arm-linux-)
Installation Options->选中 “Don‘t use /usr”, 选中该项可以避免busybox 被安装到宿主系统的/usr目录下,破坏宿主系统
Busybox InstallatPrefix (/home/lesson/part4/4/rootfs) 该选项表明编译后的busybox的安装位置
1.5.2 编译/安装busybox 1.make 2.make install //装好后rootfs/bin 里就有了需要的命令,可以查看
/////////////////////////////////////////////////////////////////////////////////////////
2.1 挂载方式简介
2.2.1:cd /home/lesson/part4/4/rootfs
2.挂载根文件系统到内核 2.2 initramfs挂载 2.2.2:ln -s ./bin/busybox init //在当前目录下创建软连接
2.2.3:make menuconfig ARCH=arm 配置linux内核,支持initramfs
2.2.4:make uImage ARCH=arm CROSS_COMPILE=arm-linux- 编译内核
2.2.5:setenv bootargs noinitrd console=ttySAC0,115200 //设置环境变量
6:tftp 31000000 uImage bootm 31000000
///////////////////////////////////////////////////////////////////////////////////////////
2.3.1:make menuconfig ARCH=arm //内核配置
1.进入General setup->取消选中的initial filesystem and RAM disk(initramfs,initrd) support
2.File system -> 选中Network file system并进入 —>选中Root file system on NFS
2.3 NFS挂载 2.3.2:make uImage ARCH=arm CROSS_COMPILE=arm-linux- 编译内核
2.3.3:setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw
(linux的ip) nfsroot=10.199.172.150:/home/lesson/part4/4/rootfs
ip=10.199.172.100:10.199.172.150:10.199.172.1://(开发板ip,linux的ip,网关)
255.255.255.0::eth0:off
2.3.4:vim /etc/exports 在文件中添加/home/lesson/part4/4/rootfs
2.3.5:/etc/init.d/nfs restart
2.3.6:tftp 31000000 uImage