作者: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后,會顯示出系統當前的時間。
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。
這一篇介紹了樹莓派的硬件和基本操作,並由此開啟樹莓派之旅。
歡迎閱讀“騎着企鵝采樹莓”系列文章