Setting up a Raspberry Pi 3 Model B+ headless using Mac

Zac Sung
8 min readMay 24, 2019

--

這是我在 Medium 上的第一篇文章,希望可以用來記錄我在軟體開發上的筆記跟心得~

前陣子剛入手一片 Raspberry Pi 3 Model B+,也就正式踏入開發樹莓派的行列啦。因為不想接額外的螢幕、滑鼠、鍵盤,於是就開始研究如何安裝成 headless 的模式,只需要讓 Raspberry Pi 跟電腦連上同一個網段,就能夠從電腦 SSH 連上 Raspberry Pi 進行開發。

本篇就是紀錄透過 Mac,將 Raspberry Pi 設置成 headless 的完整步驟。

Before We Begin

在開始之前,要先準備好這些硬體設備:

  • Raspberry Pi (需要有內建 WiFi chip 的版本)
  • Raspberry Pi 的電源轉換器 (5V/2.5A)
  • microSD card 及 adapter (SD card requirement)
  • PC or Laptop (本篇是用 Macbook 實作)
  • Router
Required devices

都準備好之後,就開始吧!

STEP 1: Download the image

首先,要先下載 Raspberry Pi 的作業系統,可以到官方網站(https://www.raspberrypi.org/downloads/),找到 official 或是 Third party 的 image。

我是下載 Raspbian Stretch with desktop and recommended software 這個 image。

Raspberry Pi OS

Raspbian 是官方版的作業系統,內建許多軟體,包括: Python, Scratch, Sonic Pi, Java 等等。

STEP 2: Writing an image to the SD card

下載好 image 之後,就可以製作開機碟。

可以用 Linux command dd 來寫入,但使用這個 command 一定要特別小心路徑不要 key 錯了。

或者,也可以用 Etcher 這個 SD card writing tool 來製作,方法如下:

  • 下載並安裝 Etcher: https://www.balena.io/etcher/
  • 執行 Etcher 並插入 SD card
  • 選擇下載好的 image (.img or .zip 都可以)
  • 選擇 SD card
  • Flash !
Using Etcher to writing an image

完成之後,桌面就會出現一個名為 boot 的 device。

STEP 3: Enable SSH

因為安全性的考量,SSH 在 default 狀態下是關閉的。要完成 headless 的設置,需要先啟用 SSH 功能。方法是在 SD card(剛剛製作好的開機碟)裡放一個 ssh 的檔案,Pi 在開機的過程中,會檢查 SD card 裡有沒有 ssh 這個檔案,若這個檔案存在,就會啟用 SSH,同時把這個檔案刪除。( ssh檔案的內容不重要,基本上讓他是空的就行了)

開啟 terminal 並輸入以下指令:

touch /Volumes/boot/ssh

/Volumes/boot 是 SD card 在 Mac 上的路徑。

STEP 4: Setting up WiFi config

因為是要用 SSH 的方式連上 Pi,所以一定要先設定好 WiFi config,讓 Pi 在開好機之後,能夠自動連上設定的這組 WiFi。

首先,先在 SD card 裡建立一個 wpa_supplicant.conf 的檔案:

touch /Volumes/boot/wpa_supplicant.conf

接著,把以下內容貼上:

country=TW
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="WIRELESS_NETWORK_NAME"
psk="WIRELESS_NETWORK_PASSWORD"
}

這邊需要修改的是 country ,可以參考 ISO 3166–1 country code 裡面的二位代碼。另外在 network 項目裡面的 ssidpsk 就輸入自己的 WiFi SSID & password。

完成後,再確認 ssh & wpa_supplicant.conf 這兩個檔案有放在 boot 裡:

ssh & wpa_supplicant.conf in boot

STEP 5: Boot up Raspberry Pi

接著,先把 SD card 插入 Pi (SD card 插槽在板子下方):

Insert SD card

再接上 power (micro USB),Pi 就會自動開機,並且 enable SSH, 以及設定 WiFi 了,大約需要一分多鐘的時間完成。

我們可以觀察 LED 燈來看 Pi 目前的狀態:

Red PWR LED

  • 恆亮表示 power 正常
  • 閃爍或熄滅表示 power 低於 4.63V (正常需要 5V)

Green ACT LED

LED

完成之後,記得不能把 SD card 移除,因為 Raspberry Pi 並沒有儲存設備,作業系統及使用者資料都是存在這張 SD card 。

STEP 6: Connect to Raspberry Pi via SSH

再來,就可以 SSH 連上 Pi 了。打開 terminal 並輸入以下指令來產生 SSH key,並且連線:

ssh-keygen -R raspberrypi.local
ssh pi@raspberrypi.local
  • 出現提示 Are you sure you want to continue connecting (yes/no)? 就輸入 yes
  • 輸入 Pi 的預設密碼: raspberry
  • 若 ssh 沒有反應,可以按 Ctrl-C 離開,然後再試一次。若是一直連不上就要檢查是不是哪個步驟有錯。

看到下面這個畫面就代表已經成功的連上 Pi 囉!

Connect to Pi over SSH

After

後續可以透過指令,開啟設定頁面做設定:

sudo raspi-config
Pi configuration

也可以透過以下指令來 update:

sudo apt-get update -y
sudo apt-get upgrade -y

VNC (Graphical Desktop-Sharing System)

如果想試試以圖形介面登入,可以使用 VNC 這套畫面分享及遠端操作軟體。方法如下:

  • 在 Pi 上安裝 VNC server:
sudo apt-get install realvnc-vnc-server realvnc-vnc-viewer
vncserver

server 啟動成功會顯示 Pi 的 IP & port。

  • 在 Mac 上開啟 VNC,並且輸入 Pi 的 IP & port。就可以開啟圖形介面了!
VNC Viewer

REFERENCE

--

--