pcDuino入門指南——第四章 Bootable microSD with Ubuntu OS

首先,從here (ubuntu_mmc.img) 下載SD-bootable image文件(注意:官方會不斷更新新版image下載前最好在pcDuino網站上檢查確認下載地址)。 ubuntu

接着將下載的image文件燒入 micro-SD,這裏將介紹三種不一樣操做系統的狀況:Windows, Linux和MacOS bash

Windows: 網站

咱們使用的是 Win32DiskImager  (這裏下載 ) ui

1

 

Linux: spa

插入micro-sd後將會自動安裝。首先卸載全部分區,例如SD卡有2個分區,用如下命卸載: 操作系統

1. $ umount /dev/mmcblk0p1

2. $ umount /dev/mmcblk0p2

而後 dd mmc imagemicro-sd: 調試

1. $ dd if=/udisk/ubuntu_mmc.img of=/dev/mmcblk0 bs=1M

2. $ sync

注意:不要使用 「of=/dev/xxx」來指向硬盤,不然將會破壞硬盤裏的數據。. code

 

MacOS: blog

MacOS終端也支持「df」和 「dd」命令。 ip

插入micro-sd自動安裝,首先仍是卸載全部分區,SD卡有2個分區時,用如下命令卸載:

1. $ sudo umount /dev/disk1s1

2. $ sudo umount /dev/disk1s2

若是卸載失敗可使用如下腳本強制卸載:

1. $ sudo diskutil umount force /dev/disk1s1

2. $ sudo diskutil umount force /dev/disk1s2

而後 dd  mmc imagemicro-sd:

1. $ sudo dd if=/udisk/ubuntu_mmc.img of=/dev/disk1 bs=1M

注意:仍是不要使用 「of=/dev/xxx」 指向硬盤這將會損壞硬盤中的數據。

將燒好的micro sd插入pcDuino而後上電,pcDuino將會從SD開始啓動。

調整SD-boot image的大小,SD擴展到最大容量:

準備如下expand.sh腳本 :2

1. $ sudo bash ./expand_sdcard_rootfs.sh

2. $ sudo reboot

重啓以後輸入:

1. $ sudo resize2fs /dev/mmcblk0p2

 

引導失敗

先肯定pcDuino是從SD仍是從NAND引導啓動,有時沒法檢測到SD的存在時就會從NAND啓動。

輸入df命令來檢查:

若是從NAND啓動,root是 /dev/nandd

若是從SD啓動, root是 /dev/mmcblk0p1

若是從NAND啓動的話,串口有調試線時,要拔掉調試線,再次安裝以前先reset pcDuino。

也有狀況發現串口上面插上串口轉USB線時有可能會引發HDMI無顯示的問題。

 

Advanced Topic:

如何生成SD卡引導的ubuntu image(或者Linux)?

一、下載如下兩個程序包:

解壓命令:

1.  $ tar xf pcduino_hwpack_20130331.tar.xz

2.  $ 7za -x ubuntu.7z

解壓 pcduino_hwpack.tar.xz包後獲得如下四個文件

  • uImage
  • script.bin
  • sunxi-spl.bin
  • u-boot.bin

在解壓ubuntu.tar.xz包後會獲得文件

  • Ubuntu.img                                                                                                                                     

uImage 和 script.bin是內核文件,最好下載最新版本的。

另外,能夠輸入命令查看兩個文件:

1. $ sudo mount /dev/nanda /mnt/nanda

2. $ ls /mnt/nanda

二、插入micro-SD,若是安裝了系統須要要先卸載,例如:

1. $ sudo umount /dev/mmcblk0p1

2. $ sudo umount /dev/mmcblk0p2

三、用 fdisk分出兩個新的分區

首先是boot分區,filesystem類型是fat,用來裝 store uImage 和 script.bin

第二個是留給ubuntu filesystemfilesystem類型是ext3

$ sudo fdisk /dev/mmcblk0

執行如下腳本文件

Command (m for help): d

Selected partition 1

Command (m for help): n

Partition type:

  • p   primary (0 primary, 0 extended, 4 free)
  • e   extended

Select (default p): p

Partition number (1-4, default 1):

Using default value 1

First sector (2048-15122431, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-15122431, default 15122431): +64M

 

Command (m for help): n

Partition type:

  • p   primary (1 primary, 0 extended, 3 free)
  • e   extended

Select (default p): p

Partition number (1-4, default 2): 2

First sector (206848-15122431, default 206848):

Using default value 206848

Last sector, +sectors or +size{K,M,G} (206848-15122431, default 15122431): +1800M

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

[ 5652.370000]  mmcblk0: p1 p2

Syncing disks.

也能夠改變boot區和ubuntu區的大小,建議boot區要>= 64Mubuntu區大於1G

執行上面腳本獲得64Mboot區和1.8Gubuntu區,也能夠再把SD卡全部可用的空間都分給ubuntu區。

四、格式化分區:

1.  $ sudo apt-get install dosfstools

2 .

3.  $ sudo mkdosfs /dev/mmcblk0p1

4 .

5.  $ sudo mke2fs -T ext3 /dev/mmcblk0p2

6 .

7.  $ sudo umount /dev/mmcblk0p1

8 .

9.  $ sudo umount /dev/mmcblk0p2

五、複製內核到第一個分區

1.  $ sudo mount /dev/mmcblk0p1 /boot

2.  $ sudo cp uImage /boot -f

3.  $ sudo cp script.bin /boot -f

4.  $ sync && sudo umount /boot

六、複製ubuntu到第二個分區

1.  $ sudo dd if=ubuntu.img of=/dev/mmcblk0p2 bs=1M

2.  $ sudo sync

七、從sdcard引導

1.  $ sudo umount /dev/mmcblk0p1

2.  $ sudo umount /dev/mmcblk0p2

3.  $ sudo dd if=sunxi-spl.bin of=/dev/mmcblk0 bs=1024 seek=8

4.  $ sudo dd if=u-boot.bin of=/dev/mmcblk0 bs=1024 seek=32

八、 Dump the image (optional)

1.  $ sudo umount /dev/mmcblk0p1

2.  $ sudo umount /dev/mmcblk0p2

3.  $ sudo dd if=/dev/mmcblk0 of=ubuntu_sd.img bs=1M count=1900

9、重啓時板子就會從sdcard引導啓動了

相關文章
相關標籤/搜索