Linux内核裁剪定制

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Linux操作系统实验开发Linux内核的裁剪和定制1.解压内核源码进入源码根目录。tarxvzflinux-3.5-20150929.tgz2.修改基本的配置文件。cptiny4412_linux_defconfig.config3.配置内核。makemenuconfigARCH=arm4.编译内核。makeARCH=armCROSS_COMPILE=arm-linux-5.查看是否编译正常。lsarch/arm/boot/zImageLinux内核的配置Linux内核子系统Linux内核的配置编译嵌入式文件系统---JFFS2Jffs2:日志闪存文件系统版本2(JournallingFlashFileSystemv2)主要用于NOR型闪存,基于MTD驱动层,特点是:可读写的、支持数据压缩的、基于哈希表的日志型文件系统,并提供了崩溃/掉电安全保护,提供“写平衡”支持等。缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系而使jffs2的运行速度大大放慢。jffs不适合用于NAND闪存主要是因为NAND闪存的容量一般较大,这样导致jffs为维护日志节点所占用的内存空间迅速增大,另外,jffs文件系统在挂载时需要扫描整个FLASH的内容,以找出所有的日志节点,建立文件结构,对于大容量的NAND闪存会耗费大量时间。嵌入式文件系统---YAFFS2yaffs/yaffs2是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。与jffs2相比,它减少了一些功能(例如不支持数据压缩),所以速度更快,挂载时间很短,对内存的占用较小。yaffs/yaffs2自带NAND芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的API,用户可以不使用Linux中的MTD与VFS,直接对文件系统操作。当然,yaffs也可与MTD驱动程序配合使用。yaffs与yaffs2的主要区别在于,前者仅支持小页(512Bytes)NAND闪存,后者则可支持大页(2KB)NAND闪存。同时,yaffs2在内存空间占用、垃圾回收速度、读/写速度等方面均有大幅提升嵌入式文件系统---CramfsCramfs文件系统以压缩方式存储,在运行时解压缩,所以不支持应用程序以XIP方式运行,所有的应用程序要求被拷到RAM里去运行,但这并不代表比Ramfs需求的RAM空间要大一点,因为Cramfs是采用分页压缩的方式存放档案,在读取档案时,不会一下子就耗用过多的内存空间,只针对目前实际读取的部分分配内存,尚没有读取的部分不分配内存空间,当我们读取的档案不在内存时,Cramfs文件系统自动计算压缩后的资料所存的位置,再即时解压缩到RAM中。另外,它的速度快,效率高,其只读的特点有利于保护文件系统免受破坏,提高了系统的可靠性。由于以上特性,Cramfs在嵌入式系统中应用广泛。嵌入式文件系统---ROMFS传统型的Romfs文件系统是一种简单的、紧凑的、只读的文件系统,不支持动态擦写保存,按顺序存放数据,因而支持应用程序以XIP(eXecuteInPlace,片内运行)方式运行,在系统运行时,节省RAM空间。uClinux系统通常采用Romfs文件系统。其他文件系统:fat/fat32也可用于实际嵌入式系统的扩展存储器(例如PDA,Smartphone,数码相机等的SD卡),这主要是为了更好的与最流行的Windows桌面操作系统相兼容。ext2也可以作为嵌入式Linux的文件系统,不过将它用于FLASH闪存会有诸多弊端。嵌入式文件系统---RAMDISKRamdisk是将一部分固定大小的内存当作分区来使用。它并非一个实际的文件系统,而是一种将实际的文件系统装入内存的机制,并且可以作为根文件系统。将一些经常被访问而又不会更改的文件(如只读的根文件系统)通过Ramdisk放在内存中,可以明显地提高系统的性能。在Linux的启动阶段,initrd提供了一套机制,可以将内核映像和根文件系统一起载入内存。嵌入式文件系统---RAMFSRamfs是LinusTorvalds开发的一种基于内存的文件系统,工作于虚拟文件系统(VFS)层,不能格式化,可以创建多个,在创建时可以指定其最大能使用的内存大小。(实际上,VFS本质上可看成一种内存文件系统,它统一了文件在内核中的表示方式,并对磁盘文件系统进行缓冲。)Ramfs/tmpfs文件系统把所有的文件都放在RAM中,所以读/写操作发生在RAM中,可以用ramfs/tmpfs来存储一些临时性或经常要修改的数据,例如/tmp和/var目录,这样既避免了对Flash存储器的读写损耗,也提高了数据读写速度。Ramfs/tmpfs相对于传统的Ramdisk的不同之处主要在于:不能格式化,文件系统大小可随所含文件内容大小变化。嵌入式文件系统---NFSNFS是由Sun开发并发展起来的一项在不同机器、不同操作系统之间通过网络共享文件的技术。在嵌入式Linux系统的开发调试阶段,可以利用该技术在主机上建立基于NFS的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的内容。文件系统架构图EXT4文件系统的制作1.得到make_ext4fs文件系统制作工具。tarxvzflinux_tools.gz2.解压文件系统的目录。tarxvzfrootfs_qtopia_qt4-20141213.tar.gz3.开始制作文件系统映像./make_ext4fs-s-l314572800-aroot-Llinux../rootfs_qtopia_qt4.img../rootfs_qtopia_qt4制作文件系统简介制作ramdisk-u.img根文件系统a)创建根文件系统目录。#mkdirrootfs#cdrootfs#mkdirbindevetclibprocsbinsysusrmnttmpvar#mkdirusr/binusr/libusr/sbinlib/modulesb)创建最基本的设备文件。#cddev#mknod-m666consolec51#mknod-m666nullc13#cd..制作ramdisk-u.img根文件系统c)安装/etc配置文件。#taretc.tar.gz-C/xxx/rootfsxxx表示你要制作的rootfs所在的目录。d)编译内核模块。进入Linux内核源码目录(linux-2.6.29)#makemodulesARCH=armCROSS_COMPILE=arm-linux-e)安装内核模块。#makemodules_installARCH=armINSTALL_MOD_PATH=/xxx/rootfsxxx表示你要制作的rootfs所在的目录。制作ramdisk-u.img根文件系统f)配置busybox。进入busybox目录执行#makemenuconfig进入BusyboxSettings-buildOptions-选中Buildbusyboxasastaticbinary“,即静态链接,免去拷贝大量的库文件。InstallationOptions-选中Don'tuse/usr,以免busybox不慎被安装到宿主机系统的相应目录下,破坏宿主机系统。BusyboxInstallationPrefix(/xxx/rootfs),修改该选项表明编译后的busybox将安装到该位置。制作ramdisk-u.img根文件系统g)编译、安装busybox。#makeARCH=armCROSS_COMPILE=arm-linux-#makeinstall安装到BusyboxInstallationPrefix(/xxx/rootfs)设定的目录里。当前为我要制作的根文件系统目录(/xxx/rootfs)。h)制作ramdisk根文件系统镜像。#genext2fs-b4096-drootfsramdisk-b是指制作的ramdisk大小为4096K字节-d是指要制作成ramdisk的根文件系统目录#gzip-9-framdisk-u.img安装文件系统到开发版1.拷贝制作好的文件系统到SD启动盘的Linux目录下。2.确保配置文件是installLinux/etc/init.d/iptablesstopsetenforce0/etc/init.d/smbrestart

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功