您的位置:首页 > 运维架构 > Linux

移植内核到s3c2440

2017-11-15 17:45 239 查看
尝试移植内核到s3c2440

一、环境搭建:

1.下载资源包:


linux-3.0.12.tar.gz (https://www.kernel.org/pub/linux/kernel/v3.0/)


ARM-Linux GCC 4.4.3(http://arm9download.cncncn.com/mini2440/linux/arm-linux-gcc-4.4.3-20100728.tar.gz)

2.解压内核:

1.tar -xzvf  linux-3.0.12.tar.gz

2.cd linux-3.0.12

3.make s3c2410_defconfig

4.修改Makefile

195行 ARCH            ?= arm
196 行CROSS_COMPILE   ?= arm-linux-

5.make menuconfig添加你需要的驱动支持

如果此处报错Unable to find the ncurses libraries or the,则是需要安装ncurses-devel

ubuntu下:sudo apt-get install ncurses安装

6.修改晶振频率:

内核默认晶振是16M的,但大多数开发板是12M,需要修改,不然会出现乱扣乱码的现象

arch/arm/mach-s3c2440/mach-smdk2440.c中的

160static void __init smdk2440_map_io(void)
161 {
162 s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
163 s3c24xx_init_clocks(12000000);
164 s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs)) ;
165 }
7.修改分区

arch/arm/plat-s3c24xx/common-smdk.c中的smdk_default_nand_part[]结构体数组
我的分区如下:

111 static struct mtd_partition smdk_default_nand_part[] = {
112 [0] = {
113 .name = "bootloader",
114 .size = SZ_256K,
115 .offset = 0,
116 },
117 [1] = {
118 .name = "params",
119 .offset = MTDPART_OFS_APPEND,
120 .size = SZ_128K,
121 },
122 [2] = {
123 .name = "kernel",
124 .offset = MTDPART_OFS_APPEND,
125 .size = SZ_4M,
126 },
127 [3] = {
128 .name = "roots",
129 .offset = MTDPART_OFS_APPEND,
130 .size = MTDPART_SIZ_FULL,
131 },
132 };
7.make uImage
8.将arch/arm/boot/uImage烧到开发板中

此时的内核还不支持yaff文件系统可以烧jffs2文件系统

[b][/b]

[b]
[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  arm9 linux 内核 移植