分类: 嵌入式
2010-12-01 22:23:19
Linux
一、环境平台介绍
1、bootloader环境:vivi
2、内核kernel环境:linux-
3、根文件系统工具:busybox-
4、yaffs文件系统源码包
5、交叉编译器 arm-linux-
二、修改编译内核
1. 解压linux-
2. 修改linux-
ARCH ? =arm
CROSS_COMPILE ?=/usr/local/arm/
注意:交叉编译器的环境变量也需要改为arm-linux-gcc-
#export PATH=/usr/local/arm/
3. 修改平台输入时钟
修改平台的时钟频率,修改内核源码“arch/arm/mach-s
把时钟初始化中(S
4. 修改机器类型ID号
bootloader启动内核时,会传递机器类型ID进来,这里需根据bootloadr传进的ID修改内核ID号
在内核源码的“arch/arm/tools/mach-types”文件查找S
5. 解压yaffs.tar.gz2源码包,进入yaffs2文件夹,给内核打上补丁使内核支持yaffs2
# ./ patch-ker.sh c /home/linux-
6. 修改内核mtd分区和bootloader(vivi)使其一致
编辑文件arch/arm/plat-s
static struct mtd_partition smdk_default_nand_part[] =
{
[0] = {
.name = "vivi",
.size = 0x00030000,
.offset = 0,
},
[1] = {
.name = "kernel",
.offset = 0x00050000,
.size = 0x00300000,
},
[2] = {
.name = "rootfs",
.offset = 0x00350000,
.size = 0x03cac000,
}
};
7. 修改文件drivers/mtd/nand/s
将s
8. 到llinux-
#cp arch/arm/configs/s
9. 执行make menuconfig,并对选项进行配置
1)System Type --->
S
仅保留SMDK2440 与SMDK2440 whith S
2)Kernel Features --->
[*]Use the arm EABI to compile the kernel(选中该选项)
3)File systems --->
a、把与ext2 ext3 ext4相关的所有选项全部去掉
b、Miscellaneous filesystems --->
<*>yaffs2 file system support(选中此选项)
去除所有与jffs2相关的选项
保存退出
make zImage,在arch/arm/boot下生成编译好的可执行程序
10、去掉10分钟后自动关屏问题:
在有一个 drivers/char/vt.c 文件其中有一个变量(blankinterval)可以设置它
来修改自动关屏的时间,也可以在函数(blank_screen_t)开头直接返回,这
样就永远不会关屏了