1. 編譯 busybox的 arm版本。
2. 拷貝必要的動態庫檔案到 _install/lib下面。
-rwxr-xr-x 1 charles charles 93476 oct 7 2011 ld-2.13.so
lrwxrwxrwx 1 charles charles 10 apr 25 2012 ld-linux.so.3 -> ld-2.13.so
-rwxr-xr-x 1 charles charles 876656 oct 7 2011 libc-2.13.so
lrwxrwxrwx 1 charles charles 12 apr 25 2012 libc.so.6 -> libc-2.13.so
-rw-r--r-- 1 charles charles 9812 oct 7 2011 libdl-2.13.so
lrwxrwxrwx 1 charles charles 13 apr 25 2012 libdl.so.2 -> libdl-2.13.so
-rw-r--r-- 1 charles charles 407148 oct 7 2011 libm-2.13.so
lrwxrwxrwx 1 charles charles 12 apr 25 2012 libm.so.6 -> libm-2.13.so
-rwxr-xr-x 1 charles charles 105112 oct 7 2011 libpthread-2.13.so
lrwxrwxrwx 1 charles charles 18 apr 25 2012 libpthread.so.0 -> libpthread-2.13.so
-rw-r--r-- 1 charles charles 55144 oct 7 2011 libresolv-2.13.so
lrwxrwxrwx 1 charles charles 17 apr 25 2012 libresolv.so.2 -> libresolv-2.13.so
-rw-r--r-- 1 charles charles 22540 oct 7 2011 librt-2.13.so
lrwxrwxrwx 1 charles charles 13 apr 25 2012 librt.so.1 -> librt-2.13.so
-rw-r--r-- 1 charles charles 2871558 apr 25 2012 libstdc++.a
lrwxrwxrwx 1 charles charles 19 apr 25 2012 libstdc++.so -> libstdc++.so.6.0.17
lrwxrwxrwx 1 charles charles 19 apr 25 2012 libstdc++.so.6 -> libstdc++.so.6.0.17
-rwxr-xr-x 1 charles charles 4924070 apr 25 2012 libstdc++.so.6.0.17
-rw-r--r-- 1 charles charles 2588 apr 25 2012 libstdc++.so.6.0.17-gdb.py
-rw-r--r-- 1 charles charles 9848 oct 7 2011 libutil-2.13.so
lrwxrwxrwx 1 charles charles 15 apr 25 2012 libutil.so.1 -> libutil-2.13.so
3. 建立乙個200m的景象檔案(使用 dd命令),並初始化為 ext3型別(mkfs.ext3)然後,mount到 rootfs目錄
4. 在 etc/下,建立檔案 inittab,內容如下:
::sysinit:/etc/init.d/rcs
::respawn:-/bin/login
::restart:/sbin/init
ttyama0::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a –r
5. 在 etc 下建立目錄 init.d, 在 init.d下建立檔案 rcs, 內容如下:
#!/bin/sh
path=/sbin:/bin:/usr/sbin:/usr/bin
umask 022
export path
/bin/mount -a
/sbin/mdev -s
#/bin/sh
echo /sbin/mdev > /proc/sys/kernel/hotplug
hostname taotao
6.在 etc 下建立檔案 profile, 內容如下:
user="id -un"
logname=$user
#/bin/hostname taotao
hostname=`/bin/hostname`
ps1='\u@\h:\w#'
export user logname hostname ps1 path
7. 建立檔案 etc/fstab:
/dev/mmcblk0 / ext3 errors=remount-ro,noatime 0 1
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var tmpfs defaults 0 0
mdev /dev ramfs defaults 0 0
8. 建立passwd檔案:
root::0:0:root:/root:/bin/sh
daemon::1:1:daemon:/usr/sbin:/bin/sh
bin::2:2:bin:/bin:/bin/sh
sys::3:3:sys:/dev:/bin/sh
和 group檔案:
root::0:
daemon::1:
bin::2:
sys::3:
tty::5:
etc目錄下的配置檔案總體結構如下:
etc
├── fstab
├── group
├── init.d
│ └── rcs
├── inittab
├── passwd
└── profile
1 directory, 6 files
9. 建立必要的裝置檔案:
sudo mknod mmcblk0 b 8 0
sudo mknod mmcblk0p1 b 8 1
10. 啟動核心:
11. 存在的問題:
i: mount 的時候提示有錯:
mounting /dev/mmcblk0 on / failed: no such device or address
ii)執行mount 命令,會發現,有兩個在 / 的 mount項:
rootfs on / type rootfs (rw)
/dev/root on / type ext3
Ubuntu上使用QEMU模擬Ubuntu
install qemu on ubuntu 1 sudo apt get install kvm qemu libvirt bin virtinst virt manager virt viepwer qemu,kqemu,kvm,qemu kvm,libvirt關係 qemu的三種執行模式 2 ...
使用qemu在x86上模擬arm64環境
最近要驗證 能否相容arm平台,因此需要在本地模擬乙個arm環境,目前虛擬化中,看起來只有qemu能滿足在x86伺服器上虛擬arm環境 qemu編譯 基礎依賴安裝 yum install zlib devel glib2 devel pixman devel y clone qemu原始碼 git ...
使KVM autotest支援qemu 模擬
在預設的情況下 kvm autotest必須要kvm的支援。否則會報錯。現在做下面的改動,可以讓在沒有kvm支援的情況下,也可以使用kvm autotest。diff git a client virt kvm vm.py b client virt kvm vm.py index ffa55c1....