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
改为下:
![](https://img-blog.csdn.net/20170425204921042?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这里主要是选择我们的开发平台类型以及将我们的交叉编译器的环境变量设置好
![](https://img-blog.csdn.net/20170425205128092?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHVsaXRlbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(2).修改晶振频率
所谓晶振频率,就是我们板子的工作频率,晶振全称晶体振荡器,它结合开发板的内部电路,产生时钟频率,板子的一切指令执行均在此基础之上,晶振提供的时钟频率越高,板子的运行速度越快。我们的FL2440的开发板晶振频率为12MHz。
$vim linux-3.0.54/drivers/tty/serial/Samsung.c
![](https://img-blog.csdn.net/20170425205651447?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHVsaXRlbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
$export TERM=vt100
$Make menuconfig
menuconfig是常用的配置工具,我们可以用它选择要编译进内核的模块,然后将信息保存在生成的.config配置文件中,make menuconfig时出来的文本窗口中的信息是通过读取在内核源代码目录下的Kconfig文件来配置的。根据Makefile文件来编译,而Makefile文件中的变量则通过.config来进行赋值操作。仅仅在Kconfig中添加选项。
![](https://img-blog.csdn.net/20170425210019543?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHVsaXRlbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
白色为回车
(4).修改MACHINE ID设备编号
我们做的FL2440内核与三星的SMDK2440一样,我们U-boot使用设备号为1999,板子为s3c2440,所以将mini2440和s3c2440的设备号对换(mini2440即采用三星的s3c2440为处理器)
$vim linux-3.0.54/arch/arm/tools/mach-types
![](https://img-blog.csdn.net/20170425210202248?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHVsaXRlbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170425210242124?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHVsaXRlbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
配置完成后就可以编译了:
$make
过程省略......................................................
编译过程中的错误请自行解决...................................................
成功以后会生成Linux-s3c2440.bin的可执行二进制文件。
(5)对我们的硬盘(nandflash)进行分区
$vim linux-3.0.54/arch/arm/plat-s3c24xx/common-smdk.c
![](https://img-blog.csdn.net/20170425210515815?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHVsaXRlbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
板子上的nandflash为256M,我们将它分成5个区,分别是
bootloader——1M,内核15M,根文件系统——40M,app——100M,data——100M,
分区完毕以后make
$make
编译成功以后我们需要为内核添加根文件系统支持,因为内核启动首先挂载的是根文件系统。这里制作的是简单的initramfs文件系统作为根文件系统,其他的文件系统大家可以自己了解制作也可以参考我的后续文章。
export TERM=vt100
$Make menuconfig
![](https://img-blog.csdn.net/20170425210715318?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHVsaXRlbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170425210817851?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHVsaXRlbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
选择支持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,我们的内核即可在开发板中启动。
相关文章推荐
- FL2440内核移植---亲自移植的
- fl2440内核移植(四)——DM9000移植
- FL2440 Linux-3.0内核最小系统移植
- 内核linux-3.0移植到fl2440-----添加DM9000网卡驱动
- fl2440内核移植(五)——USB驱动移植
- fl2440——移植USB驱动、内核添加USB支持、U盘挂载
- fl2440内核移植
- fl2440内核自带按键驱动移植及hexdump命令
- fl2440内核移植(一)——最小系统
- fl2440内核移植(二)——RTC移植
- fl2440 触摸屏驱动的移植
- 移植内核2.6.24.4到S3C2440
- TQ2440内核移植之LCD
- 【uboot201607移植到FL2440】如果利用git版本管理工具下载最新的uboot源码
- linux-2.6.22.6中UDA1341驱动到FL2440-I移植
- 内核linux-3.0移植到fl2440-----添加U盘,MMC和LCD驱动
- 2440 linux内核移植-板级模板创建
- 内核在utu2440上的移植
- JZ2440平台移植Linux内核4.15.2(一)启动内核,串口正常输出
- linux3.1.8内核移植到gt2440---CS8900A驱动移植