fl2440 内核移植
2017-04-25 20:37
169 查看
首先:
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
$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,我们的内核即可在开发板中启动。
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,我们的内核即可在开发板中启动。
相关文章推荐
- <2012 12 06> FL2440开发板的U-boot-2010.09版本移植(十一)U-boot引导内核设置、编译linux内核、编译文件系统、加载...
- FL2440 Linux-3.0内核最小系统移植
- 基于FL2440的3.6.6内核移植出现Uncompressing Linux... done, booting the kernel.
- 基于FL2440的3.6.6内核移植记录
- FL2440 Linux-3.0内核最小系统移植
- FL2440移植LINUX-3.4.2 (六)--裁剪内核和打补丁
- FL2440移植linux-3.0全过程(1)内核启动
- fl2440内核移植(三)——LCD移植
- FL2440移植Linux2.6.33.7内核
- FL2440移植LINUX-3.4.2 (七)--驱动移植LCD(移植自己写的和移植内核自带的)
- FL2440移植LINUX-3.4.2 -- 内核自带的触摸屏驱动移植
- 基于FL2440的Linux-2.6.35内核移植--触摸屏
- 移植Linux3.0内核到fl2440开发板
- <2012 10 06> FL2440开发板的U-boot-2010.09版本移植 ____ U-boot中常用参数设定及常用宏(u-boot环境变量、USB、内核引导)
- fl2440 linux内核移植usb驱动
- fl2440 内核移植
- fl2440的内核移植总结
- FL2440移植linux2.6.33内核(备忘)
- FL2440移植linux2.6.33内核(备忘)(之二)
- u-boot-2009.08在飞凌OK2440/FL2440上的移植(六)——让u-boot引导内核启动