2013年3月24日 星期日

Raspberry Pi : Serial Console

Raspberry Pi 只提供一個 RCA 端子和 HDMI 端子可供和電視連接,不能直接在電腦螢幕上看畫面,還得另外接一個鍵盤窩在地上打字,還真不習慣。雖然後來把網路線接好,就可以利用 ssh 連線的方式來玩,還滿懷念之前在 FreeBSD 上,利用自製的 null modem console 線來連線的方式,它連 boot 的過程都可以透過這條線來監看。
其實 Raspberry Pi 也有 Serial Port ,只是它在 GPIO 上,而且只能用 3.3 v ,而預設的訊息也是往這裡送,只是還得再去弄一條線,才能使用這個「ttyAMA0」。所以,如果不想透過網路或是無法用網路時怎麼讓 Raspberry Pi 直接和電腦連線,省去接鍵盤、接電視的麻煩?試了一下,先在 Raspberry Pi 中 /etc/inittab 的設定裡加一行,重新啟動 init 後,把我已有的 USB to Serial 線插入 Raspberry Pi 的 USB ,再將 null modem console 線接在另一端的 Serial 端子及電腦的 RS232 端子。就可以利用電腦透過 Serial Port 來連線了。

把 USB to Serail 的線插入 Raspberry 的 USB 後,利用 dmesg 應該可以看到類似下面的訊息:

[    4.016554] USB Serial support registered for generic
[    4.033586] usbserial: USB Serial Driver core
[    4.061275] usbcore: registered new interface driver pl2303
[    4.063663] USB Serial support registered for pl2303
[    4.065885] pl2303 1-1.2:1.0: pl2303 converter detected
[    4.151103] usb 1-1.2: pl2303 converter now attached to ttyUSB0
多了個「ttyUSB0」的裝置可用。

準備幫 /etc/inittab 「加料」

先執行底下這個指令:
sudo nano /etc/inittab
移到最後面加入底下這一行:
T1:23:respawn:/sbin/getty -L ttyUSB0 115200 vt100
按 Ctrl + x 儲存檔案並離開。

再執行底下這個指令來讓設定生效:

sudo init q
都完成後,確認線接好了,我們就在電腦端以終端機程式來連線了。


如何自動登入

如果是在測試階段,如何跳過輸入帳號、密碼這個程序呢?
其實只要在前面我們在 /etc/inittab 中為 ttyUSB0 設定的那行後面再加入 autologin 的參數,即可指定要自動登入的帳號。
T1:23:respawn:/sbin/getty -L ttyUSB0 115200 vt100 --autologin pi --noclear
上面的設定多了:

  • --autologin pi:自動以 pi 的帳號登入
  • --noclear:不清除前面的訊息

一樣的,改完 /etc/inittab 後,執行 「sudo init q」讓設定生效。


和 Console 相關的設定檔還有 /boot/cmdline.txt ,本來以為把裡面的「ttyAMA0」通通換成 ttyUSB0 就可以達到完全無螢幕的境界,試過了,還是必須等到系統 boot 完才能使用 ttyUSB0 來監看系統訊息。或許是還沒抓到「眉角」,再研究囉!


相關文章






沒有留言:

張貼留言

 
© 2009. Design by Pocket