最近終於閒下來能夠放心的玩一玩買來後就閒置的樹莓派3。頭疼的是,我沒有多餘的鍵盤鼠標和屏幕,也不想每次都鑽到放路由器的地方去插網線調試樹莓派,因此就在百度谷歌國內國外處處搜索「無頭安裝樹莓派」的方案,國內的文章和問答都搜不到,國外也沒找到完整的教程。git
不過在一成天的Google中,終於找到一篇冷門文章,而後順藤摸瓜,最終達成個人目的。感謝這篇文章:https://caffinc.github.io/201...github
順帶一提,便於你的搜索引用,這個方案的英文術語叫"Raspberry Pi Headless setup"。只不過外文文章中搜到的也都不是"true headless",由於不少都要求最起碼先要用網線去鏈接。bash
沒錯,就是這麼簡單。這就是我想要的效果。服務器
首先是常規的系統安裝方法,很簡單。下載好官方網站的Raspbian桌面系統後,解壓成img格式文件。而後在Mac上用Etcher或ApplePi-Baker軟件,Windows上用Rufus軟件來將系統一鍵安裝到SD卡。網絡
這一步不須要詳細解釋,通常人均可以本身搜索到這幾樣東西,而後按照軟件上的圖式操做,除了下載時間外,全程也就10分鐘之內完成。less
這一步是本文最關鍵的一步,也是網上歧義分支最多的一步。在寫這一步以前我想了一下子,究竟是應該先上結果仍是先上過程。便於理解,仍是先說過程的好;但是做爲實用帖,先上結果比較有意思。ssh
只須要以下幾步即完成:網站
ssh
的文件,無後綴名,內容有沒有都無所謂。Windows用戶怎麼操做能夠本身百度下。在根目錄放置一個文件名爲wpa_supplicant.conf
的文件,內容以下:spa
country=GB ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="你的Wifi名稱,注意大小寫" psk="你的Wifi密碼" }
噠噠!完成!就是這麼簡單。而後來說解一下原理。命令行
新版的樹莓派系統,爲了自帶Wifi的樹莓派作了很多努力,讓你能夠簡單到在SD卡上創建一個叫ssh
的文件,就自動識別爲開啓系統的SSH服務。而後你再放另外一個文件,告訴它Wifi和密碼,它就會自動連上網絡。
系統啓動後,這兩個會被刪除。若是你改了Wifi密碼,還能夠再作一次。
首先要知道,用網線鏈接路由器獲得的IP地址和用Wifi鏈接路由器獲得的IP地址是不同的。網上好多文章都沒說清楚。
這裏咱們要用Wifi鏈接。
最簡單的是進入路由器的設置主頁,在DHCP列表中,找到樹莓派的ip地址。
或者能夠經過命令行來檢查。Mac或Linux上,用命令行輸入arp -a
,向路由器中全部可能的ip都找一遍,而後顯示一個全部連上路由器的ip列表。能夠樹莓派先關機,看一下這個列表,再開機看一下這個列表,多出來的那個就是樹莓派的地址。
若是哪裏都沒有的話,那說明樹莓派沒有成功鏈接到Wifi:或者是配置錯誤,或者是剛開機還沒來得及鏈接。
Mac和Linux上直接打開終端,用ssh pi@IP地址
來鏈接,默認密碼是raspberry
。若是Mac上有設置SSH KEY
這樣的東西,就先要肯定一樣ip地址之前沒有被記錄過。若是鏈接不成功,那麼就要到~/.ssh/known_hosts
文件中刪除這條ip那一行的記錄,而後再鏈接ssh。
Windows上通常網上都推薦用putty這樣的簡易小軟件來鏈接(使用方法自行百度,很簡單),其實最簡單的是下載免安裝版的git bash
,而後在git開發的終端上,各類玩耍Linux和Mac上的命令。
在已經成功用ssh鏈接到樹莓派到話,若是鏈接樹莓派桌面,須要在樹莓派中安裝一個叫tightvncserver
vnc服務。
操做以下:
終端中輸入sudo apt-get install tightvncserver
安裝好後,輸入tightvncserver
回車,啓動vnc服務。
而後就能夠鏈接了。
Mac中,在文件夾Finder的菜單中,打開Go下的鏈接服務器,而後輸入vnc://樹莓派IP地址:5901
。其中5901是默認的端口。
Windows上可能須要安裝個軟件來鏈接,能夠本身查一查。
wpa_supplicant.conf
網上文章關於wpa_supplicant.conf
這個文件的編輯,產生了巨大的分歧和建議,這給我形成了很多的負擔。
在安裝好樹莓派系統後,SD卡其實是分爲兩塊磁盤的,一個爲啓動系統用的分區,另外一個爲存儲文件系統用的分區。一般文件系統的這個分區,除了Linux電腦之外都無法識別和讀取。而wpa_supplicant.conf
這個文件恰恰又放置在文件系統分區的/etc/wpa_supplicant/
目錄下,因此必須用Linux才能訪問。
出於鑽研精神,我在本身的Mac上安裝了VirtualBox虛擬機,下載了小到ttyLinux和PuppyLinux,大到Ubuntu和麒麟系統。無數次的安裝調試系統,嘗試各類Linux系統,包括解決虛擬機讀取SD卡的問題,最終仍是用了大Ubuntu系統來解決。插上SD卡後,Ubuntu就立馬顯示出兩塊磁盤。而後迅速找到文件系統的那個分區,進入到/etc/wpa_supplicant/
目錄,發現居然沒有wpa_supplicant
文件?後來才知道,文件是存在的,可是不顯示出來,即便能看到也不能編輯。而後又各類搜索如何編輯這個文件的方法,結果你們都只是說說,還像那麼回事同樣的直接寫用sudo nado /etc/wpa_supplicant/wpa_supplicant.conf
來編輯,實際上徹底不可行。絕望至此。
而後忽然看到網上StackOverflow仍是QuoRa上有人回答這個問題,說新版的系統能夠這樣寫:
network={ ssid="你的Wifi名稱,注意大小寫" psk="你的Wifi密碼" }
而後將這個文件放置在通常人能夠訪問的boot分區上,而後系統啓動後會自動抓取、替換到主系統中。而後我很歡心的就去試了試,結果以失敗了結。
再次絕望以後,我失落的拿起一根很長的網線,不情願的走到路由器,插上水晶頭。雖然很成功的訪問到了網絡,但是就這麼的不甘心。
而後我在正常系統訪問後,好奇的在主系統中訪問到了/etc/wpa_supplicant/wpa_supplicant.conf
這個文件,發現文件內容不光是網上問答所說的那兩句,頂部還有幾句簡單的聲明。
因而個人好奇心重燃,拔掉網線,再次從新安裝系統,將錯誤都清零,而後在boot分區的根目錄放置的wpa_supplicant.conf
中加入該有的這幾句話。
啓動系統,
噠噠!完成!
實在太興奮了,因此才寫到此篇與你們分享。
有時候技術宅就是能從這些小事上得到極大的成就感,這也就是他們本身不以爲枯燥的緣由吧。