Linux内核编译与裁剪(ARM版)

2014-11-24 11:50:15 · 作者: · 浏览: 2

1、首先建立arm-linux-gcc交叉编译环境:


复制,解压


#cd /


#tar jxvf arm-linux-gcc-3.4.1.tar.bz2


这样就会产生一个/usr/local/arm目录了。


2、到www.kernel.org上下载linux-2.6.30.4.tar.bz2源码包,并在主目录解压缩。


检查顶级Makefile,找到ARCH和CROSS_COMPILE的定义,改为:


ARCH = arm


CROSS_COMPILE = arm-linux-


然后需要修改PATH:


在主目录的.profile文件的最后加上export PATH=$PATH:/usr/local/arm/3.4.1/bin/


3、指定启动时初始化


kernel 启动时依据我们对分区的设置进行初始配置


修改arch/arm/mach­s3c2410/mach­smdk2410.c 文件


vi arch/arm/mach­s3c2410/mach­smdk2410.c


修改smdk2410_devices[].指明初始化时包括我们在前面所设置的flash 分区信息


static struct platform_device *smdk2410_devices[] __initdata ={


&s3c_device_usb,


&s3c_device_lcd,


&s3c_device_wdt,


&s3c_device_i2c,


&s3c_device_iis,


/* 添加如下语句即可*/


&s3c_device_nand,


};


保存,退出。


1.4 配置内核


支持启动时挂载devfs


为了我们的内核支持devfs 以及在启动时并在/sbin/init 运行之前能自动挂载/dev为 devfs 文件系统, 修改


fs/Kconfig 文件


vi fs/Kconfig


找到menu "Pseudo filesystems"


添加如下语句:


config DEVFS_FS


bool "/dev file system support (OBSOLETE)"


default y


config DEVFS_MOUNT


bool "Automatically mount at boot"


default y


depends on DEVFS_FS