AT91RM9200Linux移植笔记(三)-移植Linux kernel 2.6.17

手上板子原来自带的是2.4.19的内核, 打算移植新的2.6的内核,从网上下了2.6.17的kernel,下载地址为:http://www.kernel.org/pub/linux/kernel/v2.6/
修改PATH环境变量或者Makefile文件的CROSS_COMPILE宏,将前面制作好的交叉编译工具链路径添加进来,同时需要下载针对AT91rm9200的patch包, 2.6.17-at91.patch.gz, 下载地址是http://maxim.org.za/AT91RM9200/2.6/
$ tar zxvf linux-2.6.17.tar.gz
$ cp 2.6.17-at91.patch.gz linux-2.6.17
$ cd linux-2.6.17
$ zcat ./2.6.17-at91.patch.gz | patch -p1
有点要注意的是,如果从windows下下载该patch,有三四百K大小,执行zcat时会报not gzip format的错误,而在linux环境里下载则为79.1K,且命令执行没有问题,不知道下同一个文件在两种环境下怎么会有区别,协议有区别?
然后一个很必要的修改是串口的驱动,打开文件: /linux-2.6.17/arch/arm/mach-at91rm9200/board-dk.c, 作如下改动:
/*
* Serial port configuration.
*  0 .. 3 = USART0 .. USART3
*  4    = DBGU
*/
static struct at91_uart_config __initdata dk_uart_config = {
  .console_tty    = 0,                /* ttyS0 */
  .nr_tty        = 5,
  .tty_map    = { 4, 1, 0, 2, 3 }        /* ttyS0, ..., ttyS4 */
};

否则,新内核没有ttyS4设备,而我们的serial console正是基于ttyS4的,所以ramdisk解压后由于找不着ttyS4而死掉。
然后运行
$ make mrproper
$ make distclean
$ make at91rm9200dk_defconfig
$ make menuconfig
修改其中的Boot Options:
Default Kernel Command String: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
我修改的为:mem=32M console=ttyS0,115200 initrd=0x21000000,0x181341 root=/dev/ram0 rw
0x21000000是ram文件系统的起始地址,0x181341是文件系统大小
at91rm9200dk_defconfig位于/linux-2.6.17/arch/arm/config/下,可以修改其默认配置
最后
$ make
# cp arch/arm/boot/zImage ...
在uboot的shell里
$ tftp 20008000 zImage
$ tftp 21000000 Ramdisk.gz
$ go 20008000
内核启动后会停在
wanted = 164392 limterd = 164384
无法启动文件系统,经过在网上多番搜索,可能的原因是kernel配置的ramdisk的大小不够
但是我的ramdisk只有1.5M,而内核配置默认的是8192,怎么会不够呢??改大到10240,果然可以加载ramdisk了

转载:http://blog.csdn.net/shevsten/archive/2007/07/16/1694003.aspx

转载于:https://www.cnblogs.com/fly-fish/archive/2011/03/10/1979470.html

AT91RM9200Linux移植笔记(三)-移植Linux kernel 2.6.17相关推荐

  1. Linux内核移植笔记 | 02 - 移植Linux 3.4.2 内核到JZ2440(修改内核中的mtd分区)

    1. 问题 在上一节Linux系统启动之后,打印出的分区表如图: 和实际对nand flash的分区表不一致,实际上在uboot移植教程(08 - 移植uboot 2012.04到JZ2440(设置m ...

  2. U-Boot-2009-03移植笔记(移植准备)

    因为工作需要,需要在S3C2440板子上移植U-boot和Linux,虽然关于S3c2440移植的文章比较多,但是毕竟全面的不多,而且都是别人的,这次自己动手,以此系列记录全过程. U-boot1.1 ...

  3. linux内核关闭igmp,Linux kernel IGMP多个安全漏洞

    受影响系统: Linux kernel 2.6.9 Linux kernel 2.6.8 Linux kernel 2.6.7 Linux kernel 2.6.6 Linux kernel 2.6. ...

  4. 编写一个简单的linux kernel rootkit

    一.前言 linux kernel rootkit跟普通的应用层rootkit个人感觉不大,个人感觉区别在于一个运行在用户空间中,一个运行在内核空间中:另一个则是编写时调用的API跟应用层rootki ...

  5. Linux Kernel 4.20 生命周期已结束,建议迁移 5.0

    继 Linux Kernel 4.20 版本正式发布三个月, Linux Kernel 4.20.17 维护版本也于近日更新.Greg Kroah-Hartman 在邮件中写道:"这是 4. ...

  6. linux畸形文件夹,Linux Kernel畸形ULE报文处理远程拒绝服务漏洞

    Linux Kernel是开放源码操作系统Linux所使用的内核. Linux的ULE(单向轻型封装RFC 4326)拆封代码存在一个漏洞,远程攻击者可能利用此漏洞对接收处理的服务器造成拒绝服务攻击. ...

  7. s5pv210 linux内核移植,S5PV210(TQ210)学习笔记——内核移植与文件系统构建之二

    由于之前做过2440和6410,鉴于时间原因,这里暂时跨过其他模块的裸机驱动和uboot移植,直接进入内核移植及驱动开发方面的学习. 三 设置uboot启动参数 我的nfs根目录为/nfsroot,我 ...

  8. I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之kernel移植

    前篇文章已经在tqimx6q上成功跑起了新版BSP的uboot,本文来配置下新版BSP的kernel,使kernel能在tqimx6q上正常启动. 准备工作 每次移植kernel的时候都会做的工作就是 ...

  9. 【ARM】一步一步移植Linux Kernel 2.6.13到板子

    1环境搭建所需材料 2环境搭建所需材料之间的关系 3所使用的开发板 4译内核 1修改makefile 2拷贝配置文件 3编译得到zImage 4把zImage转成uImage 5开发板串口连接 6ub ...

最新文章

  1. 【数据竞赛】“达观杯”文本智能处理挑战赛2
  2. 【树状数组】【dfs】树
  3. 光端机的原理和使用范围
  4. Go语言实例系列【 获得url实例】
  5. bzoj 2761 平衡树
  6. python代码注释规范-Python编程规范之注释
  7. 交叉熵损失函数(Cross Entropy Error Function)与均方差损失函数(Mean Squared Error)
  8. 云信api_服务端API文档
  9. 使用SecureCRT连接虚拟机中Linux系统 和 虚拟机网络配置
  10. 计算机竞赛制作机器人,电脑制作活动机器人项目详细说明
  11. oracle修改表的owner,Oracle中改变表的Owner和tablespace
  12. Windows 微信多开
  13. Python --- Numpy 创建n维数组基本方法
  14. 微信公众号开发之(35)地图导航
  15. java丧尸危机全城爆发_伤尸危机-全城爆发BT版
  16. 月过春枝似带烟的情境里
  17. 雇佣兵(程序设计与算法(一))
  18. fread()和fwrite()函数分析
  19. 交付实施工程师是做什么的?
  20. python百科全书_维基百科中的数据科学:手把手教你用Python读懂全球最大百科全书...

热门文章

  1. python 用元类 type 实现对数据库的ORM 映射
  2. html中通过定位 实现下拉,JS+CSS相对定位实现的下拉菜单
  3. android文本复制自定义剪切板,android 剪切板-文本复制、粘贴
  4. CodeForces - 786C——二分+模拟?
  5. linux网络编程:使用多进程实现socket同时收发数据
  6. arm-linux-gcc静态编译和动态编译的区别
  7. 汇编语言的相对跳转和绝对跳转以及反汇编代码解析
  8. 什么是地址译码 理解二进制编码
  9. 从草根到百万年薪程序员的十年风雨之路,吊打面试官系列!
  10. java中常用的包、类、以及包中常用的类、方法、属性----sql和text\swing