1. 程式人生 > >樹莓派3B+首次登陸通過網路

樹莓派3B+首次登陸通過網路

樹莓派3B+預設串列埠不能登入,即使可使用可需要通過連線方式連線,如何才能直接通過網路ssh登入樹莓派呢?

串列埠問題及使用

樹莓派3的UART串列埠的使用問題,該串列埠問題的官方反饋及回覆請參考這兩篇官方博文“https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=137932”和“https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=138223

根據官方的反饋和回覆,我們瞭解到樹莓派3上使用者目前無法正常是使用GPIO中的UART串列埠(GPIO14&GPIO15),也就是說使用者無論是想用串列埠來除錯樹莓派,還是想用GPIO中的串列埠來連線GPS,藍芽,XBEE等等串列埠外設目前都是有問題的。

原因是樹莓派CPU內部有兩個串列埠,一個是硬體串列埠(官方稱為PL011 UART),一個是迷你串列埠(官方成為mini-uart)。在樹莓派2B/B+這些老版樹莓派上,官方設計時都是將“硬體串列埠”分配給GPIO中的UART(GPIO14&GPIO15),因此可以獨立調整串列埠的速率和模式。而樹莓派3的設計上,官方在設計時將硬體串列埠分配給了新增的藍芽模組上,而將一個沒有時鐘源,必須由核心提供時鐘參考源的“迷你串列埠”分配給了GPIO的串列埠,這樣以來由於核心的頻率本身是變化的,就會導致“迷你串列埠”的速率不穩定,這樣就出現了無法正常使用的情況。

目前解決方法就是,關閉藍芽對硬體串列埠的使用,將硬體串列埠重新恢復給GPIO的串列埠使用,也就意味著樹莓派3的板載藍芽和串列埠,現在成了魚和熊掌,兩者無法兼得。

下面我就講講如何恢復硬體串列埠的方法

編輯/boot目錄下的config.txt檔案

sudo vim /boot/config.txt

    新增下面一行:

dtoverlay=pi3-miniuart-bt

系統預設 serial1 連結 /dev/ttyAMA0,當配置這個 dtoverlay 後,serial1 連結到 /dev/ttyS0,serial0 連結到 /dev/ttyAMA0。更深層的動作觸發原理,是在 udev 裡搞的。

 

網口使用

樹莓派的SD卡在linux下是可以直接讀取的,可以通過修改預設靜態IP來ssh登入樹莓派。前提是要知道樹莓派的使用者名稱和密碼。

編輯/etc下dhcpcd.conf

sudo vim /etc/dhcpcd.conf

在最後新增靜態IP配置行:

interface eth0

static ip_address=192.168.10.111/24

static ip6_address=fd51:42f8:caae:d92e::ff/64

static routers=192.168.10.1

static domain_name_servers=192.168.10.1 114.114.114.114 8.8.8.8 fd51:42f8:caae:d92e::1

如此樹莓派重啟後可通過192.168.10.111遠端ssh登入。

 

參考:

  1. 樹莓派3 B+ 的串列埠(USART)使用問題
  2. 樹莓派 3B+ 使用串列埠終端輸出
  3. 樹莓派3B+遠端登入(ssh)詳細配置方法