the 1st edition: 20120517 (4) the 2nd edition: 20180709 (1), 加入 cortex-a9
原本的文章是 arm 的舊架構 (ARM926EJ-S), 新增 arm cortex a9, 如何安裝 debian for arm cortex a9, 進而取得 debian arm cortex a9 檔案系統。
參考文章有些 url 有錯誤, 已經更正, 安裝畫面可以參考底下的文章。
arm cortex a9 平台
ref:
下載 debian 安裝 initrd:
http://ftp.de.debian.org/debian/dists/stable/main/installer-armel/current/images/kirkwood/netboot/initrd.gz
建立 raw image
qemu-img create -f raw hda.img 2G
vexpress-v2p-ca9.dtb 和 zImage 請參考 QEMU模拟vexpress-a9 搭建Linux kernel运行环境 編譯方式。
qemu-system-arm -M vexpress-a9 -kernel zImage -dtb vexpress-v2p-ca9.dtb -initrd initrd.gz -hda hda.img -append "root=/dev/ram"這個指令無法將 hda.img 掛成硬碟, 需使用以下指令, 將 hda.img 當成 emmc (sd)
qemu-system-arm -M vexpress-a9 -kernel zImage -dtb vexpress-v2p-ca9.dtb -initrd initrd.gz -drive file=hda.img,if=sd -append "root=/dev/ram"
這樣就會啟動 debian 安裝畫面, 在分割磁區時, 選用 ext2, 不要用 ext4, 會有奇怪的問題, 無法 mount。
使用以下指令來用裝好的檔案系統開機 (from /dev/mmcblk0p1 boot)
qemu-system-arm -M vexpress-a9 -kernel zImage -dtb vexpress-v2p-ca9.dtb -drive file=hda.img,if=sd -append "root=/dev/mmcblk0p1"
# console 版本 qemu-system-arm -M vexpress-a9 -kernel zImage -dtb vexpress-v2p-ca9.dtb -drive file=hda-sid.img,if=sd -append "root=/dev/mmcblk0p1 console=ttyAMA0,115200" --nographic
預設的系統安裝的是 ip, 不是 ipconfig, ping 不到任何合法 ip, 但網路是通的, 可以用 apt-get update 安裝 net-tools, 就有 ipconfig 了。
安裝 arm debian (ARM926EJ-S)
debian arm kernel and initrd files:
http://ftp.de.debian.org/debian/dists/stable/main/installer-armel/current/images/versatile/netboot/
download: initrd.gz, vmlinuz-2.6.32-5-versatile
versatile 開發版是 arm ARM926EJ-S。
我建議用 raw 來建立硬碟影像檔
qemu-img create -f qcow hda.img 2G qemu-img create -f qcow2 hda.img 2G qemu-img create -f raw hda.img 2G
raw format 用 -drive format=raw 才不會有警告訊息。
qemu-system-i386 -drive file=deb32.img,format=raw -hda deb32.img -cdrom /media/vbox_share/apps/debian-8.0.0-i386-netinst.iso
開始安裝:
qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.gz -hda hda.img -append "root=/dev/ram"
在分割硬碟和建立檔案系統時會花比較多的時間, 請耐心等候 (大概 30 分鐘)。
install base system 也很久 (要 3 個小時以上)。
重新開機
http://people.debian.org/~aurel32/qemu/armel/download: initrd.img-2.6.32-5-versatile
執行安裝好的 debian
<了pre style="border: 1px inset; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 600px;">qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda hda.img -append "root=/dev/sda1"
把整個 root file system copy 出來 (選擇紅色藥丸回到真實世界):
copy hda.img hdb.img
執行 arm debian in qemu:
qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda hda.img -append "root=/dev/sda1" -hdb hdb.img
in qemu:
mount /dev/sdb1 /mnt cd / tar zcvf mnt.tar.gz mnt scp mnt.tar.gz host_1p:/tmp
in host:
得到 mnt.tar.gz, copy to usb storage
put to your arm machine, chroot it
不過在我的平台出現:
chroot: cannot run command `/bin/sh': Permission denied
搞了半天原來是指定 mount directory 沒有執行權限。
ref:
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。