2021-05-12 14:32:11
minicom安裝設定及使用詳解
#minicom簡介
##安裝
minicom是linux下一款常用的串列埠偵錯工具。Ubuntu環境下,使用如下命令安裝
sudo apt-get install minicom
##設定
使用前需要進行設定,執行
sudo minicom -s
可開啟minicom並進入設定模式,使用方向鍵,選擇需要設定的專案,如 Serial port setup ,回車進入設定,可以看到多個設定項,此時遊標在最下方。
需要修改某個設定,則輸入對應的字母,游標即會跳轉到對應的項,編輯後,回車確認,游標再次回到最下方。
一般而言,需要修改
A - Serial Device
E - Bps/Par/Bits
F - Hardware Flow Control
A設定項,指定USB裝置。一般USB轉串列埠會生成裝置/dev/ttyUSBx,x是數位序號。可以執行以下命令確認下
ls -l /dev/ttyUSB*
E設定項,根據實際情況,指定波特率等引數
F設定項,硬體流控,要看你的裝置是否有。如果沒有,或者你不確定的話,可以先關掉,將預設的Yes切換為No.
修改好之後,回車退到上一個介面,此時記得往下,選擇 Save setup as dfl 將剛剛的修改儲存為預設設定,避免下次使用還需要再次設定。
最後,選擇 Exit 會退出設定介面,並開啟minicom。選擇 Exit from Minicom 則會直接退出minicom。
##退出
minicom使用字首按鍵 Ctrl-A,即執行特殊操作時,都需要先按 Ctrl+A,再按某個按鍵使用對應的功能。
Ctrl+A,再按 Z, 可檢視幫助,從幫助可以看到,退出時,要先按 Ctrl+A,再按 X
#設定許可權
minicom 本身不需要sudo許可權,但因為要開啟串列埠裝置/dev/xxx ,所以一般會需要使用sudo來啟動minicom。
這裡我們可以修改下串列埠裝置的許可權,這樣以後就不用使用sudo了。
##方式一:使用命令更改
簡單粗暴地使用chmod命令修改
sudo chmod 666 /dev/ttyUSB0
##方式二:設定udev規則(推薦)
修改組態檔
sudo vim /etc/udev/rules.d/70-ttyusb.rules
增加一行
KERNEL=="ttyUSB[0-9]*", MODE="0666"
修改後,需要重新插拔裝置,以重新生成裝置節點。
#自動設定裝置名
如果日常只用一個裝置,裝置名固定是/dev/ttyUSB0,那每次直接開啟minicom即可。
但當你可能需要使用多個串列埠時,問題就來了,每次需要先檢視下裝置名
ls /dev/ttyUSB*
再設定下minicom,手工改成這個裝置,才能使用。一點都不方便。
這裡給出兩種解決方式
##方式一:自動修改組態檔
首先建立組態檔
sudo vim /etc/minicom/minirc.ttyUSBx
內容如下
# Machine-generated file - use "minicom -s" to change parameters.
pu port /dev/ttyUSB0
pu rtscts No
編寫指令碼~/.myminicom.sh,自動檢測裝置,並根據選擇的裝置,修改組態檔,再開啟minicom
com() {
ports=`ls /dev/ttyUSB*`
select port in $ports;do
if [ $port ]; then
echo "You select the choice '$port'"
port=${port##*/}
sed -i "s/(pu port .*/dev/).*/1$port/" /etc/minicom/minirc.ttyUSBx
exec minicom ttyUSBx $@
break
else
echo "Invaild selection"
fi
done
}
在~/.bashrc中引入此函數
echo 'source ~/.myminicom.sh' >> ~/.bashrc
source ~/.bashrc
即可直接使用命令 com 呼叫此函數,自動列出裝置,按數位鍵選擇即可。
##方式二:使用引數指定裝置(推薦)
研究下mincom的引數後,發現有更簡單的實現方式,使用minicom的-D引數。
同樣編寫指令碼~/.myminicom.sh
com() {
ports_USB=$(ls /dev/ttyUSB*)
ports_ACM=$(ls /dev/ttyACM*) #arduino
ports="$ports_USB $ports_ACM"
select port in $ports;do
if [ "$port" ]; then
echo "You select the choice '$port'"
minicom -D "$port" $@"
break
else
echo "Invaild selection"
fi
done
}
在~/.bashrc中引入此函數
echo 'source ~/.myminicom.sh' >> ~/.bashrc
source ~/.bashrc
新增完畢後,可使用 com 命令呼叫。
##使用效果
zhuangqiubin@zhuangqiubin-PC:~$ com
1) /dev/ttyUSB0
2) /dev/ttyUSB1
#?
此時輸入數位,選擇要的開啟的串列埠裝置,迴車即可。
#自動儲存log
讓 minicom 自動儲存log,可以方便偵錯。
檢視引數,minicom可以使用 -C 引數指定儲存log檔案。於是完善指令碼,自動把log以日期命名,儲存到/tmp目錄下。
注意,tmp目錄關機即清空,如果想持久儲存log,需要修改到其他目錄。
修改後指令碼如下
com() {
ports_USB=$(ls /dev/ttyUSB*)
ports_ACM=$(ls /dev/ttyACM*) #arduino
ports="$ports_USB $ports_ACM"
datename=$(date +%Y%m%d-%H%M%S)
select port in $ports;do
if [ "$port" ]; then
echo "You select the choice '$port'"
minicom -D "$port" -C /tmp/"$datename".log "$@"
break
else
echo "Invaild selection"
fi
done
}
#暫停輸出
Ctrl+A 是mimicom的特殊功能字首按鍵,但還有另一個很實用的作用,就是暫停螢幕輸出。
在裝置開始大量輸出log時,基本看不清螢幕內容。此時可以按 Ctrl+A,暫停輸出,方便檢視所需log。
#開啟minicom時間戳
在minicom中,按下 Ctrl+A,再按 N,即可啟用時間戳,在每行log前新增當前系統的時間戳。
用於觀察啟動時間之類的,還是比較方便。
#傳送接收檔案
裝置端支援的話,按下 Ctrl+A,再按 S,即可向裝置端傳送檔案。
按 Ctrl+A,再按 R,可接收檔案。
#自動換行
當你的log中可能存在,單行長度超過螢幕寬度的log時(比如啟動時列印的kernel cmdline),可以使用mimicom的自動換行功能。
在啟動minicom時加上 -w 選項,或者在minicom中,按 Ctrl+A 再按 W。
#更多功能
可以使用 minicom -h 檢視,也可在mincon中,按 Ctrl+A 再按 Z 檢視。
有什麼其他使用功能或技巧,也歡迎留言告訴我。
相關文章