fl2440内核移植

可以参考这个博客http://blog.csdn.net/u010944778/article/details/42007063

我是结合郭工的视频还有文档进行的内核移植

首先从官网下载内核,https://www.kernel.org/,我用的是linux-3,0

解压tar -xjf linux-3.0.tar.bz2

cd linux-3.0

修改Makefile    vim  Makefile

ARCH       ?= $(SUBARCH)

CROSS_COMPILE  ?= $(CONFIG_CROSS_COMPILE:"%"=%)

+ARCH       ?= arm

+CROSS_COMPILE?= /opt/buildroot-2012.08.packet/buildroot-2012.08/arm920t/usr/bin/arm-linux-(交叉编译器自己制作,我是之前已经做好了,注意路径)

 # This allow a user to issue only 'make' to build a kernel including modules

 # Defaults to vmlinux, but the arch makefile usually adds further targets

 all: vmlinux

+  cp arch/arm/boot/zImage . -f

mkimage -A arm -O linux -T kernel -C none -a 30008040 -n "Linux Kernel" -d zImage \ linuxrom-s3c2440.bin

  rm -f zImage

(注意在这里不能用空格代替tab)

@@ -1201,6 +1204,7 @@

        -o -name '.*.rej' -o -size 0 \

        -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \

        -type f -print | xargs rm -f

+       @rm -f linuxrom-s3c2440.bin


修改晶振频率

--   s3c24xx_init_clocks(16934400);

+   s3c24xx_init_clocks(12000000);

修改驱动:

-- #define S3C24XX_SERIAL_NAME    "ttySAC"

#define S3C24XX_SERIAL_NAME    "ttyS0"


Make menuconfig

在这里可以执行export TERM=vt100,使界面更好看,还可以显示一些隐藏的选项



.修改MACHINE ID设备编号

vim arch/arm/tools/mach-types

make

进行分区

vim arch/arm/plat-s3c24xx/common-smdk.c

根据自己的需要进行分区:

分区很关键,关系到Linux根文件系统的移植,还有u-boot里环境变量的设置

我现在遇到的问题就很头痛

这是我的分区:



MTDPART_SIZE_FULL自动设置地址

因为总共只有256M,不要超过了

make

Ok 内核做完了!


问题总结

make 提示Makefile:560: *** missing separator. Stop.
我用空格代替了tab键 再makefile里命令行前面只能用tab键,否则会误认为空格也是命令。

cp arch/arm/boot/zImage . -f
mkimage -A arm -0 linux -T kernel -C none -a 30008000 -e 30008040 -n "Linux kernel" -d zImage linuxrom-s3c2440.bin
/bin/sh: mkimage: command not found
make: *** [all] Error 127

没有mkimage包,在u-boot/tools下将它cp到usr/bin



DRAM:  64 MiB
NAND:  256 MiB
In:    serial
Out:   serial
Err:   serial
Net:   dm9000
Hit any key to stop autoboot:  0

NAND read: device 0 offset 0x100000, size 0x800000
 8388608 bytes read: OK
## Booting kernel from Legacy Image at 30008000 ...
   Image Name:   Linux kernel
   Created:      2017-03-12  14:03:43 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2332436 Bytes = 2.2 MiB
   Load Address: 30008000
   Entry Point:  30008040
   Verifying Checksum ... OK
   XIP Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

输入命令 set bkr 'tftp 30008000 linuxrom-s3c2440.bin;nand erase 100000 800000;nand
write 30008000 100000 800000'
没有加  

0x000000000000-0x000000100000 : "bootloader"
ftl_cs: FTL header not found.
0x000000100000-0x000001000000 : "linux"
ftl_cs: FTL header not found.
0x000001000000-0x000003800000 : "rootfs"
ftl_cs: FTL header not found.
0x000003800000-0x000009c00000 : "apps"
ftl_cs: FTL header not found.
0x000000000000-0x000010000000 : "data"
ftl_cs: FTL header not found.

重新配置内核,取消下面三个选项(红色部分)。

在Make menuconfig时:

Device Drivers ->

Memory Technology Devices (MTD) ->

不要选择下面这三个选项

<>FTL (Flash Translation Layer) support

<> NFTL (NAND Flash Translation Layer) support

<>INFTL (Inverse NAND Flash Translation Layer) support





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值