第四季-专题4-嵌入式文件系统

别等时光非礼了梦想. 提交于 2019-11-29 04:19:47

专题4-嵌入式文件系统

  1. 建立根文件系统目录与文件

目录和目录中的文件就是文件系统。

(1)       创建目录

#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)       创建设备文件

Linux系统中的绝大多数文件,都是以文件的方式来存储的。Linux系统的中的dev文件专门用来存放这些文件。

#cd rootfs/dev

#mknod -m 666 console c 5 1

#mknod -m 666 null c 1 3

(3)       加入配置文件

将压缩包拷贝到这节课的目录下

#tar etc.tar.gz

#mv etc/* …/root/etc/ -rf

(4)       添加内核模块

内核的一部分文件在内核中,另一部分功能的实现,需要内核模块的实现,现在将内核模块的路径指向我们的创建的根文件系统。

#cd …/linux

#make modules ARCH=arm CROSS_COMPILE=arm-linux-

#make modules_install ARCH=arm INSTALL_MOD_PATH=…/rootfs

(5)       编译busybox

Busybox: 嵌入式开发中的瑞士军刀,它来提供嵌入式系统中的一些命令功能。

l  配置busybox

#make menuconfig

Busybox Settings àbuild Options->

v 选中“Build busybox as a static binary”, 静态链接

Cross Compiler prefix (arm-linux-)

Installation Options->

v 选中“Don‘t use /usr”, 选中该项可以避免busybox 被安装到宿主系统的/usr目录下,破坏宿主系统

v Busybox Installation Prefix (/xxx/rootfs)

该选项表明编译后的busybox的安装位置

l  编译、安装busybox

v make

v make install

       现在在我们的rootfs的bin目录下就能看到很多的命令。

  1. 挂载根文件系统到内核

(1)       挂载方式简介

根据存储设备的硬件特性、系统需求,不同的文件系统类型有不同的应用场合。在嵌入式

Linux应用中,主要的存储设备为RAM 和FLASH,常用的基于存储设备的文件系统类型包括:jffs2, yaffs2, ubifs, ramdisk等。

       基于NandFlash的文件系统:Yaffs2和UbiFs

       基于NorFlash的文件系统Tffs2

       基于内存的文件系统:Ramdisk和Initramfs

       基于网络的文件系统:NFS

(2)       Initramfs挂载

l  在rootfs文件夹中

#cd …/rootfs/

#ln –s ./bin/busybox init

l  在内核文件中

配置Linux内核,支持initramfs

 

l  编译内核

l  setenv bootargs noinitrd console=ttySAC0,115200

(3)       NFS挂载

 

setenv bootargs noinitrd

console=ttySAC0,115200 init=/init

root=/dev/nfs rw

nfsroot=192.168.1.3:/home/S5-

driver/lesson9/rootfs,proto=tcp,nfsvers=3

proto=tcp,nfsvers=3

ip=192.168.1.6:192.168.1.3:192.168.1.1:25

5.255.255.0::eth0:off

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!