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

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 痞客興 的頭像
    痞客興

    痞客興的部落格

    痞客興 發表在 痞客邦 留言(0) 人氣()