最近終于閑下來(lái)可以放心的玩一玩買(mǎi)來(lái)后就閑置的樹(shù)莓派3途乃。頭疼的是榔至,我沒(méi)有多余的鍵盤(pán)鼠標(biāo)和屏幕,也不想每次都鉆到放路由器的地方去插網(wǎng)線調(diào)試樹(shù)莓派欺劳,所以就在百度谷歌國(guó)內(nèi)國(guó)外到處搜索“無(wú)頭安裝樹(shù)莓派”的方案唧取,國(guó)內(nèi)的文章和問(wèn)答都搜不到,國(guó)外也沒(méi)找到完整的教程划提。
不過(guò)在一整天的Google中枫弟,終于找到一篇冷門(mén)文章,然后順藤摸瓜鹏往,最終達(dá)成我的目的淡诗。感謝這篇文章:https://caffinc.github.io/2016/12/raspberry-pi-3-headless/
順帶一提,便于你的搜索引用伊履,這個(gè)方案的英文術(shù)語(yǔ)叫"Raspberry Pi Headless setup"韩容。只不過(guò)外文文章中搜到的也都不是"true headless",因?yàn)楹芏喽家笞钇鸫a先要用網(wǎng)線去連接唐瀑。
開(kāi)始前有幾點(diǎn)要聲明:
- 樹(shù)莓派3是自帶wifi的,所以利用這個(gè)特點(diǎn)我們可以不用連網(wǎng)線來(lái)安裝哄辣。如果你用的是無(wú)wifi版本樹(shù)莓派请梢,那么依照這個(gè)思路可以插上無(wú)線wifi的usb后再嘗試。
- 目前只嘗試過(guò)樹(shù)莓派最新的官方系統(tǒng)適用此方法力穗,而且根據(jù)StackOverflow上的問(wèn)答得知毅弧,這個(gè)特性也是新版系統(tǒng)才有的。
- 本方案是在Mac上完成的当窗,Windows上也可以够坐。
準(zhǔn)備
- 樹(shù)莓派3
- SD卡(8G以上)
沒(méi)錯(cuò),就是這么簡(jiǎn)單崖面。這就是我想要的效果元咙。
安裝系統(tǒng)先
首先是常規(guī)的系統(tǒng)安裝方法,很簡(jiǎn)單嘶朱。下載好官方網(wǎng)站的Raspbian桌面系統(tǒng)后蛾坯,解壓成img格式文件。然后在Mac上用Etcher或ApplePi-Baker軟件疏遏,Windows上用Rufus軟件來(lái)將系統(tǒng)一鍵安裝到SD卡脉课。
這一步不需要詳細(xì)解釋,一般人都可以自己搜索到這幾樣?xùn)|西财异,然后按照軟件上的圖式操作倘零,除了下載時(shí)間外,全程也就10分鐘以內(nèi)完成戳寸。
設(shè)置Wifi連接
這一步是本文最關(guān)鍵的一步呈驶,也是網(wǎng)上歧義分支最多的一步。在寫(xiě)這一步之前我想了一會(huì)兒疫鹊,到底是應(yīng)該先上結(jié)果還是先上過(guò)程袖瞻。便于理解司致,還是先說(shuō)過(guò)程的好;可是作為實(shí)用帖聋迎,先上結(jié)果比較有意思脂矫。
只需要如下幾步即完成:
Mac和Windows用戶直接打開(kāi)樹(shù)莓派SD卡文件夾,Linux用戶打開(kāi)SD卡所呈現(xiàn)的兩個(gè)分區(qū)中叫boot且內(nèi)存極小的主分區(qū)(非樹(shù)莓派文件系統(tǒng)分區(qū))
在根目錄放置一個(gè)文件名為
ssh
的文件霉晕,無(wú)后綴名庭再,內(nèi)容有沒(méi)有都無(wú)所謂。Windows用戶怎么操作可以自己百度下牺堰。-
在根目錄放置一個(gè)文件名為
wpa_supplicant.conf
的文件拄轻,內(nèi)容如下:country=GB ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="你的Wifi名稱,注意大小寫(xiě)" psk="你的Wifi密碼" }
把SD卡插回樹(shù)莓派伟葫,開(kāi)機(jī)恨搓。
噠噠!完成扒俯!就是這么簡(jiǎn)單奶卓。然后來(lái)講解一下原理。
新版的樹(shù)莓派系統(tǒng)撼玄,為了自帶Wifi的樹(shù)莓派做了不少努力夺姑,讓你可以簡(jiǎn)單到在SD卡上建立一個(gè)叫ssh
的文件,就自動(dòng)識(shí)別為開(kāi)啟系統(tǒng)的SSH服務(wù)掌猛。然后你再放另一個(gè)文件盏浙,告訴它Wifi和密碼,它就會(huì)自動(dòng)連上網(wǎng)絡(luò)荔茬。
系統(tǒng)啟動(dòng)后废膘,這兩個(gè)會(huì)被刪除。如果你改了Wifi密碼慕蔚,還可以再做一次丐黄。
找到樹(shù)莓派的IP地址
首先要知道,用網(wǎng)線連接路由器得到的IP地址和用Wifi連接路由器得到的IP地址是不一樣的孔飒。網(wǎng)上好多文章都沒(méi)說(shuō)清楚灌闺。
這里我們要用Wifi連接。
最簡(jiǎn)單的是進(jìn)入路由器的設(shè)置主頁(yè)坏瞄,在DHCP列表中桂对,找到樹(shù)莓派的ip地址。
或者可以通過(guò)命令行來(lái)檢查鸠匀。Mac或Linux上蕉斜,用命令行輸入arp -a
,向路由器中所有可能的ip都找一遍,然后顯示一個(gè)所有連上路由器的ip列表宅此』恚可以樹(shù)莓派先關(guān)機(jī),看一下這個(gè)列表父腕,再開(kāi)機(jī)看一下這個(gè)列表毡熏,多出來(lái)的那個(gè)就是樹(shù)莓派的地址。
如果哪里都沒(méi)有的話侣诵,那說(shuō)明樹(shù)莓派沒(méi)有成功連接到Wifi:或者是配置錯(cuò)誤,或者是剛開(kāi)機(jī)還沒(méi)來(lái)得及連接狱窘。
通過(guò)SSH遠(yuǎn)程連接樹(shù)莓派
Mac和Linux上直接打開(kāi)終端杜顺,用ssh pi@IP地址
來(lái)連接,默認(rèn)密碼是raspberry
躬络。如果Mac上有設(shè)置SSH KEY
這樣的東西,就先要確定同樣ip地址以前沒(méi)有被記錄過(guò)搭儒。如果連接不成功穷当,那么就要到~/.ssh/known_hosts
文件中刪除這條ip那一行的記錄,然后再連接ssh淹禾。
Windows上一般網(wǎng)上都推薦用putty這樣的簡(jiǎn)易小軟件來(lái)連接(使用方法自行百度馁菜,很簡(jiǎn)單),其實(shí)最簡(jiǎn)單的是下載免安裝版的git bash
铃岔,然后在git開(kāi)發(fā)的終端上汪疮,各種玩耍Linux和Mac上的命令。
通過(guò)VNC遠(yuǎn)程連接樹(shù)莓派桌面
在已經(jīng)成功用ssh連接到樹(shù)莓派到話毁习,如果連接樹(shù)莓派桌面智嚷,需要在樹(shù)莓派中安裝一個(gè)叫tightvncserver
vnc服務(wù)。
操作如下:
終端中輸入sudo apt-get install tightvncserver
安裝好后纺且,輸入tightvncserver
回車(chē)盏道,啟動(dòng)vnc服務(wù)。
然后就可以連接了载碌。
Mac中猜嘱,在文件夾Finder的菜單中,打開(kāi)Go下的連接服務(wù)器恐仑,然后輸入vnc://樹(shù)莓派IP地址:5901
泉坐。其中5901是默認(rèn)的端口。
Windows上可能需要安裝個(gè)軟件來(lái)連接裳仆,可以自己查一查枯饿。
關(guān)于wpa_supplicant.conf
網(wǎng)上文章關(guān)于wpa_supplicant.conf
這個(gè)文件的編輯蝇庭,產(chǎn)生了巨大的分歧和建議询刹,這給我造成了不少的負(fù)擔(dān)挠阁。
在安裝好樹(shù)莓派系統(tǒng)后,SD卡實(shí)際上是分為兩塊磁盤(pán)的仙粱,一個(gè)為啟動(dòng)系統(tǒng)用的分區(qū),另一個(gè)為存儲(chǔ)文件系統(tǒng)用的分區(qū)。通常文件系統(tǒng)的這個(gè)分區(qū)俊扭,除了Linux電腦以外都沒(méi)法識(shí)別和讀取。而wpa_supplicant.conf
這個(gè)文件偏偏又放置在文件系統(tǒng)分區(qū)的/etc/wpa_supplicant/
目錄下坠陈,所以必須用Linux才能訪問(wèn)萨惑。
出于鉆研精神,我在自己的Mac上安裝了VirtualBox虛擬機(jī)仇矾,下載了小到ttyLinux和PuppyLinux庸蔼,大到Ubuntu和麒麟系統(tǒng)。無(wú)數(shù)次的安裝調(diào)試系統(tǒng)贮匕,嘗試各種Linux系統(tǒng)姐仅,包括解決虛擬機(jī)讀取SD卡的問(wèn)題,最終還是用了大Ubuntu系統(tǒng)來(lái)解決刻盐。插上SD卡后掏膏,Ubuntu就立馬顯示出兩塊磁盤(pán)。然后迅速找到文件系統(tǒng)的那個(gè)分區(qū)敦锌,進(jìn)入到/etc/wpa_supplicant/
目錄馒疹,發(fā)現(xiàn)竟然沒(méi)有wpa_supplicant
文件?后來(lái)才知道供屉,文件是存在的行冰,但是不顯示出來(lái),即使能看到也不能編輯伶丐。然后又各種搜索如何編輯這個(gè)文件的方法悼做,結(jié)果大家都只是說(shuō)說(shuō),還像那么回事一樣的直接寫(xiě)用sudo nado /etc/wpa_supplicant/wpa_supplicant.conf
來(lái)編輯哗魂,實(shí)際上完全不可行肛走。絕望至此。
然后突然看到網(wǎng)上StackOverflow還是QuoRa上有人回答這個(gè)問(wèn)題录别,說(shuō)新版的系統(tǒng)可以這樣寫(xiě):
network={
ssid="你的Wifi名稱朽色,注意大小寫(xiě)"
psk="你的Wifi密碼"
}
然后將這個(gè)文件放置在一般人可以訪問(wèn)的boot分區(qū)上,然后系統(tǒng)啟動(dòng)后會(huì)自動(dòng)抓取组题、替換到主系統(tǒng)中葫男。然后我很歡心的就去試了試,結(jié)果以失敗告終崔列。
再次絕望之后梢褐,我失落的拿起一根很長(zhǎng)的網(wǎng)線旺遮,不情愿的走到路由器,插上水晶頭盈咳。雖然很成功的訪問(wèn)到了網(wǎng)絡(luò)耿眉,可是就這么的不甘心。
然后我在正常系統(tǒng)訪問(wèn)后鱼响,好奇的在主系統(tǒng)中訪問(wèn)到了/etc/wpa_supplicant/wpa_supplicant.conf
這個(gè)文件鸣剪,發(fā)現(xiàn)文件內(nèi)容不光是網(wǎng)上問(wèn)答所說(shuō)的那兩句,頂部還有幾句簡(jiǎn)單的聲明丈积。
于是我的好奇心重燃筐骇,拔掉網(wǎng)線,再次重新安裝系統(tǒng)江滨,將錯(cuò)誤都清零拥褂,然后在boot分區(qū)的根目錄放置的wpa_supplicant.conf
中加入該有的這幾句話。
啟動(dòng)系統(tǒng)牙寞,
噠噠!完成莫秆!
實(shí)在太興奮了间雀,所以才寫(xiě)到此篇與大家分享。
有時(shí)候技術(shù)宅就是能從這些小事上獲得極大的成就感镊屎,這也就是他們自己不覺(jué)得枯燥的原因吧惹挟。