linux根文件系 fat32,[工学]第四章-构建Linux根文件系统.ppt

《[工学]第四章-构建Linux根文件系统.ppt》由会员分享,可在线阅读,更多相关《[工学]第四章-构建Linux根文件系统.ppt(44页珍藏版)》请在人人文库网上搜索。

1、上章回顾,Kconfig用法与作用 Makefile作用 Linux内核配置、编译与烧录 Linux内核启动过程分析,构建Linux根文件系统,第4章,预习检查,常见Linux文件系统具有哪些子目录? 列举你所了解的Linux根文件系统?,本章目标,了解Linux的文件系统层次标准 了解根文件系统下各目录的作用 掌握构建根文件系统的方法 掌握制作yaffs文件系统镜像文件的方法,本章结构,Linux文件系统概述,构建Linux根文件系统,使用glibc库,Linux文件系统的特点,Linux文件属性介绍,Linux根文件系统目录结构,移植Busybox,构建根文件系统,Linux文件系统概述,。

2、Windows下分区:C、D、E盘 Linux下:根目录/、/bin、/home Linux中并没有C、D、E等盘符的概念,它以树状结构管理所有目录、文件,其他分区 挂接在某个目录上,这个目录被称为挂接点或安装点(mount point),然后就可以通过这个目录来访问这个分区上的文件。 Linux下文件系统类型 在一个分区上存储文件时,需要遵循一定的格式,这种格式称为文件系统类型 比如:fat16、fat32、ext2、ext3、jffs2、 yaffs等,Linux根文件系目录结构,FHS: filesystem hierarchy Standard 使Linux文件系统布局实现标准化,FH。

3、S目录结构,/dev设备文件 /dev/console 系统控制台 /dev/mtdblock* mtd块设备 /dev/tty 设备虚拟控制台 /dev/ttySAC* 串口设备文件,FHS目录结构,/proc,/sys 属于内存文件系统 包含一些系统相关的信息 /bin和/sbin 用于存放可执行文件 sbin是指只有root权限才可以执行 /lib 用于存放动态链接共享库的地方 也包含静态库,FHS目录结构,/etc /etc/rc或rc.d 启动和改变运行级别时运行的脚本的目录 /etc/passwd 存放用户基本信息的文件 /etc/fstab 启动时需要自动安装的文件系统列表,FH。

4、S目录结构,/etc/inittab init程序的配置文件,文件存放规则,把全局配置文件放入/etc目录下 把设备结点放入/dev目录下,或者是/dev的子目录下 库存放的目录是/lib 存放编译后的可执行文件,目录是/bin,/sbin,/usr,/lib下的共享库文件来自何处?,glibc的共享库 标准的GNU C lib的动态库 uclibc的共享库 用于uclinux的动态库 Size比较小,常用于嵌入式系统 从交叉编译工具的目录中取来,Linux文件类型,常用Linux根文件系统类型,NFS(Network File System)网络文件系统 开发阶段常用的根文件系统,需要网络支。

5、持 开发主机负责导出目标板的根文件系统 目标板内核必须支持NFS作为根文件系统 Ext2 over Ramdisk: 目标板内核必须支持ext2的文件系统 需要存储介质 JFFS/JFFS2 目标板内核必须支持jffs/jffs2的文件系统 需要MTD,Nor Flash YAFFS/YAFFS2 目标板内核必须支持yaffs/yaffs2的文件系统 需要MTD,Nand Flash 其他 cramfs, cromfs,等等,Busybox简介,1996年,集成了一百多个Linux的常用命令和工具软件 支持glibc和uclibc 支持静态库和动态库两种方式 减小常用命令所占有存储空间,简化嵌。

6、入式根文件系统的制作,内核启动init进程的过程,init进程位于init/main.c,内核启动init进程的过程如下: (1) 打开标准输入、标难输出、标准错误设备。 (2) 如果ramdisk_execute_command变量指定了要运行的程序,启动它。 (3) 如果execute_ command变量指定了要运行的程序,启动它。 (4) 依次尝试执行/sbin/init、/etc/init、/bin/init、/bin/sh。,Busybox init程序流程,/etc/inittab,Busybox init程序解析/etc/inittab文件,然后按照它的指示创建各种子进程; 否。

7、则使用默认的配置创建子进程。 /etc/inittab文件中每个条目用来定义一个子进程,并确定它的启动方法。格式如下: 例如:,:,ttySAC0:askfirst:-/bin/sh,/etc/inittab,/etc/inittab文件,各字段的作用: :表示这个子进程要使用的控制台(即标准输入、标准输出、标准错误设备)。 如果省略,则使用与init进程一样的控制台。 :对干Busybox init程序,这个字段没有意义,可以省略。 :表示init进程如何控制这个子进程,有如表17.6所示的8种取值。 :要执行的程序,它可以是可执行程序,也可以是脚本。,/etc/inittab文件字段的意义。

8、,Step1 解压缩文件,Step2 使用make menuconfig,#make menuconfig,Busybox Settings,Busybox 的性能微调,设置“TAB”键补全,连接/编译选项,选定使用静态连接:,Archival Utilities选项,选择tar命令:,Linux Module Utilities选项,要使用可加载模块,下面的配置要选上:,Networking Utilities选项,除其他默认配置外,增加ifconfig命令:,编译和安装Busybox,修改Makefile 修改前: 修改后:,ARCH ?= $(SUBARCH) CROSS_COMPILE。

9、 ?=,ARCH ?= arm CROSS_COMPILE ?= arm-linux-,编译和安装Busybox,编译:make 安装Busybox: 将在/work/nfs_root/fs_mini目录下生成如下文件、目录:,make TARGET_ARCH=ARM PREFIX=/home/student/root_fs/fs_mini all install,查看目标板的命令,ls实际上是busybox的符号链接,一般的命令都是busybox的符号链接,xxx与执行busybox xxx是一样的,如何建立符号链接? #ln s busybox ls #ln s busybox cp,使用。

10、glibc库,glibc库的位置是/usr/local/arm/3.4.1/arm-linux/lib glibc库包括的主要文件: 静态库文件( .a) 动态库文件( .so、.so.0-9*),安装glibc库,mkdir p /home/student/root_fs/fs_mini/lib cd /home/student/root_fs/fs_mini/lib cp /usr/local/arm/3.4.1/arm-linux/lib/*.s* ./ -d cp /usr/local/arm/3.4.1/arm-linux/lib/*.a ./ -d,在开发板上只需要加载器和动态库,。

11、假设要构建的根文件系统目录为/home/student/root_fs/fs_mini,操作如下:,构建根文件系统,构建根文件系统基本步骤: 构建etc目录 构建dev目录 构建其他目录,比如:home mnt proc sys tmp var 制作/烧写yaffs文件系统镜像文件,构建etc目录,# System initialization. :sysinit:/etc/init.d/rcS :sysinit:/bin/sh :ctrlaltdel:/sbin/reboot :shutdown:/bin/umount -a -r,创建etc/inittab文件:,构建etc目录,none/。

12、procprocdefaults0 0 none/dev/ptsdevptsmode=06220 0 tmpfs/tmp tmpfsdefaults0 0 proc /proc proc defaults 0 0,创建etc/fstab文件:,构建etc目录,#!/bin/sh mount -a,创建etc/init.d/rcS文件:,构建dev目录,cd /home/student/root_fs/fs_mini/dev mknod console c 5 1 mknod null c 1 3 mknod ttySAC0 c 204 64 mknod mtdblock0 b 31 0 mkn。

13、od mtdblock1 b 31 1 mknod mtdblock2 b 31 2,在/dev目录下静态创建各种节点(即设备文件):,构建其他目录,cd /home/student/root_fs/fs_mini mkdir home mnt proc sys tmp var,其他目录可以是空目录,比如proc、mnt、tmp、sys、root等,如下创建:,制作/烧写yaffs文件系统镜像文件,cd /home/student/root_fs mkyaffsimage fs_mini/fs_mini.yaffs,制作fs_mini.yaffs文件: 烧写fs_mini.yaffs文件:,tftp 0 x30000000 fs_mini.yaffs nand erase 0 x270000 $(filesize) nand write.yaffs 30000000 270000 $(filesize),本章结构,Linux文件系统概述,构建Linux根文件系统,使用glibc库,Linux文件系统的特点,Linux文件属性介绍,Linux根文件系统目录结构,移植Busybox,构建根文件系统,如何配置、编译Busybox,如何构建和烧写根文件系统,实验,任务一、定制yaffs文件系统 任务二、定制NFS文件系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值