1. tar czf DirName.tgz DirName (压缩目录)
2. gzip –d filenames (针对以gz为结尾的压缩文件)
3. tar –xvf filenames (针对以tar为结尾的压缩文件)
4. tar zxvf filenames ( 针对以tar.gz为结尾的压缩文件)
5. tar jxvf filenames[B1] (针对以tar.gz2为结尾的压缩文件)
ncftp –u user_name FTP_SERVER_IP
备注:支持(-R或-r)对目录的操作
1. find –name filename.C (利用文件名进行查找)
2. locate filename.C (在当前目录和所有子目录下递归查找文件名中有filename的文件)
3. grep ‘search word’* -r (在当前目录和所有子目录下递归查找文件中含有相应字符串的文件)
ifconfig ETH0 192.168.1.1
NETMASK 255.255.255.0
ROUTE ADD –NET 127.0.0.0
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
route del default,去掉网关,加速访问速度,特别是NFS速度
1. Diff创建补丁,patch打补丁
2. diffj [命令行选项][H2] 原始文件 新文件,命令举例如下:
diff –ruNa Dir_Old Dir_New > Dir.patch
3. zcat ../patch-2.4.26-vrs1.gz | patch -p1
4. zcat ../*.patch.gz | patch -p1 (内核升级补丁)
5. 进入LINUX内核目录,修改ARCH :=arm和CROSS_COMPILE=arm-linux-
6. patch [命令行选项] [待patch的文件[patch]],命令举例如下:
pathc –p1 < [patch_file] :在当前目录下利用patch_file进行打补丁
1. make mrproper
2. make target_device_config
3. make oldconfig
4. make menuconfig
5. make dep
6. make Image
7. /usr/local/arm/2.95.3/bin/arm-linux-objcopy -O binary -S vmlinux linux.bin
8. gzip -v9 linux.bin
9. /u-boot-1.1.1/tools/mkimage [H3]-A arm[B4] -O linux -C gzip -a 0x20008000 -e 0x20008000 -d linux.bin.gz uImage
1. cd /
2. setup
3. 选择“Firewall configuration”,进入并更改设置为“No firewall”
4. 到上一层MENU选择System services去掉“ipchains”和“iptables”两项服务。
5. 选择NFS服务后restart the PC
6. all is ok now!
1. 实际设置可以在图形界面中的服务器设置中NFS服务中设置。
2. IP地址192.168.1.*表示对1-255号地址都开通NFS服务。
3. MOUNT命令为:mount –o nolock 192.168.1.1:/nfs /mnt/nfs
4. 详见<<HHARM9200_tech_manual-v2.2.pdf>>
5. 在ATMEL提供的RAMDISK中的MOUNT命令没有支持NFS,所以要删除ramdisk/bin/mount,重新编译BUSYBOX,选择静态编译,把生成的busybox拷贝到/ramdisk/bin,执行ln –s busybox mount。
1、 make mrproper (清理源代码树)
2、 make at91rm9200dk_config
3、 make all
4、 gzip –c u-boot.bin > u-boot.gz
5、 常用命令见附录[H6]
1. 在移植过程中注意参照其它类型CPU和开发板的结构
2. 在Makefile中增加如下两行:
at91rm9200dk_config : unconfig
@./mkconfig $(@:_config=) arm at91rm9200 at91rm9200dk
其中ARM是CPU的种类, arm920t是ARM CPU对应的代码目录,at91rm9200dk是开发板对应的目录。
3. 在board目录中建立at91rm9200dk目录,并所参考类型的开发板目录,如S3C2410、m5272C3等。
4. 在include/cofings/目录下复制
1、 kernel=tftp 21000000 uImage
2、 ramdisk=tftp 21100000 ramdisk-rmk7
3、 ethaddr=12:34:56:78:9A:FF
4、 bootcmd=tftp 21100000 ramdisk-rmk7; tftp 21000000 uImage; bootm 21000000
5、 bootargs=root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360 console=ttyS0,115200 mem=32M
6、 fl2ram_kernel=cp.b 10020000 21000000 83b9e
7、 ram2fl_kernel=cp.b 21000000 10020000 83b9e
8、 filesize=5591e6
9、 fileaddr=21100000
10、ipaddr=192.168.1.200
11、serverip=192.168.1.3
12、 ram2fl_ramdisk=cp.b 21100000 10120000 5591e6
13、 fl2ram_ramdisk=cp.b 10120000 21100000 5591e6
14、 stdin=serial
15、 stdout=serial
16、 stderr=serial
1. ls –al /dev/ram* (look all the ramdisk info)
2. df –k /dev/ram0 (find the really space of the ramdisk)
1. gunzip ramdisk.gz
2. mkdisk /mnt/new_ramdisk
3. mount –o loop ramdisk /mt/new_ramdisk
4. 进入/mnt/new_ramdisk进行操作,如增加删除文件
5. umount /mnt/new_ramdisk
6. gzip –c –v9 ramdisk >./tftpboot/ramdisk-rmk7
FileName:minirc.dfl
# Machine-generated file - use "minicom -s" to change parameters.
pr port /dev/ttyS0
pu baudrate 19200
pu minit
pu mreset
pu mhangup
pu rtscts No
1. mkdir /mnt/ramdisk0 (create a mount point)
2. mke2fs[B7] /dev/ram0 (create a filesystem)
3. mount /dev/ram0 /mnt/ramdisk0 (mount the ramdisk)
1. cd busybox-1.x
2. make menuconfig
change the path of cross compiler and install according to ur set-up
3. make
now you can ls to ur rootfs/bin rootfs/sbin and can find ur binaries
备注:由于开发板厂家提供的RAMDISK都是基于ATMEL的,所以应该利用生成STATIC选项,否则在LINUX启动时会提示相应LIB找不到。在1.0版本的busybox中,其route.c有问题,不要选择它。另外在libbb\loop.c中LINE32几行也有问题,建议注释掉。利用新的busybox替换bin/busybox即可运行最新版本的busybox.
1、 mkdir /usr/local/arm
2、 cd /usr/local/arm
3、 tar –jxvf cross-2.95.3.tar.bz2
4、 PATH=/usr/local/arm/2.95.3/bin:$PATH[B8]
5、 在/etc/bashrc文件中最后增加如下内容:
PATH=$PATH:/usr/local/arm/2.95.3/bin
6、 bash
1. mount –o nolock 192.168.1.1:/nfs /mnt
1、 将跳线JP1(负责选择外部FLASH或内部ROM启动)取下来
2、 设置超级终端属性,(115200,N,8,1)
3、 开发板上电后,在超级终端中不断打印中“C”,表示AT91RM9200板子与计算机已正常连接,这时在超级终端中利用XMODEM协议发送文件(loader.bin)。当显示 loader 1.0 (Aug 8 2003 - 12:01:07)
XMODEM: Download U-BOOT
CCCCCCC表示(loader.bin)已发送成功
4、 利用XMODEM协议发送文件(u-boot.bin)
5、 当超级终端显示出u-boot的版本、FLASH和SDRAM的信息后表示u-boot已下载成功,并且SDRAM可以正常使用
6、 在u-boot>提示符下输入:loadb 20000000,确定后超级终端会提示“## Ready for binary (kermit) download to 0x20000000 at 115200 bps...”
7、 在超级终端中利用Kermit协议选择并发送文件(boot.bin),成功后在超级终端中会有如下提示“## Total Size = 0x00002984 = 10628 Bytes
## Start Addr = 0x20000000
此时启动代码的映像已经下载到SDRAM的地址0x20000000处,下一步的操作就是将此映像文件内容写入到NOR FALSH(0x10000000)
8、 分成以下步骤:
l 解除FLASH中第一扇区的保护:protect off 1:0(其中1为BANK1所在的FLASH,详见U-BOOT命令)
l 删除FLASH中第一扇区的内容:erase 1:0
l cp.b 20000000 10000000 5fff
l loadb 20000000
l 在超级终端中利用Kermit协议选择并发送文件(u-boot.bin.gz)
l cp.b 20000000 10010000 ffff
l protect on 1:0
l boot和u-boot已成功写入到FLASH中,此时将跳线接上,重新启动,系统开始从FLASH进行引导
9、 快捷键设置部分:
kernel
l setenv cpfltoker cp.b 10020000 21000000 affff(从FLASH中拷贝Kernel到SDRAM)
l setenv cpkertofl cp.b 21000000 10020000 affff(从SDRAM中拷贝Kernel到FLASH)
l setenv kernel tftp 21000000 uImage
ramdisk
l setenv cpfltoram cp.b 10120000 21100000 5fffff
l setenv cpramtofl cp.b 21100000 10120000 5fffff
l setenv ramdisk tftp 21100000 ramdisk-rmk7
miscellaneous
l setenv boot bootm 21000000
l setenv bootcmd run cpfltoker;run cpfltoram;run boot
l setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360 console=ttyS0,115200 mem=32M
/dev/hda5 /mnt/d vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
将本地的FAT分区共享,然后在VMWARE中使用SMBFS挂上。可以将如下的行放到/etc/fstab中: //win_ip/D$ /mnt/d smbfs defaults,auto,username=win_name,password=win_pass,codepage=936,iocharest=gb2312 0 0 其中win_ip是你的windows的IP地址; D$是你的windows里面共享的D盘的共享名; /mnt/d是要将该分区mount到linux的目录; win_name和win_pass是你的WINDOWS里面可以读取该分区的用户,比如你的管理员名和密码。 如果你运行了/etc/rc.d/init.d/netfs,那么在启动的时候就会自动挂载这个分区。
1. http://www.shakthimaan.com
2. ftp://81.80.104.162(ATMEL提供的下载网站)
3. http://www.at91.com(butlerz_gaoyh,123456)
4. http://www.joyfire.net/
5. http://www.busybox.net/downloads
6. www.linuxforum.com (lucky_butler,123456)
7. www.arm.linux.org.uk(butler_gaoyh,123456)
8. Link to the Linux Patch ressource http://www.arm.linux.org.uk/developer/patches/section.php?section=20
9. How to build a Linux ramdisk, How to install new binaries, Informations about the User Applications,... http://www-106.ibm.com/developerworks/linux/library/l-embdev.html
10. The Official dedicated Web Site about the use of the USB with Linux:
-The USB Standard,
-The protocol,
-The news about the last developments and the compatibility problems between the Kernel versions,.... http://www.linux-usb.org/
AT91RM9200电路板FLASH中的结构如下:
Bank # 1: INTEL 28F640J3A
Size: 8 MB in 64 Sectors
Sector Start Addresses:
10000000 (RO) 10020000 (RO) 10040000 (RO) 10060000 10080000
100A0000 100C0000 100E0000 10100000 10120000
10140000 10160000 10180000 101A0000 101C0000
101E0000 10200000 10220000 10240000 10260000
10280000 102A0000 102C0000 102E0000 10300000
10320000 10340000 10360000 10380000 103A0000
103C0000 103E0000 10400000 10420000 10440000
10460000 10480000 104A0000 104C0000 104E0000
10500000 10520000 10540000 10560000 10580000
105A0000 105C0000 105E0000 10600000 10620000
10640000 10660000 10680000 106A0000 106C0000
106E0000 10700000 10720000 10740000 10760000
10780000 107A0000 107C0000 107E0000 (RO)
AT91RM9200内存分布说明:
0x0000 0000 INTERNAL ROM(128K BYTES) |
0x1000 0000(第0扇区) boot.bin FLASH |
0x1001 0000(第0扇区) uboot.gz FLASH |
0x1002 0000(第1扇区) ulmage FLASH |
0x1012 0000(第16扇区) ramdisk FLASH |
0x107E0000(第63扇区) u-boot环境变量 FLASH |
0x2000 0000 SDRAM |
0x2100 0000 ulmage SDRAM |
0x2110 0000 ramdisk SDRAM |
附:U-BOOT 常用命令简介
一 环境变量操作
(1) Setenv
设置环境变量
举例
setenv serverip 192.168.0.1
setenv ipaddr 192.168.0.56
setenv bootcmd ‘tftp 32000000 vmlinux; kgo 32000000’
(2) saveenv: 保存环境变量
在设置好环境变量以后,保存变量值
(3) printenv
举例
printenv,打印所有环境变量
printenv ipaddr,打印环境变量ipaddr 的值
二 FLASH 操作
(1) flinfo
显示Flash 芯片的相关信息,包括Flash 容量、扇区起始地址以及是否保护等信息
命令格式:flinfo N,N 表示第N 片flash
(2) protect
保护(取消保护)Flash 的各扇区
命令格式:
protect on/off N:SF[-SL],保护(取消保护)第N 片Flash 上的SF 到SL 之间的扇区
protect on/off bank N
protect on/off all
protect on/off start end
(4) erase
擦除Flash 的各扇区
命令格式:
erase N:SF[-SL],擦除第N 片Flash 上的SF 到SL 之间扇区
erase bank N,擦除第N 片Flash 所有扇区
erase all,作用同上
举例:
erase 1:0-2(就是对第一块FLASH 的0-2 扇区进行删除)
注:N 从1 开始
三 内存操作
包括读取、比较、更改、写入等操作,通用命令如下
[.b, .w, .l] address [length]
其中,.b,.w,.l 分别表示8/16/32 位操作
(1) md
显示某地址处的内存值。
命令格式:md[.b, .w, .l] address [length]
举例
md.b 10000000 16,表示以字节为单位显示地址0x10000000 起始的16 字节数据
(2) mm
更改某地址处的内存值
命令格式
mm[.b, .w, .l] address
(3) mw
向某地址写入数据
命令格式
mw[.b, .w, .l] address value [count]
(4) cp
将一个地址处数据拷贝到另一地址处。
命令格式
cp[.b, .w, .l] source target count
注:此命令支持从SDRAM 拷贝数据到Flash 中
(5) cmp
比较两地址处的数据
命令格式
cmp[.b, .w, .l] addr1 addr2 count
四 下载和运行控制
(1) go
从某地址处开始运行。
命令格式
go addr [arg ...]
(2) run
运行某环境变量里面的内容
命令格式
run var [...]
(3) bootm
执行存储在某地址处的uboot 格式的image 文件
命令格式
bootm [addr [arg ...]]
(4) tftp
通过网络tftp 协议下载文件到内存某一地址处。
命令格式
tftp [loadAddress] [bootfilename]
(5) loadb
通过串口使用KERMIT 协议下载文件到内存某一地址处。
命令格式
loadb [ off ] [ baud ]
五 其它
(1) help/?
举例
help,得到所有命令列表
help usb, 列出USB功能的使用说明
http://hugang.dyn.soulinfo.com/wiki/index.php/Build_Kernel_for_AT91RM9200
arm-linux-gcc
Kernel source and patches
linux-2.4.27.tar.bz2 (http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.29.tar.bz2) (~29MB)
Download from the link above or from kernel.org and make a base directory.
bzcat < linux-2.4.27.tar.bz2 | tar -xf -
patch-2.4.27-vrs1.bz2 (http://www.applieddata.net/developers/linux/files/2.4.27/patch-2.4.27-vrs1.bz2) (~508kB)
Download from the link above or from arm.linux.org.uk (ftp://ftp.arm.linux.org.uk/pub/armlinux/kernel/v2.4/patch-2.4.27-vrs1.bz2).
Change to the linux directory and apply the patch using patch level "-p1".
cp -rl linux-2.4.27 linux-2.4.27-vrs1
cd linux-2.4.27-vrs1
bzcat ../patch-2.4.27-vrs1.bz2 | patch -p1
last patch (http://maxim.org.za/AT91RM9200/2.4.27vrs1-at91-06102004.patch.gz)
Download from the link above
Change to the linux directory and apply the patch.
cp -rl linux-2.4.27-vrs1 linux-2.4.27-vrs1-06102004
cd linux-2.4.27-vrs1-06102004
zcat ../*.patch.gz | patch -p1
Make it
make CROSS_COMPILE=/skiff/local/bin/arm-linux- ARCH=arm menuconfig
make CROSS_COMPILE=/skiff/local/bin/arm-linux- ARCH=arm zImage
[B1]bzip2 –d cross-2.95.3.tar.bz2(解压压缩文件)
tar xvf cross-2.95.3.tar
[H2]
-r 递归处理目录 -u 输出统一格式(unified format)
-N patch 里包含新文件 -a patch 里可以包含二进制文件
[H3]mkinage在U-BOOT/tools文件夹中
[B4]这个目录需要先进行创建
[B5]您用的不是华恒的开发板,那么可能您的busybox可能没有加入NFS mount的支持,这样您就需要重新编译busybox,加入NFS mount支持,然后更新ramdisk
[H6]U-BOOT Prompt in U-boot/include/configs/at91rm9200dk.h中。#define CFG_PROMPT "Uboot> " /* Monitor Command Prompt */
[B7]如果对ramdisk的格式化失败,那就是你的内核不支持ramdisk。其内核配置选项是 CONFIG_BLK_DEV_RAM
[B8]好像只能作用一次,计算机重启后需要重新设置,推荐步骤5、6
[B9]in googel.com输入以下可以在指定的网站查询指定的信息: