Onboard audio device not detected for ASUS P4S533 MB
I recently installed Arch Linux on an old desktop machine. Everything works well except the onboard audio isn't detected at all.
I am using the 2.6.32-ARCH kernel My lspci output is: Code:
# lspci I looked through the dmesg output and didn't see anything about audio. Here are a couple of sections of dmesg output that looked like they could be errors (they may have more to do with the fact that my ps/2 ports aren't working; not sure): Code:
PCI: Using ACPI for IRQ routing On another note, the manufacturer (ASUS) actually provides Linux audio drivers for my motherboard (model: P4S533). I attempted to install them, but the configuration process involves using make menuconfig, make xconfig, or make config to add the drivers to the kernel (I think) and I'm still a relatively new Linux user and had no clue what I was doing... Any help would be very appreciated! |
Quote:
Quote:
You will need the kernel source installed to be able to rebuild the kernel with the C-Media CMI8738/C3DX audio driver/module. First check to see if it is installed...with ls (list) Code:
ls /usr/src/ Code:
ls -la /usr/src/ Code:
glenn@GamesBox:~$ ls -la /usr/src/ Like, libqt3-devel, make, c++, and any dependancies they require. Only then will you be able to continue. Please post back with your responce. Regards Glenn |
Thank you for the prompt reply Glenn!
This is the output on my box: Code:
# ls -la /usr/src/ If I need to download the kernel source, does the exact version matter, or does it just need to be version 2.6.32?(i.e. 2.6.32.8 vs 2.6.32.10) My goal is to install the audio drivers without affecting the rest of the system. Thanks again! |
OK RyuOni, we'll soon find out if you need the sources, as you describe, they look like it's installed.
Yes the versions need to match or be very close, but newer. I'm not too sure about ARCH-Linux, as to the need of creating a link to /usr/src/linux-2.6.32-ARCH. But Generally I do, and it seems to be standard operation proceedure. You need root privs to write to /usr and any folder contained there. If you have sudo setup, that will be fine, otherwise you may su to root. Code:
su [type root password and hit enter] change directory to /usr/src/ Code:
cd /usr/src/ Code:
ln -s linux-2.6.32-ARCH linux Code:
cd linux Also the size of the dir may help, as a guide mine is 270Mb, not the link, the actual source dir (linux-2.6.32-ARCH) There is a dev package, but it's only 30Mb. Quote:
Code:
uname -a output of my system... Code:
glenn@GamesBox:~$ uname -a 2.6.31.12-1.rt20.2mdv_GamesBox The first few lines of the Makefile are the ones we want to hack. EXTRAVERSION = before... Code:
VERSION = 2 Code:
VERSION = 2 Code:
VERSION = 2 Now we can go to the readme, be right back, soon |
Alright, I created a static link to my linux-2.6.32-ARCH directory with the ln command. I changed to the linux directory(link) and I do have a Makefile.
The size of my linux-2.6.32-ARCH directory is 41M (using #du -h linux-2.6.32-ARCH) The output of uname -a on my box is: Code:
# uname -a 2.6.32-ARCH The EXTRAVERSION is blank in my Makefile initially... Code:
VERSION = 2 Code:
VERSION = 2 |
I think you will need the whole source package. 40Mb is too small to contain all the files.
STEPS TO BUILD DRIVER <edit>edited by Glenn</edit><edit></edit> ================================================================================ <edit> If you had to install the sources, do... Code:
make oldconfig Now we can use the readme guide. </edit> 1. Backup the Config.in and Makefile in the sound driver directory (/usr/src/linux/driver/sound). <edit>To backup, just rename the files, with a new extension, like .old</edit> The Configure.help provide help when you config driver in step 4, please backup the original one (/usr/src/linux/Document) and copy this file. The cmpci is document for the driver in detail, please copy it to /usr/src/linux/Document/sound so you can refer it. Backup if there is already one. <edit> same again, just rename with .old</edit> 2. Extract the tar file by 'tar xvzf cmpci-xx.tar.gz' in the above directory. <edit>cmpci-5.68.tar.gz to a dir in your /home/<user> dir, like /home/<user>/downloads or /home/<user>/build go to that dir and copy the files to the appropriate places Config.in and Makefile to /usr/src/linux/driver/sound Configure.help to /usr/src/linux/Document the folder cmpci with the files cmpci, cmpci.c to /usr/src/linux/driver/sound/ </edit> 3. Change directory to /usr/src/linux 4. Config cm8338 driver by 'make menuconfig', 'make config' or 'make xconfig' command.<edit>just use make xconfig</edit> <edit>Make use of the find tool to quickly navigate</edit> 5. Please select Sound Card (CONFIG_SOUND=m) support and CMPCI driver (CONFIG_SOUND_CMPCI=m) as modules. Resident mode not tested. For driver option, please refer 'DRIVER PARAMETER' 6. Compile the kernel if necessary. 7. Compile the modules by 'make modules'. 8. Install the modules by 'make modules_install' see how you go with that. Regards Glenn |
Before I begin, I don't actually have a /usr/src/linux/driver/sound directory. I have a /usr/src/linux/drivers directory (no sound/ subdirectory) and a /usr/src/linux/sound/drivers directory. Should I create a /usr/src/linux/drivers/sound directory or use the /usr/src/linux/sound/drivers directory?
Also, I don't appear to have a Config.in file or a Makefile in /usr/src/linux/sound/drivers. I have a Kconfig file. The first couple of segments in Kconfig are: Code:
config SND_MPU401_UART Also, in make xconfig I found CONFIG_SOUND, but I cannot find CONFIG_SOUND_CMPCI anywhere. I'm not sure what they mean by refer to 'DRIVER PARAMETER' Thanks! |
No, neither, because you don't have all the sources installed.
You will need to download the kernel source, and install the package |
Well, after downloading the kernel source, copying the cmpci files into the appropriate places, and going through make xconfig, I attempted to build the kernel (using the instructions found here as a guide).
When it reached the Makefile that came with the cmpci driver files, I got this error: Code:
# make bzImage If so, should I just attempt to get a Rules.make file from the net and copy it into my linux-2.6.32.10 directory? As a side note, the kernel does build successfully with the original (dummy) Makefile in the sound/drivers directory. |
Hi,
Something went wrong during the make process, I think. or during make xconfig, like setting a parameter that's no longer supported, that kind of thing. Could be a bug, maybe try it again with out doing make oldconfig. There is a file not found for the kernel image (bzImage). Sure you copied everything? Sorry, gotta check. On my system bzImage is only found in the source code dir. Not in /boot/ Quote:
I don't know much about kernel ver 2.4, I starting using with 2.6 Quote:
Maybe you can see whats happening. Here is the address of the file and line number that triggered the error. Code:
/usr/src/linux-2.6.32.10/sound/drivers/Makefile:159 does it build the modules? And can you install them with any of the commands on the readme? Regards Glenn |
Quote:
then start the process from the beginning again, with backing up files the copying the asus files. If we get the same error we'll have to look further. One thing just came to mind, are the asus drivers for kernel 2.6, or 2.4? (sometimes both) Glenn |
Quote:
Here is more bad evidence....very old versions of linux desktops here. Code:
3. Driver installation for various distributions: |
Apparently,
cmcpi is built in to this devel kernel rpm for arch <edit> correction, that was a Mandriva package, dunno how I did that, oops! My bad.</edit> http://www.rpmfind.net/linux/RPM/man...mnb2.i586.html a search in the Changelog refer to 2004, when the module was inserted. Code:
* Tue Apr 20 2004 Nicolas Planel <nplanel@mandrakesoft.com> 2.6.3-10mdk |
Hi Glenn,
Quote:
Quote:
This involved using make menuconfig. At that point, the kernel built successfully using make bzImage. After that, I copied the cmpci files to the /usr/src/linux-2.6.32.10/sound/drivers directory after backing up the preexisting Makefile (Config.in did not previously exist there). Then, I used make xconfig to add the CONFIG_SOUND module. Unfortunately, I couldn't find the CONFIG_SOUND_CMPCI option. There was a CONFIG_SND_CMIPCI that was already selected as a module, but it was listed under PCI sound cards. After saving in the xconfig, I entered make oldconfig and then I attempted to build the kernel again using make bzImage, which resulted in the error for the asus cmpci Makefile. Quote:
So, if the drivers were not updated for 2.6 am I out of luck on getting my onboard audio to work? Or is there a reasonable way to get the drivers to work in 2.6? Another thought - I was talking to someone about this today and they seemed to be under the impression that if lshw doesn't detect the hardware, then the issue is with the hardware and not the kernel. As is the case with lspci, the output of lshw does not show an audio device. I was a little skeptical, but could that be true? Thanks again! |
By the way, I will be leaving for an IEEE conference tomorrow and won't be back until late on Sunday, so I won't be able to do anything with my desktop machine until Monday at the earliest.
Thank you for all of your help! I really appreciate it. :) |
All times are GMT -5. The time now is 08:49 AM. |