专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
嵌入式
嵌入式linux根文件系统制作(基于arm)
2019-07-12 16:23
发布
生成海报
站内文章
/
嵌入式Linux
14273
0
1276
嵌入式linux根文件系统制作(基于arm)
基于国嵌视频:课程4(嵌入式LINUX内核驱动进阶班-上) > > 第3天(嵌入式Linux系统构建) > > 国嵌内核驱动进阶班-3-2(根文件系统制作)
根文件系统是linux启动时使用的第一个文件系统,没有根文件系统,linux无法正常启动。根文件系统由一系列的目录组成,目录中包含了应用程序、C库、以及相关的配置文件。
根文件系统的制作
1. 创建根文件系统的目录
# pwd
/home/chen/guoqian/4-3-2
#mkdir rootfs
#cd rootfs
#mkdir bin dev etc lib proc sbin sys usr mnt tmp var
#mkdir usr/bin usr/lib usr/sbin lib/modules
2. 创建设备文件
# pwd
/home/chen/guoqian/4-3-2/rootfs
#cd ./dev/
#mknod -m 666 console c 5 1
#mknod -m 666 null c 1 3
数字分别代表主装置代码 major 次装置代码 minor,-m用来设置权限。c用于装置为一个周边输入设备备档案,例如鼠标/键盘等
#cd ../
3. 安装/etc到rootfs目录
# pwd
/home/chen/guoqian/4-3-2
# ls
busybox-1.13.3.tar.gz
etc.tar.gz
rootfs
#tar -zxvf etc.tar.gz -C ./rootfs
# pwd
/home/chen/guoqian/4-3-2/rootfs/etc
# ls
fstab init.d inittab profile
4. 编译内核模块
先进入linux内核目录(linux-2.6.29)
# pwd
/home/chen/guoqian/4-3-1/linux-2.6.29
# make modules ARCH=arm CROSS_COMPILE=arm-linux-
5. 安装内核模块
# pwd
/home/chen/guoqian/4-3-1/linux-2.6.29
#make modules_install ARCH=arm INSTALL_MOD_PATH=../../4-3-2/rootfs
# pwd
/home/chen/guoqian/4-3-2/rootfs
# ls ./lib/modules/
2.6.29.4-FriendlyARM
6. 配置busybox
将busybox-1.13.3.tar.gz解压后进入busybox目录执行
# pwd
/home/chen/guoqian/4-3-2
# tar -zxvf busybox-1.13.3
# pwd
/home/chen/guoqian/4-3-2/busybox-1.13.3
#make menuconfig
(1) 进入Busybox Settings->Build Options->
选中”Build Busybox as a static binary (no shared libs)”,静态链接
并将Cross Compiler prefix指定为arm-linux-
(2) 进入Busybox Settings –>Installation Options->
选中”Don’t use /usr”,避免busybox被安装到宿主机的/usr目录下,破快宿主机系统。
并指明编译后的busybox的安装位置,在BusyBox installation prefix中输入如下路径。
退出busybox,保存。上面是busybox的基本配置,自己可以根据自己的需求增删其他配置。
7.编译、安装busybox
在busybox目录下执行:
# pwd
/home/chen/guoqian/4-3-2/busybox-1.13.3
#make ARCH=arm CROSS_COMPILE=arm-linux-
# make install
安装完后会在rootfs的bin和sbin目录下出现许多命令,注意查看一下sbin目录下是否有init文件,这个是系统启动首先加载的文件。至此根文件系统就制作好了,由于本文用的是congig-mini2440文件制作的是nfs文件系统,为了能够挂载需要修改/erc/export配置文件,
具体配置见另一博文
。
nfs与ramdisk文件系统
在针对mini2440配置好的内核linux-2.6.29目录下打开.config文件,里面有一行是这样描述的(nfs文件系统)
CONFIG_CMDLINE="root=/dev/nfs rw nfsroot=192.168.2.119:/home/chen/guoqian/4-3-2/rootfs ip=192.168.2.118 console=tySAC0 mem=64M”
如果是ramdisk文件系统,则可改为
CONFIG_CMDLINE=”root=/dev/ram rw console=tySAC0 mem=64M”
Ta的文章
更多
>>
嵌入式linux学习笔记--存储控制器
0 个评论
嵌入式linux根文件系统制作(基于arm)
0 个评论
基于51单片机的无线遥控器制作
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮