linux内核裁剪

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. 软件包,使用tar zxvf arm-linux-gcc-4. -C /命令解压安装,安装完整后为相gcc命令一样使用arm-linux-gcc,则需要在系统环境变量中添加arm-linux-gcc的路径。方法在.bashrc文件中添加export PATH=$PATH: /usr/local/arm/4.3.2/bin。
准备好以上两个工具之后即可完成对linux内核的裁剪,移植就是一个download 的过程。
dd10Linux内核配置选项:
松散回潮
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选项;
其他不选。
其他默认。
选择进入GPIO Support选项:
选择Basic memory-mapped GPIO controllers support选项;
其他默认。
选择进入Watchdog Timer Support选项:
四维瓷业选择AT91SAM9X/AT91CAP9 watchdog选项;
其他不选。
选择进入Graphic support选项:
选择进入Support for frame buffer device选项:
选择UC1698 LCD support选项;
其他默认。
其他不选。
选择进入HID Devices选项:
选择Generic HID support;
选择/dev/hidraw raw HID device support;
其他默认。
选择进入USB support:
选择Support for Host-side USB;
选择 USB device filesystem(DEPRECATED);
选择USB device class-device(DEPRECATED);
选择OHIC HCD support;
选择USB Mass Storage support;
其他默认。
选择进入DMA Engine support选项:
选择Atmel AHB DMA support选项;
其他默认。
选择进入at91SPI0 driver选项:
选择AT91SPI0;
File systems选项:
选择进入Miscellaneous filesystems选项:
选择yaffs2 file system support选项;
选择2048 byte (or larger)/page devices选项;
选择 Autoselect yaffs2 format选项;
选择 Cache short names in RAM。
选择Network File Systems,默认选项;
其他默认。
完成以上配置后使用make zImage命令即可在/arch/arm/boot目录下产生zImage文件。
使用mkimage命令即可将zImage添加解压头打包成uImage,具体命令如下:mkimage -A arm -O linux -T kernel -C none -a 20008000 -e 20008000 -n linux-2.6 -d arch/arm/boot/zImage uImage。

本文发布于:2024-09-25 20:32:15,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/264575.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:内核   选择   进入
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议