0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ipkvm之RK3568 usb gadget

jf_30051736 ? 來源:jf_30051736 ? 作者:jf_30051736 ? 2023-06-09 18:01 ? 次閱讀

PiKVM - Open and inexpensive DIY IP-KVM on Raspberry Pi

開源項(xiàng)目:https://github.com/pikvm

目的:在 rk3568上實(shí)現(xiàn) pikvm所有功能 ,本篇主要實(shí)現(xiàn) rk3568 usb Gadget (hid,ums)

硬件

  • rk3568 / rk3399 / rk3588
  • usb otg接口

開發(fā)板既要當(dāng)USB OTG口既要當(dāng)鍵盤,又要當(dāng)鼠標(biāo)使用。則要生成兩個(gè)hid:,一個(gè)鍵盤hidg0,一個(gè)鼠標(biāo)hidg1。

1. 功能實(shí)現(xiàn)

1.1 kernel 配置

rockchip_linux_defconfig中添加

CONFIG_USB_CONFIGFS_F_HID = y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y

./build.sh 編譯kernel

./build.sh kernel

確認(rèn)kernel/drivers/usb/gadget/function/f_hid.c被編譯 f_hid.o

燒錄固件boot.img 切換到loader模式

pYYBAGSC9zWAA9FMAAI7qi2lZ48170.png

1.2 使能HID配置

進(jìn)入系統(tǒng)后執(zhí)行

echo usb_hid_en > /tmp/.usb_config & /etc/init.d/S50usbdevice restart

USB功能配置成功會(huì)有如下log,表明進(jìn)入U(xiǎn)SB Ready:

[ 5662.081549] android_work: sent uevent USB_STATE=CONNECTED
[ 5662.085903] configfs-gadget gadget: high-speed config #1: b
[ 5662.086881] android_work: sent uevent USB_STATE=CONFIGURED

查看 ls -l /dev/hid*

pYYBAGSC90KALHeaAAA93ugNVVI866.png

如果需要添加兩個(gè)hid,分別做keyboard,mouse

diff --git a/external/rkscript/S50usbdevice b/external/rkscript/S50usbdevice
index 1162f296f..0ad102150 100644
--- a/external/rkscript/S50usbdevice
+++ b/external/rkscript/S50usbdevice
@@ -64,6 +64,7 @@ function_init()
    mkdir ${USB_FUNCTIONS_DIR}/mass_storage.0
    mkdir ${USB_FUNCTIONS_DIR}/uvc.gs6
    mkdir ${USB_FUNCTIONS_DIR}/hid.usb0
+   mkdir ${USB_FUNCTIONS_DIR}/hid.usb1
 }
 configfs_init()
@@ -342,11 +343,19 @@ bind_functions()
    test $RNDIS_EN = on && syslink_function rndis.gs0
    if [ $HID_EN = on ]; then
+       # Keyboard
        echo 1 > /sys/kernel/config/usb_gadget/rockchip/functions/hid.usb0/protocol
        echo 1 > /sys/kernel/config/usb_gadget/rockchip/functions/hid.usb0/subclass
        echo 8 > /sys/kernel/config/usb_gadget/rockchip/functions/hid.usb0/report_length
        echo -ne x05x01x09x06xa1x01x05x07x19xe0x29xe7x15x00x25x01x75x01x95x08x81x02x95x01x75x08x81x03x95x05x75x01x05x08x19x01x29x05x91x02x95x01x75x03x91x03x95x06x75x08x15x00x25x65x05x07x19x00x29x65x81x00xc0 > /sys/kernel/config/usb_gadget/rockchip/functions/hid.usb0/report_desc
        syslink_function hid.usb0
+       
+       # Mouse 
+       echo 2 > /sys/kernel/config/usb_gadget/rockchip/functions/hid.usb1/protocol
+       echo 1 > /sys/kernel/config/usb_gadget/rockchip/functions/hid.usb1/subclass
+       echo 3 > /sys/kernel/config/usb_gadget/rockchip/functions/hid.usb1/report_length
+       echo -ne x05x01x09x02xa1x01x09x01xa1x00x05x09x19x01x29x03x15x00x25x01x95x03x75x01x81x02x95x01x75x05x81x03x05x01x09x30x09x31x15x81x25x7fx75x08x95x02x81x06xc0xc0 > /sys/kernel/config/usb_gadget/rockchip/functions/hid.usb1/report_desc
+       syslink_function hid.usb1
    fi
    if [ $UMS_EN = on ];then


改完后需要?jiǎng)h除 buildroot/output/rockchip_rk3568,重新編譯。

驗(yàn)證功能的話,直接改 buildroot/output/rockchip_rk3568/target/etc/init.d/S50usbdevice

buildroot/output/rockchip_rk3568/target/etc/init.d/.usb_config

usb_adb_en
usb_hid_en
usb_ums_en
ums_block=/dev/block/by-name/userdata
ums_block_auto_mount=on

./build.sh rootfs 燒錄即可看到

pYYBAGSC92SAKPH8AAA1rCOk0ZI290.pngpoYBAGSC92mAHPHoAAF_DmJc8So919.png

2. 測(cè)試功能

github倉(cāng)庫(kù):https://github.com/aagallag/hid_gadget_test

The HID Gadget driver provides emulation of USB Human Interface
Devices (HID). The basic HID handling is done in the kernel,
and HID reports can be sent/received through I/O on the
/dev/hidgX character devices.

復(fù)制hid_gadget_test.c 到sdk,執(zhí)行

rk3568-sdk/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc hid_gadget_test.c -o hid_gadget_test -static

生成 hid_gadget_test 使用adb push 到開發(fā)板

poYBAGSC95OAeip8AACd0DWMsG8100.png

即可開始測(cè)試,輸入 g i s t r --left-shift 按下回車將發(fā)送數(shù)據(jù)

3. 開發(fā)板介紹

3.1 基本參數(shù)

基本參數(shù)
微處理器 CPU RK3568 /3568J/3568M
內(nèi)存 2GB/4GB/8GB 默認(rèn) 4G
存儲(chǔ) 8GB/16GB/32GB/64GB/128GB/256GB 默認(rèn) 32GB
系統(tǒng) linux、安卓、debian、銀河麒麟操作系統(tǒng)
接口參數(shù)
USB 接口 4 路 USB2.0、2 路 USB3.0
以太網(wǎng) 2 路 1000M 網(wǎng)口
串口接口 4 路 232 接口,1 路 RS232/485 轉(zhuǎn)換(默認(rèn) RS232),通過貼片切換
音視頻信號(hào)輸入 支持 Mic in/Line in 支持 HDMI 輸入
支持 Line out
音視頻信號(hào)輸出 支持功放左右聲道輸出(8Ω,5W)
支持 3.5MM 耳機(jī)左右聲道輸出
支持 3 路顯示輸出。HDMI,LVDS,MIPI,EDP,其中 LVDS 和 MIPI 二選一
WIFI/藍(lán)牙 WIFI 2.4G/5G 及藍(lán)牙 V4.0/4.2
TF 支持支持外部存儲(chǔ)卡擴(kuò)展
RTC 實(shí)時(shí)時(shí)鐘 支持
SATA 供電接口 提供 12V/5v 電源;(SATA 5V/12V)
I2C/SPI/GPIO 8 路 GPIO、2 路 I2C,1 路 SPI
TP I2C 支持
SATA 3.0 接口 支持
PCIE 接口 1 路 PCIE-2X 接口,可依據(jù)需求外加擴(kuò)展卡

3.2 實(shí)物圖

pYYBAGSC97KAUePUABhbbIJ7c3M895.png

3.3 結(jié)構(gòu)圖

pYYBAGSC98KASQ_tAAaNnE8AIWY435.png

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8257

    瀏覽量

    149975
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7773

    瀏覽量

    262409
  • 線路板
    +關(guān)注

    關(guān)注

    23

    文章

    1175

    瀏覽量

    46779
  • HID
    HID
    +關(guān)注

    關(guān)注

    2

    文章

    125

    瀏覽量

    46448
  • RK3568
    +關(guān)注

    關(guān)注

    4

    文章

    479

    瀏覽量

    4723
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RK3568開發(fā)板數(shù)據(jù)手冊(cè)

    。RK3568 支持 SATA/PCIE/USB3.0 等各類型外圍接口,內(nèi)置獨(dú)立的 NPU,可用于輕量級(jí)人工智能應(yīng)用。
    發(fā)表于 08-30 11:56 ?24次下載

    rk3568處理器屬于什么檔次 rk3568性能怎么樣

     rk3568處理器屬于中高端通用型SOC,RK3568兼具CPU、GPU、NPU、VPU于一身,是一款高性能低功耗四核應(yīng)用的處理器。
    發(fā)表于 08-26 17:05 ?1.8w次閱讀
    <b class='flag-5'>rk3568</b>處理器屬于什么檔次 <b class='flag-5'>rk3568</b>性能怎么樣

    ROC RK3568 PC源代碼RK3568/RK3588 RKNN SDK

    電子發(fā)燒友網(wǎng)站提供《ROC RK3568 PC源代碼RK3568/RK3588 RKNN SDK.txt》資料免費(fèi)下載
    發(fā)表于 09-20 09:55 ?40次下載
    ROC <b class='flag-5'>RK3568</b> PC源代碼<b class='flag-5'>RK3568</b>/<b class='flag-5'>RK</b>3588 RKNN SDK

    RK3568核心板數(shù)據(jù)手冊(cè)

    ,RK3568 系列處理器還集成了 USB2.0,USB3.0 千兆以太網(wǎng),CAN-BUS,HDMI,LVDS 等接口。
    發(fā)表于 04-18 14:17 ?40次下載

    RK3568 SDK 的編譯

    RK3568 SDK 的編譯
    的頭像 發(fā)表于 12-13 11:46 ?1442次閱讀
    <b class='flag-5'>RK3568</b> SDK 的編譯

    迅為基于RK3568開發(fā)板的嵌入式學(xué)習(xí)Linux驅(qū)動(dòng)視頻

    迅為基于RK3568開發(fā)板的嵌入式學(xué)習(xí)Linux驅(qū)動(dòng)視頻
    的頭像 發(fā)表于 05-19 16:30 ?813次閱讀
    迅為基于<b class='flag-5'>RK3568</b>開發(fā)板的嵌入式學(xué)習(xí)<b class='flag-5'>之</b>Linux驅(qū)動(dòng)視頻

    瑞芯微RK3568主板開發(fā)板PET_RK3568_P01簡(jiǎn)述

    瑞芯微RK3568主板開發(fā)板PET_RK3568_P01簡(jiǎn)述
    的頭像 發(fā)表于 08-08 11:41 ?2642次閱讀
    瑞芯微<b class='flag-5'>RK3568</b>主板開發(fā)板PET_<b class='flag-5'>RK3568</b>_P01簡(jiǎn)述

    瑞芯微RK3568核心板PET_RK3568_CORE簡(jiǎn)述

    瑞芯微RK3568核心板PET_RK3568_CORE簡(jiǎn)述
    的頭像 發(fā)表于 08-08 11:44 ?3282次閱讀
    瑞芯微<b class='flag-5'>RK3568</b>核心板PET_<b class='flag-5'>RK3568</b>_CORE簡(jiǎn)述

    RK3568RK3566的區(qū)別

    RK3568RK3566的區(qū)別 RK3568RK3566是兩種不同的芯片,都是由Rockchip公司推出的。它們都是面向高性能應(yīng)用市場(chǎng)的芯片,具有相似的性能規(guī)格和功能特點(diǎn)。但是在某
    的頭像 發(fā)表于 08-15 17:25 ?1.5w次閱讀

    RK35683568J的區(qū)別

    RK35683568J的區(qū)別 在當(dāng)前處理器市場(chǎng)中,以小而美形象聞名的瑞克微電子旗下產(chǎn)品RK3568/J也引起了廣泛關(guān)注,其中RK35683568
    的頭像 發(fā)表于 08-15 17:25 ?7896次閱讀

    rk3568有多少引腳?

    rk3568有多少引腳? 首先,讓我們來了解一下什么是rk3568。rk3568是由瑞芯微推出的一款高性能、低功耗的嵌入式處理器,它是rk3566的升級(jí)版本,采用了更加先進(jìn)的技術(shù)和架構(gòu)
    的頭像 發(fā)表于 08-15 17:25 ?1420次閱讀

    rk3568是什么架構(gòu)的?

    RK3568是什么架構(gòu)的? 中國(guó)領(lǐng)先的無晶圓廠半導(dǎo)體公司Rockchip Electronics推出了一款專門為人工智能應(yīng)用設(shè)計(jì)的新型片上系統(tǒng)(SoC)。這種新型SoC被稱為RK3568,構(gòu)建
    的頭像 發(fā)表于 08-15 17:25 ?2549次閱讀

    迅為RK3568開發(fā)板外接模塊HX711 稱重模塊

    迅為RK3568開發(fā)板外接模塊HX711 稱重模塊
    的頭像 發(fā)表于 08-30 15:24 ?1318次閱讀
    迅為<b class='flag-5'>RK3568</b>開發(fā)板外接模塊<b class='flag-5'>之</b>HX711 稱重模塊

    RK3568-視頻開發(fā)案例

    RK3568-視頻開發(fā)案例
    的頭像 發(fā)表于 01-18 15:51 ?612次閱讀
    <b class='flag-5'>RK3568</b>-視頻開發(fā)案例

    RK3568---NPU開發(fā)案例

    RK3568---NPU開發(fā)案例
    的頭像 發(fā)表于 01-19 13:50 ?673次閱讀
    <b class='flag-5'>RK3568</b>---NPU開發(fā)案例