This is an old revision of the document!


bootlocal.sh tweaks - other options

In this section, I assume you have blacklisted your sound module.

This section covers all other options that are relevant to your sound module. They include:

  • quirks
  • irq (interrupts) and some related settings
    • This affects normal sound cards and also ISA devices (an older sound device architecture)
  • power save modes
  • Message Signaled Interrupts (msi)
  • DMA pointer read method (position_fix)
  • AND OTHER modinfo outputs relevant to your card

My intel card can't be tested for quirks as my sound is good. But if you read various docs under http://www.kernel.org/doc/Documentation/sound/alsa/ you will see there are some quirks especially for AC97 cards.

For example it might be…..

/sbin/modprobe snd_intel8x0 ac97_quirk=hp_only

Common quirks are shown here http://www.kernel.org/doc/Documentation/sound/alsa/ALSA-Configuration.txt

Intel users may have an issue with wrong codecs or message handling. See http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt. Example

/sbin/modprobe snd_hda_intel enable_msi=0

=0 means turn off instead of default which is on for most models.

Example (made up) of irq and related options

/sbin/modprobe snd-azt1605 irq=9 mpu_irq=7 wss_port=0xe80

Persistence

Newbies may like to read the other pages on what persistence means Also I assume that you are using Mount Mode of Operation from concepts. Specifically I assume only tce is named as the persistent folder in your bootloader. Note you need root powers to edit /opt/.filetool.lst or bootlocal.sh. Use a command to get root powers for your preferred gui or try the commands below.

Newbies may like to consider installing lxterminal for easy copy and paste? And in the echo commands the \n means create a newline and not append to any existing line.

Your sound persistence may fit more than one category below.

All users
add line to /opt/.filetool.lst

opt/alsa

or

sudo echo -e '\nopt/alsa' >> /opt/.filetool.lst

Note we drop the first / for each file in filetool.lst.

Mixer volumes or mute changed for single device users
First use your mixer to adjust the mute/umute, volumes and input active/de-active settings. Next we save those settings to a file by running command

sudo alsactl store

Add extra line to filetool.lst

usr/local/etc/asound.state

or

sudo echo -e '\nusr/local/etc/asound.state' >> /opt/.filetool.lst

The alsasound script will restore mixer levels as it searches for the above file.

alsaconf users
Add extra line

etc/modprobe.conf

or

sudo echo -e '\netc/modprobe.conf' >> /opt/.filetool.lst

sound device model changed to fix up controls or options
Best not to use “default” mixer pathway, instead use an unique pathway to save borking your mixer levels.

sudo alsactl -f /home/tc/mysound.state store

Change the filename mysound.state to whatever you like, eg surround.state but then reflect that name in the next bit please.

First use root powers to edit /opt/bootlocal.sh

echo -e '\n/usr/local/sbin/alsactl -f /home/tc/mysound.state restore' >> /opt/bootlocal.sh

There is no need to add the home file mysound.state to filetool.lst as it goes into mydata.tgz on shutdown or reboot.

Switching sound devices at boot
I have kept their persistence issues within that section, below.

blacklist module users
Need to know what their bootloader is, and use root powers to edit that config file.
Typically, the file is likely to be under /boot folder and /boot is outside the rootfs (the unpacked core.gz). boot folder is often at same partition as the tce folder but its not necessary that it is.

/home/tc/.asoundrc users
This file is backed up to mydata.tgz so no further action need for it. Be aware that you may have changed mixer levels.

Persistence - LIVE TEST and CHECKLIST

Some users may like to test that their saved mixer level files are good before reboot? Try

sudo alsactl -f /home/tc/mysound.state restore

Change name of file if you used /usr/local/etc/asound.state or some other name.

Before reboot, I suggest you click on control panel and click on backup.
To verify that all files needed, have landed in mydata.tgz modify the following command to your pathway please

sudo tar tzf /mnt/sda1/tce/mydata.tgz | less

I won't show my output as I may not have the same persistence as my assumptions heh heh.

Next check your filetool.lst

less /opt/.filetool.lst

Next, for those who I suggested, blacklist sound modules check your bootloader entries eg

less /mnt/sda1/boot/grub/menu.lst (or grub.cfg)

If upon review it looks good, good luck and reboot then check your mixer levels and desired sound is actually happening.

Surround sound

Most people know what this means already, otherwise consider reading http://en.wikipedia.org/wiki/Surround_sound

On first reboot, ALSA may detect a surround sound device, but not have all settings correct? YMMV

twid_66_surround1.jpg

This is a tower, so you may not have Front channel. Visit /usr/local/share/sounds/alsa and play each relevant sound file and enable or disable each channel to see what effect it has. TIP= enable all. For me, enabling all gives me the surround effect with a 2 channel desktop speaker system.

twid_67_surround3.jpg

Here, the padlock becomes more relevant as you may not be in the centre of the room so need to offset some sliders? YMMV

Note: if you needed to adjust mixer levels or mutings you may need to revisit persistence

alsamixer

You may need to use alsamixer, if you need to change your inputs. This is because I found alsamixergui unable to unmute (make active) my mic input. If you want to learn alsamixer, make as many changes as you like but remember not to save them with the alsactl command. That is the power and convenience of the TinyCore design to get you back to a pristine state or a saved state.

Open a terminal and run command

alsamixer

Press F1 for help with keyboard inputs, there are no mouse inputs.

twid_68_help1.jpg

These left or right arrows are critical to get you to the correct selection. There is no padlock to lock or unlock balances together. See the images in page one or two to get an idea what I did, its not that hard? YMMV

The above help is not helpful for microphone or capture devices, these input devices need the SPACE BAR to activate or de-active. The default seems to be de-active.

So I have made up a new image that might help newbies?

oi49.tinypic.com_2mplf9s.jpg

I have hidden the mic sections below as most users tend not to use mics.

Choose sound devices at boot

Why do it? Mainly used by people who want to use an USB sound mixer at home because their onboard device is junky. But when they take portable to coffee shop etc, they want an easy way to get onboard sound automatically tweaked for mixer settings.

Are you exceptional?

You may not have to do all this stuff if the following works for you;
swap to device 2, no tweaks required
swap to device 2, no mixer levels need changing
ditto swap to device 1.

In which case, you just need simple bootloader entries so to use device one, you blacklist sound module for device 2 and for device 2, blacklist the module for sound device 1.

PART 1 - TEST LIVE SWAP

Firstly you can use test out your commands live to see if they work, but there is a gremlin in removing one sound module. It may not remove all. Formula is

/sbin/modprobe -r (current sound module) 
/sbin/modprobe (second device module)

If second device is USB, no need for second command if you leave your USB out of your computer until first module is removed.

Before you remove your current sound module, check if you need to change mixer levels, if you do, then set up an unique mixer file.

sudo alsactl -f /home/tc/device1.state store

After running the modprobe commands, check mixer levels and if you need to change mixer levels only, create its unique mixer file

sudo alsactl -f /home/tc/device2.state store

Now swap the sound module names, in the modprobe command formula, to get back to device 1 sound. If the mixer levels are not correct, then you truly need a mixer file for device 1 so assuming you made one earlier, now load it by command

sudo alsactl -f /home/tc/device1.state restore

Now swap again to device 2 but change that restore command to device2. You are not forced to use those formula names for the mixer files. But whatever you call them, reflect those names into your commands and the other steps below please. eg If you have an intel onboard and some USB device the names might be onboard.state and usb.state.

Part 2 - CREATE NEW BOOTLOADER ENTRIES
We blacklist all sound modules. While editting, we create 2 entries one for each sound device. So your bootloader config editted with root powers becomes

bootloader extra entry 1

blacklist=sound_module1, sound_module2 snd=/opt/1.sh

bootloader extra entry 2

blacklist=sound_module1, sound_module2 snd=/opt/2.sh

If you are using grub remember to run command

sudo update-grub

PART 3 - CREATE PERSONAL BOOTCODE

Use root powers to edit bootlocal.sh to do the following:

  • remove all mentions of sound modules or tweaks
  • add bootcode formula

The reason why we can't have any sound tweaks etc in bootlocal, is we creating 2 unique bootcode scripts (another stage) and we can't afford to have interference from duplicate entries. Add this please, in a code box for display purposes only

RUNME=""
for i in `showbootcodes`
do
case $i in
snd*) RUNME=${i#*=} ;;
esac
done
[ -n "$RUNME" ] && $RUNME

Now reboot, and test out extra entry 1. Your system should boot and you will be missing sound for both devices. Note that I am not a real coder, that code was created by the TC dev team and I am grateful they are smarter than me. I removed the space from the code and it still works for me.

PART 4 - CREATE 1.SH
Use root powers to create a text file, for me, I use

sudo leafpad

Replace leafpad with any other gui text editor or terminal editor. Contents formula is: (inside a code box for display purposes only)

#!/bin/sh
/sbin/modprobe sound_module1 (options)
/usr/local/sbin/alsactl -f /home/tc/device1.state restore

(options) replace with any needed, eg for me, model=5stack for module=snd_hda_intel

Now save it to /opt/1.sh. Next make it executable by

sudo chmod +x /opt/1.sh

Next add that file to our backup file using root powers to edit filetool.lst so it reads

opt/alsa
opt/1.sh

Also note, you ignore all of the persistence section as you are creating your own persistence thru these 2 scripts and personal bootcode with blacklist bootloader entries.

Now reboot and try out bootloader entry for device 1. If there are errors, you may need to reboot (without backup please) and choose your normal bootloader entry to check for copy and paste errors etc.

PART 5 - CREATE 2.SH
Once you are happy with Part 4, repeat the process for your second device and add the extra file to filetool.lst

opt/2.sh

reboot to test the second bootloader entry.

Normal microphones

Check how many inputs you have, in case you did not know, or suspect broken hardware wtih

arecord -l

(my example) I have front and rear mics in a tower
**** List of CAPTURE Hardware Devices ****
card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
  Subdevices: 2/2
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1

If you want to use command mode those are renamed as hw:0,0,0 and hw:0,1,1

Now lets explain that.
first number is the card index number
second number is subdevice
third is sub-component

If you have normal 3.55 mm orange colour connector microphone, you may still need to do some tweaking.
Firstly record a sample through your mic and then play it back. Naturally ensure you hear sound (out) before posting you have faulty mic settings please.

There is a catch in alsamixer. When you press the TAB key to go to input devices = capture devices…..you may see the word mic or not.

For my hardware, the setting can be changed from mic (= back connector) to front mic to line
and I have 2 sliders and 2 settings in my alsamixer.

i53.tinypic.com_jhznz7.jpg

In above image, I have paired slider 1 with setting one and slider 2 with setting 2 so it reads
…the first capture device is raised volumes for input to max and is set to front mic….with its mux set to zero
…the second capture device is zeroed for back mic with dmux set to zero.

How to activate your mic

If your alsamixer mic control does not dispaly the word CAPTURE above the bottom capture control, then press the SPACE BAR in alsamixer to unmute or activate the mic. Next, use the page up or down or arrow up or down to set the volume levels. So if active, you must see 2 “capture” mentions on the same control.

TIP, distortion is more likely at max volume try somewhere between 80-90% and consider doing record and playbacks to confirm.

i54.tinypic.com_1zmm8as.jpg

The mux setting is like a kind of mic amplifier and I suggest you do not use it unless with volumes maxed etc, you can not hear sufficient volume.
Note when raised …..mux….can lead to distortion.

If your alsamixer image has a slider and one named digital then you have an advantage over most sliders. The non-digital slider can be volume zero but kept active, and your mic volume is controlled by the digital slider

How to change setting for mic

Press the right hand arrow until you get to either input source (0) or input source (1)…….then press the up key or the down key to change. Note that these keys are one way and do not offer the ability to cycle thru all the optins….so try going all the way up and all the way down (using arrow keys) to know your options please.

Recording and testing voice mic inputs

Try using terminal commands to record and replay your mic recording.

eg

 arecord -d 10 /tmp/test.wav
aplay /tmp/test.wav

The -d 5 means duration of 5 seconds, feel free to alter.

You can also see options arecord –help but I am mainly interested in the fact that you can hear your voice not the quality, and that volume is reasonable.

Normal feedback to mic due to having your mic close to speakers or by having the input slider too high can be tweaked by repeating the same set of commands…..interspersed with running alsamixer and tweaking the settings.

If you intend to do snazzy or sophicated voice recordings, please check out

http://linux.die.net/man/1/arecord

http://linux.die.net/man/1/aplay

Webcam microphones

I have an usb lead connected to a desktop pc that has a webcam. It has no sound out, but a mic in.

Run alsamixer in a terminal or another mixer if you prefer. I then press F6 to show a range of sound devices and select by arrow my webcam.

Press F4 or press TAB key cycle thru to get to the input or capture section.

twid_30_webmic.jpeg

Depending on whether you are using skype or video recording, you may need to save a backup of your mixer levels for that webcam. For problems with microphones see Forums, e.g. http://forum.tinycorelinux.net/index.php?topic=2083.msg16436#msg16436

Other web resources and credits

TC maintainers for OSS and Alsa

  • -Jason W, Juanito, Curaga

http://alsa.opensrc.org/index.php/Main_Page

http://alsa.opensrc.org/index.php/TroubleShooting

http://alsa.opensrc.org/index.php/AlsaTips

(Above good for naming devices like PCM etc)

http://alsa.opensrc.org/index.php/Sound_Cards:_Introduction

http://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture

(Above covers a multitude of stuff including poor sound, sound pops, stutters etc)

Page 1

Print/export
QR Code
QR Code wiki:alsa_part2 (generated for current page)