2014/04/26

啟動單板電腦香蕉派Banana Pi

摘要

香蕉派Banana Pi是一塊搭載ARM Cortex-A7雙核心處理器的單板電腦(single board computer),具備發光二極體、按鈕、和UART(Universal Asynchronous Receiver/Transmitter)等週邊介面,並且具備SD卡儲存介面,將5伏特直流電源灌入安裝完作業系統之香蕉派的micro USB接頭即可啟動之。我在這裏將會簡述安裝、裝配、和以簡潔的TUI(Text-based User Interface)來認識香蕉派的各個程序。


材料

香蕉派×1、SD卡×1、micro USB接頭之5伏特電源變壓器×1、及USB轉UART的轉接板×1。

安裝

在安裝作業系統的這個程序裏,我需要把一塊容量充份的SD卡予以格式化、並且寫入預先編譯完畢的作業系統映像檔。我選用的SD卡容量為8GB;由於我的開發主機(development host)是Windows 7,所以SD卡的格式化軟體選用的是SD Formatter,同樣的理由,SD卡映像檔寫入軟體選用的是Win32 Disk Imager。至於作業系統映像檔,我則選用了Cubieboard for Banana Pi版的Linux。
將SD卡插入開發主機的SD卡插槽,接著用SD Formatter予以格式化,再接著用Win32 Disk Imager來把解壓縮完畢的映像檔寫入該SD卡,寫入完畢後便可退出SD卡。

裝配

裝配程序包含了(1)把TUI所需的UART介面轉接至開發主機、(2)把安裝完作業系統的SD卡插入插槽、及(3)把直流電源變壓器插到micro USB接頭。我的香蕉派的裝配照片如下所示。
香蕉派TUI裝配(含註解)
值得注意的是我的開發主機用來跟香蕉派連接的介面為USB轉UART的轉接板,該轉接板的介面晶片為PL2303,這類轉接板很容易在各大購物網站購得、而驅動程式亦支援Windows 7;至於我使用的電源變壓器則是手機Nokia Lumia 525的電源變壓器。

以TUI操縱

欲以TUI操縱香蕉派,我的開發主機需要一個終端機軟體;在此,我選用Windows 7版的PuTTY
確認了USB轉UART的轉接板被列舉為哪一個序列埠後,便將PuTTY設定至該埠、且鮑率設定為115200bps,再把直流電源插上香蕉派,便可以見到黑底白字的終端機畫面了。
確認轉接板被列舉的序列埠編號
埠號與鮑率
香蕉派開機畫面
簡潔的TUI不僅是經典的操縱介面,內容也容易被摘錄至文章之中。接著就用這個黑底白字的介面下鍵入指令,以便認識手邊的這塊香蕉派。
  • 認識處理器
root@cubieboard2:~# cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 4 (v7l)
processor       : 0
BogoMIPS        : 119.70

processor       : 1
BogoMIPS        : 119.70

Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 4

Hardware        : sun7i
Revision        : 0000
Serial          : 0000000000000000

鍵入cat /proc/cpuinfo指令即可查閱香蕉派的處理器資訊,由TUI印出的內容可以得知,香蕉派的處理器族系為ARMv7 Processor rev 4、並且具備編號0和1等兩個處理器。
  • 認識記憶體
root@cubieboard2:~# cat /proc/meminfo
MemTotal:         929112 kB
MemFree:          816780 kB
Buffers:           10912 kB
Cached:            37860 kB
SwapCached:            0 kB
Active:            30488 kB
Inactive:          35500 kB
Active(anon):      21952 kB
Inactive(anon):      128 kB
Active(file):       8536 kB
Inactive(file):    35372 kB
Unevictable:       30072 kB
Mlocked:           30080 kB
HighTotal:        270336 kB
HighFree:         184776 kB
LowTotal:         658776 kB
LowFree:          632004 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         47380 kB
Mapped:            16500 kB
Shmem:               176 kB
Slab:               8668 kB
SReclaimable:       3000 kB
SUnreclaim:         5668 kB
KernelStack:        1248 kB
PageTables:          900 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      464556 kB
Committed_AS:     181852 kB
VmallocTotal:     245760 kB
VmallocUsed:       11640 kB
VmallocChunk:     212928 kB

root@cubieboard2:~# free
             total       used       free     shared    buffers     cached
Mem:        929112     117984     811128          0      13400      39812
-/+ buffers/cache:      64772     864340
Swap:            0          0          0

鍵入cat /proc/meminfo指令即可查閱香蕉派的記憶體資訊,由TUI印出的內容可以得知,香蕉派的系統可用的記憶體容量為929112kB;使用free指令亦可得知記憶體的使用情形。
  • 認識儲存分割
root@cubieboard2:~# cat /proc/partitions
major minor  #blocks  name

 179        0    7761920 mmcblk0
 179        1      12288 mmcblk0p1
 179        2    3858944 mmcblk0p2

root@cubieboard2:~# ls -al /dev/mmcblk0 /dev/mmcblk0p1 /dev/mmcblk0p2
brw-rw---- 1 root disk 179, 0 Jan  1 00:00 /dev/mmcblk0
brw-rw---- 1 root disk 179, 1 Jan  1 00:00 /dev/mmcblk0p1
brw-rw---- 1 root disk 179, 2 Jan  1 00:00 /dev/mmcblk0p2

鍵入cat /proc/partitions指令即可查閱香蕉派的儲存分割資訊,由TUI印出的內容可以得知,香蕉派的系統可用的分割包含了mmcblk0、mmcblk0p1、及mmcblk0p2等;輔以ls指令將可以查閱更為詳細的資訊。
  • 認識主控台
root@cubieboard2:~# cat /proc/cmdline
console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10

root@cubieboard2:~# ls -al /dev/ttyS0
crw------- 1 root tty 4, 64 Jan  1 01:19 /dev/ttyS0

鍵入cat /proc/cmdline指令即可查閱香蕉派的主控台資訊,由TUI印出的內容可以得知,香蕉派的主控台裝置檔案(device file)為ttyS0、而鮑率為115200bps;輔以ls指令將可以查閱更為詳細的資訊。
  • 認識作業系統
root@cubieboard2:~# cat /proc/version
Linux version 3.4.61.A20.bananapi.v02 (mikey@bananapi-imx6-43-mikey-L5) (gcc version 4.6.3 (Debian 4.6.3-14+rpi1) ) #2 SMP PREEMPT Sat Dec 28 08:58:57 CST 2013

root@cubieboard2:~# cat /etc/lsb-release
DISTRIB_ID=Linaro
DISTRIB_RELEASE=13.04
DISTRIB_CODENAME=quantal
DISTRIB_DESCRIPTION="Linaro 13.04"

root@cubieboard2:~# ls -al /
total 3260
drwxr-xr-x 22 root root    4096 Sep  7  2013 .
drwxr-xr-x 22 root root    4096 Sep  7  2013 ..
-rw-r--r--  1 root root 3255984 Apr 22  2013 SHA256SUMS
drwxrwxr-x  2 root root    4096 Sep  7  2013 bin
drwxr-xr-x  3 root root    4096 Apr 22  2013 boot
drwxr-xr-x 12 root root    3300 Jan  1 00:00 dev
drwxr-xr-x 97 root root    4096 Jan  1 00:00 etc
drwxr-xr-x  3 root root    4096 Apr 22  2013 home
drwxrwxr-x 14 root root    4096 Aug 29  2013 lib
drwx------  2 root root   16384 Sep  7  2013 lost+found
drwxr-xr-x  2 root root    4096 Apr 22  2013 media
drwxr-xr-x  2 root root    4096 Feb 22  2013 mnt
drwxr-xr-x  2 root root    4096 Apr 22  2013 opt
dr-xr-xr-x 90 root root       0 Jan  1  1970 proc
drwxr-xr-x  5 root root    4096 Jan  1 00:03 root
drwxr-xr-x 14 root root     520 Jan  1 00:05 run
drwxr-xr-x  2 root root    4096 Apr 22  2013 sbin
drwxr-xr-x  2 root root    4096 Jun 11  2012 selinux
drwxr-xr-x  2 root root    4096 Apr 22  2013 srv
dr-xr-xr-x 12 root root       0 Jan  1 00:00 sys
drwxrwxrwt  4 root root     100 Jan  1 01:17 tmp
drwxr-xr-x 10 root root    4096 Aug 29  2013 usr
drwxr-xr-x 11 root root    4096 Jan  1 01:26 var

root@cubieboard2:~# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        3798280 1851664   1753672  52% /
devtmpfs          464452       4    464448   1% /dev
tmpfs              20480       4     20476   1% /tmp
none               92912     156     92756   1% /run
none                5120       0      5120   0% /run/lock
none              464556       0    464556   0% /run/shm
none              102400      12    102388   1% /run/user

鍵入cat /proc/version指令即可查閱香蕉派的作業系統核心資訊,由TUI印出的內容可以得知,香蕉派的核心版本為第3.4.61版;鍵入cat /etc/lsb-release指令則可以查閱香蕉派的作業系統套裝資訊(distribution),在此可以得知香蕉派的套裝資訊為Linaro的第13.04版;輔以ls指令將可以查閱根檔案系統的相關資訊,輔以df指令將可以查閱根檔案系統的儲存空間使用情形。
 

小結

經過了基本的安裝、裝配、及TUI指令操作之後,我對於香蕉派有了基礎的認識,大致上符合香蕉派主頁聲稱的內容;至於不使用主頁提及的螢幕鍵盤來測試香蕉派的理由則是(1)我覺得TUI簡潔明確、和(2)我手邊恰巧沒有螢幕鍵盤可供GUI(Graphical User Interface)的操縱。
在此對同為open source且外觀大致相同的單板電腦作為簡單的評比。香蕉派的處理器規格比樹莓派Raspberry Pi來得先進,前者為7代ARM而後者為6代ARM;香蕉派搭載的週邊較樹莓派來得豐富,前者增添了硬碟所使用的SATA介面、及CIR遙控器所需的紅外線接收器等;對於預先編譯的作業系統映像檔,兩者皆以SD卡為儲存目標;然而,作為open source的一員,我目前無法輕易地在Internet下載香蕉派的schematicsource code、和toolchain,而我目前也仍沒下載到這幾項重要的資料,單憑這點,香蕉派就需要好好地向樹莓派效法了。
以ARM為基礎的單板電腦款式眾多且日益風行,不只本文提及的香蕉派,舉凡BeagleBone Black、或UDOO等都是現今有趣的單板電腦。期待未來有機會再嘗試。

參考資料

香蕉派主頁http://www.lemaker.org/


5 則留言:

  1. Good Work, Leo. So you give up the Raspberry Pi and change to Banana Pi.
    Which one is cheaper?

    回覆刪除
    回覆
    1. 網誌管理員已經移除這則留言。

      刪除
  2. 關於價格的部份,剛剛查了淘寶網臺灣的標價,香蕉派約RMB$299、而樹莓派約RMB$213,後者較為便宜。
    關於取捨的部份,能夠符合專案需求的「派」就是好派,管它香蕉派還是樹莓派。

    回覆刪除
  3. 目前香蕉派已經提供GitHub以下載相關原始碼,
    作業系統映像檔也提供了Cubieboard for Banana Pi之外的版本,
    可以撥空嘗試一番。

    回覆刪除
  4. 網誌管理員已經移除這則留言。

    回覆刪除