<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Molle</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Molle"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Molle"/>
	<updated>2026-05-01T04:48:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Script_for_configuring_the_CS4239_sound_chip_in_PnP_mode&amp;diff=19956</id>
		<title>Script for configuring the CS4239 sound chip in PnP mode</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Script_for_configuring_the_CS4239_sound_chip_in_PnP_mode&amp;diff=19956"/>
		<updated>2006-02-15T02:48:56Z</updated>

		<summary type="html">&lt;p&gt;Molle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To configure the [[CS4239]] sound chip via PnP, use the following script{{footnote|1}} (Tested on a ThinkPad {{600E}}). It is meant to be used as &amp;lt;tt&amp;gt;install&amp;lt;/tt&amp;gt; script with &amp;lt;tt&amp;gt;modprobe&amp;lt;/tt&amp;gt;. An example {{path|modprobe.conf}} snippet follows.&lt;br /&gt;
&lt;br /&gt;
Save this script as {{path|/usr/local/sbin/soundcard-on}}.&lt;br /&gt;
&lt;br /&gt;
===The Script===&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 # Sound-via-pnp-script for Thinkpad 600E and possibly other computers with onboard&lt;br /&gt;
 # CS4239/CS4610 that do not work with the PCI driver and are not recognized by the&lt;br /&gt;
 # PnP code of snd-cs4236&lt;br /&gt;
 &lt;br /&gt;
 # search sound card pnp device&lt;br /&gt;
 &lt;br /&gt;
 for dev in /sys/bus/pnp/devices/*&lt;br /&gt;
 do&lt;br /&gt;
   grep CSC0100 $dev/id &amp;gt; /dev/null &amp;amp;&amp;amp; WSSDEV=$dev&lt;br /&gt;
   grep CSC0110 $dev/id &amp;gt; /dev/null &amp;amp;&amp;amp; CTLDEV=$dev&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # activate devices (Thinkpad boots with devices disabled unless &amp;quot;fast boot&amp;quot; is turned off)&lt;br /&gt;
 &lt;br /&gt;
 echo activate &amp;gt; $WSSDEV/resources&lt;br /&gt;
 echo activate &amp;gt; $CTLDEV/resources&lt;br /&gt;
 &lt;br /&gt;
 # parse resource settings&lt;br /&gt;
 &lt;br /&gt;
 { read&lt;br /&gt;
  read bla port1&lt;br /&gt;
  read bla port2&lt;br /&gt;
  read bla port3&lt;br /&gt;
  read bla irq&lt;br /&gt;
  read bla dma1&lt;br /&gt;
  read bla dma2&lt;br /&gt;
  # Hack: with PnPBIOS: ports are: port1: WSS, port2: OPL, port3: sb (unneeded)&lt;br /&gt;
  #       with ACPI-PnP:ports are: port1: OPL, port2: sb, port3: WSS&lt;br /&gt;
  # (ACPI bios seems to be wrong here, the PnP-card-code in snd-cs4236.c uses the&lt;br /&gt;
  #  PnPBIOS port order)&lt;br /&gt;
  # Detect port order using the fixed OPL port as reference&lt;br /&gt;
  if [ ${port2%%-*} = 0x388 ]&lt;br /&gt;
  then&lt;br /&gt;
    # PnPBIOS: usual order&lt;br /&gt;
    port=${port1%%-*}&lt;br /&gt;
    oplport=${port2%%-*}&lt;br /&gt;
  else&lt;br /&gt;
    # ACPI: mixed-up order&lt;br /&gt;
    port=${port3%%-*}&lt;br /&gt;
    oplport=${port1%%-*}&lt;br /&gt;
  fi&lt;br /&gt;
  } &amp;lt; $WSSDEV/resources&lt;br /&gt;
 &lt;br /&gt;
 { read&lt;br /&gt;
  read bla port1&lt;br /&gt;
  cport=${port1%%-*}&lt;br /&gt;
 } &amp;lt; $CTLDEV/resources&lt;br /&gt;
 &lt;br /&gt;
 # load the module&lt;br /&gt;
 &lt;br /&gt;
 modprobe --ignore-install snd-cs4236 port=$port cport=$cport fm_port=$oplport irq=$irq dma1=$dma1 dma2=$dma2 isapnp=0 index=0 &amp;amp;&amp;amp; /lib/alsa/modprobe-post-install snd-cs4236&lt;br /&gt;
&lt;br /&gt;
===modprobe Configuration===&lt;br /&gt;
Add these lines to {{path|/etc/modprobe.conf}} or {{path|/etc/modprobe.d/cs4236pnp}}:&lt;br /&gt;
 # Kill any attempts from hotplug or discover to load the PCI driver&lt;br /&gt;
 install snd-cs46xx /bin/true&lt;br /&gt;
 # Set up PnP before loading ISA driver&lt;br /&gt;
 install snd-cs4236 /usr/local/bin/soundcard-on&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#provided by [[User:Mkarcher|Mkarcher]] 23:20, 22 January 2006 (CET)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripts]]&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=CS4610&amp;diff=19955</id>
		<title>CS4610</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=CS4610&amp;diff=19955"/>
		<updated>2006-02-15T02:45:29Z</updated>

		<summary type="html">&lt;p&gt;Molle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== CS4610 ===&lt;br /&gt;
This is a Cirrus Logic Audio controller.&lt;br /&gt;
&lt;br /&gt;
This chip is paired with an ISA [[CS4239]] audio controller, which can also be used by DOS applications (like games) in SoundBlaster emulation mode.&lt;br /&gt;
&lt;br /&gt;
You're not going to get the PCI part of this chip to work, so stick to using the [[CS4239|ISA part]].&lt;br /&gt;
&lt;br /&gt;
See also [[Problem with broken sound on some ThinkPads]] and [[Script for configuring the CS4239 sound chip in PnP mode]].&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: CS4610&lt;br /&gt;
* Interface: PCI&lt;br /&gt;
* PCI ID: 1013:6001&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Linux OSS driver ===&lt;br /&gt;
This sound chip is NOT supported by the cs46xx kernel module, it will die with this error (kernel 2.6.15):&lt;br /&gt;
  Crystal 4280/46xx + AC97 Audio, version 1.28.32, 02:37:29 Feb 15 2006&lt;br /&gt;
  cs46xx: Card found at 0x50100000 and 0x50000000, IRQ 9&lt;br /&gt;
  cs46xx: Thinkpad 600E (unsupported) (1014:1010) at 0x50100000/0x50000000, IRQ 9&lt;br /&gt;
  ac97_codec: Primary ac97 codec not present&lt;br /&gt;
  cs46xx: cs_ac97_init() failure&lt;br /&gt;
  cs46xx: cs46xx_probe()- cs_hardware_init() failed, retried 5 times.&lt;br /&gt;
  cs46xx: probe()- no device allocated&lt;br /&gt;
&lt;br /&gt;
=== Linux ALSA driver ===&lt;br /&gt;
This sound chip is NOT supported by the snd-cs46xx kernel module.&lt;br /&gt;
&lt;br /&gt;
The module won't do anything bad (except perhaps use a bit of RAM), but it also won't give you sound on your Linux box.&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this chip may be found in ===&lt;br /&gt;
* {{600E}}&lt;br /&gt;
* {{770X}}, {{770Z}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19954</id>
		<title>Problem with broken sound on some ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19954"/>
		<updated>2006-02-15T02:42:27Z</updated>

		<summary type="html">&lt;p&gt;Molle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information about the phenomena of broken sound on some ThinkPad models.&lt;br /&gt;
&lt;br /&gt;
==Problem description==&lt;br /&gt;
Even though the sound chip is a Crystal SoundFusion 4610, you'll have to use the cs4236 driver to enable sound on this machine, since this driver supports the CS4239 emulation that the 4610 chip offers.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
===Affected 6xx/7xx Models===&lt;br /&gt;
*ThinkPad {{600E}}&lt;br /&gt;
*ThinkPad {{770X}}, {{770Z}}&lt;br /&gt;
&lt;br /&gt;
===Unaffected 6xx/7xx Models===&lt;br /&gt;
*ThinkPad {{600X}}&lt;br /&gt;
&lt;br /&gt;
The ThinkPad 600X sports a newer CS4624 sound chip, which apparently has the AC'97 codec part that the Linux driver requires.&lt;br /&gt;
&lt;br /&gt;
===Unrelated 6xx/7xx models===&lt;br /&gt;
* ThinkPad {{600}}, {{600D}}&lt;br /&gt;
* ThinkPad {{770}}, {{770D}}, {{770E}}, {{770ED}}&lt;br /&gt;
&lt;br /&gt;
According to one report, these models have only an ISA-based sound chip, namely a CS4237B.&lt;br /&gt;
Just use the snd-cs4236 ALSA driver or cs4232 OSS driver for these models. &lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
The PCI chip that you see in lspci (in my 770x case 4610) is the DSP half of the soundcard.  You also need a codec to do conversion between digital and analog, audio routing, etc.  The CS46xx driver expects to find an [http://www.intel.com/design/chipsets/audio/ AC'97-compatible] chip addressible through the PCI Cirrus logic chip to do these tasks.&lt;br /&gt;
&lt;br /&gt;
However, in the affected laptops there is no AC'97 chip.  Instead the sound chip has an integrated ISA-based soundcard to do these tasks as well as providing legacy app support.  The cs46xx driver cannot find the AC'97 chip, nor can it support the ISA part for codec duties, so it dies with an error.  The current solution is to ignore the PCI part entirely and use sound though the legacy ISA part only, either through the ALSA snd-cs4236 or OSS cs4232 driver.&lt;br /&gt;
&lt;br /&gt;
Alternatively, I have tried removing the dependency on the existence of an AC'97 codec in the cs46xx driver, theory being that it may be possible to use the cs4236 driver for the mixing functions.  This resulted in the driver loading and detecting all the resources of the cs4610, however interrupt issues seemed to be preventing it from outputting sound.&lt;br /&gt;
&lt;br /&gt;
A good thread on the problem can be found in the [http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg01181.html alsa-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
Here's some more information about sound hardware in the 600 series:&lt;br /&gt;
The 600 series has not one, not two, but THREE chips that look like sound cards to Linux. The actual Crystal chip is one of them, the mwave is another, and the video chipset has a DSP that can be used as sound circuitry if a designer opted to do so.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
===Activating the devices===&lt;br /&gt;
First you must make sure that the sound devices are activated.&lt;br /&gt;
&lt;br /&gt;
Disable &amp;quot;Quick Boot&amp;quot; in your ThinkPad BIOS, otherwise the sound devices will not be activated by the BIOS.&lt;br /&gt;
To enter the BIOS, power cycle your ThinkPad and press F1 when the ThinkPad screen shows.&lt;br /&gt;
&lt;br /&gt;
You can also manually activate the sound card once booted:&lt;br /&gt;
* With apm and pnpbios, this is done with setpnp from the pcmcia package:&lt;br /&gt;
  {{cmdroot|setpnp 0x0e on}}&lt;br /&gt;
  {{cmdroot|setpnp 0x0f on}}&lt;br /&gt;
&lt;br /&gt;
* With acpi and pnpacpi, use these commands:&lt;br /&gt;
  {{cmdroot|echo 'activate' &amp;gt; /sys/devices/pnp0/00:05/resources}}&lt;br /&gt;
  {{cmdroot|echo 'activate' &amp;gt; /sys/devices/pnp0/00:06/resources}}&lt;br /&gt;
&lt;br /&gt;
It seems that with very new kernels and ACPI enabled, you will need to manually enable the device even if you have correctly disabled &amp;quot;Quick Boot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This only works with newer kernels that fully support pnpacpi, and provided that [http://bugzilla.kernel.org/show_bug.cgi?id=3912 this patch] has been applied (applied to Linus' tree in july 2005).&lt;br /&gt;
&lt;br /&gt;
It seems that the default dma numbers change when pnpacpi is used (to dma1=1 dma2=3, for instance).&lt;br /&gt;
&lt;br /&gt;
If you're using acpi and pnpacpi, you can see which resources the sound card is using like this:&lt;br /&gt;
  {{cmdroot|cat /sys/devices/pnp0/00:05/resources}}&lt;br /&gt;
  {{cmdroot|cat /sys/devices/pnp0/00:06/resources}}&lt;br /&gt;
&lt;br /&gt;
===Using ALSA===&lt;br /&gt;
Compile the sound driver as a module and load it after everything else.&lt;br /&gt;
You can add the following line to a boot script, ie. {{path|rc.local}} for that:&lt;br /&gt;
 /sbin/modprobe snd-cs4236 index=0 port=0x530 cport=0x538 irq=5 dma1=1 dma2=0 isapnp=0&lt;br /&gt;
&lt;br /&gt;
This is reported to work at least with kernel 2.6.9, 2.6.13 and 2.6.15.&lt;br /&gt;
&lt;br /&gt;
There is a [[Script for configuring the CS4239 sound chip in PnP mode|nice script]] which can do all this for you, including activation of the device and detecting the correct resource settings to use.&lt;br /&gt;
&lt;br /&gt;
===Using OSS===&lt;br /&gt;
Add the following line to a boot script, ie. {{path|rc.local}}:&lt;br /&gt;
 modprobe sound&lt;br /&gt;
 insmod ad1848&lt;br /&gt;
 insmod uart401&lt;br /&gt;
 insmod cs4232 io=0x530 irq=5 dma=1 dma2=0&lt;br /&gt;
&lt;br /&gt;
In case an insmod or modprobe of cs4232 fails with the following error appearing at the console, via dmesg, or in {{path|/var/log/messages}}, double-check you have quick boot disabled!&lt;br /&gt;
 modprobe: FATAL: Error inserting cs4232: No such device&lt;br /&gt;
&lt;br /&gt;
====Audio loops====&lt;br /&gt;
If your OSS module loads like it should, but audio loops or sounds choppy then reloading the module should help:&lt;br /&gt;
{{cmdroot|rmmod cs4232 &amp;amp;&amp;amp; modprobe cs4232}}&lt;br /&gt;
&lt;br /&gt;
(For the modprobe command to work without IRQ/IO/DMA parameters, you'll probably want to add the correct parameters as an &amp;quot;options&amp;quot; clause in {{path|/etc/modprobe.conf}}).&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=CS4610&amp;diff=19953</id>
		<title>CS4610</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=CS4610&amp;diff=19953"/>
		<updated>2006-02-15T02:07:05Z</updated>

		<summary type="html">&lt;p&gt;Molle: alter point about which driver to use - seems it's completely empty talk.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== CS4610 ===&lt;br /&gt;
This is a Cirrus Logic Audio controller.&lt;br /&gt;
&lt;br /&gt;
This chip is paired with an ISA [[CS4239]] audio controller, which can also be used by DOS applications (like games) in SoundBlaster emulation mode.&lt;br /&gt;
&lt;br /&gt;
You're probably not going to get the PCI part of this chip to work, but you may stick to using the [[CS4239|ISA part]].&lt;br /&gt;
&lt;br /&gt;
See also [[Problem with broken sound on some ThinkPads]] and [[Script for configuring the CS4239 sound chip in PnP mode]].&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: CS4610&lt;br /&gt;
* Interface: PCI&lt;br /&gt;
* PCI ID: 1013:6001&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Linux OSS driver ===&lt;br /&gt;
This sound chip is NOT supported by the cs46xx kernel module, it will die with this error (kernel 2.6.15):&lt;br /&gt;
  Crystal 4280/46xx + AC97 Audio, version 1.28.32, 02:37:29 Feb 15 2006&lt;br /&gt;
  cs46xx: Card found at 0x50100000 and 0x50000000, IRQ 9&lt;br /&gt;
  cs46xx: Thinkpad 600E (unsupported) (1014:1010) at 0x50100000/0x50000000, IRQ 9&lt;br /&gt;
  ac97_codec: Primary ac97 codec not present&lt;br /&gt;
  cs46xx: cs_ac97_init() failure&lt;br /&gt;
  cs46xx: cs46xx_probe()- cs_hardware_init() failed, retried 5 times.&lt;br /&gt;
  cs46xx: probe()- no device allocated&lt;br /&gt;
&lt;br /&gt;
=== Linux ALSA driver ===&lt;br /&gt;
This sound chip is NOT supported by the snd-cs46xx kernel module, at least not up till kernel 2.6.13.&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this chip may be found in ===&lt;br /&gt;
* {{600E}}&lt;br /&gt;
* {{770X}}, {{770Z}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=CS4239&amp;diff=19952</id>
		<title>CS4239</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=CS4239&amp;diff=19952"/>
		<updated>2006-02-15T01:39:29Z</updated>

		<summary type="html">&lt;p&gt;Molle: The PCI driver should not be used, it won't work.  Add relevant link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== CS4239 ===&lt;br /&gt;
This is a Cirrus Logic Audio controller&lt;br /&gt;
&lt;br /&gt;
Note: This sound adapter is paired with a PCI [[CS4610]] audio controller.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: CS4239&lt;br /&gt;
* Interface: ISA 16bit&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Linux OSS driver ===&lt;br /&gt;
This sound chip is supported by the cs4232 kernel module. Use the following options line when loading this module:&lt;br /&gt;
&lt;br /&gt;
 options cs4232 io=0x530 irq=5 dma=1 dma2=0&lt;br /&gt;
=== Linux ALSA driver ===&lt;br /&gt;
This sound chip is supported by the snd-cs4236 kernel module. Use the following options line when loading this module:&lt;br /&gt;
&lt;br /&gt;
 options snd-cs4236 snd_index=0 snd_port=0x530 snd_cport=0x538 snd_isapnp=0 snd_dma1=1 snd_dma2=0 snd_irq=5&lt;br /&gt;
&lt;br /&gt;
=== PnP issues ===&lt;br /&gt;
This chip is software configurable. In Thinkpads, the BIOS sets up the chip if fast boot is disabled. If fast boot is enabled, the chip is disabled until a PnP driver enables it. As both the OSS and the ALSA module do not support PnP discovering of this chips in a ThinkPad, a configuration script like [[Script for configuring the CS4239 sound chip in PnP mode|this one]] may be used.  See also [[Problem with broken sound on some ThinkPads|this page]] for more information.&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this chip may be found in ===&lt;br /&gt;
* {{600E}}&lt;br /&gt;
* {{770X}}, {{770Z}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19951</id>
		<title>Problem with broken sound on some ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19951"/>
		<updated>2006-02-15T01:36:10Z</updated>

		<summary type="html">&lt;p&gt;Molle: add relevant link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information about the phenomena of broken sound on some ThinkPad models.&lt;br /&gt;
&lt;br /&gt;
==Problem description==&lt;br /&gt;
Even though the sound chip is a Crystal SoundFusion 4610, you'll have to use the cs4236 driver to enable sound on this machine, since this driver supports the CS4239 emulation that the 4610 chip offers.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
===Affected 6xx/7xx Models===&lt;br /&gt;
*ThinkPad {{600E}}&lt;br /&gt;
*ThinkPad {{770X}}, {{770Z}}&lt;br /&gt;
&lt;br /&gt;
===Unaffected 6xx/7xx Models===&lt;br /&gt;
*ThinkPad {{600X}}&lt;br /&gt;
&lt;br /&gt;
The ThinkPad 600X sports a newer CS4624 sound chip, which apparently has the AC'97 codec part that the Linux driver requires.&lt;br /&gt;
&lt;br /&gt;
===Unrelated 6xx/7xx models===&lt;br /&gt;
* ThinkPad {{600}}, {{600D}}&lt;br /&gt;
* ThinkPad {{770}}, {{770D}}, {{770E}}, {{770ED}}&lt;br /&gt;
&lt;br /&gt;
According to one report, these models have only an ISA-based sound chip, namely a CS4237B.&lt;br /&gt;
Just use the snd-cs4236 ALSA driver or cs4232 OSS driver for these models. &lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
The PCI chip that you see in lspci (in my 770x case 4610) is the DSP half of the soundcard.  You also need a codec to do conversion between digital and analog, audio routing, etc.  The CS46xx driver expects to find an [http://www.intel.com/design/chipsets/audio/ AC'97-compatible] chip addressible through the PCI Cirrus logic chip to do these tasks.&lt;br /&gt;
&lt;br /&gt;
However, in the affected laptops there is no AC'97 chip.  Instead the sound chip has an integrated ISA-based soundcard to do these tasks as well as providing legacy app support.  The cs46xx driver cannot find the AC'97 chip, nor can it support the ISA part for codec duties, so it dies with an error.  The current solution is to ignore the PCI part entirely and use sound though the legacy ISA part only, either through the ALSA snd-cs4236 or OSS cs4232 driver.&lt;br /&gt;
&lt;br /&gt;
Alternatively, I have tried removing the dependency on the existence of an AC'97 codec in the cs46xx driver, theory being that it may be possible to use the cs4236 driver for the mixing functions.  This resulted in the driver loading and detecting all the resources of the cs4610, however interrupt issues seemed to be preventing it from outputting sound.&lt;br /&gt;
&lt;br /&gt;
A good thread on the problem can be found in the [http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg01181.html alsa-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
Here's some more information about sound hardware in the 600 series:&lt;br /&gt;
The 600 series has not one, not two, but THREE chips that look like sound cards to Linux. The actual Crystal chip is one of them, the mwave is another, and the video chipset has a DSP that can be used as sound circuitry if a designer opted to do so.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
===Activating the devices===&lt;br /&gt;
First you must make sure that the sound devices are activated.&lt;br /&gt;
&lt;br /&gt;
Disable &amp;quot;Quick Boot&amp;quot; in your ThinkPad BIOS, otherwise the sound devices will not be activated by the BIOS.&lt;br /&gt;
To enter the BIOS, power cycle your ThinkPad and press F1 when the ThinkPad screen shows.&lt;br /&gt;
&lt;br /&gt;
You can also manually activate the sound card once booted:&lt;br /&gt;
* With apm and pnpbios, this is done with setpnp from the pcmcia package:&lt;br /&gt;
  {{cmdroot|setpnp 0x0e on}}&lt;br /&gt;
  {{cmdroot|setpnp 0x0f on}}&lt;br /&gt;
&lt;br /&gt;
* With acpi and pnpacpi, use these commands:&lt;br /&gt;
  {{cmdroot|echo 'activate' &amp;gt; /sys/devices/pnp0/00:05/resources}}&lt;br /&gt;
  {{cmdroot|echo 'activate' &amp;gt; /sys/devices/pnp0/00:06/resources}}&lt;br /&gt;
&lt;br /&gt;
This only works with newer kernels that fully support pnpacpi, and provided that [http://bugzilla.kernel.org/show_bug.cgi?id=3912 this patch] has been applied (applied to Linus' tree in july 2005).&lt;br /&gt;
&lt;br /&gt;
It seems that the default dma numbers change when pnpacpi is used (to dma1=1 dma2=3, for instance).&lt;br /&gt;
&lt;br /&gt;
If you're using acpi and pnpacpi, you can see which resources the sound card is using like this:&lt;br /&gt;
  {{cmdroot|cat /sys/devices/pnp0/00:05/resources}}&lt;br /&gt;
  {{cmdroot|cat /sys/devices/pnp0/00:06/resources}}&lt;br /&gt;
&lt;br /&gt;
===Using ALSA===&lt;br /&gt;
Compile the sound driver as a module and load it after everything else.&lt;br /&gt;
You can add the following line to a boot script, ie. {{path|rc.local}} for that:&lt;br /&gt;
 /sbin/modprobe snd-cs4236 index=0 port=0x530 cport=0x538 irq=5 dma1=1 dma2=0 isapnp=0&lt;br /&gt;
&lt;br /&gt;
This is reported to work at least with kernel 2.6.9 and 2.6.13.&lt;br /&gt;
I seem to have problems getting it to work with 2.6.15.&lt;br /&gt;
&lt;br /&gt;
There is a nice script which can do all this for you [[Script for configuring the CS4239 sound chip in PnP mode|here]].&lt;br /&gt;
&lt;br /&gt;
===Using OSS===&lt;br /&gt;
Add the following line to a boot script, ie. {{path|rc.local}}:&lt;br /&gt;
 modprobe sound&lt;br /&gt;
 insmod ad1848&lt;br /&gt;
 insmod uart401&lt;br /&gt;
 insmod cs4232 io=0x530 irq=5 dma=1 dma2=0&lt;br /&gt;
&lt;br /&gt;
In case an insmod or modprobe of cs4232 fails with the following error appearing at the console, via dmesg, or in {{path|/var/log/messages}}, double-check you have quick boot disabled!&lt;br /&gt;
 modprobe: FATAL: Error inserting cs4232: No such device&lt;br /&gt;
&lt;br /&gt;
====Audio loops====&lt;br /&gt;
If your OSS module loads like it should, but audio loops or sounds choppy then reloading the module should help:&lt;br /&gt;
{{cmdroot|rmmod cs4232 &amp;amp;&amp;amp; modprobe cs4232}}&lt;br /&gt;
&lt;br /&gt;
(For the modprobe command to work without IRQ/IO/DMA parameters, you'll probably want to add the correct parameters as an &amp;quot;options&amp;quot; clause in {{path|/etc/modprobe.conf}}).&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19950</id>
		<title>Problem with broken sound on some ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19950"/>
		<updated>2006-02-15T01:27:56Z</updated>

		<summary type="html">&lt;p&gt;Molle: add more testimony&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information about the phenomena of broken sound on some ThinkPad models.&lt;br /&gt;
&lt;br /&gt;
==Problem description==&lt;br /&gt;
Even though the sound chip is a Crystal SoundFusion 4610, you'll have to use the cs4236 driver to enable sound on this machine, since this driver supports the CS4239 emulation that the 4610 chip offers.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
===Affected 6xx/7xx Models===&lt;br /&gt;
*ThinkPad {{600E}}&lt;br /&gt;
*ThinkPad {{770X}}, {{770Z}}&lt;br /&gt;
&lt;br /&gt;
===Unaffected 6xx/7xx Models===&lt;br /&gt;
*ThinkPad {{600X}}&lt;br /&gt;
&lt;br /&gt;
The ThinkPad 600X sports a newer CS4624 sound chip, which apparently has the AC'97 codec part that the Linux driver requires.&lt;br /&gt;
&lt;br /&gt;
===Unrelated 6xx/7xx models===&lt;br /&gt;
* ThinkPad {{600}}, {{600D}}&lt;br /&gt;
* ThinkPad {{770}}, {{770D}}, {{770E}}, {{770ED}}&lt;br /&gt;
&lt;br /&gt;
According to one report, these models have only an ISA-based sound chip, namely a CS4237B.&lt;br /&gt;
Just use the snd-cs4236 ALSA driver or cs4232 OSS driver for these models. &lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
The PCI chip that you see in lspci (in my 770x case 4610) is the DSP half of the soundcard.  You also need a codec to do conversion between digital and analog, audio routing, etc.  The CS46xx driver expects to find an [http://www.intel.com/design/chipsets/audio/ AC'97-compatible] chip addressible through the PCI Cirrus logic chip to do these tasks.&lt;br /&gt;
&lt;br /&gt;
However, in the affected laptops there is no AC'97 chip.  Instead the sound chip has an integrated ISA-based soundcard to do these tasks as well as providing legacy app support.  The cs46xx driver cannot find the AC'97 chip, nor can it support the ISA part for codec duties, so it dies with an error.  The current solution is to ignore the PCI part entirely and use sound though the legacy ISA part only, either through the ALSA snd-cs4236 or OSS cs4232 driver.&lt;br /&gt;
&lt;br /&gt;
Alternatively, I have tried removing the dependency on the existence of an AC'97 codec in the cs46xx driver, theory being that it may be possible to use the cs4236 driver for the mixing functions.  This resulted in the driver loading and detecting all the resources of the cs4610, however interrupt issues seemed to be preventing it from outputting sound.&lt;br /&gt;
&lt;br /&gt;
A good thread on the problem can be found in the [http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg01181.html alsa-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
Here's some more information about sound hardware in the 600 series:&lt;br /&gt;
The 600 series has not one, not two, but THREE chips that look like sound cards to Linux. The actual Crystal chip is one of them, the mwave is another, and the video chipset has a DSP that can be used as sound circuitry if a designer opted to do so.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
===Activating the devices===&lt;br /&gt;
First you must make sure that the sound devices are activated.&lt;br /&gt;
&lt;br /&gt;
Disable &amp;quot;Quick Boot&amp;quot; in your ThinkPad BIOS, otherwise the sound devices will not be activated by the BIOS.&lt;br /&gt;
To enter the BIOS, power cycle your ThinkPad and press F1 when the ThinkPad screen shows.&lt;br /&gt;
&lt;br /&gt;
You can also manually activate the sound card once booted:&lt;br /&gt;
* With apm and pnpbios, this is done with setpnp from the pcmcia package:&lt;br /&gt;
  {{cmdroot|setpnp 0x0e on}}&lt;br /&gt;
  {{cmdroot|setpnp 0x0f on}}&lt;br /&gt;
&lt;br /&gt;
* With acpi and pnpacpi, use these commands:&lt;br /&gt;
  {{cmdroot|echo 'activate' &amp;gt; /sys/devices/pnp0/00:05/resources}}&lt;br /&gt;
  {{cmdroot|echo 'activate' &amp;gt; /sys/devices/pnp0/00:06/resources}}&lt;br /&gt;
&lt;br /&gt;
This only works with newer kernels that fully support pnpacpi, and provided that [http://bugzilla.kernel.org/show_bug.cgi?id=3912 this patch] has been applied (applied to Linus' tree in july 2005).&lt;br /&gt;
&lt;br /&gt;
It seems that the default dma numbers change when pnpacpi is used (to dma1=1 dma2=3, for instance).&lt;br /&gt;
&lt;br /&gt;
If you're using acpi and pnpacpi, you can see which resources the sound card is using like this:&lt;br /&gt;
  {{cmdroot|cat /sys/devices/pnp0/00:05/resources}}&lt;br /&gt;
  {{cmdroot|cat /sys/devices/pnp0/00:06/resources}}&lt;br /&gt;
&lt;br /&gt;
===Using ALSA===&lt;br /&gt;
Compile the sound driver as a module and load it after everything else.&lt;br /&gt;
You can add the following line to a boot script, ie. {{path|rc.local}} for that:&lt;br /&gt;
 /sbin/modprobe snd-cs4236 index=0 port=0x530 cport=0x538 irq=5 dma1=1 dma2=0 isapnp=0&lt;br /&gt;
&lt;br /&gt;
This is reported to work at least with kernel 2.6.9 and 2.6.13.&lt;br /&gt;
I seem to have problems getting it to work with 2.6.15.&lt;br /&gt;
&lt;br /&gt;
===Using OSS===&lt;br /&gt;
Add the following line to a boot script, ie. {{path|rc.local}}:&lt;br /&gt;
 modprobe sound&lt;br /&gt;
 insmod ad1848&lt;br /&gt;
 insmod uart401&lt;br /&gt;
 insmod cs4232 io=0x530 irq=5 dma=1 dma2=0&lt;br /&gt;
&lt;br /&gt;
In case an insmod or modprobe of cs4232 fails with the following error appearing at the console, via dmesg, or in {{path|/var/log/messages}}, double-check you have quick boot disabled!&lt;br /&gt;
 modprobe: FATAL: Error inserting cs4232: No such device&lt;br /&gt;
&lt;br /&gt;
====Audio loops====&lt;br /&gt;
If your OSS module loads like it should, but audio loops or sounds choppy then reloading the module should help:&lt;br /&gt;
{{cmdroot|rmmod cs4232 &amp;amp;&amp;amp; modprobe cs4232}}&lt;br /&gt;
&lt;br /&gt;
(For the modprobe command to work without IRQ/IO/DMA parameters, you'll probably want to add the correct parameters as an &amp;quot;options&amp;quot; clause in {{path|/etc/modprobe.conf}}).&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19949</id>
		<title>Talk:Problem with broken sound on some ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19949"/>
		<updated>2006-02-14T23:12:04Z</updated>

		<summary type="html">&lt;p&gt;Molle: facts moved to main page.  (minor: the snd_ prefixed module parameters on the talk page didn't work for me.  I assume that the alternatives on the main page are the correct ones.)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19948</id>
		<title>Problem with broken sound on some ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19948"/>
		<updated>2006-02-14T23:08:48Z</updated>

		<summary type="html">&lt;p&gt;Molle: Fix a command that's not likely to work according to the exact explanation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information about the phenomena of broken sound on some ThinkPad models.&lt;br /&gt;
&lt;br /&gt;
==Problem description==&lt;br /&gt;
Even though the sound chip is a Crystal SoundFusion 4610, you'll have to use the cs4236 driver to enable sound on this machine, since this driver supports the CS4239 emulation that the 4610 chip offers.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
===Affected 6xx/7xx Models===&lt;br /&gt;
*ThinkPad {{600E}}&lt;br /&gt;
*ThinkPad {{770X}}, {{770Z}}&lt;br /&gt;
&lt;br /&gt;
===Unaffected 6xx/7xx Models===&lt;br /&gt;
*ThinkPad {{600X}}&lt;br /&gt;
&lt;br /&gt;
The ThinkPad 600X sports a newer CS4624 sound chip, which apparently has the AC'97 codec part that the Linux driver requires.&lt;br /&gt;
&lt;br /&gt;
===Unrelated 6xx/7xx models===&lt;br /&gt;
* ThinkPad {{600}}, {{600D}}&lt;br /&gt;
* ThinkPad {{770}}, {{770D}}, {{770E}}, {{770ED}}&lt;br /&gt;
&lt;br /&gt;
According to one report, these models have only an ISA-based sound chip, namely a CS4237B.&lt;br /&gt;
Just use the snd-cs4236 ALSA driver or cs4232 OSS driver for these models. &lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
The PCI chip that you see in lspci (in my 770x case 4610) is the DSP half of the soundcard.  You also need a codec to do conversion between digital and analog, audio routing, etc.  The CS46xx driver expects to find an [http://www.intel.com/design/chipsets/audio/ AC'97-compatible] chip addressible through the PCI Cirrus logic chip to do these tasks.&lt;br /&gt;
&lt;br /&gt;
However, in the affected laptops there is no AC'97 chip.  Instead the sound chip has an integrated ISA-based soundcard to do these tasks as well as providing legacy app support.  The cs46xx driver cannot find the AC'97 chip, nor can it support the ISA part for codec duties, so it dies with an error.  The current solution is to ignore the PCI part entirely and use sound though the legacy ISA part only, either through the ALSA snd-cs4236 or OSS cs4232 driver.&lt;br /&gt;
&lt;br /&gt;
Alternatively, I have tried removing the dependency on the existence of an AC'97 codec in the cs46xx driver, theory being that it may be possible to use the cs4236 driver for the mixing functions.  This resulted in the driver loading and detecting all the resources of the cs4610, however interrupt issues seemed to be preventing it from outputting sound.&lt;br /&gt;
&lt;br /&gt;
A good thread on the problem can be found in the [http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg01181.html alsa-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
Here's some more information about sound hardware in the 600 series:&lt;br /&gt;
The 600 series has not one, not two, but THREE chips that look like sound cards to Linux. The actual Crystal chip is one of them, the mwave is another, and the video chipset has a DSP that can be used as sound circuitry if a designer opted to do so.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
===Activating the devices===&lt;br /&gt;
First you must make sure that the sound devices are activated.&lt;br /&gt;
&lt;br /&gt;
Disable &amp;quot;Quick Boot&amp;quot; in your ThinkPad BIOS, otherwise the sound devices will not be activated by the BIOS.&lt;br /&gt;
To enter the BIOS, power cycle your ThinkPad and press F1 when the ThinkPad screen shows.&lt;br /&gt;
&lt;br /&gt;
You can also manually activate the sound card once booted:&lt;br /&gt;
* With apm and pnpbios, this is done with setpnp from the pcmcia package:&lt;br /&gt;
  {{cmdroot|setpnp 0x0e on}}&lt;br /&gt;
  {{cmdroot|setpnp 0x0f on}}&lt;br /&gt;
&lt;br /&gt;
* With acpi and pnpacpi, use these commands:&lt;br /&gt;
  {{cmdroot|echo 'activate' &amp;gt; /sys/devices/pnp0/00:05/resources}}&lt;br /&gt;
  {{cmdroot|echo 'activate' &amp;gt; /sys/devices/pnp0/00:06/resources}}&lt;br /&gt;
&lt;br /&gt;
This only works with newer kernels that fully support pnpacpi, and provided that [http://bugzilla.kernel.org/show_bug.cgi?id=3912 this patch] has been applied (applied to Linus' tree in july 2005).&lt;br /&gt;
&lt;br /&gt;
It seems that the default dma numbers change when pnpacpi is used (to dma1=1 dma2=5, for instance).&lt;br /&gt;
&lt;br /&gt;
===Using ALSA===&lt;br /&gt;
Compile the sound driver as a module and load it after everything else.&lt;br /&gt;
You can add the following line to a boot script, ie. {{path|rc.local}} for that:&lt;br /&gt;
 /sbin/modprobe snd-cs4236 index=0 port=0x530 cport=0x538 irq=5 dma1=1 dma2=0 isapnp=0&lt;br /&gt;
&lt;br /&gt;
This is reported to work at least with kernel 2.6.9.&lt;br /&gt;
&lt;br /&gt;
===Using OSS===&lt;br /&gt;
Add the following line to a boot script, ie. {{path|rc.local}}:&lt;br /&gt;
 modprobe sound&lt;br /&gt;
 insmod ad1848&lt;br /&gt;
 insmod uart401&lt;br /&gt;
 insmod cs4232 io=0x530 irq=5 dma=1 dma2=0&lt;br /&gt;
&lt;br /&gt;
In case an insmod or modprobe of cs4232 fails with the following error appearing at the console, via dmesg, or in {{path|/var/log/messages}}, double-check you have quick boot disabled!&lt;br /&gt;
 modprobe: FATAL: Error inserting cs4232: No such device&lt;br /&gt;
&lt;br /&gt;
====Audio loops====&lt;br /&gt;
If your OSS module loads like it should, but audio loops or sounds choppy then reloading the module should help:&lt;br /&gt;
{{cmdroot|rmmod cs4232 &amp;amp;&amp;amp; modprobe cs4232}}&lt;br /&gt;
&lt;br /&gt;
(For the modprobe command to work without IRQ/IO/DMA parameters, you'll probably want to add the correct parameters as an &amp;quot;options&amp;quot; clause in {{path|/etc/modprobe.conf}}).&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19947</id>
		<title>Problem with broken sound on some ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19947"/>
		<updated>2006-02-14T23:04:28Z</updated>

		<summary type="html">&lt;p&gt;Molle: Properly name sections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information about the phenomena of broken sound on some ThinkPad models.&lt;br /&gt;
&lt;br /&gt;
==Problem description==&lt;br /&gt;
Even though the sound chip is a Crystal SoundFusion 4610, you'll have to use the cs4236 driver to enable sound on this machine, since this driver supports the CS4239 emulation that the 4610 chip offers.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
===Affected 6xx/7xx Models===&lt;br /&gt;
*ThinkPad {{600E}}&lt;br /&gt;
*ThinkPad {{770X}}, {{770Z}}&lt;br /&gt;
&lt;br /&gt;
===Unaffected 6xx/7xx Models===&lt;br /&gt;
*ThinkPad {{600X}}&lt;br /&gt;
&lt;br /&gt;
The ThinkPad 600X sports a newer CS4624 sound chip, which apparently has the AC'97 codec part that the Linux driver requires.&lt;br /&gt;
&lt;br /&gt;
===Unrelated 6xx/7xx models===&lt;br /&gt;
* ThinkPad {{600}}, {{600D}}&lt;br /&gt;
* ThinkPad {{770}}, {{770D}}, {{770E}}, {{770ED}}&lt;br /&gt;
&lt;br /&gt;
According to one report, these models have only an ISA-based sound chip, namely a CS4237B.&lt;br /&gt;
Just use the snd-cs4236 ALSA driver or cs4232 OSS driver for these models. &lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
The PCI chip that you see in lspci (in my 770x case 4610) is the DSP half of the soundcard.  You also need a codec to do conversion between digital and analog, audio routing, etc.  The CS46xx driver expects to find an [http://www.intel.com/design/chipsets/audio/ AC'97-compatible] chip addressible through the PCI Cirrus logic chip to do these tasks.&lt;br /&gt;
&lt;br /&gt;
However, in the affected laptops there is no AC'97 chip.  Instead the sound chip has an integrated ISA-based soundcard to do these tasks as well as providing legacy app support.  The cs46xx driver cannot find the AC'97 chip, nor can it support the ISA part for codec duties, so it dies with an error.  The current solution is to ignore the PCI part entirely and use sound though the legacy ISA part only, either through the ALSA snd-cs4236 or OSS cs4232 driver.&lt;br /&gt;
&lt;br /&gt;
Alternatively, I have tried removing the dependency on the existence of an AC'97 codec in the cs46xx driver, theory being that it may be possible to use the cs4236 driver for the mixing functions.  This resulted in the driver loading and detecting all the resources of the cs4610, however interrupt issues seemed to be preventing it from outputting sound.&lt;br /&gt;
&lt;br /&gt;
A good thread on the problem can be found in the [http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg01181.html alsa-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
Here's some more information about sound hardware in the 600 series:&lt;br /&gt;
The 600 series has not one, not two, but THREE chips that look like sound cards to Linux. The actual Crystal chip is one of them, the mwave is another, and the video chipset has a DSP that can be used as sound circuitry if a designer opted to do so.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
===Activating the devices===&lt;br /&gt;
First you must make sure that the sound devices are activated.&lt;br /&gt;
&lt;br /&gt;
Disable &amp;quot;Quick Boot&amp;quot; in your ThinkPad BIOS, otherwise the sound devices will not be activated by the BIOS.&lt;br /&gt;
To enter the BIOS, power cycle your ThinkPad and press F1 when the ThinkPad screen shows.&lt;br /&gt;
&lt;br /&gt;
You can also manually activate the sound card once booted:&lt;br /&gt;
* With apm and pnpbios, this is done with setpnp from the pcmcia package:&lt;br /&gt;
  {{cmdroot|setpnp 0x0e on}}&lt;br /&gt;
  {{cmdroot|setpnp 0x0f on}}&lt;br /&gt;
&lt;br /&gt;
* With acpi and pnpacpi, use these commands:&lt;br /&gt;
  {{cmdroot|echo 'activate' &amp;gt; /sys/devices/pnp0/00:05/resources}}&lt;br /&gt;
  {{cmdroot|echo 'activate' &amp;gt; /sys/devices/pnp0/00:06/resources}}&lt;br /&gt;
&lt;br /&gt;
This only works with newer kernels that fully support pnpacpi, and provided that [http://bugzilla.kernel.org/show_bug.cgi?id=3912 this patch] has been applied (applied to Linus' tree in july 2005).&lt;br /&gt;
&lt;br /&gt;
It seems that the default dma numbers change when pnpacpi is used (to dma1=1 dma2=5, for instance).&lt;br /&gt;
&lt;br /&gt;
===Using ALSA===&lt;br /&gt;
Compile the sound driver as a module and load it after everything else.&lt;br /&gt;
You can add the following line to a boot script, ie. {{path|rc.local}} for that:&lt;br /&gt;
 /sbin/modprobe snd-cs4236 index=0 port=0x530 cport=0x538 irq=5 dma1=1 dma2=0 isapnp=0&lt;br /&gt;
&lt;br /&gt;
This is reported to work at least with kernel 2.6.9.&lt;br /&gt;
&lt;br /&gt;
===Using OSS===&lt;br /&gt;
Add the following line to a boot script, ie. {{path|rc.local}}:&lt;br /&gt;
 modprobe sound&lt;br /&gt;
 insmod ad1848&lt;br /&gt;
 insmod uart401&lt;br /&gt;
 insmod cs4232 io=0x530 irq=5 dma=1 dma2=0&lt;br /&gt;
&lt;br /&gt;
In case an insmod or modprobe of cs4232 fails with the following error appearing at the console, via dmesg, or in {{path|/var/log/messages}}, double-check you have quick boot disabled!&lt;br /&gt;
 modprobe: FATAL: Error inserting cs4232: No such device&lt;br /&gt;
&lt;br /&gt;
====Audio loops====&lt;br /&gt;
If your OSS module loads like it should, but audio loops or sounds choppy then reloading the module should help:&lt;br /&gt;
{{cmdroot|rmmod cs4232 &amp;amp;&amp;amp; modprobe cs4232}}&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19946</id>
		<title>Problem with broken sound on some ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19946"/>
		<updated>2006-02-14T22:28:59Z</updated>

		<summary type="html">&lt;p&gt;Molle: fix the TOC by grouping paragraphs relating to affected models&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information about the phenomena of broken sound on some ThinkPad models.&lt;br /&gt;
&lt;br /&gt;
==Problem description==&lt;br /&gt;
Even though the sound chip is a Crystal SoundFusion 4610, you'll have to use the cs4236 driver to enable sound on this machine, since this driver supports the CS4239 emulation that the 4610 chip offers.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
===Affected 6xx/7xx Models===&lt;br /&gt;
*ThinkPad {{600E}}&lt;br /&gt;
*ThinkPad {{770X}}, {{770Z}}&lt;br /&gt;
&lt;br /&gt;
===Unaffected 6xx/7xx Models===&lt;br /&gt;
*ThinkPad {{600X}}&lt;br /&gt;
&lt;br /&gt;
The ThinkPad 600X sports a newer CS4624 sound chip, which apparently has the AC'97 codec part that the Linux driver requires.&lt;br /&gt;
&lt;br /&gt;
===Unrelated 6xx/7xx models===&lt;br /&gt;
* ThinkPad {{600}}, {{600D}}&lt;br /&gt;
* ThinkPad {{770}}, {{770D}}, {{770E}}, {{770ED}}&lt;br /&gt;
&lt;br /&gt;
According to one report, these models have only an ISA-based sound chip, namely a CS4237B.&lt;br /&gt;
Just use the snd-cs4236 ALSA driver or cs4232 OSS driver for these models. &lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
The PCI chip that you see in lspci (in my 770x case 4610) is the DSP half of the soundcard.  You also need a codec to do conversion between digital and analog, audio routing, etc.  The CS46xx driver expects to find an [http://www.intel.com/design/chipsets/audio/ AC'97-compatible] chip addressible through the PCI Cirrus logic chip to do these tasks.&lt;br /&gt;
&lt;br /&gt;
However, in the affected laptops there is no AC'97 chip.  Instead the sound chip has an integrated ISA-based soundcard to do these tasks as well as providing legacy app support.  The cs46xx driver cannot find the AC'97 chip, nor can it support the ISA part for codec duties, so it dies with an error.  The current solution is to ignore the PCI part entirely and use sound though the legacy ISA part only, either through the ALSA snd-cs4236 or OSS cs4232 driver.&lt;br /&gt;
&lt;br /&gt;
Alternatively, I have tried removing the dependency on the existence of an AC'97 codec in the cs46xx driver, theory being that it may be possible to use the cs4236 driver for the mixing functions.  This resulted in the driver loading and detecting all the resources of the cs4610, however interrupt issues seemed to be preventing it from outputting sound.&lt;br /&gt;
&lt;br /&gt;
A good thread on the problem can be found in the [http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg01181.html alsa-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
Here's some more information about sound hardware in the 600 series:&lt;br /&gt;
The 600 series has not one, not two, but THREE chips that look like sound cards to Linux. The actual Crystal chip is one of them, the mwave is another, and the video chipset has a DSP that can be used as sound circuitry if a designer opted to do so.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
===Solution #1===&lt;br /&gt;
Compile the sound driver as module and load it after everything else. You can create a boot script with the following line for that:&lt;br /&gt;
 /sbin/modprobe snd-cs4236 index=0 port=0x530 cport=0x538 irq=5 dma1=1 dma2=0 isapnp=0&lt;br /&gt;
This is reported to work at least with kernel 2.6.9.&lt;br /&gt;
&lt;br /&gt;
If the above line fails, quick boot is probably activated in the bios. In that case you need to manually activate the sound card:&lt;br /&gt;
*With apm and pnpbios, this is done with setpnp from the pcmcia package: {{cmdroot|setpnp 0x0e on&amp;amp;&amp;amp; setpnp 0x0f on}}&lt;br /&gt;
*With acpi and pnpacpi, the command is: {{cmdroot|echo 'activate' &amp;gt;/sys/devices/pnp0/00:05/resources &amp;amp;&amp;amp; echo 'activate' &amp;gt;/sys/devices/pnp0/00:06/resources}}&lt;br /&gt;
&lt;br /&gt;
This only works with a kernel that fully supports pnpacpi, and provided that [http://bugzilla.kernel.org/show_bug.cgi?id=3912 this patch] has been applied. It seems that the dma numbers change with pnpacpi (dma1=1, dma2=5 for instance).&lt;br /&gt;
&lt;br /&gt;
===Solution #2===&lt;br /&gt;
Make sure that the bios quick boot feature is disabled.&lt;br /&gt;
Add the following lines to one of your init process files, i.e, {{path|rc.local}}:&lt;br /&gt;
 modprobe sound&lt;br /&gt;
 insmod ad1848&lt;br /&gt;
 insmod uart401&lt;br /&gt;
 insmod cs4232 io=0x530 irq=5 dma=1 dma2=0&lt;br /&gt;
In case an insmod or modprobe of cs4232 fails with the following error appearing at the console, via dmesg, or in {{path|/var/log/messages}}, double-check you have quick boot disabled!&lt;br /&gt;
 kernel: kobject_register failed for cs4232 (-17)&lt;br /&gt;
 kernel:  [&amp;lt;c0190b16&amp;gt;] kobject_register+0x32/0x48&lt;br /&gt;
 kernel:  [&amp;lt;c01d4bee&amp;gt;] bus_add_driver+0x3e/0x98&lt;br /&gt;
 kernel:  [&amp;lt;c01d50ec&amp;gt;] driver_register+0x34/0x38&lt;br /&gt;
 kernel:  [&amp;lt;c01adb90&amp;gt;] pnp_register_driver+0x28/0x5c&lt;br /&gt;
 kernel:  [&amp;lt;cedfb483&amp;gt;] init_cs4232+0x33/0xec [cs4232]&lt;br /&gt;
 kernel:  [&amp;lt;c01294eb&amp;gt;] sys_init_module+0xe3/0x1c4&lt;br /&gt;
 kernel:  [&amp;lt;c01054b5&amp;gt;] sysenter_past_esp+0x52/0x71&lt;br /&gt;
 modprobe: FATAL: Error inserting cs4232 (/lib/modules/2.6.9/kernel/sound/oss/cs4232.ko): No such device&lt;br /&gt;
&lt;br /&gt;
===Solution #3===&lt;br /&gt;
If your module loads like it should, but audio loops or sounds choppy then reloading module should help:&lt;br /&gt;
:{{cmdroot|rmmod cs4232 &amp;amp;&amp;amp; modprobe cs4232}}&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19945</id>
		<title>Problem with broken sound on some ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19945"/>
		<updated>2006-02-14T22:25:25Z</updated>

		<summary type="html">&lt;p&gt;Molle: Add some model facts from the discussion page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information about the phenomena of broken sound on some ThinkPad models.&lt;br /&gt;
&lt;br /&gt;
==Problem description==&lt;br /&gt;
Even though the sound chip is a Crystal SoundFusion 4610, you'll have to use the cs4236 driver to enable sound on this machine, since this driver supports the CS4239 emulation that the 4610 chip offers.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
*ThinkPad {{600E}}&lt;br /&gt;
*ThinkPad {{770X}}, {{770Z}}&lt;br /&gt;
&lt;br /&gt;
==Unaffected 6xx/7xx Models==&lt;br /&gt;
*ThinkPad {{600X}}&lt;br /&gt;
&lt;br /&gt;
The ThinkPad 600X sports a newer CS4624 sound chip, which apparently has the AC'97 codec part that the Linux driver requires.&lt;br /&gt;
&lt;br /&gt;
==Unrelated models==&lt;br /&gt;
* ThinkPad {{600}}, {{600D}}&lt;br /&gt;
* ThinkPad {{770}}, {{770D}}, {{770E}}, {{770ED}}&lt;br /&gt;
&lt;br /&gt;
According to one report, these models have only an ISA-based sound chip, namely a CS4237B.&lt;br /&gt;
Just use the snd-cs4236 ALSA driver or cs4232 OSS driver for these models. &lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
The PCI chip that you see in lspci (in my 770x case 4610) is the DSP half of the soundcard.  You also need a codec to do conversion between digital and analog, audio routing, etc.  The CS46xx driver expects to find an [http://www.intel.com/design/chipsets/audio/ AC'97-compatible] chip addressible through the PCI Cirrus logic chip to do these tasks.&lt;br /&gt;
&lt;br /&gt;
However, in the affected laptops there is no AC'97 chip.  Instead the sound chip has an integrated ISA-based soundcard to do these tasks as well as providing legacy app support.  The cs46xx driver cannot find the AC'97 chip, nor can it support the ISA part for codec duties, so it dies with an error.  The current solution is to ignore the PCI part entirely and use sound though the legacy ISA part only, either through the ALSA snd-cs4236 or OSS cs4232 driver.&lt;br /&gt;
&lt;br /&gt;
Alternatively, I have tried removing the dependency on the existence of an AC'97 codec in the cs46xx driver, theory being that it may be possible to use the cs4236 driver for the mixing functions.  This resulted in the driver loading and detecting all the resources of the cs4610, however interrupt issues seemed to be preventing it from outputting sound.&lt;br /&gt;
&lt;br /&gt;
A good thread on the problem can be found in the [http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg01181.html alsa-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
Here's some more information about sound hardware in the 600 series:&lt;br /&gt;
The 600 series has not one, not two, but THREE chips that look like sound cards to Linux. The actual Crystal chip is one of them, the mwave is another, and the video chipset has a DSP that can be used as sound circuitry if a designer opted to do so.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
===Solution #1===&lt;br /&gt;
Compile the sound driver as module and load it after everything else. You can create a boot script with the following line for that:&lt;br /&gt;
 /sbin/modprobe snd-cs4236 index=0 port=0x530 cport=0x538 irq=5 dma1=1 dma2=0 isapnp=0&lt;br /&gt;
This is reported to work at least with kernel 2.6.9.&lt;br /&gt;
&lt;br /&gt;
If the above line fails, quick boot is probably activated in the bios. In that case you need to manually activate the sound card:&lt;br /&gt;
*With apm and pnpbios, this is done with setpnp from the pcmcia package: {{cmdroot|setpnp 0x0e on&amp;amp;&amp;amp; setpnp 0x0f on}}&lt;br /&gt;
*With acpi and pnpacpi, the command is: {{cmdroot|echo 'activate' &amp;gt;/sys/devices/pnp0/00:05/resources &amp;amp;&amp;amp; echo 'activate' &amp;gt;/sys/devices/pnp0/00:06/resources}}&lt;br /&gt;
&lt;br /&gt;
This only works with a kernel that fully supports pnpacpi, and provided that [http://bugzilla.kernel.org/show_bug.cgi?id=3912 this patch] has been applied. It seems that the dma numbers change with pnpacpi (dma1=1, dma2=5 for instance).&lt;br /&gt;
&lt;br /&gt;
===Solution #2===&lt;br /&gt;
Make sure that the bios quick boot feature is disabled.&lt;br /&gt;
Add the following lines to one of your init process files, i.e, {{path|rc.local}}:&lt;br /&gt;
 modprobe sound&lt;br /&gt;
 insmod ad1848&lt;br /&gt;
 insmod uart401&lt;br /&gt;
 insmod cs4232 io=0x530 irq=5 dma=1 dma2=0&lt;br /&gt;
In case an insmod or modprobe of cs4232 fails with the following error appearing at the console, via dmesg, or in {{path|/var/log/messages}}, double-check you have quick boot disabled!&lt;br /&gt;
 kernel: kobject_register failed for cs4232 (-17)&lt;br /&gt;
 kernel:  [&amp;lt;c0190b16&amp;gt;] kobject_register+0x32/0x48&lt;br /&gt;
 kernel:  [&amp;lt;c01d4bee&amp;gt;] bus_add_driver+0x3e/0x98&lt;br /&gt;
 kernel:  [&amp;lt;c01d50ec&amp;gt;] driver_register+0x34/0x38&lt;br /&gt;
 kernel:  [&amp;lt;c01adb90&amp;gt;] pnp_register_driver+0x28/0x5c&lt;br /&gt;
 kernel:  [&amp;lt;cedfb483&amp;gt;] init_cs4232+0x33/0xec [cs4232]&lt;br /&gt;
 kernel:  [&amp;lt;c01294eb&amp;gt;] sys_init_module+0xe3/0x1c4&lt;br /&gt;
 kernel:  [&amp;lt;c01054b5&amp;gt;] sysenter_past_esp+0x52/0x71&lt;br /&gt;
 modprobe: FATAL: Error inserting cs4232 (/lib/modules/2.6.9/kernel/sound/oss/cs4232.ko): No such device&lt;br /&gt;
&lt;br /&gt;
===Solution #3===&lt;br /&gt;
If your module loads like it should, but audio loops or sounds choppy then reloading module should help:&lt;br /&gt;
:{{cmdroot|rmmod cs4232 &amp;amp;&amp;amp; modprobe cs4232}}&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19943</id>
		<title>Talk:Problem with broken sound on some ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19943"/>
		<updated>2006-02-14T21:56:22Z</updated>

		<summary type="html">&lt;p&gt;Molle: Talk:Problem with broken sound on ThinkPad 600 moved to Talk:Problem with broken sound on some ThinkPads&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is littered with mistakes, here are some facts:&lt;br /&gt;
&lt;br /&gt;
* The ThinkPad 600, 600D, 770, 770D, 770E and 770ED have only an ISA based CS4237B&lt;br /&gt;
* The ThinkPad 600E, 770X and 770Z have an ISA CS4239 and PCI CS4610&lt;br /&gt;
* The ThinkPad 600X has both an ISA CS4297A and PCI CS4624&lt;br /&gt;
&lt;br /&gt;
The ISA soundchips are meant for SoundBlaster compatibility in DOS (and possibly WinNT4), and should not be used in modern operating systems, unless you have no other choice.&lt;br /&gt;
&lt;br /&gt;
===PCI CS46xx===&lt;br /&gt;
For the ThinkPad's with the PCI based CS4610 or CS4624, try to use the ALSA snd-cs46xx or OSS cs46xx kernel module. No special kernel options should be needed by either kernel module.&lt;br /&gt;
&lt;br /&gt;
===ISA CS4237B===&lt;br /&gt;
If all you have is the CS4237B, you will need to use the ALSA snd-cs4236 or OSS cs4232 kernel module, with the following options:&lt;br /&gt;
&lt;br /&gt;
====ALSA options====&lt;br /&gt;
 options snd-cs4236 snd_index=0 snd_port=0x530 snd_cport=0x538 snd_isapnp=0 snd_dma1=1 snd_dma2=0 snd_irq=5&lt;br /&gt;
&lt;br /&gt;
====OSS options====&lt;br /&gt;
 options cs4232 io=0x530 irq=5 dma=1 dma2=0&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Problem_with_broken_sound_on_ThinkPad_600&amp;diff=19944</id>
		<title>Talk:Problem with broken sound on ThinkPad 600</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Problem_with_broken_sound_on_ThinkPad_600&amp;diff=19944"/>
		<updated>2006-02-14T21:56:22Z</updated>

		<summary type="html">&lt;p&gt;Molle: Talk:Problem with broken sound on ThinkPad 600 moved to Talk:Problem with broken sound on some ThinkPads: The 600X is not affected, while the 770Z is.
So while there is probably good historical reasons for naming the page after the 600-series, it seems to&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Talk:Problem with broken sound on some ThinkPads]]&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19941</id>
		<title>Problem with broken sound on some ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19941"/>
		<updated>2006-02-14T21:56:21Z</updated>

		<summary type="html">&lt;p&gt;Molle: Problem with broken sound on ThinkPad 600 moved to Problem with broken sound on some ThinkPads&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information about the phenomena of broken sound on some ThinkPad models (see affected/unaffected model lists below).&lt;br /&gt;
&lt;br /&gt;
==Problem description==&lt;br /&gt;
First of all, be aware that even though the sound chip is a Crystal SoundFusion 4610, you'll have to use the cs4236 driver to enable sound on this machine, since this driver supports the CS4239 emulation that the 4610 chip offers.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
*ThinkPad {{600}}, {{600E}}&lt;br /&gt;
*ThinkPad {{770Z}}&lt;br /&gt;
&lt;br /&gt;
==Unaffected Models==&lt;br /&gt;
*ThinkPad {{600X}}&lt;br /&gt;
&lt;br /&gt;
==Affected Operating Systems==&lt;br /&gt;
*Linux, all flavours&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
The PCI chip that you see in lspci (in my 770x case 4610) is the DSP half of the soundcard.  You also need a codec to do conversion between digital and analog, audio routing, etc.  The CS46xx driver expects to find an [http://www.intel.com/design/chipsets/audio/ AC'97-compatible] chip addressible through the PCI Cirrus logic chip to do these tasks.&lt;br /&gt;
&lt;br /&gt;
However, in the affected laptops there is no AC'97 chip.  Instead there is an older, ISA-based soundcard to do these tasks as well as providing legacy app support.  The cs46xx driver cannot find the AC'97 chip, nor can it support the ISA soundcard for codec duties, so closes finding no soundcards.  The current solution is to ignore this PCI chip and use sound though the legacy ISA chip only, either through the cs4236 or cs4232 driver.&lt;br /&gt;
&lt;br /&gt;
Alternatively, I have tried removing the dependency on the existence on a AC'97 codec in the cs46xx driver, theory being that it may be possible to use the cs4236 driver for the mixing functions.  This resulted in the driver loading and detecting all the resources of the cs4610, however interrupt issues seemed to be preventing it from outputting sound.&lt;br /&gt;
&lt;br /&gt;
A good thread on the problem can be found in the [http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg01181.html alsa-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
Here's an older explanation of what happens:&lt;br /&gt;
&lt;br /&gt;
The problem with the 600 series is that there is not one, not two, but THREE &lt;br /&gt;
chips that look like sound cards to Linux. The actual Crystal chip is one of &lt;br /&gt;
them, the mwave is another, and the video chipset has a DSP that can be used &lt;br /&gt;
as sound circuitry if a designer opted to do so.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
===Solution #1===&lt;br /&gt;
Compile the sound driver as module and load it after everything else. You can create a boot script with the following line for that:&lt;br /&gt;
 /sbin/modprobe snd-cs4236 index=0 port=0x530 cport=0x538 irq=5 dma1=1 dma2=0 isapnp=0&lt;br /&gt;
This is reported to work at least with kernel 2.6.9.&lt;br /&gt;
&lt;br /&gt;
If the above line fails, quick boot is probably activated in the bios. In that case you need to manually activate the sound card:&lt;br /&gt;
*With apm and pnpbios, this is done with setpnp from the pcmcia package: {{cmdroot|setpnp 0x0e on&amp;amp;&amp;amp; setpnp 0x0f on}}&lt;br /&gt;
*With acpi and pnpacpi, the command is: {{cmdroot|echo 'activate' &amp;gt;/sys/devices/pnp0/00:05/resources &amp;amp;&amp;amp; echo 'activate' &amp;gt;/sys/devices/pnp0/00:06/resources}}&lt;br /&gt;
&lt;br /&gt;
This only works with a kernel that fully supports pnpacpi, and provided that [http://bugzilla.kernel.org/show_bug.cgi?id=3912 this patch] has been applied. It seems that the dma numbers change with pnpacpi (dma1=1, dma2=5 for instance).&lt;br /&gt;
&lt;br /&gt;
===Solution #2===&lt;br /&gt;
Make sure that the bios quick boot feature is disabled.&amp;lt;br /&amp;gt;&lt;br /&gt;
Add the following lines to one of your init process files, i.e, {{path|rc.local}}:&lt;br /&gt;
 modprobe sound&lt;br /&gt;
 insmod ad1848&lt;br /&gt;
 insmod uart401&lt;br /&gt;
 insmod cs4232 io=0x530 irq=5 dma=1 dma2=0&lt;br /&gt;
In case an insmod or modprobe of cs4232 fails with the following error appearing at the console, via dmesg, or in {{path|/var/log/messages}}, double-check you have quick boot disabled!&lt;br /&gt;
 kernel: kobject_register failed for cs4232 (-17)&lt;br /&gt;
 kernel:  [&amp;lt;c0190b16&amp;gt;] kobject_register+0x32/0x48&lt;br /&gt;
 kernel:  [&amp;lt;c01d4bee&amp;gt;] bus_add_driver+0x3e/0x98&lt;br /&gt;
 kernel:  [&amp;lt;c01d50ec&amp;gt;] driver_register+0x34/0x38&lt;br /&gt;
 kernel:  [&amp;lt;c01adb90&amp;gt;] pnp_register_driver+0x28/0x5c&lt;br /&gt;
 kernel:  [&amp;lt;cedfb483&amp;gt;] init_cs4232+0x33/0xec [cs4232]&lt;br /&gt;
 kernel:  [&amp;lt;c01294eb&amp;gt;] sys_init_module+0xe3/0x1c4&lt;br /&gt;
 kernel:  [&amp;lt;c01054b5&amp;gt;] sysenter_past_esp+0x52/0x71&lt;br /&gt;
 modprobe: FATAL: Error inserting cs4232 (/lib/modules/2.6.9/kernel/sound/oss/cs4232.ko): No such device&lt;br /&gt;
&lt;br /&gt;
===Solution #3===&lt;br /&gt;
If your module loads like it should, but audio loops or sounds choppy then reloading module should help:&lt;br /&gt;
:{{cmdroot|rmmod cs4232 &amp;amp;&amp;amp; modprobe cs4232}}&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_ThinkPad_600&amp;diff=19942</id>
		<title>Problem with broken sound on ThinkPad 600</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_ThinkPad_600&amp;diff=19942"/>
		<updated>2006-02-14T21:56:21Z</updated>

		<summary type="html">&lt;p&gt;Molle: Problem with broken sound on ThinkPad 600 moved to Problem with broken sound on some ThinkPads: The 600X is not affected, while the 770Z is.
So while there is probably good historical reasons for naming the page after the 600-series, it seems to confuse a&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Problem with broken sound on some ThinkPads]]&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19940</id>
		<title>Problem with broken sound on some ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19940"/>
		<updated>2006-02-14T21:54:44Z</updated>

		<summary type="html">&lt;p&gt;Molle: clarify which models are affected (page needs to be renamed)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information about the phenomena of broken sound on some ThinkPad models (see affected/unaffected model lists below).&lt;br /&gt;
&lt;br /&gt;
==Problem description==&lt;br /&gt;
First of all, be aware that even though the sound chip is a Crystal SoundFusion 4610, you'll have to use the cs4236 driver to enable sound on this machine, since this driver supports the CS4239 emulation that the 4610 chip offers.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
*ThinkPad {{600}}, {{600E}}&lt;br /&gt;
*ThinkPad {{770Z}}&lt;br /&gt;
&lt;br /&gt;
==Unaffected Models==&lt;br /&gt;
*ThinkPad {{600X}}&lt;br /&gt;
&lt;br /&gt;
==Affected Operating Systems==&lt;br /&gt;
*Linux, all flavours&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
The PCI chip that you see in lspci (in my 770x case 4610) is the DSP half of the soundcard.  You also need a codec to do conversion between digital and analog, audio routing, etc.  The CS46xx driver expects to find an [http://www.intel.com/design/chipsets/audio/ AC'97-compatible] chip addressible through the PCI Cirrus logic chip to do these tasks.&lt;br /&gt;
&lt;br /&gt;
However, in the affected laptops there is no AC'97 chip.  Instead there is an older, ISA-based soundcard to do these tasks as well as providing legacy app support.  The cs46xx driver cannot find the AC'97 chip, nor can it support the ISA soundcard for codec duties, so closes finding no soundcards.  The current solution is to ignore this PCI chip and use sound though the legacy ISA chip only, either through the cs4236 or cs4232 driver.&lt;br /&gt;
&lt;br /&gt;
Alternatively, I have tried removing the dependency on the existence on a AC'97 codec in the cs46xx driver, theory being that it may be possible to use the cs4236 driver for the mixing functions.  This resulted in the driver loading and detecting all the resources of the cs4610, however interrupt issues seemed to be preventing it from outputting sound.&lt;br /&gt;
&lt;br /&gt;
A good thread on the problem can be found in the [http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg01181.html alsa-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
Here's an older explanation of what happens:&lt;br /&gt;
&lt;br /&gt;
The problem with the 600 series is that there is not one, not two, but THREE &lt;br /&gt;
chips that look like sound cards to Linux. The actual Crystal chip is one of &lt;br /&gt;
them, the mwave is another, and the video chipset has a DSP that can be used &lt;br /&gt;
as sound circuitry if a designer opted to do so.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
===Solution #1===&lt;br /&gt;
Compile the sound driver as module and load it after everything else. You can create a boot script with the following line for that:&lt;br /&gt;
 /sbin/modprobe snd-cs4236 index=0 port=0x530 cport=0x538 irq=5 dma1=1 dma2=0 isapnp=0&lt;br /&gt;
This is reported to work at least with kernel 2.6.9.&lt;br /&gt;
&lt;br /&gt;
If the above line fails, quick boot is probably activated in the bios. In that case you need to manually activate the sound card:&lt;br /&gt;
*With apm and pnpbios, this is done with setpnp from the pcmcia package: {{cmdroot|setpnp 0x0e on&amp;amp;&amp;amp; setpnp 0x0f on}}&lt;br /&gt;
*With acpi and pnpacpi, the command is: {{cmdroot|echo 'activate' &amp;gt;/sys/devices/pnp0/00:05/resources &amp;amp;&amp;amp; echo 'activate' &amp;gt;/sys/devices/pnp0/00:06/resources}}&lt;br /&gt;
&lt;br /&gt;
This only works with a kernel that fully supports pnpacpi, and provided that [http://bugzilla.kernel.org/show_bug.cgi?id=3912 this patch] has been applied. It seems that the dma numbers change with pnpacpi (dma1=1, dma2=5 for instance).&lt;br /&gt;
&lt;br /&gt;
===Solution #2===&lt;br /&gt;
Make sure that the bios quick boot feature is disabled.&amp;lt;br /&amp;gt;&lt;br /&gt;
Add the following lines to one of your init process files, i.e, {{path|rc.local}}:&lt;br /&gt;
 modprobe sound&lt;br /&gt;
 insmod ad1848&lt;br /&gt;
 insmod uart401&lt;br /&gt;
 insmod cs4232 io=0x530 irq=5 dma=1 dma2=0&lt;br /&gt;
In case an insmod or modprobe of cs4232 fails with the following error appearing at the console, via dmesg, or in {{path|/var/log/messages}}, double-check you have quick boot disabled!&lt;br /&gt;
 kernel: kobject_register failed for cs4232 (-17)&lt;br /&gt;
 kernel:  [&amp;lt;c0190b16&amp;gt;] kobject_register+0x32/0x48&lt;br /&gt;
 kernel:  [&amp;lt;c01d4bee&amp;gt;] bus_add_driver+0x3e/0x98&lt;br /&gt;
 kernel:  [&amp;lt;c01d50ec&amp;gt;] driver_register+0x34/0x38&lt;br /&gt;
 kernel:  [&amp;lt;c01adb90&amp;gt;] pnp_register_driver+0x28/0x5c&lt;br /&gt;
 kernel:  [&amp;lt;cedfb483&amp;gt;] init_cs4232+0x33/0xec [cs4232]&lt;br /&gt;
 kernel:  [&amp;lt;c01294eb&amp;gt;] sys_init_module+0xe3/0x1c4&lt;br /&gt;
 kernel:  [&amp;lt;c01054b5&amp;gt;] sysenter_past_esp+0x52/0x71&lt;br /&gt;
 modprobe: FATAL: Error inserting cs4232 (/lib/modules/2.6.9/kernel/sound/oss/cs4232.ko): No such device&lt;br /&gt;
&lt;br /&gt;
===Solution #3===&lt;br /&gt;
If your module loads like it should, but audio loops or sounds choppy then reloading module should help:&lt;br /&gt;
:{{cmdroot|rmmod cs4232 &amp;amp;&amp;amp; modprobe cs4232}}&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19939</id>
		<title>Problem with broken sound on some ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_broken_sound_on_some_ThinkPads&amp;diff=19939"/>
		<updated>2006-02-14T21:45:37Z</updated>

		<summary type="html">&lt;p&gt;Molle: Remove duplicate comment (see bottom of article)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information about the phenomena of broken sound on 600/E type ThinkPads.&lt;br /&gt;
&lt;br /&gt;
==Problem description==&lt;br /&gt;
&lt;br /&gt;
The following is not true with a Fedora Core Devel kernel 2.6.10-1.1109_FC4 (and probably other kernels) on IBM ThinkPad 600X machines. Just use the CS4610 drivers and sound will work fine. Trent Jarvi, tjarvi at qbang.org&lt;br /&gt;
&lt;br /&gt;
First of all, be aware that even though the sound chip is a Crystal SoundFusion 4610, you'll have to use the cs4236 driver to enable sound on this machine, since this driver supports the CS4239 emulation that the 4610 chip offers.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
*ThinkPad {{600}}, {{600E}}&lt;br /&gt;
*ThinkPad {{770Z}}&lt;br /&gt;
&lt;br /&gt;
==Affected Operating Systems==&lt;br /&gt;
*Linux, all flavours&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
The PCI chip that you see in lspci (in my 770x case 4610) is the DSP half of the soundcard.  You also need a codec to do conversion between digital and analog, audio routing, etc.  The CS46xx driver expects to find an [http://www.intel.com/design/chipsets/audio/ AC'97-compatible] chip addressible through the PCI Cirrus logic chip to do these tasks.&lt;br /&gt;
&lt;br /&gt;
However, in the affected laptops there is no AC'97 chip.  Instead there is an older, ISA-based soundcard to do these tasks as well as providing legacy app support.  The cs46xx driver cannot find the AC'97 chip, nor can it support the ISA soundcard for codec duties, so closes finding no soundcards.  The current solution is to ignore this PCI chip and use sound though the legacy ISA chip only, either through the cs4236 or cs4232 driver.&lt;br /&gt;
&lt;br /&gt;
Alternatively, I have tried removing the dependency on the existence on a AC'97 codec in the cs46xx driver, theory being that it may be possible to use the cs4236 driver for the mixing functions.  This resulted in the driver loading and detecting all the resources of the cs4610, however interrupt issues seemed to be preventing it from outputting sound.&lt;br /&gt;
&lt;br /&gt;
A good thread on the problem can be found in the [http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg01181.html alsa-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
Here's an older explanation of what happens:&lt;br /&gt;
&lt;br /&gt;
The problem with the 600 series is that there is not one, not two, but THREE &lt;br /&gt;
chips that look like sound cards to Linux. The actual Crystal chip is one of &lt;br /&gt;
them, the mwave is another, and the video chipset has a DSP that can be used &lt;br /&gt;
as sound circuitry if a designer opted to do so.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
===Solution #1===&lt;br /&gt;
Compile the sound driver as module and load it after everything else. You can create a boot script with the following line for that:&lt;br /&gt;
 /sbin/modprobe snd-cs4236 index=0 port=0x530 cport=0x538 irq=5 dma1=1 dma2=0 isapnp=0&lt;br /&gt;
This is reported to work at least with kernel 2.6.9.&lt;br /&gt;
&lt;br /&gt;
If the above line fails, quick boot is probably activated in the bios. In that case you need to manually activate the sound card:&lt;br /&gt;
*With apm and pnpbios, this is done with setpnp from the pcmcia package: {{cmdroot|setpnp 0x0e on&amp;amp;&amp;amp; setpnp 0x0f on}}&lt;br /&gt;
*With acpi and pnpacpi, the command is: {{cmdroot|echo 'activate' &amp;gt;/sys/devices/pnp0/00:05/resources &amp;amp;&amp;amp; echo 'activate' &amp;gt;/sys/devices/pnp0/00:06/resources}}&lt;br /&gt;
&lt;br /&gt;
This only works with a kernel that fully supports pnpacpi, and provided that [http://bugzilla.kernel.org/show_bug.cgi?id=3912 this patch] has been applied. It seems that the dma numbers change with pnpacpi (dma1=1, dma2=5 for instance).&lt;br /&gt;
&lt;br /&gt;
===Solution #2===&lt;br /&gt;
Make sure that the bios quick boot feature is disabled.&amp;lt;br /&amp;gt;&lt;br /&gt;
Add the following lines to one of your init process files, i.e, {{path|rc.local}}:&lt;br /&gt;
 modprobe sound&lt;br /&gt;
 insmod ad1848&lt;br /&gt;
 insmod uart401&lt;br /&gt;
 insmod cs4232 io=0x530 irq=5 dma=1 dma2=0&lt;br /&gt;
In case an insmod or modprobe of cs4232 fails with the following error appearing at the console, via dmesg, or in {{path|/var/log/messages}}, double-check you have quick boot disabled!&lt;br /&gt;
 kernel: kobject_register failed for cs4232 (-17)&lt;br /&gt;
 kernel:  [&amp;lt;c0190b16&amp;gt;] kobject_register+0x32/0x48&lt;br /&gt;
 kernel:  [&amp;lt;c01d4bee&amp;gt;] bus_add_driver+0x3e/0x98&lt;br /&gt;
 kernel:  [&amp;lt;c01d50ec&amp;gt;] driver_register+0x34/0x38&lt;br /&gt;
 kernel:  [&amp;lt;c01adb90&amp;gt;] pnp_register_driver+0x28/0x5c&lt;br /&gt;
 kernel:  [&amp;lt;cedfb483&amp;gt;] init_cs4232+0x33/0xec [cs4232]&lt;br /&gt;
 kernel:  [&amp;lt;c01294eb&amp;gt;] sys_init_module+0xe3/0x1c4&lt;br /&gt;
 kernel:  [&amp;lt;c01054b5&amp;gt;] sysenter_past_esp+0x52/0x71&lt;br /&gt;
 modprobe: FATAL: Error inserting cs4232 (/lib/modules/2.6.9/kernel/sound/oss/cs4232.ko): No such device&lt;br /&gt;
&lt;br /&gt;
===Solution #3===&lt;br /&gt;
If your module loads like it should, but audio loops or sounds choppy then reloading module should help:&lt;br /&gt;
:{{cmdroot|rmmod cs4232 &amp;amp;&amp;amp; modprobe cs4232}}&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=CS4610&amp;diff=19938</id>
		<title>CS4610</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=CS4610&amp;diff=19938"/>
		<updated>2006-02-14T21:16:55Z</updated>

		<summary type="html">&lt;p&gt;Molle: /* CS4610 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== CS4610 ===&lt;br /&gt;
This is a Cirrus Logic Audio controller&lt;br /&gt;
&lt;br /&gt;
This chip is paired with a ISA [[CS4239]] audio controller, which is meant for DOS applications (mainly games). Only one sound driver should be loaded, and this PCI audio driver is the prefered one.&lt;br /&gt;
&lt;br /&gt;
While the above might be true, I've never been able to use the PCI audio driver on the 600E, and I don't think anybody else has either.  It just doesn't work, it dies complaining about lacking AC97.&lt;br /&gt;
&lt;br /&gt;
So for the ThinkPad 600E, snd-cs4236 is the &amp;quot;preferred&amp;quot; (= working) driver.&lt;br /&gt;
If you can't get sound to work on your 600E, try kernel version 2.6.13.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: CS4610&lt;br /&gt;
* Interface: PCI&lt;br /&gt;
* PCI ID: 1013:6001&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Linux OSS driver ===&lt;br /&gt;
This sound chip is supported by the cs46xx kernel module.&lt;br /&gt;
&lt;br /&gt;
=== Linux ALSA driver ===&lt;br /&gt;
This sound chip is supported by the snd-cs46xx kernel module.&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this chip may be found in ===&lt;br /&gt;
* {{600E}}&lt;br /&gt;
* {{770X}}, {{770Z}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Molle</name></author>
		
	</entry>
</feed>