2019年3月31日 星期日

樹莓派 Wifi 固定 IP 的新作法

最近發現前陣子裝好的新版 Rasbian 竟然無法連網, 右上角的網路狀態 (電波符號) 消失, 換成兩條垂直打叉叉的棒棒 (表示網路流量為 0), 滑鼠移到上面顯示 "No wireless interfaces found".

奇怪, 上個月下載新版 Raspbian 後按照下面我這篇之前的文章更新 /etc/network/interfaces 檔, 將 wlan0 的 IP 固定為靜態的 192.168.2.192 後運作都正常, 為何一個月之後就不行了?

設定樹莓派區網固定 IP

我將原始的 interfaces 覆蓋回去, 重新開機還是不行? 經搜尋資訊找到下面這篇文章 :

RPI 3 B+ No wireless interfaces found

我試了其中時間點為 Wed Dec 26, 2018 2:26 pm 的這篇回答, 作者是將 interfaces.dpkg-old 用 mv 覆蓋 interfaces, 我則是用 cp (目的是保留 interfaces.dpkg-old, 因為用 mv 是將其直接改名為 interfaces), 重開機確實恢復藍芽與 WiFi 連線了 :

$ cd /etc/network 
$ sudo cp interfaces.dpkg-old interfaces 
$ sudo reboot   

螢幕右上方的 WiFi 電波符號果然又出現了 :




顯然之前更改 /etc/network/interfaces 設定來取得固定 IP 的作法現在失靈了, 不能改 interfaces 要改哪裡呢? 我找到下面這篇文章 :

Headless Raspberry Pi - Setup WiFi and Static IP Address

其中的 Step 6 提到了 static IP 的新作法, 原來是要修改 /etc/dhcpcd.conf 這個檔案, 先備份原始檔再用 nano 開啟 dhcpcd.conf, 其原始內容都是 remark :

$ cd /etc
$ sudo cp dhcpcd.conf dhcpcd.conf.old
$ sudo nano /etc/dhcpcd.conf

加入下面內容 :

interface wlan0 
static ip_address=192.168.2.192 
static routers=192.168.2.1 
static domain_name_servers=192.168.2.1

其中 192.168.2.192 是我想要取得的固定 IP, 而 192.168.2.1 則是我的無線基地台網址, 這兩個 IP 都要視自己的情況去修改. 按 Ctrl+O 存檔後按 Ctrl+X 跳出 nano, 然後重開機 :

$ sudo reboot

用 ifconfig 可知果然順利取得想要的固定 IP :

pi@raspberrypi:~ $ ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:27:eb:63:2e:7b  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 9  bytes 524 (524.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9  bytes 524 (524.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.192  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 fe80::1775:4d8c:b01f:725  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:36:7b:2e  txqueuelen 1000  (Ethernet)
        RX packets 105  bytes 22193 (21.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 124  bytes 23623 (23.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

弄了一整個晚上終於搞定了.

沒有留言 :