Banana pi 的官網上有提供許多包好的作業系統img,如果只是單純應用就下載後寫到SD卡裡就可以開機了.
但這不符合我的需求,我希望能有較乾淨的OS,不要預載一些我用不到的程式,浪費珍貴的系統資源,所以網路上搜尋了一下.
找到了一篇好文http://blog.csdn.net/yorhomwang/article/details/40949705,基本上只要跟著做就能成功,下面則是我個人的做法,提供各位參考
我先在自己的電腦上使用vmware workstation,架設了一台Ubuntu的虛擬機,而大部分的動作都會在此虛擬機上完成
1.先將你的SD卡插到電腦裡,並想辦法讓你的虛擬機抓到這片SD卡
2.確認SD卡的編號,我自已找到的編號是/dev/sdb
$ sudo fdisk -l
3.使用fdisk將/dev/sdb內所有的磁碟分區全刪,再建立二個新分區,分別是/dev/sdb1(空間30M)和/dev/sdb2(將空間用滿)
$ sudo fdisk /dev/sdb
按d可以刪除個別分區,按o可以刪除所有分區,按n可以建立新分區
4.將建立完成的二個分區分別格式化為vfat及ext4
$ sudo mkfs.vfat /dev/sdb1
$ sudo mkfs.ext4 /dev/sdb2
5.抓取u-boot-sunxi,並放到第一個分區
請從windows開瀏覽器抓 http://dl.linux-sunxi.org/nightly/u-boot-sunxi/u-boot-sunxi/u-boot-sunxi-latest/u-boot-sunxi-bananapi.tar.xz
之後使用7zip解壓縮後將u-boot-sunxi-with-spl.bin上傳到這台ubuntu虛擬機器上
6.清空/dev/sdb前面的資料,再將u-boot-sunxi-with-spl.bin接著放上去
$ sudo dd if=/dev/zero of=/dev/sdb bs=1k count=1023 seek=1
$ sudo dd if=./u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8
7.下載Raspbian For BananaPi v3.1,掛載映像檔到/mnt/img
從http://www.lemaker.org/resources/9-81/raspbian_for_bananapi.html下載Raspbian For BananaPi v3.1,並使用tar xzvf 來解壓縮
$ tar xzvf Raspbian_For_BananaPi_v3.1.tgz
$ sudo mkdir /mnt/img
$ fdisk -l /path/to/Raspbian_For_BananaPi_v3_1.img
$ sudo mount -t vfat -o loop,offset=4194304 ./Raspbian_For_BananaPi_v3_1.img /mnt/img
8. 從/mnt/img中取出我們所需要的內核文件
$ cp /mnt/img/uEnv.txt ./
$ cp /mnt/img/bananapi/uImage ./
$ cp /mnt/img/bananapi/script.bin ./
$ sudo umount /mnt/img
9.修改uEnv.txt為正確路徑
bootargs=console=ttyS0,115200 console=tty0
disp.screen0_output_mode=EDID:1280x720p50 hdmi.audio=EDID:0
console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline
rootwait
aload_script=fatload mmc 0 0x43000000 script.bin;
aload_kernel=fatload mmc 0 0x48000000 uImage; bootm 0x48000000;
uenvcmd=run aload_script aload_kernel
10.將uEnv.txt script.bin uImage三個檔案複製到第一個分區
$ sudo mkdir /mnt/sd
$ sudo mount -t vfat /dev/sdb1 /mnt/sd
$ cp uEnv.txt script.bin uImage /mnt/sd
$ sudo umount /mnt/sd
11.下載ubuntu for armf,並解壓縮到第二個分區裡
$ wget http://cdimage.ubuntu.com/ubuntu-core/releases/ubuntu-core-14.04.1-core-armhf.tar.gz -o /tmp/ubuntu-core-14.04.1-core-armhf.tar.gz
$ sudo mount /dev/sdb2 /mnt/sd
$ cd /mnt/sd
$ tar xzvf /tmp/ubuntu-core-14.04.1-core-armhf.tar.gz
12.將Raspbian_For_BananaPi_v3_1.img mount上,並抓取其中的modules及firmware
$ fdisk -l Raspbian_For_BananaPi_v3_1.img
$ sudo mount -t vfat -o loop,offset=62914560 Raspbian_For_BananaPi_v3_0.img /mnt/img
$ sudo cp -r /mnt/img/lib/firmware /mnt/sd/lib/
$ sudo cp -r /mnt/img/lib/modules/3.4.90 /mnt/sd/lib/modules
13.將DNS設定一併複製過去
$ sudo cp -p /etc/resolv.conf /mnt/etc
14.清除暫存目錄
$ sync
$ sudo umount /mnt/img
$ sudo umount /mnt/sd
$ sudo rm -r /mnt/img /mnt/sd
15.將第二分區掛載到/mnt
$ sudo mount /dev/sdb2 /mnt
16.使用chroot將根移到/mnt
$ sudo chroot /mnt /bin/bash
17.修改新系統root的密碼
# passwd
18.在新系統中新增一個使用者,並將這個使用者加到sudo user中
# adduser newuser
# visudo
newuser ALL=(ALL:ALL) ALL
19.修改/etc/rc.local,加入一行提升SD卡效能
# vi /etc/rc.local
mount -o remount -o noatime /
20.修改新系統的時區
# mv /etc/localtime /etc/localtime.0
# ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime
21.修改新系統的網路
# vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.222.2
netmask 255.255.255.0
gateway 192.168.222.1
22.安裝ssh server
# apt-get update
# apt-get install ssh
23.退出chroot,umount後關機即可將SD卡當作開機碟
# exit
# sync
# sudo umount /mnt
# poweroff
留言列表