簡體   English   中英

docker 容器內的操縱桿

[英]Pyjoystick inside docker container

我正在嘗試在 docker 容器內處理來自我的 xbox 之一 controller 的命令。

我以特權模式運行容器並使用 xow 作為驅動程序。 它檢測到 controller 並在我的容器內配對:

root@5e6c8573010e:/app# ./xow
2022-08-25 08:56:01 INFO  - xow v0.5-36-gd335d60 ©Severin v. W.
2022-08-25 08:56:01 INFO  - Waiting for device...
2022-08-25 08:56:01 INFO  - Wireless address: 62:45:b4:e7:6d:70
2022-08-25 08:56:01 INFO  - Dongle initialized
2022-08-25 08:56:05 INFO  - Controller '1' connected
2022-08-25 08:56:05 INFO  - Device announced, product id: 02dd
2022-08-25 08:56:05 INFO  - Serial number: 02980116127538

但是,當我運行 python 腳本來訪問命令時

from pyjoystick.sdl2 import Key, Joystick, run_event_loop

def print_add(joy):
    print('Added', joy)

run_event_loop(print_add, print_remove, key_received)

它沒有檢測到 controller。 該腳本運行沒有錯誤,但只是沒有說“添加”。 不過,如果我在那里運行腳本,我的主機系統會顯示“已添加”。

怎么會這樣? SDL 庫中缺少一些依賴項?

我可以通過在啟動驅動程序后觀察我的設備文件夾來解決這個問題。 在我的主機系統中,設備

/dev/input/event0
/dev/input/js0

已創建但未在 docker 容器中顯示。

我通過添加此選項解決了這個問題

-v /dev/input:/dev/input

到我的運行腳本。

司機本身需要

-v /dev/bus/usb:/dev/bus/usb

訪問插入我的樹莓派 usb 端口之一的用於遠程連接的加密狗。

現在我可以雲部署一些遠程容器,使我的遠程目標可以訪問 Xbox One 控制器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM