發表文章

目前顯示的是有「Linux-Raspberry Pi」標籤的文章

[Raspberry Pi] 啟用Raspberry Pi 3B+ 序列埠功能

圖片
Introduction 對於Raspberry Pi 3B+來說,它的UART有三種功能: 供內部藍牙使用 控制終端使用(serial console) 與其他設備進行序列通訊(serial communication) Raspberry Pi 3B+有兩個UART(Universal Asynchronous Receiver/Transmitter,Universal是指可以自定義傳輸格式與baud rate,Asynchronous是指不依賴CPU時鐘),分別為PL011 UART與mini UART,PL011使用獨立的硬體(ARM PrimeCell PL011)去控制傳輸的baud rate,所以傳輸的性能與穩定度都很好, 但是mini UART的baud rate是使用系統核心時脈計算出來的,只能算半軟體的URAT,就算設定到115200bps實際上只有72000bps左右而已, 相較之下效能與穩定度都不足。 PL011 UART在系統中是/dev/ttyAMA0,mini UART是/dev/ttys0,Raspberry Pi 3B+有兩個序列埠口為serial0與serial1, serial0是GPIO埠口, 使用GPIO 14(pin 8)與GPIO 15(pin 15), serial1是藍芽; 在系統預設中,serial0是關閉的,serial1是指向/dev/ttyAMA0,所以無論是想用序列埠口作為serial console或者與其他設備做serial communication,首先要做的是啟用serial0這個序列埠口。 Enable Serial Port 本篇使用的硬體為Raspberry Pi 3B+,映像檔版本為2018-11-13-raspbian-stretch-lite;要啟用serial0可以使用raspi-config或者修改/boot/config.txt兩種方式。 使用raspi-config 進入Raspberry Pi Software Configuration Tool sudo raspi-config 選擇5 Interfacing Options並按下Enter鍵。 選擇P6 Serial並按下Enter鍵。 預設啟動serial interface會做...

[Raspberry Pi] 建立動態MOTD

圖片
Introduction to MOTD 在Unix-like系統中,會使用/etc/motd來發布「今日消息」(message of the day),當使用者在本地或遠端登入系統時,可以顯示系統管理員向使用者發送的訊息;但是原始的motd只能使用純文本(plain text)的方式呈現,所能傳遞的資訊相對有限。 在Debian與Ubuntu的系統中可以利用多個shell script的組合來建立「動態」的motd, 讓管理員可以更方便的發送資訊;動態motd可以依照需求分成header、logo、message、footer等多個shell script,header放系統的標題資訊,logo用ASCII繪製系統、公司、或者其他logo,message放給使用者的動態資訊,footer放其他的頁尾資訊,管理者可以隨時更換這些部分,來組合成一個完整、合適的motd。 下圖是由一個shell script檔建立的motd,左方顯示了一個彩色的Raspberry Pi logo,右方是利用shell script取得的動態資訊,如日期、kernel版本、OS版本、系統啟用時間、記憶體使用率、CPU負載率、執行中的程序數量等資訊。 Build Dynamic MOTD 本篇使用的硬體為Raspberry Pi 3B+,映像檔版本為2018-11-13-raspbian-stretch-lite;以下的步驟也在其他armv7與一般PC的Debian系統中,順利的建立動態MOTD。 建立/usr/sbin/update-motd檔。 #!/bin/sh # # update-motd - update the dynamic MOTD immediately # # Copyright (C) 2008-2014 Dustin Kirkland &ltdustin .kirkland="" gmail.com=""&gt # # Authors: Dustin Kirkland &ltdustin .kirkland="" gmail.com=""&gt # [ comments edited out by ownyour...