本章節的命令操作均在板卡的終端執行
1 初探/sys目錄
與/proc目錄類似,/sys目錄下的文件/文件夾向用戶提供了一些關于設備、內核模塊、文件系統以及其他內核組件的信息, 如子目錄block中存放了所有的塊設備;子目錄bus中存放了系統中所有的總線類型,有i2c、usb、sdio、pci等; 子目錄class按類型歸類設備,如leds、lcd、mtd、pwm等。
嘗試在板卡的終端執行以下命令查看sys各層級的目錄內容:
#在板卡上的終端執行以下命令查看
ls /sys
ls /sys/class
ls /sys/class/leds
ls /sys/class/leds/work
可以看到,本板卡的/sys/class/leds目錄下分別有:work ,開發板卡上綠色像心臟一樣跳動的燈
以其中的/sys/class/leds/work目錄為例,它下面又包含brightness、device、max_brightness、power、subsystem、trigger、uevent等文件。 其中brightness表示LED燈的亮度,trigger表示LED燈的觸發方式,我們可以通過echo、cat等命令來修改或查看這些文件, 從而達到控制LED燈的目的。下面以實例進行講解。
2 控制心跳燈
控制心跳燈前,需要切換為root用戶操作
在控制心跳燈前,我們可以先看下心跳燈的觸發方式
cat /sys/class/leds/work/trigger
可以看到,等選中的是heartbeat的狀態
LED燈設備下的brightness文件表示了它的亮度值。本板卡提供的內核驅動中, 心跳燈是直接IO控制的,它的亮度范圍為1和0表示亮滅;
#滅了心跳燈,心臟毀滅
echo 0 > /sys/class/leds/work/brightness
#亮了心跳燈,心臟永恒
echo 1 > /sys/class/leds/work/brightness
當我們完成這操作后,可以查看心跳燈現在的觸發方式,現在處于無控制狀態
如果想將燈切換為心跳模式,執行完后,心跳燈重新進入心跳狀態
#在root權限下進行下列操作
echo heartbeat > /sys/class/leds/work/trigger
3 初探/dev目錄
除了/proc和/sys目錄外,/dev目錄也包含了非常豐富的設備信息,該目錄下包含了Linux系統中使用的所有外部設備, 如/dev/tty為串口設備、/dev/ram為內存、通過這些設備文件,我們也可以訪問到對應的硬件設備。
嘗試使用以下命令查看dev目錄的內容:
ls /dev
ls /dev/input
以上圖中/dev/input目錄下的內容為例,上面的event0是輸入設備的事件文件接口, 通過它們可以獲知設備上報的輸入事件。event后帶的數字并不是跟設備綁定的, 可以查看文件/proc/bus/input/devices了解它們分別代表什么。
在板卡的終端執行以下命令:
cat /proc/bus/input/devices
如上圖所示,可看到當前板卡的包含了多個個輸入設備,在具體的板卡上可能會有差異:
event0:名稱為rk805 pwrkey,它對應的電源鍵on/off,input0,部分板卡會不具備該功能。
event1:名稱為goodix-ts,它對應的gt9xx的觸摸屏,input1,部分板卡會不具備該功能。
event2:名稱為hdmi_cec_key,它對應的接收和處理 HDMI CEC 按鍵事件,input2,部分板卡會不具備該功能。
event3:名稱為adc-keys,它對應的是Recovery鍵,input3,部分板卡會不具備該功能。
event4:名稱為rk-headset,它對應的是耳機插入檢測,input4,部分板卡會不具備該功能。
提示
Recovery鍵的刷機功能只作用于內核啟動的時候,進入系統后,該按鍵就失去了作用,我們可以通過操作該按鍵,下面以該按鍵為例
4 檢測按鍵
在板卡中,我們可以使用evtest工具更方便地查看硬件當前接入的輸入設備, 并且對其進行實時檢測
apt安裝evtest工具
sudo apt install evtest 注意:第一次使用apt install命令前,需要先執行以下執行刷新鏡像源
sudo apt update 使用evtest工具:
sudo evtest 執行命令后,它會掃描/dev/input目錄下的event設備輸入事件文件,并列出到終端,
它提示我們可以通過數字選擇對應的設備進行測試,具體請根據自己板卡上的輸出進行選擇。
我們選擇”adc-keys”,即按’3’然后回車確認,可執行“Ctrl”+“c”退出
adc-keys對應的是Recovery按鍵,當我進行一次按下和松開操作后,如下圖所示