LinuxForum.Fans
Тема

Не могу собрать модуль в ядре

Автор: screw 36 сообщений 6600 просмотров
#114591

Собственно, потребовалось собрать модуль AD1980. Запускаю make menuconfig, выбираю ALSA for SoC audio support и Build all ASoC CODEC drivers, где он, собственно и находится. Жму help и вижу вот такую картину:

text
CONFIG_SND_SOC_ALL_CODECS:                                                                 │  
  │                                                                                            │  
  │ Normally ASoC codec drivers are only built if a machine driver which                       │  
  │ uses them is also built since they are only usable with a machine                          │  
  │ driver.  Selecting this option will allow these drivers to be built                        │  
  │ without an explicit machine driver for test and development purposes.                      │  
  │                                                                                            │  
  │ Support for the bus types used to access the codecs to be built must                       │  
  │ be selected separately.                                                                    │  
  │                                                                                            │  
  │ If unsure select "N".                                                                      │  
  │                                                                                            │  
  │ Symbol: SND_SOC_ALL_CODECS [=y]                                                            │  
  │ Type  : tristate                                                                           │  
  │ Prompt: Build all ASoC CODEC drivers                                                       │  
  │   Defined at sound/soc/codecs/Kconfig:11                                                   │  
  │   Depends on: SOUND [=y] && !M68K && SND [=y] && SND_SOC [=y]                              │  
  │   Location:                                                                                │  
  │     -> Device Drivers                                                                      │  
  │       -> Sound card support (SOUND [=y])                                                   │  
  │         -> Advanced Linux Sound Architecture (SND [=y])                                    │  
  │           -> ALSA for SoC audio support (SND_SOC [=y])                                     │  
  │   Selects: SND_SOC_88PM860X [=n] && SND_SOC_L3 [=m] && SND_SOC_AC97_CODEC [=n] && \        │  
  │ SND_SOC_AD1836 [=n] && SND_SOC_AD193X [=m] && SND_SOC_AD1980 [=n] && \                     │  
  │ SND_SOC_ADS117X [=m] && SND_SOC_AD73311 [=m] && SND_SOC_AK4104 [=n] && \                   │  
  ├──────────────────────────────────────────────────────────────────────────

Как видно, нужный мне модуль не выбран, хотя компилится множество ненужных мне модулей из этого списка и ниже. Как же сделать так, чтобы SND_SOC_AD1980 стало [=m]? Я уже измучился весь, перепробовал всяческие комбинации и никак. Ядро 2.6.37, но и с другими ядрами такая же свистопляска. Помогите кто чем может.

#114594

Возможно, все драйвера собираются, что называется, скопом, без возможности их выбора по-отдельности.

#114597

Возможно, все драйвера собираются, что называется, скопом, без возможности их выбора по-отдельности.

В том-то и дело, что они даже скопом не все собираются. Но в исходниках ядра они имеются. Смысл был бы включать их в ядро, если они не собираются никак?

#114599

Почему вы уверены, что они не собираются?
Если, как я понял, у вас помечены оба пункта - ALSA for ASoc и этот,
то в .config они все будут помечены как 'y' или 'm', если выбрать m,
т.е. по команде make они должны построиться.

Пётр.

#114601

Почему вы уверены, что они не собираются?
Если, как я понял, у вас помечены оба пункта - ALSA for ASoc и этот,
то в .config они все будут помечены как 'y' или 'm', если выбрать m,
т.е. по команде make они должны построиться.

Я потому так уверен, что они не собираются никак! Я уже всё перепробовал по несколько раз. В .config присутствуют только те модули, которые отражены в приведённом выше хелпе. Мало того, в .config даже упоминания нужного мне модуля нет, даже как не помеченного для сборки. Мало того, я даже пробовал руками туда эту строчку внести - результат нулевой.

#114606

вариант "с топором" : откройте уже готовый и настроенный .config (после команды make menuconfig) через "поиск" найдите строчку CONFIG_SND_SOC_AD1980 и приведите её к виду :

text

CONFIG_SND_SOC_AD1980=m

и посмотрите на что ругается , вывод сюда давайте , возможно каких-то зависимостей не хватает( да-да в ядре они тоже есть обратите внимание в хелпе на строчку " Depends on: " ) ...

#114608

Дело в том, что там такой строчки нет в принципе, там есть только то, что и в хелпе отмечено как =m, а руками я её уже дописывал - так она исчезала. Зависимости все были отмечены как =y. Сейчас запустил процесс ещё раз, посмотрим на вывод вместе.

#114609

to gramozeka:
Это так, но все эти модули уже должны оказаться помеченными после
выхода из menuconfig, в т.ч. и те, которых нет в списке в help.
Я проверил это перед 1-м ответом.

Пётр.

#114628

Как и в первый раз, вставленную мной строчку при сборке снесло куда-то.

to Lupo Alberto:
Спасибо за наводку, поищу в этом направлении.

#114629

screw, мне кажется, наличие CONFIG_BLACKFIN как-то связано с архитектурой компьютера. Для какого именно устройства вы настраиваете ядро?

#114632

вот оно чё ! тыц , чтоб она его нашла правильно пишут (буквально):

Wow, this is driving me nuts. It's still not working with mmap support...

если учесть что с 2008 года ядро изрядно подрихтовали то возможно стоит копать сюда ?
P.S. ... и к стати тогда blackfin был таки [url=http://www.mail-archive.com/git-commits-head@vger.kernel.org/msg33005.html]патчем ...[/url]

#114640

screw, мне кажется, наличие CONFIG_BLACKFIN как-то связано с архитектурой компьютера. Для какого именно устройства вы настраиваете ядро?

Мать p4p800-vm, проц P4-3200

#114649

screw, а покажите

text

lspci -v
#114652

у меня тоже асус , AD1980 не нужен для звука , альса его меняет на какой-то совместимый вот кусок моего конфига(рабочего):

Показать
text

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=CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE=y
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
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_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_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_SGALAXY=m
CONFIG_SND_SSCAPE=m
CONFIG_SND_WAVEFRONT=m
CONFIG_SND_MSND_PINNACLE=m
CONFIG_SND_MSND_CLASSIC=m
CONFIG_SND_PCI=y
CONFIG_SND_AD1889=m
CONFIG_SND_ALS300=m
CONFIG_SND_ALS4000=mm
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_FM801=m
CONFIG_SND_FM801_TEA575X_BOOL=y
CONFIG_SND_FM801_TEA575X=m
CONFIG_SND_HDA_INTEL=m
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_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
CONFIG_SND_HDA_CODEC_ATIHDMI=y
CONFIG_SND_HDA_CODEC_NVHDMI=y
CONFIG_SND_HDA_CODEC_INTELHDMI=y
CONFIG_SND_HDA_ELD=y
CONFIG_SND_HDA_CODEC_CIRRUS=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CA0110=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_HIFIER=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INTEL8X0=m
CONFIG_SND_INTEL8X0M=m
CONFIG_SND_KORG1212=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_PCMCIA=y
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m
# CONFIG_SND_SOC is not set
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m
CONFIG_HID_SUPPORT=y
CONFIG_HID=m
CONFIG_HIDRAW=y

#114653
Показать
00:00.0 Host bridge: Intel Corporation 82865G/PE/P DRAM Controller/Host-Hub Interface (rev 02)
Subsystem: ASUSTeK Computer Inc. Device 80a5
Flags: bus master, fast devsel, latency 0
Memory at f8000000 (32-bit, prefetchable) [size=64M]
Capabilities: [e4] Vendor Specific Information <?>
Capabilities: [a0] AGP version 3.0

00:01.0 PCI bridge: Intel Corporation 82865G/PE/P PCI to AGP Controller (rev 02) (prog-if 00 [Normal decode])
Flags: bus master, 66MHz, fast devsel, latency 64
Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
Memory behind bridge: f3d00000-f7dfffff
Prefetchable memory behind bridge: d3c00000-f3bfffff

00:06.0 System peripheral: Intel Corporation 82865G/PE/P Processor to I/O Memory Interface (rev 02)
Flags: fast devsel
Memory at fecf0000 (32-bit, non-prefetchable) [size=4K]

00:1d.0 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02) (prog-if 00 [UHCI])
Subsystem: ASUSTeK Computer Inc. P4P800/P5P800 series motherboard
Flags: bus master, medium devsel, latency 0, IRQ 16
I/O ports at eec0 [size=32]
Kernel driver in use: uhci_hcd

00:1d.1 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (rev 02) (prog-if 00 [UHCI])
Subsystem: ASUSTeK Computer Inc. P4P800/P5P800 series motherboard
Flags: bus master, medium devsel, latency 0, IRQ 19
I/O ports at ef00 [size=32]
Kernel driver in use: uhci_hcd

00:1d.2 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (rev 02) (prog-if 00 [UHCI])
Subsystem: ASUSTeK Computer Inc. P4P800/P5P800 series motherboard
Flags: bus master, medium devsel, latency 0, IRQ 18
I/O ports at ef20 [size=32]
Kernel driver in use: uhci_hcd

00:1d.3 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (rev 02) (prog-if 00 [UHCI])
Subsystem: ASUSTeK Computer Inc. P4P800/P5P800 series motherboard
Flags: bus master, medium devsel, latency 0, IRQ 16
I/O ports at ef40 [size=32]
Kernel driver in use: uhci_hcd

00:1d.7 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02) (prog-if 20 [EHCI])
Subsystem: ASUSTeK Computer Inc. P4P800/P5P800 series motherboard
Flags: bus master, medium devsel, latency 0, IRQ 23
Memory at f7fff800 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] Power Management version 2
Capabilities: [58] Debug port: BAR=1 offset=00a0
Kernel driver in use: ehci_hcd

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev c2) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=02, subordinate=02, sec-latency=64
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: f7e00000-f7efffff

00:1f.0 ISA bridge: Intel Corporation 82801EB/ER (ICH5/ICH5R) LPC Interface Bridge (rev 02)
Flags: bus master, medium devsel, latency 0

00:1f.1 IDE interface: Intel Corporation 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02) (prog-if 8f [Master SecP SecO PriP PriO])
Subsystem: ASUSTeK Computer Inc. P4P800/P5P800 series motherboard
Flags: bus master, medium devsel, latency 0, IRQ 18
I/O ports at efe0 [size=8]
I/O ports at efac [size=4]
I/O ports at efa0 [size=8]
I/O ports at efa8 [size=4]
I/O ports at ef90 [size=16]
Memory at 60000000 (32-bit, non-prefetchable) [size=1K]
Kernel driver in use: ata_piix

00:1f.2 IDE interface: Intel Corporation 82801EB (ICH5) SATA Controller (rev 02) (prog-if 8f [Master SecP SecO PriP PriO])
Subsystem: ASUSTeK Computer Inc. P4P800 series motherboard
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 18
I/O ports at ef88 [size=8]
I/O ports at ef84 [size=4]
I/O ports at ef68 [size=8]
I/O ports at ef80 [size=4]
I/O ports at ee60 [size=16]
Kernel driver in use: ata_piix

00:1f.3 SMBus: Intel Corporation 82801EB/ER (ICH5/ICH5R) SMBus Controller (rev 02)
Subsystem: ASUSTeK Computer Inc. P4P800 Mainboard
Flags: medium devsel, IRQ 17
I/O ports at 0400 [size=32]
Kernel driver in use: i801_smbus

00:1f.5 Multimedia audio controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (rev 02)
Subsystem: ASUSTeK Computer Inc. Device 80b0
Flags: bus master, medium devsel, latency 0, IRQ 17
I/O ports at e800 [size=256]
I/O ports at ee80 [size=64]
Memory at f7fff400 (32-bit, non-prefetchable) [size=512]
Memory at f7fff000 (32-bit, non-prefetchable) [size=256]
Capabilities: [50] Power Management version 2
Kernel driver in use: Intel ICH

01:00.0 VGA compatible controller: nVidia Corporation NV44A [GeForce 6200] (rev a1) (prog-if 00 [VGA controller])
Subsystem: PC Partner Limited Device 2017
Flags: bus master, 66MHz, medium devsel, latency 248, IRQ 16
Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
Memory at e0000000 (32-bit, prefetchable) [size=256M]
Memory at f5000000 (32-bit, non-prefetchable) [size=16M]
[virtual] Expansion ROM at f7de0000 [disabled] [size=128K]
Capabilities: [60] Power Management version 2
Capabilities: [44] AGP version 3.0
Kernel driver in use: nvidia

02:0b.0 Ethernet controller: VIA Technologies, Inc. VT6105/VT6106S [Rhine-III] (rev 8b)
Subsystem: D-Link System Inc Device 1405
Flags: bus master, medium devsel, latency 64, IRQ 22
I/O ports at d800 [size=256]
Memory at f7effc00 (32-bit, non-prefetchable) [size=256]
Capabilities: [44] Power Management version 2
Kernel driver in use: via-rhine
#114660

gramozeka
Asus тоже разный бывает. p4p800-se и -vm отличаются встроенными железками.

#114663
text

00:1f.5 Multimedia audio controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (rev 02)
   ...
    Kernel driver in use: Intel ICH

Так вроде бы звук определился?

#114666

Так вроде бы звук определился?

Определился, но не пашет. В спецификации к матери указан именно AD1980, тут вообще звук какой-то хитрый шестиканальный. alsaconf вообще не находит никаких знакомых ему устройств.

Насколько я понимаю, AD1980 это вообще кодек, а не драйвер железяки.

#114667
screw написал:
Определился, но не пашет.

Может попробовать позагружаться с разных LiveCD? IMHO, ядро звук определило, дело за настройкой.

Войдите или зарегистрируйтесь, чтобы ответить.