本文共 7617 字,大约阅读时间需要 25 分钟。
文章来 源: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]]转载地址:http://ncsqi.baihongyu.com/