ARMADA XP
該映像是給 ARMv7MP 使用。
$ cd /srv/tftp
$ wget http://ports.ubuntu.com/dists/precise/main/installer-armhf/current/images/armadaxp/uImage
$ wget http://ports.ubuntu.com/dists/precise/main/installer-armhf/current/images/armadaxp/uInitrd
$ minicom
setenv serverip 140.109.23.233;setenv ipaddr 140.109.23.23; setenv gatewayip 140.109.23.242;
tftpboot 0x2000000 140.109.23.233:/srv/tftp/uImage;
tftpboot 0x1100000 140.109.23.233:/srv/tftp/uInitrd;
setenv bootargs "console=ttyS0,115200 earlyprintk=ttyS0"; bootm 0x2000000 0x1100000
設定 ARMADA XP 的網路。
$ vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 140.109.23.123
netmask 255.255.255.0
gateway 140.109.23.242
auto eth0:1
iface eth0:1 inet static
address 192.168.50.1
netmask 255.255.255.0
$ sudo ifup -a
$ vi /etc/resolv.conf
search iis.sinica.edu.tw
nameserver 140.109.1.10
nameserver 140.109.20.250
$ vi /etv/hostname
arm3
$ vi /etc/hosts
140.109.22.163 itanium.iis.sinica.edu.tw itanium
140.109.22.42 i71.iis.sinica.edu.tw i71
在伺服器端安裝
Trivial File Transfer Protocol。
# http://softsmith.blogspot.com/2009/06/ubuntu-desktop-tftp-server.html
# http://nano-chicken.blogspot.com/2009/11/atftp-on-ubuntu.html
$ apt-get install atftpd
$ vi /etc/default/atftpd
USE_INETD=false
OPTIONS="--daemon --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /srv/tftp"
$ mkdir -p /srv/tftproot
$ chmod 777 /srv/tftproot
$ /etc/init.d/atftpd restart
在 tftp 目錄底下掛載映像檔和
busybox。
$ cp uImage_dsmp_LSP116 /srv/tftp
$ tar xvf busybox.tar.gz -C /srv/tftp
$ tar xvf --numeric-owner -xvf karmic-dove.tar.gz -C /srv/tftp
# 改 IP
$ vi busybox/etc/init.d/rcS
ub-12.04-precise-v7vfp3-20120710
ub-12.04-precise-v7hard-20120710
pandaboard 安裝的是 softfp,CodeSourcery 提供的工具鏈只支援 softfp。用前面兩者編譯出來的執行檔只能在 ub-12.04-precise-v7vfp3-20120710 上運行。
export busybox
# https://help.ubuntu.com/community/SettingUpNFSHowTo
# http://blog.163.com/fengtao_zhang@126/blog/static/16940162520110561047234/
$ apt-get install portmaster nfs-kernel-server
$ vi /etc/exports
/srv/tftp/busybox 192.168.50.1/24(rw)
# no_root_squash 必加
/srv/tftp/karmic-dove 192.168.50.1/24(rw,no_subtree_check,no_root_squash)
$ /etc/init.d/portmaster start
$ /etc/init.d/nfs-kernel-server start
minicom 要關掉 hardware flow control。
$ apt-get install minicom
# http://www.cyberciti.biz/faq/find-out-linux-serial-ports-with-setserial/
# http://deanpan-photo.blogspot.com/2011/01/ubuntulinux-uart-consoleterminal.html
$ minicom -s
開機後按空白鍵或按
Ctrl+
C直到出現提示字元,貼上底下 U-boot 指令 (修改伺服器 IP、映像檔和 busybox 的路徑):
setenv serverip 192.168.50.1; setenv ipaddr 192.168.50.2; setenv gatewayip 192.168.50.1;
setenv image_name uImage_dsmp_LSP116;
setenv bootargs console=ttyS0,115200 rdinit=/busybox/rdinit root=/dev/nfs rw
nfsroot=192.168.50.1:/srv/tftp/busybox ip=dhcp;
setenv rootpath /srv/tftp/busybox; boot
setenv serverip 140.109.23.123; setenv ipaddr 140.109.23.57; setenv gatewayip 140.109.23.242;
setenv image_name uImage_dsmp_LSP116;
setenv bootargs console=ttyS0,115200 root=/dev/nfs rw
nfsroot=140.109.23.242:/srv/tftp/karmic-dove ip=dhcp;
setenv rootpath /srv/tftp/karmic-dove user_debug=31; boot
在 ARMv6 MP 和 ARMv7 UP 模式之間切換,下完指令後要關復電,reset 沒用。目前缺少 ARMv7 內核映像檔。
ARMv6 檔案系統使用 Karmic (ARMv6)
1333 Mhz 不穩定,請跑在 1200 Mhz
因為 NFS 有給讀的權限,這是用固定 IP 給出去的權限,所以不能用 DHCP。
3. Client Setup# 跟 DHCP 伺服器註冊 IP
$ dhcpcd -r 140.109.23.105 -i 140.109.23.105 eth0
新增具 sudo 權限的使用者。
$ useradd ubuntu
$ passwd ubuntu
$ visudo
ubuntu ALL=(ALL:ALL) ALL
# 改用 bash
$ vi /etc/passwd
$ apt-get install ssh
以上述帳號遠端登入機器安裝 NIS 和 NFS。
QEMU
$ ../qemu-0.13.0/configure --prefix=/nfs_home/chenwj/tmp/install --target-list=i386-linux-user --extra-cflags="-marm"
Q & A
已知 bug,重啟機器。
BUG: soft lockup - CPU#0 stuck for 61s! [ld:30153]
BUG: soft lockup - CPU#3 stuck for 61s! [kswapd0:210]
BUG: soft lockup - CPU#2 stuck for 61s! [init:1]
於 ARMv6MP 和 ARMv7UP 模式切換。
# 切換至 ARMv7UP,關復電使其生效
> bios write 6710
# 切換至 ARMv6MP,關復電使其生效
> bios write 78460
1333 Mhz 不穩,降頻至 1200 Mhz。
SatR write cpufreq 2
Kernel
Bytes transferred = 2842479 (2b5f6f hex)
## Booting kernel from Legacy Image at 02000000 ...
Image Name: Linux-2.6.35.13
Created: 2011-11-30 2:58:40 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2842444 Bytes = 2.7 MB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!
OpenRD
網卡壞掉
$ ifconfig eth0
RX bytes:0 (0 GB) TX bytes:0 (0 GB)
外部連結