开发环境
主机开发环境:ubuntu12.04
BootLoader:u-boot-2012.04.01
kernel:linux-3.4.2
CPU:s3c2440
开发板:TQ2440
步骤
之前已经移植过linux-2.6.30.4内核,这次尝试移植更高版本的内核Linux-3.4.2
1、内核源码下载
下载地址:内核下载地址
拷贝到虚拟机里,解压内核
tar -jxvf linux-3.4.2.tar.bz2
2、在系统中添加对ARM的支持
3、修改平台输入时钟
不修改的话会出现启动内核会出现乱码
在内核源码中找到对应的单板文件为archarmmach-s3c24xxmach-smdk2440.c文件,在smdk2440_map_io 函数中可以看到晶振设置有问题,TQ2440板载的是12M晶振,所以修改如下:
4、选择内核的配置文件,编译
进入arm架构的单板默认配置文件目录:
cd arch/arm/configs/
回到根目录,配置内核,编译生成UImage镜像
make s3c2410_defconfig
make uImage
5、下载到开发板中测试
tftp 30000000 uImage
bootm 30000000
暂时无法挂载根文件系统
6、修改内核mtd分区表
进入
arch/arm/mach-s3c24xx/common-smdk.c
之前的内核分区表为
修改为
7、修改内核源码支持DM9000网卡驱动
之前配置使用的SMDK2440开发板,默认不支持DM9000网卡驱动,所以需要移植网卡,按照韦东山的移植方法,总是出现无法挂载文件系统的问题,已经多次试过,这里就不在放图了。所以怀疑是少了什么东西,然后一细想,我的板子是TQ2440,我可以按照之前移植2.6.30.4内核的方法试试,按照天嵌的方法移植DM9000网卡。
进入内核源码目录里面,找到
arch/arm/mach-s3c24xx/mach-smdk2440.c
具体方法参考我的移植linux-2.6.30.4内核博客:https://editor.csdn.net/md/?articleId=105127813
修改mach-smdk2440.c的方法基本和韦东山一致,然后我又按照天嵌的方法修改了
linux-3.4.2/drivers/net/ethernet/davicom/dm9000.c
8、编译内核,测试NFS方式挂载文件系统
因为已经使内核支持了网卡驱动,所以先以NFS方式尝试挂载文件系统
make uImage
拷贝镜像到TFTP文件夹,启动开发板
修改u-boot环境变量
setenv bootargs root=/dev/nfs rw nfsroot=192.168.1.192:/source/rootfs ip=192.168.1.6 init=linuxrc console=ttySAC0,115200
出现了错误,明明已经挂载上了文件传统,却又出现内核错误,经过查找资料,参考博客:参考文章
发现是因为编译器编译时使用了eabi接口(Embedded Application Binary Interface,嵌入式应用二进制接口),但是内核中没有开启配置,所以内核提示这是非法指令。
7、配置内核支持EABI接口
进入内核目录
make menuconfig
make uImage
8、多种方式挂载根文件系统
经过以上内核的配置,成功挂载根文件系统
(1)文件系统用韦东山的
(2)文件系统用之前按照天嵌自制的
(3)配置内核支持yaffs文件系统,参考我的博客:移植yaffs文件系统
采用的为韦东山制作好的yaffs2文件系统,以后有时间自己在构建一遍文件系统。
后记:经过了好几个晚上的奋战,期间遇到种种问题,差点放弃了,终于功夫不负有心人,移植linux-3.4.2内核到TQ2440上成功!
上一篇:基于TQ2440的busybox根文件系统制作
下一篇:移植uboot-2012.04.01到TQ2440
推荐阅读最新更新时间:2024-11-08 10:44
设计资源 培训 开发板 精华推荐
- EVAL-ADUC7026QSP,用于评估 ADuC7026 ARM7 MCU 微转换器的 QuickStart Plus 开发系统
- HCHO-CUBE
- DER-636 - 基于InnoSwitch3-MX和InnoMux芯片组的40W多路输出电源,带4个LED驱动器,用于电脑显示器
- RT9396 I2C 接口 PMIC 与 6 通道 WLED 驱动器和 4-LDO 的典型应用电路
- 温湿度计
- L4978 2A 降压型开关稳压器的典型应用
- 5.1V 直流转直流单路输出电源
- DM163025-1,PICDEM 全速 USB 演示板
- 使用 Analog Devices 的 LTC1174CN8-3.3 的参考设计
- DK-DEV-3SL150NES,Stratix III 开发板为低功耗开发和原型设计提供硬件平台