Принудительно скрыть общий аркадный геймпад PS3

Вывод lsопасен в командных строках. Я предлагаю использовать для этой цели findв сценарии оболочки.

  • Параметры find -printfописаны в man find.
  • Стандартный вывод передается на grep, а статус выхода сохраняется в norootfile.
  • Вывод также записывается во временный файл, а количество строк подсчитывается и сохраняется вnumfile(количестве найденных файлов ).
  • Вы можете использовать опцию -v'verbose', чтобы получить более подробную информацию в выводе сценария оболочки.

Если вы хотите найти также скрытые файлы, используйте find.вместоfind *

Если вы не хотите искать в подкаталогах, используйте -maxdepth 1в командной строке поиска.

#!/bin/bash

if [ "$1" == "-h" ]
then
 echo "Usage: $0 -h  # this help text"
 echo "       $0 -v  # verbose output"
 exit
fi

tmpfil=$(mktemp)

find * -xtype f -printf "%u:%g  %p\n" | tee "$tmpfil" | grep -v '^root:root' > /dev/null

norootsfile=$?
numfile=$(wc -l "$tmpfil")
#cat "$tmpfil"

if [ ${numfile%% *} -eq 0 ]
then
 echo "No file found; check the current directory"
elif [ $norootsfile -eq 0 ]
then
 echo "Fail"
 if [ "$1" == "-v" ]
 then
  echo "----- Found some file(s) not owned or grouped by root"
  echo "user:group file-name --------------------------------"
  grep -v '^root:root' "$tmpfil"
 fi
else
 echo "Pass"
 if [ "$1" == "-v" ]
 then
  echo "----- Found only files owned or grouped by root"
 fi
fi
rm "$tmpfil"
1
03.04.2020, 17:28
1 ответ

Я обнаружил, что модуль скрытый имеет параметр игнорировать _специальные _драйверы , который делает именно это, игнорирует все специализированные драйверы и использует скрытый -универсальный для работы с устройством.

Поскольку модуль hid -Sony не поддерживает должным образом мой аркадный джойстик-клон PS3, добавление параметра в модуль hid решает проблему.

$ sudo vi /etc/modprobe.d/hid.conf
options hid ignore_special_drivers=1

$ sudo update-initramfs -u
$ reboot
$ tail /var/log/kern.log
ubuntu kernel: [  119.966133] usb 1-8: new full-speed USB device number 5 using xhci_hcd
ubuntu kernel: [  120.299429] usb 1-8: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 1.00
ubuntu kernel: [  120.299433] usb 1-8: New USB device strings: Mfr=0, Product=2, SerialNumber=0
ubuntu kernel: [  120.299435] usb 1-8: Product: USB Controller
ubuntu kernel: [  120.333900] input: USB Controller as /devices/pci0000:00/0000:00:01.2/0000:15:00.0/usb1/1-8/1-8:1.0/0003:054C:0268.0004/input/input18
ubuntu kernel: [  120.334403] hid-generic 0003:054C:0268.0004: input,hidraw3: USB HID v1.11 Joystick [USB Controller] on usb-0000:15:00.0-8/input0
ubuntu kernel: [  120.459845] usb 1-8: USB disconnect, device number 5
ubuntu kernel: [  121.434688] usb 1-8: new full-speed USB device number 6 using xhci_hcd
ubuntu kernel: [  121.765665] usb 1-8: New USB device found, idVendor=1345, idProduct=3008, bcdDevice= 1.00
ubuntu kernel: [  121.765669] usb 1-8: New USB device strings: Mfr=0, Product=2, SerialNumber=0
ubuntu kernel: [  121.765671] usb 1-8: Product: USB Controller
ubuntu kernel: [  121.791046] input: USB Controller as /devices/pci0000:00/0000:00:01.2/0000:15:00.0/usb1/1-8/1-8:1.0/0003:1345:3008.0005/input/input19
ubuntu kernel: [  121.851274] hid-generic 0003:1345:3008.0005: input,hidraw3: USB HID v1.10 Gamepad [USB Controller] on usb-0000:15:00.0-8/input0

Тем не менее, я бы предпочел решение, позволяющее игнорировать специальный драйвер только для конкретной комбинации VendorID/ProductID, если у меня есть оригинальный игровой контроллер Sony и я хочу использовать оба.

1
28.04.2021, 23:18

Теги

Похожие вопросы