DRV_07_UInput分析_用戶態創建input_dev

資料下載

coding無法使用瀏覽器打開,必須用git工具下載:

代碼語言:JavaScript代碼運行次數:0運行復制

git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git

視頻觀看

百問網驅動大全

Uinput分析_用戶態創建input_dev

參考資料:

1. 概念

uinput是一個內核模塊(驅動),它允許應用程序模擬輸入設備(input_dev)。 應用程序通過訪問/dev/uinput或/dev/input/uinput:

創建一個虛擬的輸入設備設置它的屬性APP發送數據給它,讓它產生輸入事件uinput就會把這些輸入事件分發給其他使用者(APP或內核里其他模塊)

框圖如下:

DRV_07_UInput分析_用戶態創建input_dev

2. 編寫應用程序3. 上機實驗3.1 設置工具

ubuntu中執行:

代碼語言:javascript代碼運行次數:0運行復制

export ARCH=armexport CROSS_COMPILE=arm-linux-gnueabihf-export PATH=$PATH:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin

3.2 配置內核

配置內核:執行make menuconfig

代碼語言:javascript代碼運行次數:0運行復制

-> Device Drivers  -> Input device support    -> Generic input layer         -> Miscellaneous devices         <M>   User level driver support

3.3 編譯驅動代碼語言:javascript代碼運行次數:0運行復制

book@100ask:~/100ask_imx6ull-qemu$ cd linux-4.9.88book@100ask:~/100ask_imx6ull-qemu/linux-4.9.88$ make modules

成功的話,可以得到:

代碼語言:javascript代碼運行次數:0運行復制

drivers/input/misc/uinput.ko

復制到如下目錄:

代碼語言:javascript代碼運行次數:0運行復制

$ cp drivers/input/misc/uinput.ko ~/nfs_rootfs/

3.4 編譯測試程序

把代碼04_uinput上傳到Ubuntu,設置好交叉編譯工具鏈后,在04_uinput目錄下執行make命令即可。

代碼語言:javascript代碼運行次數:0運行復制

$ make$ cp uinput_test ~/nfs_rootfs/

3.5 啟動QEMU

在Ubuntu中執行:

代碼語言:javascript代碼運行次數:0運行復制

$ cd ubuntu-18.04_imx6ul_qemu_system$ ./qemu-imx6ull-gui.sh

3.6 掛載NFS、實驗

在QEMU中執行:

代碼語言:javascript代碼運行次數:0運行復制

$ mount -t nfs -o nolock,vers=3 10.0.2.2:/home/book/nfs_rootfs /mnt$ insmod /mnt/uinput.ko$ ls -l /dev/uinput   // 確認設備節點// 后臺運行uinput_test/mnt/uinput_test &// 看到提示這個提示時: Will sleep 60s, in this time you should run ts_calibreate// 運行校準程序// 注意:如果有真實的觸摸屏驅動,需要指定使用虛擬的設備節點//      方法示例: export TSLIB_TSDEVICE=/dev/input/event3ts_calibrate// 看到提示這個提示時: Will sleep 60s, in this time you should run ts_test// 運行測試程序ts_test

4. 結合應用程序分析uinput

ibrate

// 看到提示這個提示時: Will sleep 60s, in this time you should run ts_test // 運行測試程序 ts_test

代碼語言:javascript代碼運行次數:0運行復制

### 4. 結合應用程序分析uinput

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享