Linux-2.6.20内核移植到AT91RM9200-EK(转)
来源:互联网 发布:淘宝我要开店 编辑:程序博客网 时间:2024/05/17 07:03
以下文档也适用于Linux-
<!--[if !supportLists]-->1. <!--[endif]-->准备相关的工具:http://www.kernel.org
从这里下载 linux-
http://maxim.org.za/AT91RM9200/2.6/
从这里下载补丁
http://www.handhelds.org/download/projects/toolchain/
从这里下载交叉编译工具 arm-linux-gcc-
http://www.busybox.net/ 从这里下载 BusyBox 1.2.2.1 更改为busybox-1.00,1.2.2.1中的模块编译有问题
<!--[if !supportLists]-->2. <!--[endif]-->首先建立交叉编译环境
由于arm-linux-gcc-
#cd /
#tar jxvf arm-linux-gcc-
使用arm-linux-gcc –version 检查交叉编译器是否安装成功,正常情况下可以显示出版本信息,如果看不到, 在.bash_profile 文件中增加
export PATH=$PATH:/usr/local/arm/
然后重起系统。只有用arm-linux-gcc –version命令能够看到交叉编译器的版本信息,安装才算成功。
3.解压 linux-
解压之后生成 linux-
$ cd linu-
$ zcat
修改该目录下的Makefile文件
ARCH ?=$(SUBARCH)
CROSS_COMPILE ?=
改成:
ARCH = arm
CROSS_COMPILE =/usr/local/arm/
$ cp arch/arm/configs/at91rm9200ek_defconfig /.config
$ make clean
$ make zImage
由于我的板子上的U-boot,不支持zImage,另外machine ID不支持AT91RM9200EK.需要作如下修改:
<!--[if !supportLists]-->a. <!--[endif]-->linux-
MACHINE_START(AT91RM9200EK,”Atmel AT91RM9200-EK”) 改为
MACHINE_START(AT91RM9200,”Atmel AT91RM9200-EK”)
<!--[if !supportLists]-->b. <!--[endif]-->制作 uImage文件
$ /usr/local/arm/
$ gzip –v9 linux.bin
$./mkimage –A arm –O linux –T kernel –C gzip –a 0x20008000 –e 0x20008000 –d linux.bin.gz uImage
4. 制作ramdisk
a. 解压busybox-
# cd /busybox-
# make menuconfig 根据需要修改配置
busybox settings à
build options à
[ * ]build busybox as a static binary(no shared libs)
do you want to build busybox with a cross compiler?
填上你的交叉编译器的路径
/usr/local/arm/
另外shells中要选上 choose your default shell (ash)
#make ;make install
<!--[if !supportLists]-->c. <!--[endif]-->制作空的ramdisk:
# dd if=/dev/zero of=ramdisk bs=1k count=8000
在本地目录下出现一个rmdisk的块文件
# losetup /dev/loop2 ramdisk
# mkfs.ext2 /dev/loop2
挂载ramdisk至/mnt下
# mount -t ext2 /dev/loop2 /mnt
c.准备lib库文件
# cd /mnt
# mkdir lib
# cd /usr/local/arm/
# for file in libc libcrypt libdl libm libpthread libresolv libutil
> do
> cp $file-*.so /mnt/lib
> cp -d $file.so.[*0-9] /mnt/lib
> done
# cp -d ld*.so* /mnt/lib
<!--[if !supportLists]-->d. <!--[endif]-->复制busybox文件至ramdisk中:
# cp –rf /busybox-
这样在ramdisk中就有:usr sbin linuxrc lib (将linuxrc文件删除)
# cd /mnt
# mkdir dev home root usr etc mnt sys tmp
#cd dev
#mknod -m 660 console c 5 1
#mknod -m 660 null c 1 3
# umount /dev/loop2
# losetup -d /dev/loop2
# gzip -9 ramdisk
以下为制作根文件系统的补充:
a. 建立设备文件名
可以用mknod手工建立,也可以直接从原系统的/dev目录下拷贝
b.建立etc目录下的配置文件
Busybox.conf motd mtab 都为空文件
Inittab内容如下:
Console::sysinit:/etc/init.d/rcS
ttyS0 :respawn :-/bin/sh
tty2 ::askfirst :-/bin/sh
tty0 ::askfirst :-/bin/sh
tty3 ::askfirst :-/bin/sh
tty4 ::askfirst :-/bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount –a –r
::shutdown:/sbin/swapoff –a
fstab内容如下:
/dev/fd0 / ext2 defaults 0 0
none /proc proc defaults 0 0
none /dev/pts devpts mode=0622 0 0
group内容如下:
root::0:root
issue内容如下:
Sunny AT91RM9200EK (
passwd内容如下:
root::0:0:root:/root:/bin/ash
profile内容如下:
export PS1=”[“$USER” @ /h]# “
echo “Done”
PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PATH
resolv.conf内容如下:
nameserver 127.0.0.1
search localhost
init.d目录下rcS文件内容:
#! /bin/sh
Mount –o remount, rw /
/sbin/ifconfig lo 127.0.0.1
ln –s /dev/tts/0 /dev/ttyS0
ln –s /dev/vc/0 /dev/tty0
ln –s /dev/vc/1 /dev/tty1
ln –s /dev/vc/2 /dev/tty2
/bin/mount –a
>/etc/mtab
echo
echo “………….Welcom to AT91RM9200EK …………..”
echo
hostname AT91RM9200EK
使用chmod a+x rcS 将此文件改为可执行文件
- Linux-2.6.20内核移植到AT91RM9200-EK(转)
- Linux-2.6.20内核移植到AT91RM9200-EK
- Linux-2.6.20内核移植到AT91RM9200-EK
- Linux-2.6.20内核移植到AT91RM9200-EK
- 移植2.6.16内核到at91rm9200
- linux内核移植-移植2.6.35.4内核到s3c2440
- linux内核移植-移植2.6.35.4内核到s3c2440
- linux内核移植-移植2.6.35.4内核到s3c2440
- linux内核移植-移植2.6.35.4内核到s3c2440
- linux内核移植-移植2.6.35.4内核到s3c2440
- linux内核移植-移植2.6.35.4内核到s3c2440
- linux内核移植-移植2.6.35.4内核到s3c2440
- linux内核移植-移植2.6.35.4内核到s3c2440
- linux内核移植-移植2.6.35.4内核到s3c2440
- u-boot-2012.10移植到AT91RM9200(包括NAND FLASH)
- 转:基于ATMEL AT91RM9200的嵌入式Linux移植笔记(2)
- 转:基于ATMEL AT91RM9200的嵌入式Linux移植笔记(3)
- linux 内核移植 2.6.35.4 到s3c2440
- 关于如何继续深入学习arm+linux(转)
- Log4Net使用指南
- AoC community competition: your best moment
- Cognos8应用部分在TOMCAT上部署
- 有关Access的压缩和修复数据库功能
- Linux-2.6.20内核移植到AT91RM9200-EK(转)
- 24个常用方法有效优化ASP.NET的性能(四)
- General Changes for Age of Conan
- 构建Asp.Net2.0 GridView复合多层表头的几种方法
- Age of Conan: More than gamers have registered
- 等待
- 最实在的十句经典人生感悟
- Cognos 8.3怪异问题CM-CFG-5063 A Content Manager configuration error was detected while connecting to the content store.
- 常用正则式收集