microphone does not work on intel macbook with edgy
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux-source-2.6.20 (Ubuntu) |
Fix Released
|
Low
|
Unassigned |
Bug Description
I am using Ubuntu Edgy on an intel macbook core duo. I found the following on the gentoo wiki for how to make the built-in microphone work.
Hope this helps.
cheers.
martin.
I was able to get the built-in mic working on the macbook thanks to Jason Parekh's howto (http://
I used the alsa-driver ebuild (version 1.0.13). If you have sound built into your kernel you can also get it working this way too, you just need to edit the files /usr/src/
Basically we just need to edit the patch_sigmatel.c file to re-map the pins to better suit the macbook. Here's how I did it with the alsa-driver ebuild and portage:
ebuild /usr/portage/
vim /var/tmp/
search for "d945gtp5_
static unsigned int d945gtp5_
0x0221401f, 0x01011012, 0x01813024, 0x01014010,
0x01a19021, 0x01016011, 0x01452130, 0x40000100,
0x02a19320, 0x40000100,
};
Make a new line under this section and paste the following:
static unsigned int macbook_
0x0321E230, 0x03A1E020, 0x400000FD, 0x9017E110,
0x400000FE, 0x400000F0, 0x1345E240, 0x13C5E22E,
0x400000FC, 0x400000FB,
};
Now we need to tell alsa to use our new macbook pin configuration, so just a few lines down you should see:
[STAC_MACMINI] = d945gtp5_
Change this to:
[STAC_MACMINI] = macbook_
Note that the above DISABLES your line in. If you need to use your line in AND your mic, then in the new code block replace the "0x400000F0" value with "0x0381E021" so that it reads:
static unsigned int macbook_
0x0321E230, 0x03A1E020, 0x400000FD, 0x9017E110,
0x400000FE, 0x0381E021, 0x1345E240, 0x13C5E22E,
0x400000FC, 0x400000FB,
};
The disadvantage is that you will need to toggle the recording device to linein and back to mic to get it to work. Of course this could be done easily with /etc/conf.
amixer sset 'Input Source' 'Line'
amixer sset 'Input Source' 'Mic'
Save and exit patch_sigmatel.c. Now check to make sure the other file says the same thing. This is found under:
/var/tmp/
When you are sure they are both as mentioned above you're ready to build the driver. Run:
ebuild /usr/portage/
ebuild /usr/portage/
ebuild /usr/portage/
If you are using sound in your kernel, then re-build your kernel now. If you have sound built statically into your kernel you'll need to rebuild your kernel, copy it to /boot and reboot to it. If you're using sound as modules, then you should be able to just run:
cd /usr/src/linux/
make modules modules_install
Once you have emerged the package or rebuilt your kernel update the module deps
modules-update
I think it's a good idea to reboot at this stage, or reload your alsa modules. You could just re-run alsaconf if you like which should do this for you.
When you reboot you should now be able to use your microphone. Remember to toggle the recording device to linein and back to mic if you need to. You can toggle the mic for recording from the command line with:
amixer sset Capture '100%' toggle
Make sure it says "on" like so:
chris@localhost ~ $ amixer sset Capture '100%' toggle
Simple mixer control 'Capture',0
Capabilities: cvolume cswitch
Capture channels: Front Left - Front Right
Limits: Capture 0 - 14
Front Left: Capture 14 [100%] [21.00dB] [on]
Front Right: Capture 14 [100%] [21.00dB] [on]
Simply make sure that it is selected to record and give it a test!
Changed in linux-source-2.6.20: | |
status: | Fix Committed → Fix Released |
Already fixed upstream.