【原创分享】嵌入式linux应用之内核移植定制篇-前篇(linux-3.8.12 mini2440)--20130824
来源:互联网 发布:硬件防火墙设置端口 编辑:程序博客网 时间:2024/06/06 11:48
移植的话其实很早就做过了,不过那时用的友善定制的老版本2.6.32 驱动什么的全部弄好了,仅仅用默认配置而已。基本不用改动什么,很简单。
内核更新其实非常的快,今天我就用个3.8.12来移植。
当然,3.8.12其实也是有mini2440的配置文件的,不过,试过之后你就会发现问题一大堆。
一:准备工作
1.内核3.8.12
2.ubuntu 13.04
3.arm-linux-gcc 4.4.3
4.mini2440 128mNAND
5.YAFFS2
二:移植
1.下载好后的内核文件,解压到工作目录 linux-3.8.12目录
2.打开跟目录的Makefile 修改编译工具参数 保存
export KBUILD_BUILDHOST := $(SUBARCH)ARCH?= armCROSS_COMPILE?= arm-none-linux-gnueabi-
3.下载yaff2补丁,一定要用git方式,保证是最新的
git clone git://www.aleph1.co.uk/yaffs2
./patch-ker.sh c m /home/lynn/share/linux/linux-3.8.12
这样在工作目录下生成一个YAFFS2的文件夹,进入这个目录,给内核打yaff2的支持。因为我的开发板用的yaff2的文件系统。
4.make mini2440_defcoonfig 用默认mini2440的配置文件
5.make menuconfig 在file system中选定yaffs2支持。
6.make zImage
这样,一个3.8.12 mini2440内核文件就出来了,生产的zImage 在内核源码/arch/arm/boot 下面
为了能给Uboot引导还要
mkimage -n 'lynn' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage zImage.img
使用Uboot:
tftp zImage.imgbootm.....进入linux内核
对于新手的话,Uboot的移植请参考我前面的文章 【原创分享】嵌入式linux应用之U-BOOT移植定制篇--20130822
看上图 内核就启动了。。。
三:解决问题
到上面,虽然内核启动了,文件系统也挂载了。系统正常启动,但是,有个问题
这个时候的系统 无法使用nfs,虽然内核配置时是配置了nfs,不过因为DM9000的驱动问题。导致了nfs以及ping网络都非常慢,这个问题主要是最新的驱动
时序不一样,参考友善的dm9000驱动,就发现,在初始化时是有配置的。找到DM9000.C,加入红色部分程序。
static int __initdm9000_init(void){ #if defined(CONFIG_ARCH_S3C24XX)unsigned int oldval_bwscon = *(volatile unsigned int *)S3C2410_BWSCON;unsigned int oldval_bankcon4 = *(volatile unsigned int *)S3C2410_BANKCON4;*((volatile unsigned int *)S3C2410_BWSCON) =(oldval_bwscon & ~(3<<16)) | S3C2410_BWSCON_DW4_16 | S3C2410_BWSCON_WS4 | S3C2410_BWSCON_ST4;*((volatile unsigned int *)S3C2410_BANKCON4) = 0x1f7c;#endifprintk(KERN_INFO "%s Ethernet Driver, V%s\n", CARDNAME, DRV_VERSION);return platform_driver_register(&dm9000_driver);}
make zImage 之后 重新测试,网络就正常了。
到此一个网络正常的3.8.12内核就启动了。不过,lcd驱动,背光驱动还是有问题的。问题后篇解决。
- 【原创分享】嵌入式linux应用之内核移植定制篇-前篇(linux-3.8.12 mini2440)--20130824
- 【原创分享】嵌入式linux应用之内核移植定制篇-后篇(修复部分问题)(linux-3.8.12 mini2440)
- 【原创分享】嵌入式linux应用之U-BOOT移植定制篇--20130822
- 【原创】嵌入式LINUX内核移植(mini2440)----09.02
- linux之mini2440内核移植
- 嵌入式 移植Linux内核到mini2440常见问题
- linux--mini2440内核移植
- mini2440嵌入式Linux内核下网卡DM9000E移植
- mini2440的 linux内核移植
- linux--mini2440内核移植手册
- mini2440的Linux内核移植
- mini2440 的Linux 内核移植
- linux内核移植到mini2440:
- 嵌入式Linux内核移植
- 【嵌入式Linux学习七步曲之第四篇 Linux内核移植】PPC Linux启动流程分析
- 嵌入式开发二:mini2440开发-内核抑制-嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之内核
- 嵌入式开发三:mini2440开发-内核抑制-嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之内核
- 【嵌入式Linux学习七步曲之第四篇 Linux内核移植】GDB和BDI2000调试PPC Linux内核
- 深入理解ARM体系架构(S3C6410)---认识S3C6410
- Activity切换效果(overridePendingTransition)
- POJ 2752 Seek the Name, Seek the Fame
- 深入理解ARM体系架构(S3C6410)---arm7,arm9,arm11区别
- 做CEO最主要的工作是Kill ideas,我对李彦宏创业七剑的一点理解
- 【原创分享】嵌入式linux应用之内核移植定制篇-前篇(linux-3.8.12 mini2440)--20130824
- 理解嵌入式开发中的一些硬件相关的概念
- 使用注册机激活MyEclipse 10失败的解决方法
- C++校验日期串合法性
- 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果
- java枚举详解实例
- Linux:定时器
- Objective-C——消息、Category和Protocol
- 记性不可靠,纸头最重要,Excel VBA(宏)入门实用--Like 使用