linux内核裁剪
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux内核的裁剪和移植的过程就是:根据硬件平台资源等需求来修改一套完整linux源码,添加与硬件资源等相关的功能模块,除去与硬件资源等不相关的功能模块,然后经过交叉编译生成简化的功能齐全的linux内核zImage。
Linux内核裁剪的必备工具:
1、make menuconfig,基于图形界面的内核配置工具,可使配置linux内核更加便捷,为此需要安装libncurses5-dev软件包,这个软件包可在root用户下利用apt-get install libncurses5-dev命令来下载并安装。
2、arm-linux-gcc,交叉编译工具,将配置好的linux内核经过交叉编译生成zImage,使其可以在arm平台上运行。为此需下载arm-linux-gcc-4.3.2.tgz 软件包,使用tar zxvf arm-linux-gcc-4.3.2.tgz -C /命令解压安装,安装完整后为相gcc命令一样使用arm-linux-gcc,则需要在系统环境变量中添加arm-linux-gcc的路径。方法在.bashrc文件中添加export PATH=$PATH: /usr/local/arm/4.3.2/bin。
准备好以上两个工具之后即可完成对linux内核的裁剪,移植就是一个download 的过程。
Linux内核配置选项:
1、下载linux-2.6.39源码,首先修改内核源码根目录的Makefile文件,将第195行修改为ARCH ?= arm ,此处修改说明linux内核将运行在arm平台上,将第196行修改为
CROSS_COMPILE ?= /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-, 此处指出使用arm-none-linux-gnueabi-对内核进行交叉编译,也可直接使用arm-linux-,但是在实际编译时提示无法找到arm-linux-编译不通过,原因暂时不明,因此将整个的编译器执行文件的路径给出。
2、修改系统晶振频率,根据硬件平台上连接的晶振频率修改/arch/arm/mach-at91/Board-sam9x5cm.c中的第50行:/* Initialize processor: 12.000 MHz crystal */ at91sam9x5_initialize(12000000);
3、使用root用户登录终端进入源码根目录下,运行make menuconfig命令,即可看到配置linux内核的图形界面。
4、主要是配置一下选项,其中部分默认选项功能不明,选择默认即可:
System Type选项:选择处理器类型
选择MMU-based Paged Memory Management Support支持MMU;
进入ARM system type (Atmel AT91)选项:选择Atmel AT91;
进入Atmel AT91 System-on-Chip选项:选择所有选项;
选择Support Thumb user binaries选择支持16位Thumb指令集;
取消选择Disable I-Cache和Disable D-Cache,使能指令和数据缓存;
其他默认。
Kernel Features选项:
选择Use the ARM EABI to compile the kernel;
选择Allow old ABI binaries to run with this kernel (EXPERIMENAL);
其他默认。
Boot options选项:
选择Auto calculation of the decompressed kernel image address;
其他默认。
Device Drivers选项:
选择进入Memmory Technology Device (MTD)support选项:
选择进入NAND Device Support选项选择Support for NAND Flash / SmartMedia on AT91 and AVR32;
其他默认。
选择进入Block devices选项:
选择Loopback device support选项;
选择RAM block device support选项;
设置Default number of RAM disks 为4;
设置Default RAM disk size (kbytes) 为8192(8M);
其他默认。
选择进入Misc devices选项:
选择Atmel AT32/AT91 Timer/Counter Library选项;
选择TC Block Clocksource选项;
其他默认。
选择进入SCSI device support选项:
选择SCSI device support;
选择 legacy /proc/scsi/ support;
选择 SCSI disk support;
选择 SCSI tape support;
其他默认。
选择进入Network device support选项:
选择Generic Media Independent Interface device support选项;
选择进入PHY Device support and infrastructure选项:选择Driver for Davicom PHYs选项;
选择Driver for MDIO BUS/PHY emulation with fixed speed/link PHY 选项;
选择 Support for bitbanged MDIO buses选项;
其他不选。
选择进入Ethernet(10 or 100Mbit)选项:
选择Atmel MACB support选项;
其他不选。
其他默认。
选择进入Character devices选项:
选择进入Serial drivers选项:
选择AT91/AT32 on-chip serial port support选项;
选择Support for console on AT91/AT32 serial port选项;
其他不选。
其他默认。