AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植文档移植文档移植文档移植文档
第 1 页/共 27 页
©2008 太湖微控电子 www.taihumicro.com
AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植移植移植移植文档文档文档文档
Ver 1.0Ver 1.0Ver 1.0Ver 1.0
AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植文档移植文档移植文档移植文档
第 2 页/共 27 页
©2008 太湖微控电子 www.taihumicro.com
目录目录目录目录::::
1.准备所需要的软件和编译工具包
2.安装 ARM-LINUX-GCC 工具链
3.安装编译 AT91BootStrap Bootloader
4.安装编译 Uboot 及 AT91-Uboot 补丁
5.安装编译 Linux2.6.22 及 AT91-Linux 补丁
6.安装下载工具 AT91ISP 及烧写文件
7.NFS 根文件系统的建立
8.移植 Boa Web 服务器
9.移植网络摄像头
10.移植 Madplay 音频播放器
11.ARM MPlayer 移植
12.AT91SAM 芯片的启动过程
附录 1:安装 VMWARE+READHAT9 环境
附录 2:如何安装虚拟工具和网络设置
AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植文档移植文档移植文档移植文档
第 3 页/共 27 页
©2008 太湖微控电子 www.taihumicro.com
准备所需要的软件准备所需要的软件准备所需要的软件准备所需要的软件和编译和编译和编译和编译工具包工具包工具包工具包
1111.... AAAAt91bootstrap Bootloadert91bootstrap Bootloadert91bootstrap Bootloadert91bootstrap Bootloader 软件包软件包软件包软件包
AT91Bootstrap1.8.zipAT91Bootstrap1.8.zipAT91Bootstrap1.8.zipAT91Bootstrap1.8.zip
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4093
光盘位置:/linux/at91bootstrap/
2222.... UbootUbootUbootUboot 以及补丁以及补丁以及补丁以及补丁
uuuu----bootbootbootboot----1.1.5.tar.bz21.1.5.tar.bz21.1.5.tar.bz21.1.5.tar.bz2 uuuu----bootbootbootboot----1.1.5_atmel_1.5.diff.bz21.1.5_atmel_1.5.diff.bz21.1.5_atmel_1.5.diff.bz21.1.5_atmel_1.5.diff.bz2
ftp://ftp.denx.de/pub/u-boot/u-boot-1.1.5.tar.bz2
http://www.linux4sam.org/twiki/pub/Linux4SAM/U-Boot/u-boot-1.1.5_atmel_1.5.diff.bz2
光盘位置:/linux/uboot/
3333.... Linux2.6.22Linux2.6.22Linux2.6.22Linux2.6.22 源码包以及补丁源码包以及补丁源码包以及补丁源码包以及补丁
linuxlinuxlinuxlinux----2.6.2.6.2.6.2.6.22222222.tar.bz2.tar.bz2.tar.bz2.tar.bz2 2.6.2.6.2.6.2.6.22222222----at91.patch.gzat91.patch.gzat91.patch.gzat91.patch.gz linuxlinuxlinuxlinux----2.6.xx2.6.xx2.6.xx2.6.xx----at91at91at91at91----exp.diff.gzexp.diff.gzexp.diff.gzexp.diff.gz
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2
http://maxim.org.za/AT91RM9200/2.6/2.6.22-at91.patch.gz
ftp://www.linux4sam.org/pub/linux/2.6.22-at91-exp.patch.gz
光盘位置:/linux/kernel/
2.6.222.6.222.6.222.6.22----at91at91at91at91----exp.patch exp.patch exp.patch exp.patch 特性特性特性特性::::
AT91SAM9261EK - Add button interface
AT91_MCI - Enhancements 1
ATMEL_LCD - Add STN and alpha in 32bpp mode support
AT91SAM9261Ek - Make NAND FLASH partition match those on AT91SAM926[03]EK
ATMEL_MACB - Add SRAM Tx buffers capabilities for AT91SAM926[03]EK
AT91_AC97 driver for AT91SAM9263EK (playback only)
AT73C213 (I2S DAC audio) support for AT91SAM926[01]EK
4444.... ARMARMARMARM----LINUXLINUXLINUXLINUX----GCCGCCGCCGCC 交叉工具链交叉工具链交叉工具链交叉工具链
armarmarmarm----linuxlinuxlinuxlinux----gccgccgccgcc----3.4.13.4.13.4.13.4.1
http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2
armarmarmarm----linuxlinuxlinuxlinux----gccgccgccgcc----3.3.23.3.23.3.23.3.2
http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.3.2.tar.bz2
armarmarmarm----2007q12007q12007q12007q1----10101010----armarmarmarm----nonenonenonenone----linuxlinuxlinuxlinux----gnueabignueabignueabignueabi----i686i686i686i686----pcpcpcpc----linuxlinuxlinuxlinux----gnu.tar.bz2gnu.tar.bz2gnu.tar.bz2gnu.tar.bz2
http://www.codesourcery.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2007q1-1
0-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
armarmarmarm----softfloatsoftfloatsoftfloatsoftfloat----linuxlinuxlinuxlinux----gnu.tar.bz2gnu.tar.bz2gnu.tar.bz2gnu.tar.bz2
光盘位置:/linux/toolchain/
AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植文档移植文档移植文档移植文档
第 4 页/共 27 页
©2008 太湖微控电子 www.taihumicro.com
安装安装安装安装 ARMARMARMARM----LINUXLINUXLINUXLINUX----GCCGCCGCCGCC 工具链工具链工具链工具链
解压缩工具链压缩包:
armarmarmarm----linuxlinuxlinuxlinux----gccgccgccgcc----3.4.1.tar.bz23.4.1.tar.bz23.4.1.tar.bz23.4.1.tar.bz2
armarmarmarm----linuxlinuxlinuxlinux----gccgccgccgcc----3.3.2.tar.bz23.3.2.tar.bz23.3.2.tar.bz23.3.2.tar.bz2
armarmarmarm----2007q12007q12007q12007q1----10101010----armarmarmarm----nonenonenonenone----linuxlinuxlinuxlinux----gnueabignueabignueabignueabi----i686i686i686i686----pcpcpcpc----linuxlinuxlinuxlinux----gnu.tar.bz2gnu.tar.bz2gnu.tar.bz2gnu.tar.bz2
armarmarmarm----softfloatsoftfloatsoftfloatsoftfloat----linuxlinuxlinuxlinux----gnu.tar.bz2gnu.tar.bz2gnu.tar.bz2gnu.tar.bz2
#cd /usr/loacal/arm#cd /usr/loacal/arm#cd /usr/loacal/arm#cd /usr/loacal/arm/toolchain/toolchain/toolchain/toolchain
####tar xvjf tar xvjf tar xvjf tar xvjf armarmarmarm----linuxlinuxlinuxlinux----gccgccgccgcc----3.4.1.tar.bz23.4.1.tar.bz23.4.1.tar.bz23.4.1.tar.bz2
#tar xvjf #tar xvjf #tar xvjf #tar xvjf armarmarmarm----linuxlinuxlinuxlinux----gccgccgccgcc----3.3.2.tar.bz23.3.2.tar.bz23.3.2.tar.bz23.3.2.tar.bz2
#tar xvjf #tar xvjf #tar xvjf #tar xvjf armarmarmarm----2007q12007q12007q12007q1----10101010----armarmarmarm----nonenonenonenone----linuxlinuxlinuxlinux----gnueabignueabignueabignueabi----i686i686i686i686----pcpcpcpc----linuxlinuxlinuxlinux----gnu.tar.bz2gnu.tar.bz2gnu.tar.bz2gnu.tar.bz2
#tar xvjf #tar xvjf #tar xvjf #tar xvjf armarmarmarm----softfloatsoftfloatsoftfloatsoftfloat----linuxlinuxlinuxlinux----gnu.tar.bz2gnu.tar.bz2gnu.tar.bz2gnu.tar.bz2
设置编译器默认路径:
打开/etc/bashrc 文件,在文件最后添加
export export export export PATH=:$PATH:/usr/local/PATH=:$PATH:/usr/local/PATH=:$PATH:/usr/local/PATH=:$PATH:/usr/local/arm/arm/arm/arm/toolchain/toolchain/toolchain/toolchain/armarmarmarm----2007q12007q12007q12007q1/bin/bin/bin/bin
export PATH=:$PATH:/usr/local/arm/export PATH=:$PATH:/usr/local/arm/export PATH=:$PATH:/usr/local/arm/export PATH=:$PATH:/usr/local/arm/toolchain/toolchain/toolchain/toolchain/armarmarmarm----softfloatsoftfloatsoftfloatsoftfloat----linuxlinuxlinuxlinux----gnugnugnugnu/bin/bin/bin/bin
export PATH=:$PATH:/usr/local/armexport PATH=:$PATH:/usr/local/armexport PATH=:$PATH:/usr/local/armexport PATH=:$PATH:/usr/local/arm/toolchain/toolchain/toolchain/toolchain/3./3./3./3.4.14.14.14.1/bin/bin/bin/bin
保存退出,需要运行 source bashrc 或者重新启动 linux。通过命令行打入:
#arm#arm#arm#arm----linuxlinuxlinuxlinux----gcc gcc gcc gcc ––––vvvv
#arm#arm#arm#arm----nonenonenonenone----linuxlinuxlinuxlinux----gnueabignueabignueabignueabi----gcc gcc gcc gcc ––––vvvv
####armarmarmarm----softsoftsoftsoftfloatfloatfloatfloat----linuxlinuxlinuxlinux----gnugnugnugnu----gcc gcc gcc gcc ----vvvv
出现版本信息提示
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示安装成功。
如果需要使用 3.3.2 版本,则需要指定具体的路径。
AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植文档移植文档移植文档移植文档
第 5 页/共 27 页
©2008 太湖微控电子 www.taihumicro.com
安装安装安装安装编译编译编译编译 AT91BootStrapAT91BootStrapAT91BootStrapAT91BootStrap Bootloader Bootloader Bootloader Bootloader
将 AT91Bootstrap1.8.zip 软件包解压缩到/usr/src/arm 文件夹下面,产生一个新的文
件夹 Bootstrap-v1.8。这个文件下面是 AT91 芯片的第一级 bootloader 源代码。
编译步骤:
1. 进入 Bootstrap-v1.8 目录
2. 进入 board 目录
3. 进入相应的开发板目录
4. 进入相应的存储体目录
5. 编译
假设需要编译 AT91SAM9260-EK 的 bootloader:
#cd Bootstrap#cd Bootstrap#cd Bootstrap#cd Bootstrap----v1.8v1.8v1.8v1.8
#cd board#cd board#cd board#cd board
#cd at91sam9260ek#cd at91sam9260ek#cd at91sam9260ek#cd at91sam9260ek
#cd dataflash#cd dataflash#cd dataflash#cd dataflash
这里需要修改该目录下面的 Makefile 文件
CROSS_COMPILE= armarmarmarm----nonenonenonenone----linuxlinuxlinuxlinux----gnueabignueabignueabignueabi----
#make#make#make#make
编译成功后改目录下会生成 dataflash_at91sam9260ek.bindataflash_at91sam9260ek.bindataflash_at91sam9260ek.bindataflash_at91sam9260ek.bin 文件。
AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植文档移植文档移植文档移植文档
第 6 页/共 27 页
©2008 太湖微控电子 www.taihumicro.com
安装安装安装安装编译编译编译编译 UbootUbootUbootUboot 及及及及 AT91AT91AT91AT91----UbootUbootUbootUboot 补丁补丁补丁补丁
解压缩 uboot 软件包:
#cd /usr/src/arm#cd /usr/src/arm#cd /usr/src/arm#cd /usr/src/arm
####tar xvjf utar xvjf utar xvjf utar xvjf u----bootbootbootboot----1.1.51.1.51.1.51.1.5.tar.bz2.tar.bz2.tar.bz2.tar.bz2
####cd ucd ucd ucd u----bootbootbootboot----1.1.51.1.51.1.51.1.5
打入补丁:
bzcat ubzcat ubzcat ubzcat u----bootbootbootboot----1.1.51.1.51.1.51.1.5_atmel__atmel__atmel__atmel_1.51.51.51.5.diff.bz2 | patch .diff.bz2 | patch .diff.bz2 | patch .diff.bz2 | patch ----p1p1p1p1
这样就获得了一个打入补丁的 uboot。
修改 Makefile
找到
ifeq($(ARCH),arm)
CROSS_COMPILE =
改成
ifeq($(ARCH),arm)
CROSS_COMPILE = armarmarmarm----softsoftsoftsoftfloatfloatfloatfloat----linuxlinuxlinuxlinux----gnugnugnugnu
make distcleanmake distcleanmake distcleanmake distclean
make at91sam9260ek_config make at91sam9260ek_config make at91sam9260ek_config make at91sam9260ek_config
makemakemakemake
编译成功后,会在 u-boot-1.1.5 主目录下生成 uuuu----boot.binboot.binboot.binboot.bin 文件
AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植文档移植文档移植文档移植文档
第 7 页/共 27 页
©2008 太湖微控电子 www.taihumicro.com
安装安装安装安装编译编译编译编译 Linux2.6.22Linux2.6.22Linux2.6.22Linux2.6.22 及及及及 AT91AT91AT91AT91----LinuxLinuxLinuxLinux 补丁补丁补丁补丁
解压缩 linux-2.6.22 压缩文件:
####tar xvjf linuxtar xvjf linuxtar xvjf linuxtar xvjf linux----2.6.2.6.2.6.2.6.22222222.tar.bz2.tar.bz2.tar.bz2.tar.bz2
进入 linux-2.6.22 文件夹:
####cd linuxcd linuxcd linuxcd linux----2.6.2.6.2.6.2.6.22222222
打入两个补丁:
####zzzzcat 2.6.cat 2.6.cat 2.6.cat 2.6.22222222----at91.patch.gz | patch at91.patch.gz | patch at91.patch.gz | patch at91.patch.gz | patch ----p1p1p1p1
####zcat linuxzcat linuxzcat linuxzcat linux----2.6.2.6.2.6.2.6.22222222----at91at91at91at91----exp.diff.gz | patch exp.diff.gz | patch exp.diff.gz | patch exp.diff.gz | patch ----p1p1p1p1
这样就获得了一个全新的 linux-2.6.22 内核,该内核打入了支持 AT91 ARM9 的一些补丁。
修改 Makefile:
linux-2.6.22 主目录下有个 Makefile 文件,打开,找到 185 行左右,修改
ARCH ?= armarmarmarm
CROSS_COMPILE ?= armarmarmarm----nonenonenonenone----linuxlinuxlinuxlinux----gnueagnueagnueagnueabibibibi----
保存退出。
配置内核:
由于内核中已经有对于 AT91 ARM9 的一些默认配置文件,所以可以直接使用命令,如
对 at91sam9260ek 设置:
####make at91sam9260ek_defconfigmake at91sam9260ek_defconfigmake at91sam9260ek_defconfigmake at91sam9260ek_defconfig
这样就完成了 at91sam9260ek 的默认设置。
如果需要自定义设置,使用命令 make menuconfigmake menuconfigmake menuconfigmake menuconfig 或者 make xconfigmake xconfigmake xconfigmake xconfig 进行设置。
最后使用
####makemakemakemake uImage uImage uImage uImage
编译内核
注:如果使用 make uImage 则能生成由 uboot 引导的内核文件,需要用到
uboot/tools/mkimage,可以在/etc/bashrc 文件末加入一下语句:
export PATH:=$PATH:/usr/src/arm/uexport PATH:=$PATH:/usr/src/arm/uexport PATH:=$PATH:/usr/src/arm/uexport PATH:=$PATH:/usr/src/arm/u----bootbootbootboot----1.1.5/tools1.1.5/tools1.1.5/tools1.1.5/tools
这样就能直接引用 mkimage 命令。
最后会在 linux-2.6.22/arch/arm/boot 目录下生成 uImageuImageuImageuImage 等几个内核映像文件。
AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植文档移植文档移植文档移植文档
第 8 页/共 27 页
©2008 太湖微控电子 www.taihumicro.com
安装下载工具安装下载工具安装下载工具安装下载工具 AT91ISPAT91ISPAT91ISPAT91ISP 及烧写文件及烧写文件及烧写文件及烧写文件
首先卸载掉之前安装的低版本的 at91-isp 软件。全新安装 at91at91at91at91----isp v1.11isp v1.11isp v1.11isp v1.11.exe.exe.exe.exe。
去掉开发板 dataflash 的 CS 片选的跳线帽(AT91SAM9260-EK 上面在 DATAFLASH 边上),
连接开发板的 5V 电源,打开电源开关,让芯片内部固化的 boot 运行,用 usb 线连接开发板
和 PC,PC 会提示找到新硬件并要求安装驱动,让 PC自动查找驱动并安装。
烧写烧写烧写烧写 dataflash_at91bootdataflash_at91bootdataflash_at91bootdataflash_at91boot
去掉开发板 dataflash 的 CS 片选的跳线帽(AT91SAM9260-EK 上面在 DATAFLASH 边上),
连接开发板的 5V 电源,打开电源开关,让芯片内部固化的 boot 运行,用 usb 线连接开发板
和 PC。
运行 SAM-BA,在弹出的对话框中选择如下:
1.点击“Connect”,弹出 SAM-BA 下载界面。
2.将刚才取下的跳线帽装上。
3.在弹出的界面中,选择 DataFlash AT45DB/DCB 标签,选中 Scrips 处的下拉列表中的
“Enable Dataflash (SPI0 CS1)”这个选项,点击“Execute”按钮,执行 dataflash 初始
化。
4.选中 Scrips 处的下拉列表中的“Send Boot File”这个选项,点击“Execute”按钮,
在弹出的窗口中去选择之前生成的 dataflash_adataflash_adataflash_adataflash_at91sam9260ek.bint91sam9260ek.bint91sam9260ek.bint91sam9260ek.bin 这个文件。
5.点击“打开”,稍等片刻就将这个文件下载到 dataflash 中了。
烧写烧写烧写烧写 UbootUbootUbootUboot
1. 在 Send File Name 处打开先前生成的文件 uuuu----boot.binboot.binboot.binboot.bin,Address 处填写 0x8000,表示将
u-boot 烧写到 dataflash 的 0x8000 处。
2. 点击“Send File”按钮,等待提示成功烧写。
AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植文档移植文档移植文档移植文档
第 9 页/共 27 页
©2008 太湖微控电子 www.taihumicro.com
烧写烧写烧写烧写 Linux KernelLinux KernelLinux KernelLinux Kernel
1. 在 Send File Name 处打开先前生成的文件 uImageuImageuImageuImage,Address 处填写 0x30000,表示将
u-boot 烧写到 dataflash 的 0x30000 处。
2. 点击“Send File”按钮,等待提示成功烧写。
烧写根文件系统烧写根文件系统烧写根文件系统烧写根文件系统
1. 点击“NandFlash”标签页。
2. 选中 Scrips 处的下拉列表中的“Enable NandFlash”这个选项,点击“Execute”按钮。
3. 选中 Scrips 处的下拉列表中的“Erase All”这个选项,点击“Execute”按钮,等待
NandFlash 擦除成功。
4. 在 Send File Name 处打开文件 armv5larmv5larmv5larmv5l----uclibcuclibcuclibcuclibc----sam9260sam9260sam9260sam9260,Address 处填写 0x0,表示将根
文件系统烧写到 nandflash 的 0x0 处。
5. 点击“Send File”按钮,等待提示成功烧写。
设置超级终端设置超级终端设置超级终端设置超级终端
1. 开始->所有程序->附件->通信->超级终端->新建超级终端。
2. 配置:波特率=115200 数据位=8 奇偶校验=无 停止位=1 数据流控制=无。
启动开发板启动开发板启动开发板启动开发板,,,,设置设置设置设置 UbootUbootUbootUboot 参数参数参数参数
1. 用交叉串口线连接开发板 DBGU 口和 PC 串口。
2. 打开开发板电源,串口出现以下提示:
U-Boot 1.1.5 (Apr 27 2008 - 00:15:48)
DRAM: 64 MB
NAND: NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 ( NAND 128MiB 3,3V 8-bit)
NAND: Pagesize: 2048, Blocksize: 128K, OOBsize: 64 128 MiB
DataFlash:AT45DB321
Nb pages: 8192
Page Size: 528
Size= 4325376 bytes
Logical address: 0xD0000000
Area 0: D0000000 to D0003FFF (RO)
Area 1: D0004000 to D0007FFF
Area 2: D0008000 to D0037FFF (RO)
Area 3: D0038000 to D041FFFF
In: serial
AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植文档移植文档移植文档移植文档
第 10 页/共 27 页
©2008 太湖微控电子 www.taihumicro.com
Out: serial
Err: serial
DM9161A PHY Detected
No link
MAC: error during RMII initialization
Hit any key to stop autoboot: 0
出现上一行的提示倒数后,按空格键,出现命令行提示符:
U-Boot>
1.设置 MAC 地址:
UUUU----Boot>Boot>Boot>Boot>setenv ethaddr 3e:36:65:ba:6f:be setenv ethaddr 3e:36:65:ba:6f:be setenv ethaddr 3e:36:65:ba:6f:be setenv ethaddr 3e:36:65:ba:6f:be
2.设置 IP地址:
UUUU----Boot>Boot>Boot>Boot>setenv ipaddr setenv ipaddr setenv ipaddr setenv ipaddr 192.168.0.2192.168.0.2192.168.0.2192.168.0.2
3.设置拷贝 kernel 环境变量:
UUUU----Boot>Boot>Boot>Boot>setenvsetenvsetenvsetenv uImageuImageuImageuImage cp.b d0030000 21500000 15ffb0 cp.b d0030000 21500000 15ffb0 cp.b d0030000 21500000 15ffb0 cp.b d0030000 21500000 15ffb0
该语句表示将位于 0xd0030000 处长度为 0x15ffb0 的数据段拷贝到 0x21500000
其中 0xd0030000为 uImage在整个系统中所处的地址,上面讲到将uImage下载到 dataflash
的 0x30000 位置上,而 0xd0000000 是该 dataflash 在系统中的基地址。0x21500000 是位于
sdram 中,表示 uImage 要被拷贝到 sdram 中运行。最后的文件长度取决于 uImage 文件的长
度。
4.设置启动命令:
UUUU----Boot>Boot>Boot>Boot>setenvsetenvsetenvsetenv run uImage run uImage run uImage run uImage\\\\;bootm 21500000;bootm 21500000;bootm 21500000;bootm 21500000
5.设置 linux 启动命令行:
UUUU----Boot>Boot>Boot>Boot>setenvsetenvsetenvsetenv bootargs mem=64M bootargs mem=64M bootargs mem=64M bootargs mem=64M console=ttyS0,115200 root=/dev/mtdblock0console=ttyS0,115200 root=/dev/mtdblock0console=ttyS0,115200 root=/dev/mtdblock0console=ttyS0,115200 root=/dev/mtdblock0
6. 保存环境变量
UUUU----Boot>Boot>Boot>Boot>saveenvsaveenvsaveenvsaveenv
重新启动开发板重新启动开发板重新启动开发板重新启动开发板,,,,进入进入进入进入 Linux ShellLinux ShellLinux ShellLinux Shell
出现 login: root
输入 root,回车,即能进入 Linux 命令行。
AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植文档移植文档移植文档移植文档
第 11 页/共 27 页
©2008 太湖微控电子 www.taihumicro.com
NFSNFSNFSNFS 根文件系统的建立根文件系统的建立根文件系统的建立根文件系统的建立
如果用 cramfs 根文件系统,在调试或移植应用程序的时候,需要把编译好的结果如可
执行文件及一些相关的库文件放到根文件系统目录里面,然后用 mkcramfs 工具将文件目录
转换成 cramfs 格式的映像文件,再通过烧写的方式烧到目标板上去看执行结果,如此反复,
非常麻烦。
NFS 根文件系统解决了这个问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
,在 PC端编译好执行文件直接拷贝至相应的文件夹内,
让目标板上的 Linux 内核直接从 PC上建立的根文件系统文件夹启动。
1 1 1 1....网络配置工作网络配置工作网络配置工作网络配置工作
设置 windows 下的网络参数,如 ip地址为 192.168.0.5 子网掩码 255.255.255.0。
设置虚拟机的网络,设置虚拟机网络接入方式为桥接,表示虚拟机直接接入网络,和
windows 网络地位同等,相当于都接在一个 hub 上,所以在虚拟机里运行的 redhat 的 ip 地
址和 windows 里的 ip 地址不能重复,redhat ip 地址为 192.168.0.10,子网掩码
255.255.255.0。
关闭虚拟机中 redhat 的防火墙功能。
设置目标板 ip,在 linux shell 中,键入命令 ifconfig eth0 192.168.0.2。
这个时候如果 Windows,redhat,目标板之间能互相 ping 通,则说明网络配置成功。
2 2 2 2....RedhatRedhatRedhatRedhat 安装安装安装安装 NFSNFSNFSNFS 服务服务服务服务
a)确认是否安装了 NFS 服务。从 redhat 开始菜单查看系统设置->服务器设置下是否有
NFS 服务器。如果没有,则插入 Linux 安装盘重新添加该软件包。
如果安装好了 NFS 服务,我们可以通过配置文件/etc/exports 来允许目标板挂载你的
目录。我的设置文件/etc/exports 的内容是这样的:
/home/target 192.168.0.2(rw,no_root_squash)
该句意思是:任何 IP 地址 192.168.0.2 能挂载/home/target 目录,并且如果是以 root 身
份登录的话,那么他对该目录的权限也是 root。
/home/target 就 是 NFS 根 文 件 系 统 的 一 级 目 录 , 里 面 的 包 含 有
bin,etc,usr,mnt,dev,var 等等,包含有 linux 启动运行所需要的一切。这里我们将光盘中
的 my_rootfs.tar.gz 文件夹拷贝到这里并解压缩。
b) 安装 dhcpd 服务包软件,方法同安装 NFS 服务。
c) 启动 nfs,启动 dhcpd,portmap
service nfs restart
service protmap restart
AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植文档移植文档移植文档移植文档
第 12 页/共 27 页
©2008 太湖微控电子 www.taihumicro.com
service dhcpd restart
f) 测试服务器配置是否成功:
mount 192.168.0.10:/home/target /mnt
ls /mnt
3333. . . . 配置配置配置配置 linuxlinuxlinuxlinux 内核内核内核内核
进入打过 at91 补丁的 linux2.6 内核源代码树的根目录
make menuconfig 进入内核配置程序。
1. 选中 Networking --->
Networking options --->
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
[*] IP: BOOTP support
[*] IP: RARP support
2. Device Drivers --->
Block devices --->
<*> Network block device support
3. 选中 Device Drivers --->
Ethernet (10 or 100Mbit) --->
<*> Atmel MACB support
[*] Atmel MACB TX buffers in internal SRAM
4. 选中 File systems --->
Network File Systems --->
<*> NFS file system support
[*] Provide NFSv3 client support
[*] Provide client support for the NFSv3 ACL protocol extension
[*] Provide NFSv4 client support (EXPERIMENTAL)
[*] Root file system on NFS
重新编译
make umake umake umake uImageImageImageImage
将编译好的结果烧到板子上,修改下 u-boot 里面的启动参数
根据 uImage 文件大小修改 setenv uImage cp.b d0030000 21500000 $(uImageSize)
//$(uImageSize)即为 uImage 的大小。
AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 LinuxLinuxLinuxLinux 移植文档移植文档移植文档移植文档
第 13 页/共 27 页
©2008 太湖微控电子 www.taihumicro.com
4444....配置配置配置配置 uuuu----bootbootbootboot 启动参数启动参数启动参数启动参数
UUUU----Boot>Boot>Boot>Boot>setenv bootargs mem=64M console=ttyS0 115200 root=/dev/nfs setenv bootargs mem=64M console=ttyS0 115200 root=/dev/nfs setenv bootargs mem=64M console=ttyS0 115200 root=/dev/nfs setenv bootargs mem=64M console=ttyS0 115200 root=/dev/nfs
nfsroot=192.168.0.10:/home/target nfsroot=192.168.0.10:/home/target nfsroot=192.168.0.10:/home/target nfsroot=192.168.0.10:/home/target
ip=192.16ip=192.16ip=192.16ip=192.168.0.2:192.168.0.10:192.168.0.108.0.2:192.168.0.10:192.168.0.108.0.2:192.168.0.10:192.168.0.108.0.2:192.168.0.10:192.168.0.10::::255.255.255.0::eth0:off255.255.255.0::eth0:off255.255.255.0::eth0:off255.255.255.0::eth0:off
然后保存参数:
UUUU----Boot>Boot>Boot>Boot>saveenvsaveenvsaveenvsaveenv
其中nfsroot=192.168.0.10:/home/target表示nfs将从192.168.0.10:/home/target文件
夹内启动根文件系统
ip=192.168.0.2:192.168.0.10:192.168.0.10:255.