When trying to start ALSA driver snd-via82xx an error is reported. In the /var/log/messages: "ALSA ../alsa-kernel/pci/via82xx.c:1786: unable to grab ports 0xdc00-0xdcff" Checking the /proc/ioport: "dc00-dcff : VIA Technologies, Inc. VT82C686 AC97 Audio Controller dc00-dcff : aic7xxx" Probably the module driver aic7xxx of my AHA-2940UW blocks that ioport region and does not permit to install the audio module snd-via82xx . Reproducible: Always Steps to Reproduce: 1./etc/init.d/alsasound restart 2. 3. Actual Results: /pci/snd-via82xx.o: init_module: No such device Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters. You may find more information in syslog or the output from dmesg Expected Results: Sound from on-board sound card. motherboard: Soyo SY-7VBA 133 (southbridge 686A) SCSI adapter: Adaptec AHA-2940UW # lspci -vv ... 00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 20) Subsystem: VIA Technologies, Inc. VT82C686 AC97 Audio Controller Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Interrupt: pin C routed to IRQ 10 Region 0: I/O ports at dc00 [size=256] Region 1: I/O ports at e000 [size=4] Region 2: I/O ports at e400 [size=4] Capabilities: [c0] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- ... 00:09.0 SCSI storage controller: Adaptec AHA-2940U/UW/D / AIC-7881U Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 32 (2000ns min, 2000ns max), cache line size 08 Interrupt: pin A routed to IRQ 9 Region 0: I/O ports at e800 [disabled] [size=256] Region 1: Memory at d6020000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at <unassigned> [disabled] [size=64K] ... # emerge info Portage 2.0.47-r10 (default-x86-1.4, gcc-3.2.2, glibc-2.3.1-r4) ================================================================= System uname: 2.4.20-gentoo-r2 i686 Pentium III (Coppermine) GENTOO_MIRRORS="ftp://ftp.lit.inpe.br/pub/Linux/gentoo/ http://gentoo.oregonstate.edu/ http://www.ibiblio.org/pub/Linux/distributions/gentoo" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /var/bind /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="" USE="x86 oss 3dnow apm avi crypt cups encode gif libg++ mikmod mmx mpeg ncurses nls pdflib png quicktime spell truetype xml2 xmms xv zlib directfb gdbm berkdb slang readline arts svga guile sdl tcpd pam libwww ssl python esd imlib oggvorbis qt kde motif opengl X aalib acpi alsa apache2 cdr cjk dvd fbcon flash gphoto2 gpm gnome gtk java jpeg kerberos ldap maildir mozilla mule mysql nas oav odbc perl postgres samba sasl scanner sse tcltk tetex tiff wmf" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium3 -O3 -pipe -ffast-math -fomit-frame-pointer -mmmx -msse -mfpmath=sse,387" CXXFLAGS="-march=pentium3 -O3 -pipe -ffast-math -fomit-frame-pointer -mmmx -msse -mfpmath=sse,387" ACCEPT_KEYWORDS="x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.gentoo.org/gentoo-portage" FEATURES="sandbox ccache"
I removed all card except video (Creative Exxtreme - TI TVP4020 [Permedia 2], PCI, 4 MB) and the problem remains: # dmesg ... ALSA ../alsa-kernel/pci/via82xx.c:1786: unable to grab ports 0xdc00-0xdcff VIA 82xx soundcard not found or device busy ... # cat /proc/ioports ... dc00-dcff : VIA Technologies, Inc. VT82C686 AC97 Audio Controller dc00-dcff : ... Note que this region seems allocate, but to what driver? In the same machine I have Conectiva Linux 8 (similar to RedHat 7.x) installed (kernel 2.4.19 / alsa-libs-0.5.9) with all board installed: # dmesg ... PCI: Found IRQ 10 for device 00:07.5 ... # cat /proc/ioports ... 0330-0331 : VIA 82C686A - MPU401 ... dc00-dcff : VIA Technologies, Inc. VT82C686 AC97 Audio Controller dc00-dcff : VIA 82C686A - AC'97 e000-e003 : VIA Technologies, Inc. VT82C686 AC97 Audio Controller e400-e403 : VIA Technologies, Inc. VT82C686 AC97 Audio Controller e400-e403 : VIA 82C686A - MPU401 config e800-e8ff : Adaptec AHA-2940U/UW/D / AIC-7881U ... If the alsasound is stopped the ioport region dc00-dcff is desallocated correctly. Conclusion at this point: the kernel 2.4.20 allocated the ioport region dc00-dcff to nothing and the ALSA driver can not use the on-board sound. Question: is this a bug in the ioport detection and allocation routine in the kernel 2.4.20 or there is something wrong with kernel compilation options ? How can I change the name of the bug ? "VT82C686 AC97 Audio Controller ioport allocation problem" seems a better name.
I compiled a new kernel from gentoo-sources-2.4.20-r5 and installed it. The problem disappeared.