August 2013 TalkingArch Snapshot Now Available

TalkingArch.2013.08.05 is now here. As usual, links are available on the
TalkingArch download page.
I now provide a .torrent file, and I highly recommend downloading via BitTorrent. If you can, please seed. It is a trackerless torrent, so it may take a while for the download to start.

This edition of TalkingArch is more-or-less in sync with the 2013.08.01 Arch Linux image.
However, I am currently including kernel version 3.9.9 with TalkingArch. I’ve read various reports of issues with Logitech wireless input devices under the 3.10.x kernels. I use a Logitech wireless keyboard, so I’m including a kernel that is known to work with it.

The biggest user-visible change in this snapshot is the sound card chooser script. If you have multiple sound cards, the script uses pre-recorded audio to prompt you to choose one. This fixes an issue where HDMI audio was (incorrectly) being chosen by ALSA as the default audio device. I have this sneaky little suspicion that the script will fail for somebody. If it does, email chris at the-brannons dot com, and I’ll do my best to fix it. Yes, the recorded voice is mine, and I yammered entirely too much.

Official Arch Linux images are being produced far more frequently these days. I’ve done a lousy job of keeping TalkingArch up-to-date. I apologize, and I’ll try to do a better job in the future.

How HDMI Audio Breaks TalkingArch

A while ago, someone posted to a mailing list, stating that TalkingArch wouldn’t speak once their system was booted. After exchanging more email messages, we found the culprit: HDMI audio! Rather than using the onboard sound card, ALSA was selecting their HDMI audio as the default output. Needless to say, this isn’t really what we want. I don’t know of a quick fix for this, either.

So here’s what I’m planning. If there are multiple sound cards, we won’t start espeakup automatically at boot. Instead, a small script will run the first time root is logged into the live system. The script will loop through all of the cards, like so:

# This is pseudocode, not executable python!
card_to_use = -1
for card in get_cards():
  play_intro_message(card)
  input = get_input(timeout=30)
  if input[0].lower() == 'y':
    card_to_use = card
    break
if card_to_use != -1:
  set_default_soundcard(card_to_use)
else:
  print("You didn't select a card, using system's default.")
os.system('systemctl start espeakup')

You get the idea. The intro message will just prompt the user to press y followed by ENTER to select this card as the default. Yes, the pseudocode looks like Python, but I’m not entirely sure what language I’ll end up using for this. I wouldn’t be surprised if it is sh + awk, where the awk part parses the output of aplay -l and produces a list of sound card indices. I should be able to hammer out something usable in the next few hours.

In other news, a new TalkingArch is on its way. Several folks have asked me about it. I’ll upload it as soon as the sound card chooser is done and tested.