linux内核移植与根文件系统构建

上传人:xzh****18 文档编号:53772669 上传时间:2018-09-05 格式:PPT 页数:47 大小:916KB
返回 下载 相关 举报
linux内核移植与根文件系统构建_第1页
第1页 / 共47页
linux内核移植与根文件系统构建_第2页
第2页 / 共47页
linux内核移植与根文件系统构建_第3页
第3页 / 共47页
linux内核移植与根文件系统构建_第4页
第4页 / 共47页
linux内核移植与根文件系统构建_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《linux内核移植与根文件系统构建》由会员分享,可在线阅读,更多相关《linux内核移植与根文件系统构建(47页珍藏版)》请在金锄头文库上搜索。

1、Linux内核移植与根文件系统构建,根文件系统,文件系统:简单的说就是一种目录结构,由于 linux操作系统的设备在系统中是以文件的形式存在,将这些文件进行分类管理以及提供和内核交互的接口,就形成一定的目录结构也就是文件系统,文件系统是为用户反映系统的一种形式,为用户提供一个检测控制系统的接口。根文件系统:根文件系统就是一种特殊的文件系统,那么根文件系统和普通的文件系统有什么区别呢?由于根文件系统是内核启动时挂在的第一个文件系统,那么根文件系统就要包括Linux启动时所必须的目录和关键性的文件,例如Linux启动时都需要有init目录下的相关文件,在 Linux挂载分区时Linux一定会找/e

2、tc/fstab这个挂载文件等,根文件系统中还包括了许多的应用程序bin目录等,任何包括这些Linux 系统启动所必须的文件都可以成为根文件系统。,什么是Linux根文件系统,使用Linux的时候,通过命令“ls /” 就会发现: 在/下包涵很多的目录,比如etc、usr、var、bin . . 等目录; 而在这些目录中还有很多的目录或文件; 文件系统在Linux下看上去就象树形结构, 所以可以把文件系统的结构形象的称为树形结构。 linux文件系统的最顶端是“/”; 我们称“/”为Linux的根,也就是 Linux操作系统的根文件系统。 Linux的文件系统的入口就是“/”,所有的目录、文件

3、、设备都在“/”之下。,根文件系统目录结构,Linux遵守文件系统科学分类标准(FHS),一个定义许多文件和目录的名字和位置的标准。 一个linux的根文件系统目录结构如下: / Linux文件系统的入口,也是处于最高一级的目录; /bin 系统所需要的那些命令位于此目录,比如 ls、cp、mkdir等命令;这个目录中的文件都是可执行的、普通用户都可以使用的命令。作为基础系统所需要的最基础的命令就是放在这里; /boot Linux的内核及引导系统程序所需要的文件目录;如内核的映像文件,启动加载器(GRUB);,根文件系统目录结构,/dev 设备文件存储目录,比如声卡、磁盘. . /etc 系

4、统配置文件的所在地,一些服务器的配置文件也在这里;比如/etc/inittab是init进程的配置文件,etc/fstab是用来指定启动时需要自动安装的文件系统列表。 /home 普通用户家目录默认存放目录; /lib库文件存放目录 /mnt 这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。,根文件系统目录结构,proc 操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录 ; /root Linux超级权限用户root的目录; /sbin 大多是涉及系统管理的命令的存放,是超级权限用户roo

5、t的可执行命令存放地,普通用户无权限执行这个目录下的命令 ,如ifconfig /tmp 临时文件目录 /usr 这个是系统存放程序的目录,比如命令、帮助文件等。 /var 目录包含在正常操作中被改变的文件:假脱机文件、记录文件、加锁文件、临时文件和页格式化文件 。,文件存放规则,为了实现各种linux版本系统的标准化,各种版本的linux系统都会遵循FHS标准;主要规则如下: 配置文件放在/etc目录下; 设备文件放在/dev目录下; 库文件放在目录/lib目录下; 存放系统编译后的可执行文件、命令的目录是/bin、/sbin、/usr/bin、/usr/sbin目录,最少的目录,在嵌入式系

6、统中,根目录下的很多目录都可以删除,如下: 为多用户提供可扩展环境的所以目录都应该删除;如(/home,/mnt,/root) 根据引导加载情况,/boot目录可以删除。 其余的目录 /bin,/dev,/etc,/proc,/sbin,/usr,/lib都是不可缺少的。,构建根文件系统,Linux的根文件系统包括支持linux系统正常运行的基本内容,至少应包括以下几项内容: 基本的文件系统结构,如bin、dev、etc、sbin,lib、usr、proc。 基本程序运行所需的动态库。 基本的系统配置文件。 必要的设备文件支持。 基本的应用程序,如sh、ls、cp等 构建根文件系统就是往相应的

7、目录添加相应的文件。如: 在/dev添加设备文件, 在/etc添加配置文件, 在/bin添加命令或者程序, 在/lib添加动态库等。,Linux内核移植,1、Linux内核移植 2、使用Busybox生成工具集 3、Vivi、内核 、根文件系统烧写,Linux内核移植,/arm2410s/kernel-2410s是内核的源代码,Linux内核移植,1)make config:进入命令行,可以一行一行的配置 2)make menuconfig:进入我们熟悉的menuconfig 菜单 3)make xconfig:在2.4.X 以及以前版本中xconfig 菜单是基于TCL/TK 的图形库的。,

8、Linux内核移植,Linux内核移植,1、Code maturity level options 代码成熟度选项,它又有子项: 1.1、prompt for development and/or incomplete code/drivers 该选项是对那些还在测试阶段的代码,驱动模块等的支持。一般应该选这个选项,除非你只是想使用LINUX 中已经完全稳定的东西。但这样有时对系统性能影响挺大。 1.2、prompt for obsolete code/drivers 该项用于对那些已经老旧的,被现有文件替代了的驱动,代码的支持,可以不选,除非你的机器配置比较旧。但那也会有不少问题。所以该项以

9、基本不用,在新的版本中已被替换。,Linux内核移植,2、loadable module support 动态加载模块支持选项,其子项有: 2.1、 enable module support 支持模块加载功能,应该选上。 2.2 set version information on all module symbols 该项用来支持跨内核版本的模块支持。即为某个版本的内核编译的模块可以在另一个版本 的内核下使用,我们一般用不上。所以不选。 2.3 kernel module loader 如果你启用这个选项,你可以通过kerneld 程序的帮助在需要的时候自动载入或卸载那些可载入式的模块。我

10、们一般会选上。,Linux内核移植,3、system type系统类型,主要是CPU 类型,以及与此相关的内容。在我们ARM2410-S 平台上你在该项上看到的是S3C2410 的ARM 系列CPU。其它选项是关于该芯片及平台的一些结构定义。其它版本内核遇到的不会是这种情况,但一般包含processor family 选项,它让我们选择CPU 的类型,BIOS 可以自检到,留意一下你的系统的启动信息。选上正确的CPU 类型就行。,Linux内核移植,4、General setup 4.1、support hot-plugable devieces 对可热拔插的设备的支持,看情况选择。若要对U盘

11、等USB 设备进行控制可选。 4.2、Networking: support 网络支持。 4.3、System V IPC:支持systemV 的进程间通讯。 4.4、sysctl support: 该项支持在不重启情况下直接改变内核的参数。启用该选项后内核大约会增大8K,如果你的内存太小就别选。 4.5、NWFPE math emulation 模拟数学协处理器。 4.6、Power manager 电源管理,给X86 编译内核时较有用可以选上,尤其是笔记本。给ARM 编内核时可不选。,Linux内核移植,5、Networking option 网络选项,它主要是关于一些网络协议的选项。Li

12、nux 功能也就是在于对网络功能的灵活支持。这部分内容相当多,根据不同情况,一般我们把以下几项选上。 5.1、 packet socket包协议支持,有些应用程序使用Packet 协议直接同网络设备通讯,而不通过内核中的其它中介协议。同时它可以让你在TCP 不能用时找到一个通讯方法。 5.2、 unix domain socket对基本UNIX socket 的支持 5.3、 TCP/IP networking对TCP/IP 协议栈的支持,当然要。如果你的内核很在意大小,而且没有什么网络要就,也不使用类似X Window 之类基于Unix Socket 的应用那你可以不选,可节省大约144K

13、空间。,Linux内核移植,10、SCSI device support 如果有SCSI 设备(SCSI 控制卡,硬盘或光驱等)则选上这项。目前SCSI 设备类型已经比较多,要具体区分它们你得先了解他们所使用的控制芯片类型。2.6.X 内核中对各类型SCSI设备已经有更具体详细的支持。scsi support; scsi disk support;,Linux内核移植,本次实验请将AD转换器驱动静态添加到内核中;,Linux内核移植,本次实验请将AD转换器驱动静态添加到内核中;,Linux内核移植,本次实验请将AD转换器驱动静态添加到内核中;其中: 直接编译进内核以模块形式编译,如使用需先ma

14、ke modules为空是不进行编译,Linux内核移植,1、 make clean 这条命令是在正式编译你的内核之前先把环境给清理干净。 2 、make dep 这条命令是编译相关依赖文件。 3 、make zImage 这条命令就是最终的编译命令。有时你可以直接用make(2.6.X 版本上用)或make bzImage(给PC 机编译大内核时用)最后生成了内核镜像zImage. 生成路径:/arm2410s/kernel-2410s/arch/arm/boot/zImage,二、内核与根文件系统实验,在http:/ 下载Busybox 最新版:busybox-1.17.3.tar.bz2

15、注:解压缩arm-linux-gcc 工具时, tar jxvf arm-linux-gcc-3.4.1.tar.bz2,二、内核与根文件系统实验,root# root cd /arm2410s/exp root# root mkdir rootfs root# root cd rootfs/ root# rootfs cp arf /arm2410s/busybox-1.00-pre10/ /arm2410s/root/ . (注意取当前路径的 “.”符号) root# rootfs cd busybox-1.00-pre10/,解压后,进入配置菜单: Make menuconfig 具体选

16、项操作参见指导书P192,二、内核与根文件系统实验,二、内核与根文件系统实验,二、内核与根文件系统实验,选择Busybox的编译方式: 注意在: Build Options中- Build BusyBox as a static binary (no shared libs) 取消使用链接库 do you want to build BusyBox with a Cross Compiler? /usr/local/arm/3.4.1/bin/arm-linux- 首先查看本地的3.4.1编译器的地址,写在如上蓝色字体处;,安装完成后依次执行以下命令: root# root Make dep root# root Make root# root Make PREFIX=./root install,二、内核与根文件系统实验,二、内核与根文件系统实验,注: 若make dep不起作用,请在basybox-1.00-pre10/目录下执行命令:rm rf ./.depend 删除.depend文件。该文件保存了前一次的依赖关系。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号