1.0.1-linux-3.15.6内核移植
(编译环境redhat5.0)
从www.kernel.org上下载内核,安装xz解压工具(新版linux一般就有没有的自己安装下ubuntu:apt-get install,安装交叉编译工具arm-linux-gcc,我的版本是4.4.3,天嵌的。)
[linux-3.15.6]#vim Makefile
1、修改编译编译器:
199 ARCH ?=arm
200 CROSS_COMPILE ?= arm-linux-
2、执行缺省配置
[linux-3.15.6]# make s3c2410_defconfig
3、修改晶振频率
[linux-3.15.6]# vimarch/arm/mach-s3c24xx/mach-smdk2440.c
在大约180行附近,修改为12MHz
s3c24xx_init_clocks(12000000);
4、修改分区表:
修改分区表要注意u-boot里面的文件系统分区一致
[linux-3.15.6]# vim arch/arm/mach-s3c24xx/common-smdk.c
static struct mtd_partition smdk_default_nand_part[]= {
113 [0] = {
114 .name ="BootLoader",
115 .size =SZ_1M,
116 .offset= 0,
117 },
118 [1] = {
119 .name ="Kernel",
120 .offset= SZ_1M,
121 .size =SZ_2M+SZ_1M,
122 },
123 [2] = {
124 .name ="fsroot",
125 .offset= SZ_4M,
126 .size =SZ_64M-SZ_4M,
127 },
128 [3] = {
129 .name ="software",
130 .offset= SZ_64M,
131 .size =MTDPART_SIZ_FULL,
132 },
133 };
这里注意结构体最后的分号和里面每个的逗号。
[linux-3.15.6]# make menuconfig
保存退出即可。
然后make;
make uImage;
生成 uImage 烧入开发板就可以引导文件系统启动了。
uImage在arch/arm/boot/下。