Raspberry Pi 的基礎 - 沒螢幕、沒鍵盤、沒網路,居然也能設定 Wi-FI 連線

by 3月 20, 2017 10 意見        

什麼都沒有的狀況下,卻要我先設定好 Wi-Fi 的連線資訊?!
到底是你說錯了?還是我聽錯了?這種事情怎麼辦得到啦~~~ >_<

前幾天從 台灣樹莓派 入手了 Raspberry Pi Zero W,收到的當下真的是超高興的,可是只 High 了三分鐘,馬上就從天堂掉到地獄了 ......

怎麼說呢~~~
因為當時是寄到辦公室去,之前玩 Raspberry Pi 1/2/3 的時候,只要接上 RJ-45 網路線,就可以用 SSH 連線控制;偏偏 Zero W 什麼都沒有,就一個 Mini HDMI 接頭、二個 Micro USB,沒了...

這下子可好了,我沒想到東西這麼快就到了,之前為了 Zero 買的 Mini HDMI 轉接頭、Micro USB OTG 線、USB 無線網卡、USB 有線網卡,所有的道具全部都放在家裡。

結果搞半天,板子也搶到了,東西也送到眼前了,還明明就知道它內建 Wi-Fi,卻什麼事都幹不了,這下子難道就只能傻傻望著熱騰騰的 Zero W 乾瞪眼嗎???


事前準備

  • Raspberry Pi * 1
    最好是 Zero W 或 3 Model B,如果不是的話,外接的 USB 無線網卡最好在官方支援清單裡面
  • Raspbian Jessie 作業系統
  • MicroSD 記憶卡 * 1
    如果是 1A 或 1B,當然就得用 SD 卡
  • 讀卡機 * 1
  • 電腦 * 1
    不管是跑 Windows、macOS、Linux 都可以

設定 Wi-Fi 連線


在 Raspberry Pi 的基礎 - 使用 Wi-Fi 無線網卡連上網路 就有提到怎麼設定,重點就是在 wpa_supplicant.conf 這個檔案,我們會把 SSID 跟金鑰存在裡面。

問題來了,
我們就是因為沒有螢幕、沒有鍵盤,所以沒辦法開機設定,因為沒有網路線、沒有網路孔,所以沒辦法用 SSH 登入進去設定啊,就算我知道要把設定值存在哪裡,還是無用武之地!!!

別怕,接下來就是重點了!
這邊雖然用 macOS 來示範,使用其他作業系統的朋友也別擔心,只要你會編輯文字檔就可以了。

咱們只要把電腦打開,進入作業系統,把記憶卡插到讀卡機裡,再把讀卡機插到電腦的 USB 埠。

先 將 Raspbian 的映像檔燒錄到記憶卡 裡,完成之後,就會出現一個名為 boot 的裝置 (macOS) / 磁碟機 (Windows)。

它的檔案系統是 FAT32,所以 Windwos、macOS、Linux 全部都支援。

先不要把記憶卡拔起來,直接在裡面新增一個名為 wpa_supplicant.conf 的檔案。

內容就請依照各位的環境修改無線基地名的名稱、密碼以及認證的種類,不知道怎麼填的話,請參閱 Raspberry Pi 的基礎 - 使用 Wi-Fi 無線網卡連上網路
country=TW
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="SSID_NAME"

    psk="SSID_KEY"
    key_mgmt=WPA-PSK
    scan_ssid=1

}

如果我們會把 Raspberry Pi 在辦公室、教室、家裡拿來拿去,而這幾個地方的無線基地台設定值一定是不一樣的,那就把它們的設定值全部寫進去就行了,系統會自動去偵測並套用。

請注意!!!
如果是用 Windows 的朋友,千萬不要用「記事本」去編輯,它編出來的純文字檔,在 Linux 讀取會有問題,請改用 Sublime TextEmiEditorNotepad++ .... 等支援 Linux 格式的編輯器來編輯。

該輸入的資料全部輸入完畢之後,別忘了存檔,而且要正確的把記憶卡退出電腦,可別直接拔了就走。

接著只要把記憶卡插上 Raspberry Pi 上開機就行了,Rasbian 會把 /boot/wpa_supplicant.conf 複製到 /etc/wpa_supplicant/ 目錄裡,然後就會去讀取裡面的設定值,自動連上無線基地台了。

最後,
就是依照 老朋友,新功能!關於那些開箱後馬上要作的事 完成初始設定,就可以開始玩弄它了...... (誤)


同場加映:開放 SSH 連線


根據 Raspbian 2016/11/25 的 Release Note 資料:
SSH disabled by default; can be enabled by creating a file with name "ssh" in boot partition」

SSH 改成預設不啟動,不過要啟動也很簡單,跟上面一樣,在 boot 的根目錄建立一個名為 ssh 的空檔案,就可以了。



參考資料

圖片來源
  • https://www.raspberrypi.org
  • https://www.splitshire.com/

更新紀錄
  • 2017/03/20 發文。
  • 2017/11/27 更新,修正 wpa_supplicant.conf 設定檔內容。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

10 則留言 :

  1. 默認不開啟SSH真是很麻煩..

    回覆刪除
    回覆
    1. 真的~~~
      還好自動啟用的方式很簡單...

      刪除
  2. 這篇不給贊一下對不起自己,太厲害了

    回覆刪除
    回覆
    1. 是不是~~~
      這真的很方便,而且就只要別忘了帶讀卡機就行了...

      刪除
  3. 原來只要這樣就可以了自動連到網路、新增ssh阿,之前還為了這個情況去買了一條Usb to ttl的線來弄。

    回覆刪除
    回覆
    1. 其實我也敗了兩條 ...... (遮臉)

      刪除
  4. 若我的SD card己是一個可開機自動連至WiFi AP及可ssh pi ip的狀態下
    此時,再去/boot 新增一個名為 wpa_supplicant.conf 的檔案的話,
    不知會不會破壞原本可正常連線WiFi的設定,導致無法正常上網WiFi呢?

    回覆刪除
    回覆
    1. 此外/boot/wpa_supplicant.conf 會有作用嗎??

      刪除
    2. 如果是已經有 wpa_supplicant.conf 的狀況,那就不用新增一個,直接修改內容,加進一組新的 SSID+Key 就行了。

      刪除
  5. 有沒有人能幫忙一下,讓樹莓派連上wifi之後,寫一個log檔把當前IP記錄下來。這樣可以把SD卡在插到別的電腦,先看看IP是多少,直接SSH連進去,不然樹莓派連上wifi後,還要慢慢掃port看他ip是什麼

    回覆刪除