AT91RM9200Linux移植笔记(三)-移植Linux kernel 2.6.17
来源:互联网 发布:淘宝兼职工资单反馈 编辑:程序博客网 时间:2024/05/21 04:07
手上板子原来自带的是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了
- AT91RM9200Linux移植笔记(三)-移植Linux kernel 2.6.17
- Linux kernel移植笔记
- AT91RM9200Linux移植笔记(二)-移植u-boot-1.1.6
- AT91RM9200Linux移植笔记(二)-移植u-boot-1.1.6
- 2440移植Linux Kernel笔记(三)------制作jffs2映像文件
- AT91RM9200Linux移植笔记(一)-交叉编译环境的建立
- 移植 kernel linux-2.6.30.4
- Linux kernel移植流程
- Linux kernel移植流程
- 移植linux kernel
- Linux kernel移植流程
- linux kernel 移植步骤
- linux fl2440 kernel 移植
- 2440移植Linux Kernel笔记(一)------编译kernel
- 2440移植Linux Kernel笔记(六)------剪裁Kernel
- S3C6410移植linux kernel 2.6.36步骤
- [IMX6Q][Android5.1]移植笔记 --- kernel移植
- [IMX6Q][Android5.1]移植笔记 --- kernel移植
- ......
- 推荐一个.net代码查看器Reflector
- 应用php查询subversion状态
- Web.Config文件中SQLServerExpress数据库连接配置解释
- JBuilder 2006 更新JDK6核心尝试
- AT91RM9200Linux移植笔记(三)-移植Linux kernel 2.6.17
- 项目管理经验谈(2): 谈谈项目资源
- 推荐一个Java的反编译软件
- K线图股市分析法
- 密码相关
- 线程安全及其他
- Windows 系统面面观
- 张非会再次从清华退学吗
- 当前标识(NT AUTHORITY/NETWORK SERVICE)没有对“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files”的写访问权限。