LINUX.ORG.RU

Как получить доступ к устройству?

 , ,


0

3

Есть ТвТюнер TBS 6281 с новыми ядрами проблема, система тюнер видит, но доступ к устройству запрещён. Система Kubuntu 20.04 (Сразу скажу, на 18.04 тоже самое) ядро 5.3 Пока использую более старое ядро.

Multimedia controller: Philips Semiconductors SAA7160 (rev 03) Subsystem: Device 6281:0001 Flags: fast devsel, IRQ 11, NUMA node 0 Memory at fe200000 (64-bit, non-prefetchable) [disabled] [size=1M] Capabilities: <access denied

Вот что пишет Kaffeine

https://i.imgur.com/CKhwSKA.png

https://i.imgur.com/18Ij7K9.png

Ответ на: комментарий от petyanamlt

Что, мне Анонимусу ЛОРа, по ссылкам ходить?

Смотри права на устройство тюнера. Какая группа, какие для нее разрешения, есть ли текущий юзер в этой группе.

anonymous ()
Ответ на: комментарий от KivApple

У меня так

ls -l /dev/dvb/adapter0 lsof /dev/dvb/adapter0

crw-rw—-+ 1 root video 212, 0 ноя 24 15:20 demux0

crw-rw—-+ 1 root video 212, 1 ноя 24 15:20 dvr0

crw-rw—-+ 1 root video 212, 3 ноя 24 15:20 frontend0

crw-rw—-+ 1 root video 212, 2 ноя 24 15:20 net0

/dev/dvb/adapter0: итого 0

crw-rw—-+ 1 root video 212, 0 ноя 24 15:20 demux0

crw-rw—-+ 1 root video 212, 1 ноя 24 15:20 dvr0

crw-rw—-+ 1 root video 212, 3 ноя 24 15:20 frontend0

crw-rw—-+ 1 root video 212, 2 ноя 24 15:20 net0

Это на ядре где работает тв тюнер, щас перезагружусь на новое.

petyanamlt ★★★★ ()
Последнее исправление: petyanamlt (всего исправлений: 1)
Ответ на: комментарий от KivApple

/dev/dvb/adapter0’: Нет такого файла или каталога

Это на новом

А вот какую ошибку пишет при компиляции

error: implicit declaration of function ‘pci_enable_msix’; did you mean ‘pci_enable_msi’? [-Werror=implicit-function-declaration] 49 | ret = pci_enable_msix(pdev, saa716x->msix_entries, SAA716x_MSI_MAX_VECTORS);

petyanamlt ★★★★ ()
Ответ на: комментарий от petyanamlt

А вот какую ошибку пишет при компиляции

У тебя драйвера этого тюнера просто нет! По ходу он даже не собралса. Надо сначала скомпилить драйвер, потом

modprobe имя_драйвера

его загрузить. И только после всего этого искать устройство тюнера в /dev/…

Давай сюда вывод:

lspci -v

Не всех устройств, а только тюнера скопипасть. Особенно интересует часть: kernel driver in use.

anonymous ()
Ответ на: комментарий от anonymous

03:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03) Subsystem: Device 6281:0001

    Flags: fast devsel, IRQ 11, NUMA node 0

    Memory at fe200000 (64-bit, non-prefetchable) [disabled]

     [size=1M]

    Capabilities: <access denied>
petyanamlt ★★★★ ()
Последнее исправление: petyanamlt (всего исправлений: 1)
Ответ на: комментарий от petyanamlt

lspci -v

Необходимо запускать с правами root. Можно использовать для этого:

sudo lspci -v

Скопипасти еще раз вывод только от "03:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 03) ". [b]Если в нем будет строка с серийным номером (serialnumber) ее копипастить сюда не надо.[/b]

Интересуют две строки после capabilities:

Kernel driver in use:

Kernel module:

anonymous ()
Ответ на: комментарий от anonymous

Такие строки есть только при запуске с ядром, где установлен драйвер, в новом ядре 5.3 таких строк нет. Как я уже писал выше, драйвер не компилируется и выдаёт ошибку

error: implicit declaration of function ‘pci_enable_msix’; did you mean ‘pci_enable_msi’? [-Werror=implicit-function-declaration] 49 | ret = pci_enable_msix(pdev, saa716x->msix_entries, SAA716x_MSI_MAX_VECTORS);

Вроде бы тут есть решение, но что это, и как это применить мне не понятно…

https://github.com/xtrx-sdr/xtrx_linux_pcie_drv/issues/1#issuecomment-391359532

petyanamlt ★★★★ ()
Ответ на: комментарий от petyanamlt

в новом ядре 5.3 таких строк нет

А откуда исходники ядер? Исходники модуля драйвера отдельно от ядра? Если исходники модуля идут отдельно, то в новых ядрах могут быть проблемы со сборкой старого модуля.

Проблема со сборкой решается наложением патча. Прочти вывод:

man patch

anonymous ()
Ответ на: комментарий от anonymous

Вообщем запусти патч, чё то делает, что пока не понятно, окно консоли закрыть не даёт, пишет, что работает.

Первый раз таким занимаюсь.

petyanamlt ★★★★ ()
Ответ на: комментарий от petyanamlt

patch отрабатывает очень быстро, несколько секунд. Результат всюда должен быть success. Если где-то failed то ядро не собереш.

anonymous ()
Ответ на: комментарий от anonymous

Значит что то не так делаю, опиши мне порядок действий, что я должен сделать с файлом?

3-3-PCI-msi-remove-pci_enable_msi_-exact-range.patch

petyanamlt ★★★★ ()
Ответ на: комментарий от petyanamlt

https://www.gnu.org/software/diffutils/manual/html_node/patch-Options.html

https://linuxacademy.com/blog/linux/introduction-using-diff-and-patch/

Если патч и каталог ядра лежат в одной директории попробуй с каталога ядра:

patch -p0 < ../3-3-PCI-msi-remove-pci_enable_msi_-exact-range.patch

Если не получится то откатить:

patch -p0 -R < ../3-3-PCI-msi-remove-pci_enable_msi_-exact-range.patch

Вместо -p0 можно попробовать -p1, -p2

Тему лучше перенести в потдержку железа.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.