Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Как назначить разные параметры модулей для одинаковых устройств?  (Прочитано 880 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн klirichek

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
  • Jaunty 86x64 на AMD Phenom 9600 QuadCore, HDD 400+
    • Просмотр профиля
Имею "на борту" два совершенно одинаковых тюнера AverTV A16D.  Оба юзаются из Myth-backend.
Ясно, что используется для них один и тот же модуль ядра (покуда железяки абсолютно одинаковые).
Вопрос: как задать параметры для конкретного экземпляра устройства?
Например: для обоих экземпляров грузится поддержка IrDA. Хотелось бы один из них оставить без таковой.
Что нужно прописать в /etc/modprobe.d, что бы работало не на уровне модуля ядра, а на уровне одного из устройств, которое обслуживает этот модуль?
Jaunty 86x64 на AMD Phenom 9600 QuadCore, HDD 400+700Gb, RAM 8Gb DDRII 1066, NVidia GeForce 8500.

Оффлайн klirichek

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
  • Jaunty 86x64 на AMD Phenom 9600 QuadCore, HDD 400+
    • Просмотр профиля
Ничего себе!
Неужели настолько несложный вопрос вот так вот поставил в тупик всех "гуру" :)
Jaunty 86x64 на AMD Phenom 9600 QuadCore, HDD 400+700Gb, RAM 8Gb DDRII 1066, NVidia GeForce 8500.

Оффлайн Frank

  • Старожил
  • *
  • Сообщений: 1799
  • Профессиональный любитель
    • Просмотр профиля
    • Народный форум Николаева
Вопрос некорректен.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
man modprobe читали?
Что там написано по этому поводу?
В документацию к модулю тюнера ?
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн klirichek

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
  • Jaunty 86x64 на AMD Phenom 9600 QuadCore, HDD 400+
    • Просмотр профиля
man modprobe даёт только общие сведения о том, как запустить эту команду. По теме "два устройства на одном модуле" в мане НИЧЕГО нет.
Документация по модулю тюнера указывает только то, какие именно параметры можно задать. Причём не вполне понятно, чему именно: модулю, или устройству, которое обслуживает модуль.
Вообще такое ощущение, что ситуация "два устройства на одном модуле ядра" нигде не рассматривается.

Попробую сформулировать наглядно.
Имеется тюнер А16D. Имеется модуль, который подхватывает этот тюнер: saa7134. Если я хочу, чтобы при загрузке устройство было представлено в системе как /dev/video1 и /dev/vbi1, я пишу в modprobe.d следующую строчку:
options saa7134 video_nr=1 vbi_nr=1и получаю счастье. Тут вроде всё понятно.
Теперь усложняем ситуацию. Добавляем ещё один точно такой же тюнер.
И - точно так же. Я хочу, чтобы первый был на /dev/video1 /dev/vbi1, а второй - на /dev/video2 /dev/vbi2.
Чтобы избежать вопроса "а какая разница?" добавлю ещё деталей. К той же машине может подключаться третий тюнер, уже другой модели. Причём он подключается по usb. И комп может быть загружен либо уже с этим третьим тюнером, либо он может быть подключен позднее. Если комп загружен с двумя внутренними + внешним usb тюнером, мы получаем следующую раскладку устройств:

/dev/video0 /dev/vbi0 - usb тюнер
/dev/video1 /dev/vbi1 - A16D 1
/dev/video2 /dev/vbi2 - A16D 2

Если же usb тюнер подключается после загрузки, раскладка получается иной:

/dev/video0 /dev/vbi0 - A16D 1
/dev/video1 /dev/vbi1 - A16D 2
/dev/video2 /dev/vbi2 - usb тюнер

Меня эта ситуация с "плаванием" устройств совершенно не устраивает. Потому что параметры у них разные, и команды управления тюнерами AverMedia никак не влияют на работу тюнера Empia (usb).

Теперь пара листингов.
alexey@ubuntu64:/etc/modprobe.d$ dmesg | grep saa
[   15.016835] saa7130/34: v4l2 driver version 0.2.14 loaded
[   15.016962] saa7134 0000:03:06.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
[   15.017037] saa7133[0]: found at 0000:03:06.0, rev: 209, irq: 20, latency: 32, mmio: 0xfddff000
[   15.017111] saa7133[0]: subsystem: 1461:f936, board: AVerMedia Hybrid TV/Radio (A16D) [card=137,autodetected]
[   15.017222] saa7133[0]: board init: gpio is 2fa00
[   15.041117] input: saa7134 IR (AVerMedia Hybrid TV as /devices/pci0000:00/0000:00:14.4/0000:03:06.0/input/input6
[   15.221009] saa7133[0]: i2c eeprom 00: 61 14 36 f9 00 00 00 00 00 00 00 00 00 00 00 00
[   15.221816] saa7133[0]: i2c eeprom 10: ff ff ff ff ff 20 ff ff ff ff ff ff ff ff ff ff
[   15.222674] saa7133[0]: i2c eeprom 20: 01 40 01 02 02 01 01 00 08 ff 00 0e ff ff ff ff
[   15.223539] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   15.224332] saa7133[0]: i2c eeprom 40: ff 65 00 ff c2 1e ff ff ff ff ff ff ff ff ff ff
[   15.225148] saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   15.225945] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   15.226739] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   15.227534] saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   15.228331] saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   15.229135] saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   15.229930] saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   15.230726] saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   15.231520] saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   15.232315] saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   15.233119] saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   15.337021] tuner' 1-0061: chip found @ 0xc2 (saa7133[0])
[   24.572320] saa7133[0]: registered device video0 [v4l2]
[   24.572407] saa7133[0]: registered device vbi0
[   24.572482] saa7133[0]: registered device radio0
[   24.572634] saa7134 0000:03:07.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21
[   24.572706] saa7133[1]: found at 0000:03:07.0, rev: 209, irq: 21, latency: 32, mmio: 0xfddfe000
[   24.572788] saa7133[1]: subsystem: 1461:f936, board: AVerMedia Hybrid TV/Radio (A16D) [card=137,autodetected]
[   24.572937] saa7133[1]: board init: gpio is 28200
[   24.596094] input: saa7134 IR (AVerMedia Hybrid TV as /devices/pci0000:00/0000:00:14.4/0000:03:07.0/input/input8
[   24.737020] tuner' 2-0061: chip found @ 0xc2 (saa7133[1])
[   24.785017] saa7133[1]: i2c eeprom 00: 61 14 36 f9 00 00 00 00 00 00 00 00 00 00 00 00
[   24.785812] saa7133[1]: i2c eeprom 10: ff ff ff ff ff 20 ff ff ff ff ff ff ff ff ff ff
[   24.786613] saa7133[1]: i2c eeprom 20: 01 40 01 02 02 01 01 00 08 ff 00 0e ff ff ff ff
[   24.787408] saa7133[1]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   24.788207] saa7133[1]: i2c eeprom 40: ff 65 00 ff c2 1e ff ff ff ff ff ff ff ff ff ff
[   24.789023] saa7133[1]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   24.789816] saa7133[1]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   24.790624] saa7133[1]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   24.791417] saa7133[1]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   24.792216] saa7133[1]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   24.793032] saa7133[1]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   24.793825] saa7133[1]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   24.794628] saa7133[1]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   24.795433] saa7133[1]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   24.796229] saa7133[1]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   24.797044] saa7133[1]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   33.968306] saa7133[1]: registered device video1 [v4l2]
[   33.968390] saa7133[1]: registered device vbi1
[   33.968468] saa7133[1]: registered device radio1
[   33.982080] saa7134 ALSA driver for DMA sound loaded
[   33.982166] saa7133[0]/alsa: saa7133[0] at 0xfddff000 irq 20 registered as card -2
[   33.982545] saa7133[1]/alsa: saa7133[1] at 0xfddfe000 irq 21 registered as card -1
[   34.097211] DVB: registering new adapter (saa7133[0])
[   34.193225] DVB: registering new adapter (saa7133[1])

А вот вывод списка модулей:
alexey@ubuntu64:/etc/modprobe.d$ lsmod | grep saa
saa7134_dvb            32268  0
videobuf_dvb           16516  1 saa7134_dvb
saa7134_alsa           22176  0
dvb_core              106924  2 saa7134_dvb,videobuf_dvb
snd_pcm                99336  3 saa7134_alsa,snd_hda_intel,snd_pcm_oss
saa7134               176732  2 saa7134_dvb,saa7134_alsa
ir_common              56068  1 saa7134
compat_ioctl32         18304  1 saa7134
snd                    78792  16 saa7134_alsa,snd_hda_intel,snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
videodev               45184  3 tuner,saa7134,compat_ioctl32
v4l2_common            23296  2 tuner,saa7134
videobuf_dma_sg        22660  3 saa7134_dvb,saa7134_alsa,saa7134
videobuf_core          29828  3 videobuf_dvb,saa7134,videobuf_dma_sg
tveeprom               23428  1 saa7134

Как видите, несмотря на два устройства, загружен всё же ровно один экземпляр saa7133.

И теперь я повторяю свой вопрос снова.
Если для одного устройства я могу задать явно параметры следующей строчкой в modprobe.d
options saa7134 video_nr=1 vbi_nr=1- то каким образом я могу явно задать РАЗНЫЕ КОНКРЕТНЫЕ параметры для ДВУХ устройств, которые сидят на ОДНОМ модуле ядра?
Иначе говоря - как различить в modprobe.d, что "вот это первый тюнер", а "вот это второй тюнер" при том, что модуль один и тот же?
Или modprobe.d тут не поможет и нужно искать другой путь?
А какой тогда?
Jaunty 86x64 на AMD Phenom 9600 QuadCore, HDD 400+700Gb, RAM 8Gb DDRII 1066, NVidia GeForce 8500.

Оффлайн Frank

  • Старожил
  • *
  • Сообщений: 1799
  • Профессиональный любитель
    • Просмотр профиля
    • Народный форум Николаева
Это невозможно. Разве что ты соберёшь два отдельных модуля с разными именами.
Вообще, подозреваю, тут надо копать в сторону udev, но могу ошибаться.

 

Страница сгенерирована за 0.018 секунд. Запросов: 20.