LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   hsfmodem-driver + Intel HDA = no more sound!...? (https://www.linuxquestions.org/questions/slackware-14/hsfmodem-driver-intel-hda-%3D-no-more-sound-683254/)

forrest44 11-13-2008 05:00 PM

hsfmodem-driver + Intel HDA = no more sound!...?
 
Anyone had any experience with this?

Sound worked find on my Presario C500 laptop after the standard slackware install.

I have dial-up internet, so after running the scanModem.gz script, I went and downlowded and installed the hsf modem driver from www.linuxant.com.

Now my sound no longer plays. (nothing comes through speakers.) I can adjust volumes in alsamixer though.

My soundcard(?)/modem is reported as "Audio device: Intel Corporation 82801G".


After running /etc/rc.d/init.d/hsf stop I have no more sound device. (ie alsamixer/KMix don't give me any controls) Has the hsf driver has installed its own alsa drivers?

help help! What should I do?

Cheers

forrest44 11-13-2008 07:34 PM

It should also be noted that I am using Slackware 12.0.

allend 11-13-2008 08:28 PM

The modem driver is probably adding the snd-intel8x0m kernel module. Check the output from lsmod. If the kernel module is present, try modprobe -r snd-intel8x0m to remove it.
There may also be a kernel module for the modem device. This should be removed by the /etc/rc.d/init.d/hsf stop command, but it would pay to check.
You may need to customise your /etc/rc.d/init.d/hsf to suit your Slackware setup to avoid having to do this manually.

forrest44 11-15-2008 11:57 PM

Thanks

I booted up today and everything works fine! Before there was no dialing sound when the modem was dialing, but now there are the dial tones and everything. What really annoys me is I don't know what I did to fix it!! grrrr

Now, while attempting to play a sound clip while the modem is dialing, Amarok says 'sound card is busy'.

How can I stop the dialing tones and thus free up the sound card?

allend 11-16-2008 06:33 AM

You have not given the details of the modem in your machine, but I suspect that the driver that you downloaded is similar to that which I have on my laptop. It probably installs a kernel module for your modem device (in my case 'slamr'), which is now being added to your kernel at boot time. This driver is working through the Intel 82801 chip, which can be used to generate modem tones when used in conjunction with the snd-intel8x0m kernel module.
I had problems with the slamr kernel module, so in my setup this module is blacklisted in my /etc/modprobe.d/blacklist so that it is not loaded at boot time. When I want to use the modem, I run the script shown below with a start option. This causes the slamr and snd-intel8x0m modules to be added. When I have finished using the modem, I run the script with a stop option. This causes the slamr and snd-intel8x0m modules to be removed. Note that the script requires root privileges and is kept in /etc/rc.d/.

I suspect that you need to modify your /etc/rc.d/init.d/hsf script to perform similar operations, so that the required kernel modules are only loaded when required.
If you look in /etc/modprobe.d/blacklist, you will see that the snd-intel8x0m module and other ALSA modules to support sound modems, are blacklisted with the comment
Quote:

For most people they just break sound support...
Code:

#!/bin/sh
#
# rc.slmodemd
#
# Start slmodemd daemon for SmartLink
#
## My addition to add country support
SLMODEMD_COUNTRY=AUSTRALIA
## My addition to add modem functions to the Intel 82801 CA/CAM AC'97 controller
CHIPSET_MODEM_MODULE=snd-intel8x0m
## My addition to nominate slmodemd kernel module
SLMODEMD_KERNEL_MODULE=slamr

slmodemd_start()
{
        if [ -x /usr/sbin/slmodemd ]; then
                echo -n "Starting SmartLink modem daemon: "
                echo "/usr/sbin/slmodemd"
                modprobe $CHIPSET_MODEM_MODULE ; \
                modprobe $SLMODEMD_KERNEL_MODULE ; \
                slmodemd --country=$SLMODEMD_COUNTRY --alsa &
        fi
}

slmodemd_stop()
{
        echo "Shutting down SmartLink modem daemon"
        killall slmodemd
## My additions to remove the kernel modules that support the 1456VLQ4 Toshiba internal modem
        sleep 1
        modprobe -r $CHIPSET_MODEM_MODULE ; \
        modprobe -r $SLMODEMD_KERNEL_MODULE
}

slmodemd_restart()
{
        slmodemd_stop
        sleep 1
        slmodemd_start
}


# if [ "$SLMODEMD_DEVICE" ]; then readonly SLMODEMD_DEVICE; fi
## My additions to allow settings as environment variables
if [ "SLMODEMD_COUNTRY" ]; then readonly SLMODEMD_COUNTRY; fi
if [ "SLMODEMD_KERNEL_MODULE" ]; then readonly SLMODEMD_KERNEL_MODULE; fi
if [ "CHIPSET_MODEM_MODULE" ]; then readonly CHIPSET_MODEM_MODULE; fi

## Sanity checks
grep -q $SLMODEMD_KERNEL_MODULE.*o /lib/modules/$(uname -r)/modules.dep ||\
{ echo "rc.slmodemd: kernel module $SLMODEMD_KERNEL_MODULE.(k)o missing"; exit 1; }
grep -q $CHIPSET_MODEM_MODULE.*o /lib/modules/$(uname -r)/modules.dep ||\
{ echo "rc.slmodemd: kernel module $CHIPSET_MODEM_MODULE.(k)o missing"; exit 1; }

case "$1" in
        'start')
        slmodemd_start
        ;;
        'stop')
        slmodemd_stop
        ;;
        'restart')
        slmodemd_restart
        ;;
        *)
        echo "usage $0 start|stop|restart"
esac



All times are GMT -5. The time now is 01:28 AM.