华硕 U3100 Mini Plus 有点问题(https://www.linuxtv.org/wiki/index.php/Asus_U3100_Mini_plus_DVB-T) 在 Mint Serena 之下……
以下是详细信息。Mint 版本:
# cat /etc/issue
Linux Mint 18.1 Serena \n \l
#
设备:
# lsusb |grep 1779
Bus 003 Device 006: ID 0b05:1779 ASUSTek Computer, Inc. My Cinema U3100 Mini Plus [AF9035A]
#
所以我安装了固件(https://raw.githubusercontent.com/OpenELEC/dvb-firmware/master/firmware/dvb-usb-af9035-02.fw),按照 USBHID 的要求做了怪癖的事情(实际上需要将怪癖添加为启动选项,因为将选项添加到 /etc/modprobe.d/usbhid.conf 不起作用......):
# grep usbhid /boot/grub/grub.cfg
linux /boot/vmlinuz-4.4.0-104-generic root=UUID=400236d1-d186-4a9c-87db-cc987268f0ce ro quiet splash $vt_handoff usbhid.quirks=0x0b05:0x1779:0x0004
#
以下是 dmesg 的输出:
[ 545.461223] usb 3-1: USB disconnect, device number 4
[ 548.760559] usb 3-1: new high-speed USB device number 5 using xhci_hcd
[ 548.895088] usb 3-1: New USB device found, idVendor=0b05, idProduct=1779
[ 548.895095] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 548.895099] usb 3-1: Product: AF9035A USB Device
[ 548.895102] usb 3-1: Manufacturer: Afa Technologies Inc.
[ 548.895104] usb 3-1: SerialNumber: CT<snip>
[ 548.897724] usb 3-1: dvb_usb_af9035: prechip_version=00 chip_version=03 chip_type=3802
[ 548.898102] usb 3-1: dvb_usb_v2: found a 'Asus U3100Mini Plus' in cold state
[ 548.898164] usb 3-1: dvb_usb_v2: downloading firmware from file 'dvb-usb-af9035-02.fw'
[ 549.216441] usb 3-1: dvb_usb_af9035: firmware version=12.13.15.0
[ 549.216502] usb 3-1: dvb_usb_v2: found a 'Asus U3100Mini Plus' in warm state
[ 549.218555] usb 3-1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[ 549.218597] DVB: registering new adapter (Asus U3100Mini Plus)
[ 549.222573] af9033 9-0038: firmware version: LINK 12.13.15.0 - OFDM 6.20.15.0
[ 549.226316] af9033 9-0038: Afatech AF9033 successfully attached
[ 549.226337] usb 3-1: DVB: registering adapter 0 frontend 0 (Afatech AF9033 (DVB-T))...
Udev 对此做了一些事情,但我不确定这里发生了什么:
# udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[1272.746489] add /devices/pci0000:00/0000:00:14.0/usb3/3-1 (usb)
KERNEL[1272.746886] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0 (usb)
KERNEL[1273.053256] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9/i2c-dev/i2c-9 (i2c-dev)
KERNEL[1273.053317] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9 (i2c)
KERNEL[1273.053716] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.demux0 (dvb)
KERNEL[1273.053804] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.dvr0 (dvb)
KERNEL[1273.053878] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.net0 (dvb)
KERNEL[1273.056249] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9/9-0038 (i2c)
KERNEL[1273.061292] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.frontend0 (dvb)
KERNEL[1273.083326] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9/9-0056 (i2c)
KERNEL[1273.084289] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.frontend0 (dvb)
KERNEL[1273.084349] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.net0 (dvb)
KERNEL[1273.084379] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.demux0 (dvb)
KERNEL[1273.084416] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.dvr0 (dvb)
KERNEL[1273.084493] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9/9-0038 (i2c)
KERNEL[1273.084516] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9/9-0056 (i2c)
KERNEL[1273.084585] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9/i2c-dev/i2c-9 (i2c-dev)
KERNEL[1273.084603] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9 (i2c)
KERNEL[1273.084719] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.1 (usb)
UDEV [1273.093999] add /devices/pci0000:00/0000:00:14.0/usb3/3-1 (usb)
UDEV [1273.098365] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.net0 (dvb)
UDEV [1273.099889] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.frontend0 (dvb)
UDEV [1273.100285] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9/i2c-dev/i2c-9 (i2c-dev)
UDEV [1273.102535] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.frontend0 (dvb)
UDEV [1273.102580] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.1 (usb)
UDEV [1273.103167] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.demux0 (dvb)
UDEV [1273.103318] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.net0 (dvb)
UDEV [1273.103814] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.demux0 (dvb)
UDEV [1273.103856] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.dvr0 (dvb)
UDEV [1273.104523] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/dvb/dvb0.dvr0 (dvb)
UDEV [1273.105590] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9 (i2c)
UDEV [1273.106532] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9/9-0038 (i2c)
UDEV [1273.106834] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9/9-0056 (i2c)
UDEV [1273.107368] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9/9-0038 (i2c)
UDEV [1273.107442] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9/9-0056 (i2c)
UDEV [1273.108921] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9/i2c-dev/i2c-9 (i2c-dev)
UDEV [1273.111286] remove /devices/pci0000:00/0000:00:14.0/usb3/3-1/i2c-9 (i2c)
UDEV [1274.106913] add /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0 (usb)
并且,模块似乎已经加载:
# lsmod| egrep 'dvb|af'
af9033 40960 0
dvb_usb_af9035 36864 0
dvb_usb_v2 36864 1 dvb_usb_af9035
dvb_core 122880 1 dvb_usb_v2
rc_core 28672 2 dvb_usb_v2,dvb_usb_af9035
#
我看到的问题是(来自 lshw 的输出)该设备似乎无人认领并且系统认为它是键盘:
*-usb:0 UNCLAIMED
description: Keyboard
product: AF9035A USB Device
vendor: Afa Technologies Inc.
physical id: 1
bus info: usb@3:1
version: 2.00
serial: CT<snip>
capabilities: usb-2.00
configuration: maxpower=500mA speed=480Mbit/s
/dev/dvb/ 下没有条目
# ls /dev/dvb*
ls: cannot access '/dev/dvb*': No such file or directory
#
设备在 Windows 中运行。
有任何想法吗?
答案1
您必须在文件 (/etc/udev/rules.d/filenameofyourchoice.rules) 中为 udev 编写一条 udev 规则,以避免将该棒识别为 HID 设备。我目前正在尝试,但尚未找到正确的语法。有人说应该是这样的:
ACTION=="添加", ATTR{idVendor}=="0b05", ATTR{idProduct}=="1779", RUN="/bin/sh -c 'echo 0 >/sys/\$devpath/authorized'"
祝你好运,把你的经验回馈给我们……
答案2
因此,分享...
@user879862 您所指出的并不是我所需要的,但它确实为我指明了正确的方向,所以谢谢你!顺便说一句,直到几天前我安装 Xubuntu 18.04 而不是 Mint 时,我才看到您的回答... 现在一切正常,这可能也适用于 Mint。
需要添加一条规则来解除 usbhid 的绑定:
ACTION=="add", ATTR{idVendor}=="0b05", ATTR{idProduct}=="1779", RUN="/bin/sh -c 'echo -n $kernel >/sys/bus/usb/drivers/usbhid/unbind'"
然后,我从这里下载了FWhttp://palosaari.fi/linux/:
# cksum /lib/firmware/dvb-usb-af9035-02.fw
1601101614 41872 /lib/firmware/dvb-usb-af9035-02.fw
#
就是这样。非常简单,但弄清楚这一点很痛苦,因为我不知道这是如何工作的......无论如何,这对我很有帮助,希望它也能帮助别人: