приветствую!
нужна помощь по сборке драйвера
00:0e.0 Multimedia video controller: Device 9413:6110
ядро 2.6.38-voyage
собрать драйвер платы видеозахвата commell mp-60102
Просто обновите ядро (из backports, как я понимаю - пользователи Debian меня поправят).
можно поднять до 3.6.9 (пробовал на виртуалке), как узнать есть ли там нужный драйвер?
не поможет, ядро собрано без этого драйвера # CONFIG_SOLO6X10 is not set
Вам еще помимо обновления ядра нужно обновить индекс устройств, он входит в состав пакета pciutils. Полагаю, он должен подтянуться по зависимостям. Насчет как узнать - врать не хочу, но по-моему, нужно либо смотреть состав ядерного пакета на предмет требуемого модуля, либо смотреть текстовые файлы в дереве исходных кодов ядра, опять же на предмет наличия.
после обновления индекса устройств помимо VID/PID должно появиться название устройства?
Да, вот как это в Slackware делается, даже обновление pciutils не нужно: P8Z77V + i73770k (ivy bridge) + sl12.2 не стартует
не поможет, ядро собрано без этого драйвера # CONFIG_SOLO6X10 is not set
Да, тогда придется пересобрать.
pci.ids про такое устройство не знает, вписал ручками
теперь так
00:0e.0 Multimedia video controller: SoftLogic, Inc SOLO6110
в исходниках ядра драйвера не оказалось, из git собрать тоже не получилось,
WARNING: "videobuf_mmap_free" [/data/solo/solo6x10/solo6x10.ko] undefined!
Может, он зависит от еще какого модуля?
похоже что так, как теперь собрать два сразу?
Я бы вам посоветовал ядро целиком пересобрать. А два сразу - это, как я понимаю, и нужно указывать на командной строке, в порядке зависимостей...
Модуль1 зависит от модуль2, так и пишем: make module2 module1.
модуль собрался
debian kernel: [963438.002495] solo6x10: Unknown symbol videobuf_qbuf (err 0)
как бы теперь узнать каких модулей ему еще нехватает
Это случаем не оно: man depmod? Применяйте сключами -F -e.
UPD: А еще гляньте man modinfo
System.map нету
depmod -aev > err.txt
insmod .../solo6x10.ko
kernel: [1028419.174420] solo6x10: Unknown symbol snd_pcm_lib_malloc_pages (err 0)
cat err.txt | grep snd_pcm_lib_malloc_pages
.../solo6x10.ko needs "snd_pcm_lib_malloc_pages": .../snd-pcm.ko
insmod .../snd-pcm.ko
kernel: [1028678.025384] snd_pcm: Unknown symbol snd_lookup_minor_data (err 0)
и т д
filename: /lib/modules/2.6.38-voyage/kernel/drivers/media/video/solo6x10.ko
license: GPL
version: 2.4.4
author: Ben Collins <bcollins@ubuntu.com>, Bluecherry <maintainers@bluecherrydvr.com>
description: Softlogic 6x10 MPEG4/H.264/G.723 CODEC V4L2/ALSA Driver
srcversion: B66A79D95D2BFACDCEFC826
alias: pci:v00001BB3d00005310sv*sd*bc*sc*i*
alias: pci:v00001BB3d00005308sv*sd*bc*sc*i*
alias: pci:v00001BB3d00005304sv*sd*bc*sc*i*
alias: pci:v00001BB3d00004E10sv*sd*bc*sc*i*
alias: pci:v00001BB3d00004E09sv*sd*bc*sc*i*
alias: pci:v00001BB3d00004E04sv*sd*bc*sc*i*
alias: pci:v00001BB3d00004310sv*sd*bc*sc*i*
alias: pci:v00001BB3d00004309sv*sd*bc*sc*i*
alias: pci:v00001BB3d00004304sv*sd*bc*sc*i*
alias: pci:v00009413d00006010sv*sd*bc*sc*i*
depends:
vermagic: 2.6.38-voyage SMP preempt mod_unload 486
parm: video_type:video_type (0 = NTSC/Default, 1 = PAL) (uint)
parm: multi_p2m:Allow 6010 to use multiple P2M DMA channels (default is single, does not affect 6110) (uint)
parm: desc_mode:Allow use of descriptor mode DMA (default is disabled, does not affect 6110) (uint)
parm: video_nr:videoX start number, -1 is autodetect (default) (uint)
parm: full_eeprom:Allow access to full 128B EEPROM (dangerous, default is only top 64B) (uint)и т д
Можно полный список?
Драйвер платы видеозахвата зависит от драйверов звука.
.../solo6x10.ko needs "videobuf_streamoff": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "videobuf_poll_stream": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "video_ioctl2": .../drivers/media/video/videodev.ko
.../solo6x10.ko needs "videobuf_queue_to_vaddr": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "snd_ctl_add": .../sound/core/snd.ko
.../solo6x10.ko needs "snd_pcm_new": .../sound/core/snd-pcm.ko
.../solo6x10.ko needs "snd_card_register": .../sound/core/snd.ko
.../solo6x10.ko needs "snd_card_free": .../sound/core/snd.ko
.../solo6x10.ko needs "videobuf_dma_free": .../drivers/media/video/videobuf-dma-sg.ko
.../solo6x10.ko needs "snd_pcm_lib_preallocate_pages_for_all": .../sound/core/snd-pcm.ko
.../solo6x10.ko needs "videobuf_reqbufs": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "videobuf_queue_core_init": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "videobuf_queue_is_busy": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "videobuf_dqbuf": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "v4l2_ctrl_query_fill": .../drivers/media/video/v4l2-common.ko
.../solo6x10.ko needs "snd_ctl_new1": .../sound/core/snd.ko
.../solo6x10.ko needs "video_devdata": .../drivers/media/video/videodev.ko
.../solo6x10.ko needs "i2c_del_adapter": .../drivers/i2c/i2c-core.ko
.../solo6x10.ko needs "videobuf_stop": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "v4l2_ctrl_next": .../drivers/media/video/v4l2-common.ko
.../solo6x10.ko needs "snd_pcm_lib_malloc_pages": .../sound/core/snd-pcm.ko
.../solo6x10.ko needs "snd_pcm_lib_ioctl": .../sound/core/snd-pcm.ko
.../solo6x10.ko needs "videobuf_queue_sg_init": .../drivers/media/video/videobuf-dma-sg.ko
.../solo6x10.ko needs "v4l2_ctrl_query_menu": .../drivers/media/video/v4l2-common.ko
.../solo6x10.ko needs "videobuf_dma_unmap": .../drivers/media/video/videobuf-dma-sg.ko
.../solo6x10.ko needs "videobuf_read_stream": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "snd_pcm_lib_free_pages": .../sound/core/snd-pcm.ko
.../solo6x10.ko needs "videobuf_querybuf": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "snd_pcm_set_ops": .../sound/core/snd-pcm.ko
.../solo6x10.ko needs "video_unregister_device": .../drivers/media/video/videodev.ko
.../solo6x10.ko needs "videobuf_qbuf": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "video_device_alloc": .../drivers/media/video/videodev.ko
.../solo6x10.ko needs "snd_device_new": .../sound/core/snd.ko
.../solo6x10.ko needs "video_register_device": .../drivers/media/video/videodev.ko
.../solo6x10.ko needs "i2c_add_adapter": .../drivers/i2c/i2c-core.ko
.../solo6x10.ko needs "videobuf_iolock": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "videobuf_streamon": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "videobuf_queue_cancel": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "i2c_transfer": .../drivers/i2c/i2c-core.ko
.../solo6x10.ko needs "video_device_release": .../drivers/media/video/videodev.ko
.../solo6x10.ko needs "snd_card_create": .../sound/core/snd.ko
.../solo6x10.ko needs "snd_pcm_period_elapsed": .../sound/core/snd-pcm.ko
.../solo6x10.ko needs "videobuf_mmap_mapper": .../drivers/media/video/videobuf-core.ko
.../solo6x10.ko needs "videobuf_to_dma": .../drivers/media/video/videobuf-dma-sg.ko
.../solo6x10.ko needs "videobuf_mmap_free": .../drivers/media/video/videobuf-core.ko
snd и snd-pcm есть, звука в системе нет
Загоняем список в файлик, делаем
$ cat test.txt | cut -d":" -f2- | rev | cut -d"/" -f1 | rev | sort -uвидим:
i2c-core.ko
snd-pcm.ko
snd.ko
v4l2-common.ko
videobuf-core.ko
videobuf-dma-sg.ko
videodev.ko
yars@localhost:~$
Далее, можно аналогичной командой скормить полученный списочек zgrep'у, чтобы он посмотрел на предмет соответствующих опций конфиг нашего ядра (в моем случае 3.2.26* (kernel-huge-smp-3.2.26-smp)):
Показать
yars@localhost:~$ for i in `cat test.txt | cut -d":" -f2- | rev | cut -d"/" -f1 | rev | sort -u` ; do zgrep -i "$(basename $i .ko)" /proc/config.gz ; done
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_JACK=y
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_HRTIMER=m
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_RAWMIDI_SEQ=m
CONFIG_SND_OPL3_LIB_SEQ=m
CONFIG_SND_OPL4_LIB_SEQ=m
CONFIG_SND_SBAWE_SEQ=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_MPU401_UART=m
CONFIG_SND_OPL3_LIB=m
CONFIG_SND_OPL4_LIB=m
CONFIG_SND_VX_LIB=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DRIVERS=y
# CONFIG_SND_PCSP is not set
CONFIG_SND_DUMMY=m
CONFIG_SND_ALOOP=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_MTS64=m
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m
CONFIG_SND_PORTMAN2X4=m
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_WSS_LIB=m
CONFIG_SND_SB_COMMON=m
CONFIG_SND_SB8_DSP=m
CONFIG_SND_SB16_DSP=m
CONFIG_SND_ISA=y
CONFIG_SND_ADLIB=m
CONFIG_SND_AD1816A=m
CONFIG_SND_AD1848=m
CONFIG_SND_ALS100=m
CONFIG_SND_AZT1605=m
CONFIG_SND_AZT2316=m
CONFIG_SND_AZT2320=m
CONFIG_SND_CMI8330=m
CONFIG_SND_CS4231=m
CONFIG_SND_CS4236=m
CONFIG_SND_ES1688=m
CONFIG_SND_ES18XX=m
CONFIG_SND_SC6000=m
CONFIG_SND_GUSCLASSIC=m
CONFIG_SND_GUSEXTREME=m
CONFIG_SND_GUSMAX=m
CONFIG_SND_INTERWAVE=m
CONFIG_SND_INTERWAVE_STB=m
CONFIG_SND_JAZZ16=m
CONFIG_SND_OPL3SA2=m
CONFIG_SND_OPTI92X_AD1848=m
CONFIG_SND_OPTI92X_CS4231=m
CONFIG_SND_OPTI93X=m
CONFIG_SND_MIRO=m
CONFIG_SND_SB8=m
CONFIG_SND_SB16=m
CONFIG_SND_SBAWE=m
CONFIG_SND_SB16_CSP=y
CONFIG_SND_SSCAPE=m
CONFIG_SND_WAVEFRONT=m
CONFIG_SND_MSND_PINNACLE=m
CONFIG_SND_MSND_CLASSIC=m
CONFIG_SND_TEA575X=m
CONFIG_SND_PCI=y
CONFIG_SND_AD1889=m
CONFIG_SND_ALS300=m
CONFIG_SND_ALS4000=m
CONFIG_SND_ALI5451=m
CONFIG_SND_ASIHPI=m
CONFIG_SND_ATIIXP=m
CONFIG_SND_ATIIXP_MODEM=m
CONFIG_SND_AU8810=m
CONFIG_SND_AU8820=m
CONFIG_SND_AU8830=m
CONFIG_SND_AW2=m
CONFIG_SND_AZT3328=m
CONFIG_SND_BT87X=m
# CONFIG_SND_BT87X_OVERCLOCK is not set
CONFIG_SND_CA0106=m
CONFIG_SND_CMIPCI=m
CONFIG_SND_OXYGEN_LIB=m
CONFIG_SND_OXYGEN=m
CONFIG_SND_CS4281=m
CONFIG_SND_CS46XX=m
CONFIG_SND_CS46XX_NEW_DSP=y
CONFIG_SND_CS5530=m
CONFIG_SND_CS5535AUDIO=m
CONFIG_SND_CTXFI=m
CONFIG_SND_DARLA20=m
CONFIG_SND_GINA20=m
CONFIG_SND_LAYLA20=m
CONFIG_SND_DARLA24=m
CONFIG_SND_GINA24=m
CONFIG_SND_LAYLA24=m
CONFIG_SND_MONA=m
CONFIG_SND_MIA=m
CONFIG_SND_ECHO3G=m
CONFIG_SND_INDIGO=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1X=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_ES1938=m
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968_RADIO=y
CONFIG_SND_FM801=m
CONFIG_SND_FM801_TEA575X_BOOL=y
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_PREALLOC_SIZE=2048
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
# CONFIG_SND_HDA_INPUT_BEEP is not set
CONFIG_SND_HDA_INPUT_JACK=y
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CODEC_REALTEK=y
CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
CONFIG_SND_HDA_CODEC_HDMI=y
CONFIG_SND_HDA_CODEC_CIRRUS=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CA0110=y
CONFIG_SND_HDA_CODEC_CA0132=y
CONFIG_SND_HDA_CODEC_CMEDIA=y
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
# CONFIG_SND_HDA_POWER_SAVE is not set
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INTEL8X0=m
CONFIG_SND_INTEL8X0M=m
CONFIG_SND_KORG1212=m
CONFIG_SND_LOLA=m
CONFIG_SND_LX6464ES=m
CONFIG_SND_MAESTRO3=m
CONFIG_SND_MAESTRO3_INPUT=y
CONFIG_SND_MIXART=m
CONFIG_SND_NM256=m
CONFIG_SND_PCXHR=m
CONFIG_SND_RIPTIDE=m
CONFIG_SND_RME32=m
CONFIG_SND_RME96=m
CONFIG_SND_RME9652=m
CONFIG_SND_SIS7019=m
CONFIG_SND_SONICVIBES=m
CONFIG_SND_TRIDENT=m
CONFIG_SND_VIA82XX=m
CONFIG_SND_VIA82XX_MODEM=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
CONFIG_SND_YMFPCI=m
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_UA101=m
CONFIG_SND_USB_USX2Y=m
CONFIG_SND_USB_CAIAQ=m
CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_USB_US122L=m
CONFIG_SND_USB_6FIRE=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWIRE_LIB=m
CONFIG_SND_FIREWIRE_SPEAKERS=m
CONFIG_SND_ISIGHT=m
CONFIG_SND_PCMCIA=y
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m
# CONFIG_SND_SOC is not set
yars@localhost:~$
На самом деле, у меня часть конфига, вытащенная операцией выше, содержит не только полный список зависимостей, но и, пожалуй, кучу лишнего.
* Я работаю в виртуалке по некоторым причинам.
snd и snd-pcm есть, звука в системе нет
Покажите
lspci -k .
00:01.0 Host bridge: Advanced Micro Devices [AMD] CS5536 [Geode companion] Host Bridge (rev 33)
00:01.2 Entertainment encryption device: Advanced Micro Devices [AMD] Geode LX AES Security Block
Kernel driver in use: Geode LX AES
Kernel modules: geode-rng, geode-aes
00:09.0 Ethernet controller: VIA Technologies, Inc. VT6105M [Rhine-III] (rev 96)
Kernel driver in use: via-rhine
Kernel modules: via-rhine
00:0b.0 Ethernet controller: VIA Technologies, Inc. VT6105/VT6106S [Rhine-III] (rev 8b)
Kernel driver in use: via-rhine
Kernel modules: via-rhine
00:0c.0 Ethernet controller: Atheros Communications Inc. AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] (rev 01)
Kernel driver in use: ath5k
Kernel modules: ath5k
00:0e.0 Multimedia video controller: SoftLogic, Inc SOLO6110
00:0f.0 ISA bridge: Advanced Micro Devices [AMD] CS5536 [Geode companion] ISA (rev 03)
Kernel modules: leds-alix2, cs5535-mfd
00:0f.2 IDE interface: Advanced Micro Devices [AMD] CS5536 [Geode companion] IDE (rev 01)
Kernel driver in use: pata_amd
Kernel modules: amd74xx, pata_cs5536, pata_amd
00:0f.4 USB controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] OHC (rev 02)
Kernel driver in use: ohci_hcd
Kernel modules: ohci-hcd
00:0f.5 USB controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] EHC (rev 02)
Kernel driver in use: ehci_hcd
Kernel modules: ehci-hcd
это alix2d2