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 тут не поможет и нужно искать другой путь?
А какой тогда?