樹莓派:開機使用

Vamei發表於2016-12-27

作者:Vamei 出處:http://www.cnblogs.com/vamei 嚴禁任何形式轉載。

 

樹莓派是一款信用卡大小的超小型電腦,由英國的樹莓派基金會研發。由於超小的體積,樹莓派從2012年發行起就風靡全球。別看樹莓派身板小,它可是一臺功能完整的電腦。連線上顯示器、滑鼠和鍵盤後,你可以像使用一般桌上型電腦那樣使用樹莓派。對於樹莓派3來說,還內建了WiFi和藍芽的無線支援,可以更方便地進行無線連線。在許多硬體創新專案中,都可以看到樹莓派的身影。我將在一系列文章中,介紹樹莓派的基本用法。

 

硬體介紹

下圖中是一臺樹莓派3。可以看到,它提供了豐富的介面。

 

圖中標出了樹莓派的主要介面。第一次啟動樹莓派,你需要接入USB介面的滑鼠和鍵盤,以及常見的HDMI顯示器。此外,你還需要一個輸出電壓為5V的電源。這個電源線的輸出端是Micro USB,與樹莓派連線。樹莓派官方的電源插座可以直接插到家用的220V電壓插座上。或者,你也可以買一根USB轉Micro USB的連線線,把USB那一端插入到PC或其他提供電源的USB埠。一旦接上,樹莓派就會自動啟動。

 

我們可以順便看一下樹莓派上的其他硬體。樹莓派正中是博通的ARM CPU,也就是ARM的心臟。除此之外,正面還有一個GPU晶片,主要用於影象處理。晶片背面的方形晶片,是樹莓派的記憶體。樹莓派主要靠這三個晶片進行最重要的控制和運算工作。此外,樹莓派還提供了很多通往外部世界的介面。圖中最右側有4個USB口和1個乙太網口。在乙太網介面插入網線,就可以有線地連線到網際網路。下側除了電源介面、連線顯示器的HDMI輸出口和音訊口,還有一個用於連線專用攝像頭的排線口。需要注意的是,樹莓派只有在開機時檢查到顯示裝置時,才會向HDMI埠輸出,所以必須在開機前就連好HDMI介面的顯示器。左側的上面有一個顯示的排線口。考慮到HDMI的廣泛使用,該插口出場機會不是很高。左側的下面有一個Micro SD卡的插口。這張SD卡取代了一般電腦中的硬碟。樹莓派的上側還有一排針腳,構成了通用程式設計介面(GPIO)。GPIO可以用於和很多原始的硬體外設進行底層連線。

 

系統安裝和啟動

樹莓派只是硬體,我們還需要軟體來讓樹莓派跑起來。樹莓派上最基礎的軟體就是它的作業系統。由於樹莓派用一張Micro SD卡來作為它的儲存空間,所以作業系統也是安裝在這張SD卡上。樹莓派官網提供了Raspbian的映象檔案,只需要把這個映象檔案燒錄到SD卡上,就可以把這張SD卡插入到樹莓派中使用了。Raspbian是繼承自Debian作業系統。Debian是Linux的一個發行版本,而Linux又遵從Unix的規範。因此,假如你熟悉Unix家族的任何一款作業系統,都能很快上手樹莓派。反過來說,當你熟悉了Raspbian,那麼也能熟練運用蘋果OS X這樣的Unix系統。

Raspbian系統的操作介面

 

對於樹莓派來說,所有的軟體都安裝在一張小型SD卡上,作業系統也不例外。缺了這張SD卡,樹莓派就根本沒法使用。我們需要另外一臺電腦來把作業系統的程式存入到這張SD卡中。不用說,這臺電腦必須有SD卡的讀寫口。很多膝上型電腦都自帶SD卡插口。即使沒有,一個USB介面的讀卡器也可以很便宜地買到。此外,你還要到樹莓派官網去下載作業系統的原始檔。由於作業系統不時會更新,所以檔案的名字也會有差異。我在下文中統稱檔名為raspbian.image。

 

1)Unix系統

如果你的電腦是Unix系統,如Linux和Mac OSX,我們可以用現成的工具來為樹莓派製作作業系統。把SD卡插入電腦的讀卡槽後,我們首先要找到SD卡掛載的路徑。

 

如果是在Mac OSX下,那麼輸入下面命令,可以列出掛載的所有儲存裝置:

diskutil list

從中找到對應SD卡大小的裝置,並記下它的路徑,如/dev/disk3。如果是Linux系統下,那麼可以用如下命令來找出路徑:

sudo fdisk -l

 

然後,可以使用UNIX系統下共通的dd工具,把映象檔案寫入SD卡:

sudo dd if=/dev/disk3 of=./raspian.image

 

2)Windows系統

在Windows下,有現成的圖形化軟體來完成上述映象燒錄工作,比如樹莓派官網推薦的Win32DiskImager。整個操作過程比UNIX系統更加簡單,這裡不再贅述。

 

寫入完成後,把SD卡插入到樹莓派的卡槽中,為樹莓派連通電源,就可以從螢幕上看到樹莓派的啟動畫面了。

 

 

桌面

開機完成後,就可以進入到Rapbian的圖形化桌面了。圖形化桌面提供的主要功能,都包含在上方的導航欄中:

 Raspbian系統的操作介面

導航欄左上角的選單(Menu) 包含了很多應用軟體。選單中提供了很多功能軟體:

  • Programming:程式設計工具,如動態程式語言Python,用於數學運算的Mathematica,以及用於程式設計教育的Scratch等。
  • Office:辦公軟體,即開源的LibreOffice套裝。
  • Internet:網際網路軟體,如電子郵件客戶端和瀏覽器。
  • Games:遊戲。這裡有點失望,除了Minecraft,就是用於遊戲程式設計的Python Games。
  • Accessories:工具軟體,如檔案管理器File Manager、終端Terminal、文字編輯器等。
  • Sound & Videos:VLC播放器。

此外,選單終端Preferences用於系統設定,你可以在裡面設定時間、語言、顯示等選項。最下方的Shutdown按鈕用於關機或重啟。

 

緊鄰著選單的是來自選單的五個常用軟體,依次是瀏覽器、檔案管理器、終端、以及進行科學運算的Mathematica和Wolfgram。在我們的教程中,最常用的就是其中的終端。右側的幾個按鈕中,從左到右依次是藍芽、Wifi、聲音控制、CPU使用監控、時間。你可以通過Wifi按鈕來連線無線網。最右端列出了所有的可插拔裝置,如USB儲存器。桌面上除了碩大的樹莓派標誌,就是一個回收箱Wastebasket。

 

樹莓派的圖形化桌面確實可以讓人探索一段時間。但這個桌面可以說有一些簡陋。“畫面精美”從來都不是Linux的長處。如果你真的想用這樣的桌面系統進行辦公的話,恐怕要更加失望。那樹莓派的瀏覽器開啟網站上的視訊,你很可能會遭遇緩慢的頁面載入的緩慢和卡頓的視訊播放。你要是想開多個視窗工作的話,桌面很容易就會崩潰。畢竟,樹莓派的配置很低端,而計算機圖形的呈現都相當消耗資源。幸好,Linux提供了更好的與樹莓派的方式:Shell。

 

開啟終端(Terminal),桌面上就會出現一個黑色背景的視窗。視窗上顯示著:

pi@raspberrypi:~ $

這裡的pi是你的使用者名稱,raspberrypi是計算機的名字。$是命令提示符。如果你敲擊鍵盤,會發現字元會顯示在$提示符的後面,形成一串文字形式的命令。所謂的Shell,就是執行在終端中的程式。它會分析你的文字輸入,然後把文字活動轉換成相應的計算機活動,不多也不少。

 

比如說輸入date命令:

date

敲擊Enter鍵Enter後,會顯示出系統當前的時間。

 

Shell看起來簡陋,但實際上比圖形化桌面強大得多。Linux作業系統繼承自Unix作業系統。無論是Linux,還是Unix作業系統,最初都只提供了Shell這一種使用者操作介面。後來發展起來的圖形化的桌面沒法提供Shell的所有功能。如果你習慣了這個文字操作介面,還會發現它不但比桌面強大,還比桌面好用得多。現在,我將介紹一些命令,一方面讓你更加了解樹莓派,另一方面也讓你體驗一下Shell。

 

瞭解你的樹莓派

1)Linux通用命令

Linux系統提供了各種各樣的命令。在Shell中輸入這些命令,就可以實現許多功能。我在這裡介紹一些命令,幫助你來了解自己的樹莓派。首先用lscpu的命令來查詢CPU的資訊:

lscpu

 

終端視窗中就列印出CPU的資訊:

Architecture:          armv7l
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
Model name:            ARMv7 Processor rev 4 (v7l)
CPU max MHz:           1200.0000
CPU min MHz:           600.0000

可以看到,我的樹莓派用的是4核的ARM處理器,最高頻率可以達到1200MHz。

 

然後,可以用free命令來了解記憶體使用狀況:

free -h

在使用上面的命令時,增加了-h的選項。這裡的字母h是human readable的意思,即把原本以位元組為單位的結果,轉換成更適合顯示的單位。結果如下:

             total       used       free     shared    buffers     cached
Mem:          862M       739M       122M        14M        44M       397M
-/+ buffers/cache:       298M       563M
Swap:          99M         0B        99M

可以看到,記憶體總量是862M,在接下來的列中,還可以看到已用和自由的記憶體空間。

 

然後,我們可以看看SD卡的儲存情況,用命令fdisk: 

sudo fdisk -l

命令fdisk用於顯示磁碟資訊。選項-l表示列出所有磁碟。我們又看到命令前面增加了sudo。因為fdisk命令的執行需要超級管理員的許可權,sudo正是以超級管理員的身份來執行fdisk。結果的最後兩行如下:

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1        8192   131071   122880   60M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      131072 30318591 30187520 14.4G 83 Linux

整個SD卡被分成了兩個分割槽。一個分割槽有60M大小,專門用於樹莓派的開機啟動。另一個分割槽用於儲存其他的所有資料。

 

使用lsusb,可以找到所有的USB外設:

Bus 001 Device 005: ID 0e8f:2517 GreenAsia Inc. 
Bus 001 Device 006: ID 045e:0750 Microsoft Corp. Wired Keyboard 600
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

使用uname -a,可以完整地顯示出作業系統的資訊:

Linux raspberrypi 4.1.19-v7+ #858 SMP Tue Mar 15 15:56:00 GMT 2016 armv7l GNU/Linux

我的系統使用的核心是Linux4.1.19版本。還能從輸出結果中看到核心的釋出時間是2016年3月15號。

 

最後,你可以用ifconfig命令來檢視網路介面。命令執行結果如下:

 

eth0      Link encap:Ethernet  HWaddr b8:27:eb:d8:ed:f4  
          inet6 addr: fe80::9b8b:c0de:d083:6ddd/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:243 errors:0 dropped:0 overruns:0 frame:0
          TX packets:243 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:19020 (18.5 KiB)  TX bytes:19020 (18.5 KiB)

wlan0     Link encap:Ethernet  HWaddr b8:27:eb:8d:b8:a1  
          inet addr:192.168.0.108  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::ba27:ebff:fe8d:b8a1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:45926 errors:0 dropped:4268 overruns:0 frame:0
          TX packets:10469 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:26867855 (25.6 MiB)  TX bytes:1360267 (1.2 MiB)

 

其中eth0代表了乙太網介面,wlan0代表了Wifi介面。而lo是虛擬出來的本地介面,用來表示本機。在連線上網的介面中,我們可以看到該介面的IP地址等資訊。例如說wlan0的IP地址是192.168.0.108。由於我沒有插網線,所以eth0並沒有IP地址。

 

2)樹莓派專用命令

除了通用的Linux命令,樹莓派還提供了vcgencmd命令,用於和樹莓派硬體直接互動。比如在Shell中執行:

vcgencmd measure_temp

上面命令中,第二段的measure_temp稱為命令的引數。引數是選項之外另一種給命令提供額外資訊的方式。上面的命令將返回CPU的溫度:

temp=51.5'C

 

用下面命令測量樹莓派的核心電壓:

vcgencmd measure_volts core

返回電壓值:

volt=1.2000V

 

vcgencmd提供的功能還有很多。除了顯示硬體資訊,你還能用這個命令來控制硬體。它的用法不再一一列舉,具體可參考vcgencmd

 

這一篇介紹了樹莓派的硬體和基本操作,並由此開啟樹莓派之旅。

 

歡迎閱讀“騎著企鵝採樹莓”系列文章

相關文章