您的位置:首页 > 运维架构 > Linux

linux内核移植、配置及nfs文件系统挂载

2016-03-05 14:35 597 查看
////////////////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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: