内核初体验:编译、下载

前言: 

本帖是学习韦东山老师linux kernel教程,粗略总结的课堂笔记及自己感悟。如想深入了解linux kernel,请绕路。

 相关帖子:

uboot启动第二阶段

uboot启动第一阶段

UBOOT初体验:编译、下载

初识uboot Makefile

环境说明


S3C2440开发板

串口线

下载线

光盘linux kernel源码、补丁文件:

002_JZ2440资料光盘_20200423(免费)\资料光盘\B盘\uboot+kernel+filesystem的镜像源码及补丁\kernel\linux-2.6.22.6.tar.bz2
002_JZ2440资料光盘_20200423(免费)\资料光盘\B盘\uboot+kernel+filesystem的镜像源码及补丁\kernel\linux-2.6.22.6_jz2440_v2v3.patch

编译下载

1- 上传文件到虚机

将文件linux-2.6.22.6.tar.bz2、linux-2.6.22.6_jz2440_v2v3.patch上传到虚机路径:/home/lhk/2440_learn/kernel/linux-2.6.22.6

2- 解压linux-2.6.22.6.tar.bz2

tar -xjvf linux-2.6.22.6.tar.bz2

3- 打补丁

# cd linux-2.6.22.6
# pwd
/home/lhk/2440_learn/kernel/linux-2.6.22.6/linux-2.6.22.6
# patch -p1 < ../linux-2.6.22.6_jz2440_v2v3.patch

4- 配置编译

config_ok为韦东山提供的内核配置文件

cp config_ok .config
make menuconfig
make uImage

编译的uImage路径为:

/home/lhk/2440_learn/kernel/linux-2.6.22.6/linux-2.6.22.6/arch/arm/boot/uImage

5- 烧录uboot.bin文件到开发板

开发板上电,进入到uboot模式,先擦除flash中原有内核:

OpenJTAG> nand erase kernel

NAND erase: device 0 offset 0x60000, size 0x200000
Erasing at 0x240000 -- 100% complete.
OK

擦除完flash中内核后,重启单板会报错找不到内核:

Booting Linux ...

NAND read: device 0 offset 0x60000, size 0x200000

Reading data from 0x25f800 -- 100% complete.
 2097152 bytes read: OK
## Booting image at 30007fc0 ...
Bad Magic Number


将编译好的uImage烧录进开发板,重启开发板可以看到正常进入到内核。

内核配置

内核配置文件.config文件可以由下面几种方式生成

make menuconfig

手动配置内核

厂商提供

本例中config_ok复制成.config,这里的config_ok即为厂商(韦东山)提供的

使用芯片默认配置

可以搜索系统默认配置

find ./ -name "*defconfig*"

对于我们的2440可以选择arch/arm/configs/s3c2410_defconfig作为默认配置编译,然后在此基础上修改配置文件生成我们需要的.config,或者直接手动修改arch/arm/configs/s3c2410_defconfig文件,复制成.config文件

#find ./ -name "*defconfig*"
arch/arm/configs/s3c2410_defconfig
...

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值