2014年2月14日 星期五

使用debootstrap 在pc上製作arm的root

# 開始之前要確定目錄下沒有名稱是root的資料夾 那是以下設定的目的資料夾
# 使用 sudo apt-get install debootstrap 安裝debootstrap
# 第一階段 會產生一個名為root的資料夾 裡面即將是root結構 下載的套件檔按會放在 root/var/cache

sudo debootstrap --verbose --foreign --variant=minbase --arch=armel squeeze ./root http://ftp.tw.debian.org/debian

# 可以實驗性質的使用 --exclude 參數將套件預設不安裝 要注意必須是從0開始安裝才會看到檔案有減少
#sudo debootstrap --verbose --foreign --variant=minbase --arch=armel --exclude gcc,perl,locale squeeze ./root http://ftp.tw.debian.org/debian

# 置入arm模擬器 使用 sudo apt-get install qemu-user-static 安裝

sudo cp /usr/bin/qemu-arm-static root/usr/bin

# 進入chroot 執行第二階段 使用chroot指令 進入以 root/ 為根目錄的環境 此時裡面的執行檔都是arm的執行檔 所以要有上述模擬器支援 才能進行第二階段的安裝

cd root

sudo chroot $(pwd) /debootstrap/debootstrap --second-stage



# 使用 sudo chroot $(pwd) 在 root/目錄下執行 可進入以 root/ 為根目錄的環境中
# 設定網路 網路將因此開通 之後可以使用chroot指令 執行apt-get或是dpkg 以進行套件安裝或設定

cat > /etc/network/interfaces << EOF

auto lo

iface lo inet loopback

EOF



# 設定套件來源 設定完成後 搭配網路開通 首先執行 apt-get update 系統因此取得最新套件來源列表 之後就可以開始使用apt-get install 指令

cat > /etc/apt/sources.list << EOF

deb http://ftp.debian.org/debian/ squeeze main contrib non-free

deb-src http://ftp.debian.org/debian/ squeeze main contrib non-free 

EOF



# 重置語系檔案

#locale-gen --purge en_US.UTF-8

# 移除locale

#apt-get install localepurge



# 移除不需要檔案 參考資料
# http://www.linuxdiyf.com/bbs/thread-74373-1-1.html
# http://askubuntu.com/questions/129566/remove-documentation-to-save-hard-drive-space



# 製作ramdisk 此時的ramdisk 映像檔大約 <48mb data-blogger-escaped-br="">
cd root

find . | cpio -o -H newc | gzip > ../image.cpio.gz

cd ..

mkimage -T ramdisk -C gzip -n 'Ramdisk Image' -d image.cpio.gz ramdisk.bin

# 參考資料
# http://hi.baidu.com/zengzhaonong/item/365c55c651e11363f7c95d9f