树莓派的很多 DIY 玩法都要求联网和 ssh 登录,但这对于没有屏幕、没有键盘、没有网线的裸板树莓派玩家来说,就不是一件特别容易的事了。

幸运的是,树莓派官方在2016年5月的发布日志里提到,Raspbian 系统支持用户在 boot 目录下新建 wpa_supplicant.confssh 文件开机初始化 WiFi 和 ssh。

这个小技巧对于裸板树莓派玩家尤其有用。

配置 WiFi

将刷好 Raspbian 系统的 SD 卡用电脑读取。在 boot 分区,也就是树莓派的 /boot 目录下新建 wpa_supplicant.conf 文件。按如下格式写入:

  1. ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
  2. update_config=1
  3. country=<Insert country code here>
  4. network={
  5. ssid="<Name of your WiFi>"
  6. psk="<Password for your WiFi>"
  7. }

<Insert country code here> 是地区代码,换成 CN (CN 指中国大陆)即可。

https://www.iso.org/obp/ui/ 这个地址可以查看所有地区代码

<Name of your WiFi> 换成 WiFi 名,<Password for your WiFi> 换成 WiFi 密码明文。

当树莓派启动的时候,这个文件会被移动到 /etc/wpa_supplicant/ 配置目录下,覆盖掉原来的网络配置。

一些注意事项:

  1. 最好填 2.4G 的 WiFi,网卡兼容性更好

无密码网络

如果 WiFi 不需要密码,则需要配置 key_mgmt=NONE,比如:

  1. network={
  2. ssid="testing"
  3. key_mgmt=NONE
  4. }

隐藏网络

有些 WiFi 设置了隐藏,则需要配置 scan_ssid=1,比如:

  1. network={
  2. ssid="yourHiddenSSID"
  3. scan_ssid=1
  4. psk="Your_wifi_password"
  5. }

多 WiFi 配置

树莓派可以同时配置多个 WiFi,只需要配置多个 network 即可,比如:

  1. network={
  2. ssid="SchoolNetworkSSID"
  3. psk="passwordSchool"
  4. priority=1
  5. id_str="school"
  6. }
  7. network={
  8. ssid="HomeNetworkSSID"
  9. psk="passwordHome"
  10. priority=2
  11. id_str="home"
  12. }

id_str 是标识符。priority 是优先级,越大优先级越高。

配置 ssh

和 WiFi 配置相似,同样在 boot 分区新建一个空白文件,命名为 ssh。注意要小写且不要有任何扩展名。

当树莓派启动的时候,会去检查 boot 目录。如果有 ssh 文件,就会开启 ssh 服务。

参考资料

  1. The latest update to Raspbian
  2. Prepare SD card for Wifi on Headless Pi
  3. SSH (Secure Shell)
  4. Setting up a Raspberry Pi headless
  5. http://shumeipai.nxez.com/2017/09/13/raspberry-pi-network-configuration-before-boot.html