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

fl2440 内核移植

2017-04-25 20:37 204 查看
首先:

1.完成Bootloade即U-boot的移植;

2.为我们的内核移植准备好编译环境——交叉编译器;

3.在官网www.kernel.org下载我们的源文件——Linux-3.0.54.tar.bz2。

其次:开工

1.创建一个有读写权限的文件夹用来存放我们下载的源文件,并将其解压缩

$rz(你下载好的源文件)

$tar -xjf linux-3.0.54.tar.bz2

2.配置内核参数

(1).修改Makefile文件

$vim Makefile

改为下:



这里主要是选择我们的开发平台类型以及将我们的交叉编译器的环境变量设置好



(2).修改晶振频率

所谓晶振频率,就是我们板子的工作频率,晶振全称晶体振荡器,它结合开发板的内部电路,产生时钟频率,板子的一切指令执行均在此基础之上,晶振提供的时钟频率越高,板子的运行速度越快。我们的FL2440的开发板晶振频率为12MHz。

$vim linux-3.0.54/drivers/tty/serial/Samsung.c




mini2440的.config文件作为我们的默认.config文件

cp arch/arm/configs/mini2440_defconfig .config

$export TERM=vt100



$Make menuconfig

menuconfig是常用的配置工具,我们可以用它选择要编译进内核的模块,然后将信息保存在生成的.config配置文件中,make menuconfig时出来的文本窗口中的信息是通过读取在内核源代码目录下的Kconfig文件来配置的。根据Makefile文件来编译,而Makefile文件中的变量则通过.config来进行赋值操作。仅仅在Kconfig中添加选项。




白色为回车


(4).修改MACHINE ID设备编号

我们做的FL2440内核与三星的SMDK2440一样,我们U-boot使用设备号为1999,板子为s3c2440,所以将mini2440和s3c2440的设备号对换(mini2440即采用三星的s3c2440为处理器)

$vim linux-3.0.54/arch/arm/tools/mach-types





配置完成后就可以编译了:

$make

过程省略......................................................

编译过程中的错误请自行解决...................................................

成功以后会生成Linux-s3c2440.bin的可执行二进制文件。

(5)对我们的硬盘(nandflash)进行分区

$vim linux-3.0.54/arch/arm/plat-s3c24xx/common-smdk.c



板子上的nandflash为256M,我们将它分成5个区,分别是

bootloader——1M,内核15M,根文件系统——40M,app——100M,data——100M,

分区完毕以后make

$make

编译成功以后我们需要为内核添加根文件系统支持,因为内核启动首先挂载的是根文件系统。这里制作的是简单的initramfs文件系统作为根文件系统,其他的文件系统大家可以自己了解制作也可以参考我的后续文章。

export TERM=vt100

$Make menuconfig





选择支持initramfs文件系统,还要填写其所处位置,我的是/opt/rootfs/,这个路径在后续制作根文件系统的时候会创建起来。

选择完以后重新make,我们的内核即可在开发板中启动。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息