skyeye下运行 linux-2.6.x

文章来 源:http://ivistn.wikispaces.com/page/code/uCLinuxOnSkyeye_ZH

 

==1) At91平台环境运行uClinux-dist-20070130 (Linux宿主系统)==

以下步骤介绍如何在skyeye下运行 linux-2.6.x / At91

# 建立交叉编译环境
** 从http://ftp.snapgear.org/pub/snapgear/tools/arm-linux/ 下载 [[http://ftp.snapgear.org/pub/snapgear/tools/arm-linux/arm-linux-tools-20070808.tar.gz|arm-linux-tools-20070808.tar.gz]]
** 将[[http://ftp.snapgear.org/pub/snapgear/tools/arm-linux/arm-linux-tools- 20070808.tar.gz|arm-linux-tools-20070808.tar.gz]]复制到文件系统根目录,使用超级用户权限执行如下 命令:
>> [[code]]
# cd /
# tar zxvf arm-linux-tools-20070808.tar.gz
[[code]]
** 完成后/usr/local/bin目录下会出现一组前缀为arm-linux-的编译工具
# 获得uClinux源码
** 下载uClinux源码包 http://www.uclinux.org/pub/uClinux/dist/ 下载 [[http://www.uclinux.org/pub/uClinux/dist/uClinux-dist-20080808.tar.bz2|uClinux-dist-20080808.tar.bz2]]
** 将[[http://www.uclinux.org/pub/uClinux/dist/uClinux-dist- 20080808.tar.bz2|uClinux-dist-20080808.tar.bz2]]解压缩到适当位置,解压缩后占用1.1G磁盘空间, 例如/usr/src/uclinux-src
** 进入到 /usr/src/uclinux-src 目录下
# 执行make menuconfig (要求系统已安装ncurses-dev库)。按如下提示配置选项,保存退出。
> [[code]]
Vendor/Product Selection ---->
(GDB) Vender
(ARMulator) GDB Products
Kernel/Library/Defaults Selection --->
(linux-2.6.x) Kernel Version
(uClibc) Libc Version
[[code]]
# 执行 make dep; make 编译内核文件及文件系统。或者通过指定CROSS_COMPILE变量值可以使用默认编译器以外的交叉编译工具,如
> [[code]]
make CROSS_COMPILE=arm-elf- dep
make CROSS_COMPILE=arm-elf-
[[code]]
# 编译完成后,进入到 ./image 文件夹,这里生成一个内核文件 linux 和一个文件系统文件 boot.img
# 创建 skyeye.conf 文件,文件内容如下:
> [[code]]
#skyeye config file sample
cpu: arm7tdmi
mach: at91
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000
mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000
mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=./boot.img
mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000
mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000
mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000
mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000
net: type=rtl8019, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1
#net: type=rtl8019_16, ethmod=tuntap, hostip=10.0.0.1
#dbct: state=on
[[code]]
# 执行 " skyeye -e linux"
==2) At91平台环境运行uClinux-dist-20070130 (Windows/Cygwin宿主系统)==

以下步骤介绍如何在skyeye下运行 linux-2.6.x / At91
# 在cygwin环境下,编译 [[http://sourceforge.net/project/showfiles.php?group_id=85554&package_id=88626&release_id=554361|Skyeye-1.2.4]] 下载[[http://www.uclinux.org/pub/uClinux/dist/uClinux-dist- 20070130.tar.bz2|http://www.uclinux.org/uClinux/dist/uClinux-dist-20070130.tar.bz2]]
# 从http://prdownloads.sourceforge.net/ipodlinux/arm-elf-gcc.zip?download获得 cygwin的arm-elf编译工具链。这个压缩包已含{{/usr/local/...}}完整的目录结构,需要将其解压到cygwin环境根目录 下,并且注意不要在添加新文件同时不要把现有目录下已存在文件覆盖。
# 检验交叉编译工具链已正确安装:gcc 2.95.3 只能用作编译linux2.4.x内核,如需编译2.6.x linux内核请选用其他版本工具链。
> [[code]]
$ arm-elf-gcc.exe --version
2.95.3
[[code]]
# 在uClinux-dist目录下,运行" make menuconfig ",选择设置值为 GDB/Amulator,内核设置为2.4.x,保存退出菜单选择界面。
# 进到 " uClinux-dist/linux-2.4.x " 目录,使用 vim 或者 nano 等编辑" Makefile ",取消如下注释行
> [[code]]
.......
ARCH := armnommu
......
CROSS_COMPILE = arm-elf-
[[code]]
# 在" uClinux-dist/linux-2.4.x ",运行" make dep ; make " 命令,编译自己的uClinux内核。完成后,在uClinux-dist/linux-2.4.x目录下,名字为" linux " 的内核文件。
> [[code]]
$ ls linux -al
-rw-r--r-- 1 wyh None 31041250 Nov 18 11:28 linux
wyh@ualboot ~/uClinux-dist/linux-2.4.x
$ file linux
linux: ELF 32-bit LSB executable, ARM, version 1, statically linked, not stripped
[[code]]
# 将 "skyeye.exe" , "romfs.img" , "skyeye.conf" 文件复制到" uClinux-dist/linux-2.4.x "目录。"skyeye.conf"和"romfs.imag" 可以从[[http://sourceforge.net/project/showfiles.php?group_id=85554& package_id=166819&release_id=553885|skyeye-testsuite-2.3]]解压获得,或者单独下 载 [[http://wyonghao.googlepages.com/romfs.img|romfs.img]]。"skyeye.conf"文件内 容如下:
> [[code]]
#skyeye config file sample
cpu: arm7tdmi
mach: at91
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000
mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000
mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=./romfs.img
mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000
mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000
mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000
mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000
net: type=rtl8019, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1
#dbct: state=on
[[code]]
# 运行 "skyeye -e linux“ 命令,运行编译的uClinux内核文件。

==3) LPC平台环境运行uClinux-dist-20040408(Linux宿主系统)==

以下步骤介绍如何在skyeye下运行 linux-2.4.x / LPC2200
# 从uClinux.org网站下载交叉编译工具 arm-elf-tools-20030314. sh和uClinux源码包 [[http://www.uclinux.org/pub/uClinux/dist/uClinux-dist-20040408.tar.gz|uClinux-dist-20040408.tar.gz]]
# 安装编译工具链,解压缩uClinux源码包。
# 从skyeye源码仓库下载skyeye-v1/trunk/ misc/uClinux/uClinux-dist- 20040408-lpc.diff 补丁。更新补丁文件到uClinux- dist20040408源码树。
# 执行“make menuconfig”,配置编译选项。选择 PHILIPS/lpc2200 选项值,保存退出。执行“make”命令, 开始编译uClinux。完成后,在linux-2.4. x目录下获得linux内核文件。
# 执行"skyeye -e linux-2.4.x/linux"命令, 在skyeye上运行内核文件。skyeye配置文件 skyeye.conf内容如下:
> [[code]]
#skyeye config file sample
cpu: arm7tdmi
mach: lpc
mem_bank: map=M, type=RW, addr=0x40000000, size=0x00200000
mem_bank: map=M, type=RW, addr=0x81000000, size=0x00700000
mem_bank: map=M, type=RW, addr=0x81700000, size=0x00100000, file=./initrd-u
mem_bank: map=I, type=RW, addr=0xe0000000, size=0x20000000
[[code]]
# 已知问题:
> 在skyeye上运行uClinux到“"Calibrate loop...",会停顿,需要等待1分钟左右
> 因为uart模拟问题,shell界面很可能不会出现

==4) Blackfin 533平台环境运行uClinux-dist-R05R4(Linux宿主系统)==

以下步骤介绍如何在skyeye1.2.4 下运行uClinux-dist-R05R4/bf533
# 从[[http://blackfin.uclinux.org|blackfin.uclinux.org]]下载uClinux-dist-R05R4-RC2.tar.bz2和相应的编译工具链。
# 安装工具链,并且解压缩 uClinux 包
# 编译uClinux内核。注意,缓存设置(cache option)网络设置(network option)应该被取消;串口DMA模式应该变为pio模式;并且选择sash为默认shell程序。据我所知,busybox在skyeye上运行并不稳定。
# 下载skyeye-1.2.4稳定版,在源码目录下执行"make“,编译获得执行文件。
# 执行"skyeye -e image/linux"命令,在skyeye上运行uClinux内核。skyeye配置文件内容如下:
> [[code]]
arch:blackfin
mach:bf533
[[code]]
==5) 附加 trl8019 网卡驱动的 At91平台环境运行 uClinux-dist-20070130 (Linux 宿主系统)==

# 在进行操作之前应确定uClinux可以在skyeye上正确运行。如果有问题请参照 http://skyeye.wiki.sourceforge.net/uClinux#tocuClinux0
# rtl8019网卡驱动可以从 http://lists.gro.clinux.org/pipermail/skyeye-developer/2007-July/001442.html下载,或者通过skyeye svn获得。
# 将rtl8019.h和rtl8019.c这两个文件复制到 uClinux-dist/linux-2.4.x/driver/net 目录下。
# 修改 uClinux-dist/linux-2.4.x/driver/net 目录下的Makefile文件,添加一行内容,如下:
> [[code]]
obj-y += rtl8019.o
[[code]]
# 运行 "make menuconfig“ 命令,进入内核编译配置菜单项,选择GDB/Amulator选项值,保存退出。
# 运行 "make dep ; make" 命令,开始编译uClinux内核文件。结束后,在 linux-2.4.x目录下可以找到编译生成的内核文件 linux
# 创建skyeye.conf文件,其中 hostip=10.0.0.1 配置的是与uClinux系统通信的宿主系统的网络ip。具体内容如下:
> [[code]]
cpu: arm7tdmimach: at91
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000
mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000
mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000
mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000
mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000
mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000
mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000
net: type=rtl8019_16, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1
[[code]]
# 使用超级管理员权限(需要使用管理员权限建立tun设备)执行 "skyeye -e linux-2.4.x/linux“ 命令。
# 当正确运行到uClinux shell界面时,便可以使用 ifconfig 命令,修改uClinux系统内部ip地址。
> #ifconfig eth0 10.0.0.2
# 此时,在宿主系统内可以看到一个tap0的网络设备,其ip地址为10.0.0.1。使用ping命令可以相互测试网络连接状况。
> #ping 10.0.0.1
>
> Additional driver package for at91: [[image:http://skyeye.wiki.sourceforge.net/i/mime/32/empty.png width="32" height="32" link="http://skyeye.wiki.sourceforge.net/space/showimage/uclinux4skyeye-v0.2.4.tar.bz2"]][[http://skyeye.wiki.sourceforge.net/space/showimage/uclinux4skyeye-v0.2.4.tar.bz2| uclinux4skyeye-v0.2.4.tar.bz2]]

你可能感兴趣的:(skyeye下运行 linux-2.6.x)