您的位置 首页 5G

嵌入式根文件制作方法

(一):首先linux根文件系统的制作需要的开发环境。1:移植Linux内核版本:linux-301(只要能用就行)2:交叉编译工具:arm-linux-gcc

(一):首要linux根文件体系的制造需求的开发环境。

1:移植Linux内核版别: linux-3.0.1 (只需能用就行)
2:穿插编译东西:arm-linux-gcc 4.3.2(任选)
3:文件体系制造东西:Busybox-1.13.3(任选)
4:etc.tar.gz
(二):穿插编译环境的建立(这一步我在我的博客其他文章里边有 具体的建立进程,很简略滴~)
(三):创立根文件体系的目录
1:在home目录下面新建一个文件夹rootfs

[root@localhost ~]# cd /home/
[root@localhost home]# mkdir rootfs
[root@localhost home]# cd rootfs/

[root@localhost rootfs]# mkdir bin dev etc lib proc sbin sys usr mnt tmp var
[root@localhost rootfs]# mkdir usr/bin usr/lib usr/sbin lib/modules
阐明:
根文件体系是Linux发动的时分运用的第一个文件体系,没有他体系将无法正常的发动
但是在这个根文件体系中又包含了一系列的目录,接下来对这些目录做一个简略的介绍。其实这个我们都很懂的
bin
寄存一切用户都能够运用的、根本的指令。

sbin
寄存的是根本的体系指令,它们用于发动体系、修正体系等。
sys
一些总线啊设备啊驱动啊。等等都在这儿。如同都是动态生成的吧

usr
里边寄存的是同享、只读的程序和数据。

proc
这是个空目录,常作为proc文件体系的挂载点。

dev
该目录寄存设备文件和其它特别文件。

etc
寄存体系装备文件,包含发动文件。

lib
寄存同享库和可加载块(即驱动程序),同享库用于发动体系、运转根文件体系中的可执行程序。
mnt
用于暂时挂接某个文件体系的挂接点,通常是空目录。也能够在里边创立空的子目录。
boot
引导加载程序运用的静态文件

home
用户主目录,包含供服务账号锁运用的主目录,如FTP

opt
给主机额定装置软件所摆放的目录。

root
root用户的主目录

tmp
寄存暂时文件,通常是空目录。

var
寄存可变的数据。

2:创立设备文件
[root@localhost rootfs]#cd dev/
[root@localhost dev]# mknod -m 666 console c 5 1
[root@localhost dev]# mknod -m 666 null c 1 3
阐明:mknod -m 666 console c 5 1
console 为设备文件名,自己能够随意取,c代表是字符型设备(可选b,块设备)
5是主设备号 /dev/devices里边记载现有的设备
1是次设备号当你要给两个相同的设备上一个驱动的时分就要分了,从0开端,1便是第二个了 ,关于字符设备,次设备号就表明同类型设备的不同设备。666代表拜访的权限

3:装备/etc/
这儿有两种办法
1:能够把体系上面的/etc/下面一些比较重要的文件复制过来
2:也能够直接在网上下载一个etc.tar.gz
#tar -zxvf etc.tar.gz
将解压出来的文件etc下面的东西悉数复制到上面新建的根目录下面/rootfs/etc/下面
etc/inittab
etc/profile
etc/fstab
etc/init.d/
etc/init.d/rcS

4:编译内核模块
首要进入内核目录下面(内核目录和根文件体系目录不是在同一个目录下面的)
# cd linux-3.0.1
#make modules ARCH=arm CROSS_COMPILE=arm-linux-
阐明:在这一步呈现一些问题,发现怎样编译也不可,后因由下载了一个内核,编译经过
5:装置内核模块
#make modules_install ARCH=arm INSTALL_MOD_PATH=/home/rootfs
阐明:实质上是将内核里边编译好的模块放在根文件体系目录下面。
6:装备busybox
阐明:关于busybox:(百度百科)
busybox是一个集成了一百多个最长用linux指令和东西的软件。BusyBox 包含了一些简略的东西,例如ls、cat 和echo等等,还包含了一些更大、更杂乱的东西,例如grep、find、mount 以及telnet。有些人将 BusyBox 称为 Linux 东西里的瑞士军刀。简略的说BusyBox就如同是个大东西箱,它集成紧缩了 Linux 的许多东西和指令,也包含了 Android 体系的自带的shell。
# tar -xvzf busybox-1.13.3.tar.gz
# cd busybox-1.13.3
#make menuconfig
阐明:这一步是要装备busybox的图形界面,使之收效,运转这个指令可能会犯错,原因是因为你没有
装置那个图画界面的依靠库,在终端里边输入apt-get install libncurses5-dev 就ok了~
Busybox Settings—–> build Options—–>
选中Build BusyBox as a static binary(no shared libs)
Busybox Settings—–> InstallationOptions ————>
选中 “dont use /usr” 选中此项能够防止busybox被装置到宿主体系的/usr目录下,损坏宿主体系
Busybox Installation Prefix(/home/fs/myrootfs) 这儿要输入busybox装置的绝对路径
7:编译装置busybox
#make ARCH=arm CROSS_COMPILE=arm-linux-
#make install
到现在为止,根文件体系就彻底做好了,你能够把这个根文件体系制造成ramdisk体系
8:、将根文件体系制造 成ramdisk

先保证装置genext2fs
#genext2fs -b 8192 -d /home/fs/myrootfs/ ramdisk
阐明:这一步呈现问题,后来发现是这个分配的空间太小,所以将8192改为120400
#genext2fs -b /home/rootfs/ ramdisk
#gzip -9 -f ramdisk
这样就能够将ramdisk.gz下载到开发板上面去了

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/5g/258114.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部