Sound on PowerBook and iBook (snd_powermac/snd_aoa)
Adam Smith
adogcalledsummer at hotmail.co.uk
Mon Mar 3 00:44:34 EST 2014
Hi list,
I was hoping to pick your brains regarding the sound on Apple PowerPC machines. For a long time now, sound has been broken on a number of these machines. This, I think, is due to i2c changes that started in April 2012. A number of bug reports have been raised by users at a distribution level (e.g. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=714345 ) but as of yet no progress has been made on these.
Ubuntu has been hit by a "Fixing recursive fault, but reboot is needed!" bug that is caused by snd_powermac ( https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1066435 ). I tried the latest daily build of Lubuntu yesterday and the problem appears to be gone, but since the bug is a bit temperamental, I'm wondering if it was a fluke? Has any work been done on this, and can we genuinely mark it as solved? However, I could not get sound working on my G4 iBook.
Ubuntu (and I think Debian) add snd_powermac to /etc/modules. Is this still necessary or does the module now auto-load? The installer has a complicated routine (/bin/discover-mac-io) to load certain sound modules and blacklist others. Can we remove this now?
I seem to remember reading somewhere that certain machines will be migrating from snd_powermac to snd_aoa, although I can't seem to find the reference to that now. If this is the case, I think a certain number of machines have slipped through the net. As users, what information do we need to provide to get this fixed? Attached is a patch that was sent by Stefan Gartner to the Debian mailing list ( https://lists.debian.org/debian-powerpc/2013/09/msg00031.html ). Is this patch okay? I'm afraid I don't know how to check the device id/codec used by my own machine, as at a kernel level I'm a bit clueless. Would it be possible to provide instructions on how to do this? I could then circulate the instructions to other users who also have no sound. That way we could hopefully fix all broken machines.
If you need any more info then I will be happy to provide it, although you may have to give me a few days to do it (no internet connection!...)
Many thanks
Adam
--- a/sound/aoa/fabrics/layout.c 2013-09-18 21:09:41.910672970 +0200
+++ b/sound/aoa/fabrics/layout.c 2013-09-18 23:23:58.230511273 +0200
@@ -113,6 +113,8 @@
MODULE_ALIAS("aoa-device-id-14");
MODULE_ALIAS("aoa-device-id-22");
MODULE_ALIAS("aoa-device-id-35");
+MODULE_ALIAS("aoa-device-id-38");
+MODULE_ALIAS("aoa-device-id-40");
MODULE_ALIAS("aoa-device-id-44");
/* onyx with all but microphone connected */
@@ -362,7 +364,20 @@
.connections = tas_connections_nolineout,
},
},
+ /* PowerBook6,4 */
+ { .device_id = 40,
+ .codecs[0] = {
+ .name = "tas",
+ .connections = tas_connections_all,
+ },
+ },
/* PowerBook6,5 */
+ { .device_id = 38,
+ .codecs[0] = {
+ .name = "tas",
+ .connections = tas_connections_all,
+ },
+ },
{ .device_id = 44,
.codecs[0] = {
.name = "tas",
--- a/sound/aoa/soundbus/i2sbus/core.c 2013-09-18 20:24:03.962348741 +0200
+++ b/sound/aoa/soundbus/i2sbus/core.c 2013-09-18 23:34:41.934550116 +0200
@@ -201,7 +201,7 @@
* so restrict to those we do handle for now.
*/
if (id && (*id == 22 || *id == 14 || *id == 35 ||
- *id == 44)) {
+ *id == 44 || *id == 40 || *id == 38)) {
snprintf(dev->sound.modalias, 32,
"aoa-device-id-%d", *id);
ok = 1;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20140302/0b5ab259/attachment-0001.html>
More information about the Linuxppc-dev
mailing list