Jump to content

ATI AC 97 Sounds (SB400) effort


Andras Kenez
 Share

696 posts in this topic

Recommended Posts

Ahhhh, okay. I've worked with a lot of hardware, but sound cards are the one thing I haven't messed with in driver terms. It makes sense now why the interrupt wasn't firing - it doesn't have to. So it does indeed appear to be in the getDMAEngineHardwarePointer function. I just don't understand why the hardware pointer doesn't appear to be incrementing. I'll keep poking around the Linux source and let you guys know if there's anything of import that we missed.

 

I've never dealt with sound either. I had written firmware for Motorola HC16 microcontroller and the SHARC DSP.

 

Maybe it is firing and needs to be serviced as far as the hardware goes. But OSX doesn't expect anything.

 

But even if you enable all interrupts, they still don't seem to ever receive any.

Link to comment
Share on other sites

I think the interrupt handling has something to do with our problem. If there was a way to reliably tell whether the interrupt was firing, I'd like to know about it. I think the interrupt handler's "ack" function is what causes the DMA hardware pointer to increment. In other words, I think the hardware is doing the following:

Set up the DMA

Start running

Transfer data via DMA

Signal interrupt for data completion

Wait for acknowledgment

Increment hardware pointer and continue

And we get stuck on that last part, because the interrupt isn't being serviced. If you look at the Linux driver's interrupt service routine, that's what it does, as well as running some PCM routines that I presume have been handled somewhere (I get a clicking noise in my speakers when the first sound is triggered, so something happens).

Link to comment
Share on other sites

I think the interrupt handling has something to do with our problem. If there was a way to reliably tell whether the interrupt was firing, I'd like to know about it. I think the interrupt handler's "ack" function is what causes the DMA hardware pointer to increment. In other words, I think the hardware is doing the following:

Set up the DMA

Start running

Transfer data via DMA

Signal interrupt for data completion

Wait for acknowledgment

Increment hardware pointer and continue

And we get stuck on that last part, because the interrupt isn't being serviced. If you look at the Linux driver's interrupt service routine, that's what it does, as well as running some PCM routines that I presume have been handled somewhere (I get a clicking noise in my speakers when the first sound is triggered, so something happens).

 

I can also confirm the click, and from what I can tell in debug logs is that we do all that, but yeah, the problem is with the position. I was hoping that if we got that position working then we'd get something happenning, but not yet.

Link to comment
Share on other sites

Hi i also have ATI AC97 onboard sound, however i have device id 4341.

My laptop vendor site says it's a Realtek ALC 250, am i dealing with the SB400 ATI sound card, wich you guys have a hard time with, or am i dealing with another type and the normal AppleAC97 kext should work for me?(it doesn't i tried hehe).

Link to comment
Share on other sites

So is this driver ready? I've been reading the thread and it sounds like it works with some cards and not others. I have a Conexant AC-Link Audio card with

Vendor ID 1002

Dev 4370

I am new to MacOS and a horrible programmer but would like to get my ound working. If it works the will someone please tell me how to get/install it.

Thanks

Link to comment
Share on other sites

So is this driver ready? I've been reading the thread and it sounds like it works with some cards and not others. I have a Conexant AC-Link Audio card with

Vendor ID 1002

Dev 4370

I am new to MacOS and a horrible programmer but would like to get my ound working. If it works the will someone please tell me how to get/install it.

Thanks

 

 

the driver is in a pre-alpha stage. Aka, not working yet, but it compiles. You have the right card, but you won't have sound yet.

Link to comment
Share on other sites

Well according to google's linux results (i have no linux) my card is also an ixp type.

Meaning ill be dreaming of sound hehe.

Seriously i would abandon windows xp in a sec if i could just get my sound working, for then my whole multimedia apple intel os x experience would be complete.

Link to comment
Share on other sites

roxas, if you know how to, compile the kext from scousi's earlier post and add your ID into the info.plist, and then see if the driver loads for your card. You won't have sound yet, but if it loads up and you get the same errors we've reported then your card should be supported once all is said and done.

 

 

If anyone else has non 4370 hardware they'd like to test in this way, do it, and let us know what happens.

 

FAQ #1: This is not a working driver, just some stuff that kind of does something.

FAQ #2: No other ATI IXP hardware other than sound is being worked on right now

FAQ #3: when installing make sure you do the proper ownership and permissions

FAQ #4: when testing stuff, list what version of MAC OS X your running.

FAQ #5: kthnxbye

Link to comment
Share on other sites

i installed xcode 2.3 and tryed to compile the project, i got an error, missing file in /var/root/desktop/AppleAc97.../atiixp.../the .cpp

 

i am a noob in xcode, why do i got thast and how can i compile the source succefully?

it will nt work, i know but i want to try something

Link to comment
Share on other sites

what the ****

i get permission denied when i do sudo cd /var/root

why is xcode need that, on linux or windows i never saw that kind of problem

 

EDIT:

Building target “AppleAC97AudioATIIXP” of project “AppleAC97Audio” with configuration “Default” — (1 error)
	cd /Users/emmanuellepagevallee/ATIAppleAC97Audio-5
setenv ASCII_OUTPUT_ANNOTATION YES
setenv ENABLE_APPLE_JAM_EXTENSIONS YES
setenv ENABLE_APPLE_JAM_OUTPUT_ANNOTATION YES
setenv GROUP emmanuellepagevallee
setenv NATIVE_ARCH i386
setenv USER emmanuellepagevallee
/Developer/Private/jam -d1 -j1 JAMBASE=/Developer/Makefiles/pbx_jamfiles/ProjectBuilderJambase JAMFILE=/Users/emmanuellepagevallee/ATIAppleAC97Audio-5/build/AppleAC97Audio.build/Default/AppleAC97AudioATIIXP.build/AppleAC97AudioATIIXP.jam build ACTION=build _DEFAULT_GCC_VERSION=4.0 GCC_VERSION_IDENTIFIER=4_0 CONFIGURATION=Default BUILD_STYLE=Default CPP_HEADERMAP_FILE=/Users/emmanuellepagevallee/ATIAppleAC97Audio-5/build/AppleAC97Audio.build/Default/AppleAC97AudioATIIXP.build/AppleAC97AudioATIIXP.hmap SRCROOT=/Users/emmanuellepagevallee/ATIAppleAC97Audio-5 OBJROOT=/Users/emmanuellepagevallee/ATIAppleAC97Audio-5/build SYMROOT=/Users/emmanuellepagevallee/ATIAppleAC97Audio-5/build DSTROOT=/tmp/AppleAC97Audio.dst
Missing file or directory: /private/var/root/Desktop/ATIAppleAC97Audio-5/AppleAC97AudioATIIXP/AppleAC97AudioATIIXP.cpp
	Missing file or directory: /private/var/root/Desktop/ATIAppleAC97Audio-5/AppleAC97AudioATIIXP/AppleAC97AudioATIIXP.cpp
Build failed (1 error)

Link to comment
Share on other sites

what the ****

i get permission denied when i do sudo cd /var/root

why is xcode need that, on linux or windows i never saw that kind of problem

 

EDIT:

Building target “AppleAC97AudioATIIXP” of project “AppleAC97Audio” with configuration “Default” — (1 error)
	cd /Users/emmanuellepagevallee/ATIAppleAC97Audio-5
setenv ASCII_OUTPUT_ANNOTATION YES
setenv ENABLE_APPLE_JAM_EXTENSIONS YES
setenv ENABLE_APPLE_JAM_OUTPUT_ANNOTATION YES
setenv GROUP emmanuellepagevallee
setenv NATIVE_ARCH i386
setenv USER emmanuellepagevallee
/Developer/Private/jam -d1 -j1 JAMBASE=/Developer/Makefiles/pbx_jamfiles/ProjectBuilderJambase JAMFILE=/Users/emmanuellepagevallee/ATIAppleAC97Audio-5/build/AppleAC97Audio.build/Default/AppleAC97AudioATIIXP.build/AppleAC97AudioATIIXP.jam build ACTION=build _DEFAULT_GCC_VERSION=4.0 GCC_VERSION_IDENTIFIER=4_0 CONFIGURATION=Default BUILD_STYLE=Default CPP_HEADERMAP_FILE=/Users/emmanuellepagevallee/ATIAppleAC97Audio-5/build/AppleAC97Audio.build/Default/AppleAC97AudioATIIXP.build/AppleAC97AudioATIIXP.hmap SRCROOT=/Users/emmanuellepagevallee/ATIAppleAC97Audio-5 OBJROOT=/Users/emmanuellepagevallee/ATIAppleAC97Audio-5/build SYMROOT=/Users/emmanuellepagevallee/ATIAppleAC97Audio-5/build DSTROOT=/tmp/AppleAC97Audio.dst
Missing file or directory: /private/var/root/Desktop/ATIAppleAC97Audio-5/AppleAC97AudioATIIXP/AppleAC97AudioATIIXP.cpp
	Missing file or directory: /private/var/root/Desktop/ATIAppleAC97Audio-5/AppleAC97AudioATIIXP/AppleAC97AudioATIIXP.cpp
Build failed (1 error)

 

The reason why it was developed under root was that it was faster and easier to test and install. What you should do is to enable the root user. This allow you to login as root and have a desktop. No more sudo {censored} to copy. You can now use the UI for that.

Link to comment
Share on other sites

...

i made the kext, added right permission, made any modification to the code for the first built

 

nothing!

the kext dont load (appleac97audio)

no loop, just nothing

 

 

i added the line kextload /sys.../AppleAC97Audio.kext to /etc/rc but it still do nothing!

i got an atiixp, but i am not sue about dev id, lspci dont work under osx

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...