rxtxlinux
㈠ 樹莓派怎樣安裝rxtx串口驅動
1.樹莓派的第一排的第三,四,五個分別,也就是下圖的6,8,10三個埠分別是地,TX與RX,與被連接設備連接起來。注意樹莓派的TX要連接從設備的RX,樹莓派的RX要連接樹莓派的TX
2.樹莓派上只有一個串口,系統默認將它作為調試口,所以不能直接當成普通串口進行編程和使用,需要先將調試口的配置去掉,再使用。此處需要修改兩處文件
2.1 修改/boot/cmdline.txt
在終端輸入如下指令
[plain] view plain
sudo nano /boot/cmdline.txt
打開後將紅色部分刪除
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
刪除後,變成如下結果保存退出
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
2.2 修改 /etc/inittab
在終端輸入如下指令
[plain] view plain
sudo nano /etc/inittab
打開後將最後一行注釋掉 在前面加上一個#號即可
#T0:23:respawn:/sbin/getty
-L ttyAMA0 115200 vt100
3.修改完畢後,需要在樹莓派上安裝一個minicom,這里的minicom是Linux平台的串口調試工具,相當於Windows上的串口調試助手
3.1 安裝minicom,輸入以下命令
[plain] view plain
sudo apt-get install minicom
3.2 安裝完畢後需要對minicom進行配置,此處配置文件需要root許可權,不然無法保存配置的參數,那麼在命令行中輸入如下命令
[plain] view plain
sudo passwd root
執行此命令後系統會提示輸入兩遍的root密碼,輸入你想設的密碼即可,然後在執行
[plain] view plain
sudo passwd --unlock root
這樣就解鎖了root賬戶
3.3 切換到root賬戶,再次打開命令行,輸入minicom參數配置命令
[plain] view plain
minicom -s
在主菜單的第三項Serial Port Setup,進入下一級菜單,根據菜單項的提示字母選擇,按A將串口設備修改為 /dev/ttyAMA0 ,按E將波特率修改為9600或者自己需要的數值,設置好以後返回主菜單,選擇Save Setup as Dfl
然後選擇Exit,此時如果正常的話就可以進行串口收發了,這里我的樹莓派是連接到一台PC上去的,我利用PC的串口調試軟體成功進行了收發
tips: 按CTRL+A,接著按Z可以查看minicom的幫助
㈡ 如何在Linux下用java讀寫串口設備
java 是否有許可權訪問該串口
㈢ Linux獲取交換機埠信息
LLDP 可以讓你准確的知道伺服器所連接的交換機埠號。
LLDP是一種工業標准協議,用於取代EDP或CDP等專用鏈路層協議。LLDP的目標是提供一個inter-vendor兼容機制,向相鄰網路設備發送鏈路層通知。
lldpd是一個LLDP協議的一種實現,給各種Unixes使用。除此之外,它還支持一些專有協議。
實現交換機埠的抓取,目前我知道的有兩種工具,一種是lldpad,另一種是lldpd。
這兩個工具做了一下對比,最終選擇了lldpd。原因如下:
lldpad: https://github.com/jrfastab/lldpad
lldpd: https://github.com/vincentbernat/lldpd
通過對比可以看到lldpad最近一次更新,已經是5年前了。而lldpd的最近一次更新在本月。
lldpd可以將輸出的信息轉化為json格式,非常方便使用。
需要先配置好配置好epel-release源,然後直接yum安裝即可。
安裝好之後,你可以修改/etc/sysconfig/lldpd文件,來配置一些參數。
lldpd有兩個模塊。一個是lldpd的後台程序,用於接收和發送LLDP報文;一個是lldpcli用來查詢和配置後台程序的工具。
將上述命令,加上 -f json 可以轉變輸出結果。這個功能非常有用,有利於自動化處理這些數據。
使用x722 LOM,當lldpad啟動時,lldptool -L adminStatus = rxtx -i < interface name>然後lldptool -tni < interface name>運行時,NIC埠連接到啟用了LLDP的交換機,不會返回LLDP信息。 (其中LLDP =鏈路層發現協議)
運行commnand " echo lldp stop > / sys / kernel / debug / i40e / < PCIe路徑> / command" ;.由於LOM沒有FCoE功能,沒有DCBx要求,所以沒有真正的功能影響。 (FCoE =乙太網光纖通道)
根據Intel設計,x722適配器默認處理所有LLDP流量,LLDP流量將不會轉到主機CPU,除非使用在x722中停止LLDP功能的命令。
㈣ rxtx是什麼意思
RXTX項目提供了Windows,Linux,MacosX,Solaris操作系統下的兼容javax.comm串口通訊包API的實現,為其他研發人員在此類系統下研發串口應用提供了相當的方便。RXTX是個提供串口和並口通信的開源java類庫,由該項目發布的文檔均遵循LGPL協議。為了使我們的程式使用RXTX作為串口通訊的底層API,需要配置他的環境。仍然以Linux系統平台為例:1.復制librxtxSerial.so,librxtxParallel.so到$JAVA_HOME/lib/$(ARCH)/。2.復制RXTXcomm.jar到$JAVA_HOME/ext/,或在應用程式啟動的CLASSPATH中包含RXTXcomm.jar。
㈤ FreeBSD下如何實現JAVA串口AT指令通信急!
引言
FreeBSD 是從 BSD 衍生而來的高級操作系統,BSD 則是加利福尼亞大學伯克力分校開發的 UNIX® 版本。它提供了很高的性能,與其他系統的兼容性更強,並且需要的系統管理更少。FreeBSD 包含了內核級的狀態式 (Stateful) IP 防火牆以及許多其他服務,如 IP 代理網關、訪問控制列表、強制訪問控制、基於 Jail 的虛擬主機以及加密保護的存儲。
在開發內核代碼或運行開發內核時,偶爾會發生內核崩潰。重要的是診斷核心轉儲以便提取有用的信息。如果嘗試使用同一台開發計算機來調試此核心轉儲,則可能影響系統的性能。每次只能調試一個核心轉儲。要想高效地調試內核的核心轉儲,最好是在開發計算機和目標計算機之間建立遠程調試會話,然後使用串列通信遠程調試內核。
kgdb 實用程序是基於 gdb 的調試器,允許調試內核核心文件。FreeBSD 5.3 及更高版本提供了 kgdb 實用程序。如果您有早期版本的 FreeBSD,那麼仍然可以使用 gdb -k 來讀取核心轉儲文件。kgdb 可幫助在內核代碼中放置斷點,這樣您就可以逐步通過斷點來觀察變數。
本文介紹如何使用串列通信埠來設置調試環境、如何編譯經過修改的內核代碼,以及如何開始內核調試。還介紹了一些故障診斷提示。
設置調試環境
要設置進行 FreeBSD 內核調試的遠程調試環境,您需要兩台計算機:一台目標計算機和一台開發計算機。目標計算機上運行需要調試的新內核映像。開發計算機用於調試目標計算機上運行的內核。為了獲得更好的性能,您可以使用配置較好的計算機作為開發計算機。
零數據機電纜 (Null modem cable)
零數據機 (Null modem) 是一種使用 RS-232 串列電纜連接兩台計算機的通信方式。原始 RS-232 標准只定義了使用數據機連接計算機的方式。使用零數據機連接時,發送線和接收線要交叉連接。根據使用目的而定,有時需要交叉連接一個或多個握手線。有多種連接方式可供選擇,因為標准中並未涵蓋零數據機連接。
如果將零數據機電纜連接到串列埠,與使用數據機時的速率 (9600 bps) 相比,調試器能夠以它當前的最高速率 (19200 bps) 運行。通常認為這種配置比使用數據機更可靠,其原因在於:
零數據機電纜是一種允許在兩個串列埠之間發送數據的串列電纜。通常,將串列埠與串列設備連接。在本例中,必須配置目標計算機以接受串列埠到串列埠的連接。有一點很重要,那就是要使用零數據機電纜,如果您使用普通的串列電纜,目標計算機則期望與串列設備通信,而不是與另一個串列埠通信,這樣您就無法調試該計算機。
當您使用零數據機電纜在兩台計算機之間建立直接串列連接時,您的電纜必須按下面 清單 1 中顯示的方式連接。
清單 1. 25 針零數據機電纜
2 3 Transmit Data
3 2 Receive Data
4 5 Request to Send
5 4 Clear to Send
6 20 Data Set Ready and Carrier Detect
7 7 Signal Ground
20 6 Data Terminal Ready
修改內核文件
需要修改 FreeBSD 內核中的特定內核配置文件,以使其了解使用串列通信的遠程內核調試環境。首先,備份原始的 /usr/src/sys/i386/conf/GENERIC 配置文件,如下所示:
$cd /usr/src/sys/i386/conf/
$cp GENERIC MYKERNEL
在開發計算機上,使用您偏愛的編輯器(vi 或 emacs)打開該配置文件:
$ emacs /usr/src/sys/i386/conf/MYKERNEL
添加如下所示的幾行代碼:
options ddb
#This line will add the debugger into the kernel after the kernel compilation.
makeoptions debug = -g
#This line will tell the compiler to add debugging information into the new compiled
#kernel image, which you are going to put on target machine.
為了激活串列埠通信以進行內核調試,您需要修改同一個內核配置文件。在 /usr/src/sys/i386/conf/MYKERNEL 文件中,查找 sio0 單詞,它指向計算機上的 COM1 串列埠。設置 0x80 埠標志,如下所示:
device sio0 at isa? port IO_COM1 flags 0x80
編譯 FreeBSD 內核
如果已經更改了內核配置文件,就必須編譯內核,以便可以調試新內核映像。
使用下列命令配置內核:
572
$ cd /usr/src/sys/i386/conf/
$ config -g MYKERNEL
-g 選項將調試信息添加到內核映像中。成功運行上述命令之後,注意它如何在 /usr/src/sys/compile/ 目錄下創建 MYKERNEL 目錄。
將該目錄改為 /usr/src/sys/compile/MYKERNEL/,如下所示:
$ cd /usr/src/sys/compile/MYKERNEL/
您需要通過發出以下命令來驗證不同模塊或文件之間的依賴關系:
$ make depend
此時,應構建內核並安裝新內核映像,如下所示:
$ make
$ make install
構建操作成功之後,根目錄中的內核映像被新構建的內核映像覆蓋;舊的內核映像保存為 kernel.old。
調試內核
開始之前,請確保已使用零數據機電纜將開發計算機和目標計算機連接起來。
編譯完成之後,將 /usr/src/sys/compile/MYKERNEL/kernel.debug 內核映像從開發計算機復制到目標計算機。由於需要調試新 kernel.debug 映像,您必須使用 kernel.debug 映像重新啟動目標計算機。
啟動計算機時發出以下命令以進入調試器模式:
load kernel.debug
boot -d
將啟動調試器界面,允許您從開發計算機上開始調試。輸入:
ddb> gdb
您只需鍵入 s (step) 即可立刻進入下一步。要啟動內核調試,請打開開發計算機上的 emacs 編輯器。它允許您打開 kgdb 實用程序;只有在 emacs 中 才能逐行進行內核調試。打開 emacs 編輯器之後,使用您希望調試的 kernel.debug 映像載入 gdb,並且使用 -k 選項進行內核調試。在 emacs 編輯器中顯示 kgdb 提示符。要啟動遠程調試會話,請輸入:
(kgdb) target remote /dev/cuaa0
故障排除
為了設置調試環境,擁有正確的零數據機電纜是非常重要的。本文討論了 25 針零數據機電纜。如果您希望使用 9 針零數據機電纜,請參見參考資料部分以了解有關零數據機設置的詳細信息。
在遠程調試開始時,您可能遇到 Ignoring packet error... 錯誤。該錯誤表示您的開發計算機和目標計算機具有不同的波特率。計算機的波特率是指每秒傳輸的符號數目。波特率與比特率可能並不相同,因為一個符號可能包含兩個以上的狀態。需要為兩台計算機設置相同的波特率。使用以下命令可以實現這一目標:
set baudrate 9600
結束語
使用遠程內核調試替代傳統內核調試有許多優勢。系統的性能根本不會受到影響,因為您是在開發計算機上對系統進行遠程調試(每次調試一個映像)。您可以調試盡可能多的內核映像(位於目標計算機上),一旦調試開始,它對於用戶來說就是透明的。如果 gdb 因出現問題而失去響應或終止,則啟動新的 gdb 實例並使用 target remote 命令連接到 kgdb。