第7章 内核定制与根文件系统制作.ppt
《第7章 内核定制与根文件系统制作.ppt》由会员分享,可在线阅读,更多相关《第7章 内核定制与根文件系统制作.ppt(46页珍藏版)》请在三一办公上搜索。
1、第7章 内核定制与根文件系统制作,本章重点,内核配置选项的含义。内核移植的基本过程根文件系统的制作,本章内容,7.1 Linux内核移植7.2 Linux根文件系统的制作,7.1 Linux内核移植,嵌入式Linux是按照嵌入式操作系统的要求设计的一种小型操作系统,由一个内核及若干根据需要进行定制的系统模块组成,其内核很小,通常只有几百KB,非常适合移植到嵌入式系统中。7.1.1 内核移植的基本概念内核是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。所谓移植,顾名思义就是通过适当的修改使之适应新的硬件体系。Linux内核移植就是根据实际
2、的硬件系统量身定做一个更高效、更稳定的内核。,7.1 Linux内核移植,7.1.2 内核移植的准备Linux是一个一体化的内核系统,设备驱动程序可以完全访问硬件。Linux内的设备驱动程序可以方便地以模块化的形式设置,并在系统运行期间可直接装载或卸载。当今Linux是全球移植最广泛的操作系统内核。从掌上电脑iPaq到巨型计算机IBM S/390,甚至于微软出品的游戏机XBOX都可以看到Linux内核的踪迹。Linux也是IBM超级计算机Blue Gene的操作系统。内核包:linux-2.6.22.5.tar.gz。官方下载:http:/www.kernel.org/pub/linux/ke
3、rnel/v2.6/linux-2.6.22.5.tar.bz2。,7.1 Linux内核移植,BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox包含了一些简单的工具,如cat和echo,还包含了一些更大、更复杂的工具,如grep、find、mount及telnet。简单地说,BusyBox就好像是个大工具箱,它集成压缩了 Linux的许多工具和命令。BusyBox包:busybox-1.1.0.tar.bz2。官方下载:http:/,注意:若未安装交叉编译器,则还需先安装交叉编译器。下面所采用的交叉编译器是handhelds.org制作的arm-linux-gcc-
4、3.4.1。下载地址:ftp:/ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2。安装方法:tar xjvf arm-linux-gcc-3.4.1.tar.bz2-C/。安装后的路径:/usr/local/arm/3.4.1/。,7.1 Linux内核移植,7.1.3 内核移植的基本过程1)下载内核,解压到相应的目录。2)修改Makefile文件,设置架构类型及使用的编译器。3)配置内核,通常是尽量裁减内核。4)生成新内核。移植流程如图.1所示。,7.1 Linux内核移植,7.1.4 内核移植的具体操作步骤1:
5、复制linux-2.6.22.5内核压缩包到embedded目录中,并解压缩。rootlocalhost embedded#tar xjvf linux-2.6.22.5.tar.bz2步骤2:进入linux-2.6.22.5目录中。rootlocalhost embedded#cd linux-2.6.22.5/步骤3:修改Makefile文件。rootlocalhost linux-2.6.22.5#vi Makefile#ARCH?=$(SUBARCH)#注释该行#CROSS_COMPILE?=#注释该行ARCH?=arm#添加该行CROSS_COMPILE?=/usr/local/ar
6、m/3.4.1/bin/arm-linux-#添加该行,7.1 Linux内核移植,步骤4:执行 make menuconfig 配置内核。rootlocalhost linux-2.6.22.5#make menuconfig,注意:可以尝试使用命令make xconfig,配置会更方便,通常有以下4种主要的内核配置方法。1make config命令行方式,配置相对繁琐。2make oldconfig使用一个已有的.config配置文件,提示行会提示之前没有配置过的选项,相对较简单。3make menuconfig基于文本图形化终端配置菜单,是目前使用最广泛的配置内核方法。4make xco
7、nfig基于x窗口的配置菜单,用户可以通过图形界面和鼠标进行配置。,7.1 Linux内核移植,修改以下相关内容,要注意选的是*还是 M 之类。General setup-*Initial RAM filesystem and RAM disk(initramfs/initrd)supportSystem Type-ARM system type(ARM Ltd.Versatile family)-(X)ARM Ltd.Versatile family改成(X)Samsung S3C2410,S3C2412,S3C2413,S3C2440,S3C2442,S3C2443,7.1 Linux内核
8、移植,ARM system type(Samsung S3C2410,S3C2412,S3C2413,S3C2440,S3C2442,S3C2443)-S3C2410 DMA support(NEW)改成*S3C2410 DMA supportS3C2410 Machines-SMDK2410/A9M2410(NEW)改成*SMDK2410/A9M2410,7.1 Linux内核移植,Boot options-()Default kernel command string 改成(console=ttySAC0 root=/dev/ram init=/linuxrc)Default kernel
9、 command stringDevice Drivers-Character devices-Serial drivers-Samsung S3C2410/S3C2440/S3C2442/S3C2412 Serial port support(NEW)改成 Samsung S3C2410/S3C2440/S3C2442/S3C2412 Serial port support*Support for console on S3C2410 serial port LED devices-LED Support(NEW)改成*LED Support,7.1 Linux内核移植,LED Class
10、Support LED Support for Samsung S3C24XX GPIO LEDs(NEW)改成 LED Support for Samsung S3C24XX GPIO LEDs LED Trigger support(NEW)改成*LED Trigger support LED Timer Trigger LED Heartbeat TriggerMultimedia devices-Video For Linux改成 Video For Linux*DAB adapters(NEW)改成 DAB adapters,7.1 Linux内核移植,Graphics suppor
11、t-S3C2410 LCD framebuffer support(NEW)改成 S3C2410 LCD framebuffer support Console display driver support-*VGA text console(NEW)改成 VGA text console Framebuffer Console support(NEW)改成 Framebuffer Console support*Framebuffer Console Rotation*Select compiled-in fonts*VGA 8x16 font*Mini 4x6 font Bootup lo
12、go(NEW)-改成*Bootup logo-,7.1 Linux内核移植,上述修改是必须的,下面的修改是根据需要进行的。Code maturity level options-*Prompt for development and/or incomplete code/drivers改成 Prompt for development and/or incomplete code/driversFloating point emulation-NWFPE math emulation(NEW)改成*NWFPE math emulation*Support extended precisionD
13、evice Drivers-Memory Technology Device(MTD)support-改成 Memory Technology Device(MTD)support-MTD partitioning support(NEW)改成*MTD partitioning support,7.1 Linux内核移植,RAM/ROM/Flash chip drivers-Detect flash chips by Common Flash Interface(CFI)probe(NEW)改成 Detect flash chips by Common Flash Interface(CFI)
14、probe Support for Intel/Sharp flash chips(NEW)改成 Support for Intel/Sharp flash chips Support for RAM chips in bus mapping(NEW)改成 Support for RAM chips in bus mapping,7.1 Linux内核移植,Support for ROM chips in bus mapping(NEW)改成 Support for ROM chips in bus mappingMapping drivers for chip access-Map driv
15、er for platform device RAM(mtd-ram)(NEW)改成 Map driver for platform device RAM(mtd-ram)Self-contained MTD device drivers-Physical system RAM(NEW)改成 Physical system RAM MTD using block device(NEW)改成 MTD using block device,7.1 Linux内核移植,Parallel port support-Parallel port support改成 Parallel port suppor
16、tSCSI device support-SCSI device support改成 SCSI device supportMulti-device support(RAID and LVM)-*Multiple devices driver support(RAID and LVM)改成 Multiple devices driver support(RAID and LVM)ISDN subsystem-ISDN support改成 ISDN support,7.1 Linux内核移植,Input device support-Joystick interface改成 Joystick i
17、nterface Touchscreen interface(NEW)改成 Touchscreen interface(320)Horizontal screen resolution(240)Vertical screen resolution Touchscreens(NEW)-改成 Touchscreens-Philips UCB1400 touchscreen(NEW)改成 Philips UCB1400 touchscreen,7.1 Linux内核移植,File systems-Miscellaneous filesystems-Journalling Flash File Sys
18、tem v2(JFFS2)support(NEW)改成 Journalling Flash File System v2(JFFS2)support*Advanced compression options for JFFS2内核移植关键的步骤就在于配置哪些选项是必须选择,哪些选项是不用选的。实际上在配置时,大部分选项可以使用其默认值,只有少部分要根据用户不同的需要选择。选择的原则是,将与内核其他部分关系较远且不经常使用的部分功能代码编译成可加载模块,有利于减小内核的大小、减小内核消耗的内存、简化该功能相应的环境改变时对内核的影响。不需要的功能就不选,与内核关系紧密而且经常使用的部分功能代码直
19、接编译到内核中。,7.1 Linux内核移植,步骤5:执行make dep命令检查依赖关系。rootlocalhost kernel#make dep步骤6:生成zImage内核镜像文件。rootlocalhost kernel#make zImage,注意:1make dep命令应用在内核2.4或之前,在2.6内核中已取消该命令。2make clean命令删除前面留下的中间文件,该命令不会删除.config等配置文件。3make zImage命令编译生成gzip压缩形成的image文件。4make bzImage命令编译生成较大的内核文件。5生成的zImage文件在arch/arm/boot
20、/目录中。,7.1 Linux内核移植,步骤7:将zImage文件复制到/tftpboot目录中。rootlocalhost kernel#cp arch/arm/boot/zImage/tftpboot/步骤8:测试生成的新内核能否启动。在另一终端中打开minicom,复位开发板,进入PPCBoot的命令行界面,执行下面两行语句:SMDK2410#setenv bootargs console=ttySAC0 initrd=0 x30800000,0 x00440000 root=/dev/ram init=/linuxrcSMDK2410#tftp 0 x30008000 zImage;g
21、o 0 x30008000,注意:这里测试没有使用ramdisk文件系统,原因是前面移植的文件系统不能在这个内核下使用,需要移植更高版本的busybox才能使用。,7.1 Linux内核移植,出现以下信息,就表明内核能够运行在开发板上了。Uncompressing Linux.done,booting t.Linux version 2.6.22.5(rootlocalhost.localdomain)(arm-linux-gcc version 3.4.1)#7 Sun Sep 2 14:24:43 CST 2007CPU:ARM920T 41129200 revision 0(ARMv4T
22、),cr=c0007177Machine:SMDK2410ATAG_INITRD is deprecated;please update your bootloader.Memory policy:ECC disabled,Data cache writebackCPU S3C2410(id 0 x32410000)S3C2410:core 202.800 MHz,memory 101.400 MHz,peripheral 50.700 MHz S3C24XX Clocks,(c)2004 Simtec Electronics当然,对于实际的应用中的内核移植,需要根据实际需要,对某些选项进行裁
23、剪,以使生成的内核文件尽可能小。当裁剪好的内核满足应用需要后,就可以烧写到目标板上了。以前做过非常多次都没问题的,但这次做内核是运行了,但这些输出信息就是没有。,7.2 Linux根文件系统的制作,根文件系统就是要包括Linux启动时所必需的目录和关键性的文件。例如,在Linux启动时都需要有init目录下的相关文件,在Linux挂载分区时,Linux一定会找/etc/fstab这个挂载文件等,根文件系统中还包括许多应用程序bin目录等,任何包括这些Linux系统启动所必需的文件都可以成为根文件系统。,7.2 Linux根文件系统的制作,7.2.1 根文件系统概述1常见的根文件系统Linux支
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第7章 内核定制与根文件系统制作 内核 定制 文件系统 制作
链接地址:https://www.31ppt.com/p-2874582.html