Linux内核定制与根文件系统制作(完全)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.1 Linux内核移植
步骤4:执行 make menuconfig 配置内核。 [root@localhost linux-2.6.22.5]# make menuconfig
注意:可以尝试使用命令make xconfig,配置会更方便,通常有以下4种主要 的内核配置方法。 1.make config 命令行方式,配置相对繁琐。 2.make oldconfig 使用一个已有的.config配置文件,提示行会提示之前没有配置过的选项,相 对较简单。 3.make menuconfig 基于文本图形化终端配置菜单,是目前使用最广泛的配置内核方法。 4.make xconfig 基于x窗口的配置菜单,用户可以通过图形界面和鼠标进行配置。
7.1 Linux内核移植
Parallel port support ---> <M> Parallel port support 改成 < > Parallel port support SCSI device support ---> <M> SCSI device support 改成 < > SCSI device support Multi-device support (RAID and LVM) ---> [*] Multiple devices driver support (RAID and LVM) 改成 [ ] Multiple devices driver support (RAID and LVM) ISDN subsystem ---> <M> ISDN support 改成 < > ISDN support
7.1 Linux内核移植
上述修改是必须的,下面的修改是根据需要进行的。 Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers 改成 [ ] Prompt for development and/or incomplete code/drivers Floating point emulation ---> [ ] NWFPE math emulation (NEW) 改成 [*] NWFPE math emulation [*] Support extended precision Device Drivers ---> < > Memory Technology Device (MTD) support ---> 改成 <M> Memory Technology Device (MTD) support ---> [ ] MTD partitioning support (NEW) 改成 [*] MTD partitioning support
7.1 Linux内核移植
ARM system type (Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443) ---> [ ] S3C2410 DMA support (NEW) 改成 [*] S3C2410 DMA support S3C2410 Machines ---> [ ] SMDK2410/A9M2410 (NEW) 改成 [*] SMDK2410/A9M2410
7.1 Linux内核移植
<M> LED Class Support < > LED Support for Samsung S3C24XX GPIO LEDs (NEW) 改成 <M> LED Support for Samsung S3C24XX GPIO LEDs [ ] LED Trigger support (NEW) 改成 [*] LED Trigger support <M> LED Timer Trigger <M> LED Heartbeat Trigger Multimedia devices ---> <M> Video For Linux 改成 < > Video For Linux [*] DAB adapters (NEW) 改成 [ ] DAB adapters
7.1 Linux内核移植
Graphics support ---> < > S3C2410 LCD framebuffer support (NEW) 改成 <M> S3C2410 LCD framebuffer support Console display driver support ---> [*] VGA text console (NEW) 改成 [ ] VGA text console < > Framebuffer Console support (NEW) 改成 <M> Framebuffer Console support [*] Framebuffer Console Rotation [*] Select compiled-in fonts [*] VGA 8x16 font [*] Mini 4x6 font [ ] Bootup logo (NEW) ---> 改成 [*] Bootup logo --->
• 7.1.1 内核移植的基本概念
内核是一个操作系统的核心。它负责管理系统的进程、 内存、设备驱动程序、文件和网络系统,决定着系统的性 能和稳定性。 所谓移植,顾名思义就是通过适当的修改使之适应新 的硬件体系。 Linux内核移植就是根据实际的硬件系统量身定做一 个更高效、更稳定的内核。
7.1 Linux内核移植
7.1 Linux内核移植
Boot options ---> () Default kernel command string 改成 (console=ttySAC0 root=/dev/ram init=/linuxrc) Default kernel command string Device 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内核移植
• 7.1.3 内核移植的基本过程
1)下载内核,解压到相应的目录。 2)修改Makefile文件,设置架构类型及使用的编译器。 3)配置内核,通常是尽量裁减内核。 4)生成新内核。 移植流程如图7.1所示。
7.1 Linux内核移植
• 7.1.4 内核移植的具体操作
步骤1:复制linux-2.6.22.5内核压缩包到embedded目录中,并解压缩。 [root@localhost embedded]# tar xjvf linux-2.6.22.5.tar.bz2 步骤2:进入linux-2.6.22.5目录中。 [root@localhost embedded]# cd linux-2.6.22.5/ 步骤3:修改Makefile文件。 [root@localhost linux-2.6.22.5]# vi Makefile #ARCH ?= $(SUBARCH) #注释该行 #CROSS_COMPILE ?= #注释该行 ARCH ?= arm #添加该行 CROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux#添加该行
第7章 内核定制与根文件系统制作
本章重点
• 内核配置选项的含义。 • 内核移植的基本过程 • 根文件系统的制作
本章内容
• 7.1 Linux内核移植 • 7.2 Linux根文件系统的制作
7.1 Linux内核移植
嵌入式Linux是按照嵌入式操作系统的要求设计的一 种小型操作系统,由一个内核及若干根据需要进行定制的 系统模块组成,其内核很小,通常只有几百KB,非常适合 移植到嵌入式系统中。
7.1 Linux内核移植
BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox包 含了一些简单的工具,如cat和echo,还包含了一些更大、更复杂的 工具,如grep、find、mount及telnet。简单地说,BusyBox就好像是 个大工具箱,它集成压缩了 Linux 的许多工具和命令。 BusyBox包:busybox-1.1.0.tar.bz2。 官方下载:http://www.busybox.net/downloads/busybox1.1.0.tar.bz2。 注意:若未安装交叉编译器,则还需先安装交叉编译器。下面所采 用的交叉编译器是handhelds.org制作的arm-linux-gcc-3.4.1。 下载地址:ftp://ftp.handhelds.org/projects/toolchain/armlinux-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内核移植
< > Support for ROM chips in bus mapping (NEW) 改成 <M> Support for ROM chips in bus mapping Mapping drivers for chip access ---> < > Map driver for platform device RAM (mtd-ram) (NEW) 改成 <M> Map driver for platform device RAM (mtd-ram) Self-contained MTD device drivers ---> < > Physical system RAM (NEW) 改成 <M> Physical system RAM < > MTD using block device (NEW) 改成 <M> MTD using block device
7.1 Linux内核移植
RAM/ROM/Flash chip drivers ---> < > Detect flash chips by Common Flash Interface (CFI) probe (NEW) 改成 <M> Detect flash chips by Common Flash Interface (CFI) probe < > Support for Intel/Sharp flash chips (NEW) 改成 <M> Support for Intel/Sharp flash chips < > Support for RAM chips in bus mapping (NEW) 改成 <M> Support for RAM chips in bus mapping
• 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/kernel/v2.6/linux2.6.22.5.tar.bz2。
7.1 Linux内核移植
修改以下相关内容,要注意选的是 [*] 还是 [M] 之类。 General setup ---> [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support System Type ---> ARM system type (ARM Ltd. Versatile family) ---> (X) ARM Ltd. Versatile family 改成 (X) Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443