Posts: 37
rustiguzzi
Joined: 03 Sep 2011
#1
The problem: antiX-core on an old laptop, system reports"no soundcards found", suspect missing firmware. Would appreciate any suggestions.

Background:
I've been using the full version of Antix on a Dell Dimension for two years now and am very happy with it, so when I was offered an old laptop"to play with" I thought I'd have a go at installing Antix on it to see what it would do. It's an NEC LaVie, with 64MB RAM (which made it top of the range when it was new) and it used to run Japanese Win98, which I've wiped. Antix-base wouldn't install, but core did. Given that most, if not all, other versions of linux need more than 64MB RAM I was delighted. I now have a working OS, and have given it a nice big swap file, so what'll it do?

Answer: quite a lot. One small disappointment is although that it will play video files using mplayer, there is no sound. I believe the reason can be found in these messages in the boot sequence:

[ 11.209978] microcode: Missing Free firmware
[ 12.620141] 0000:00:09.0: Missing Free firmware
[ 12.6340731] ALSA sound/pci/ymfpci/ymfpci_main.c:2453 firmware request failed: -22

even though later on it displays

"[ok] Setting up ALSA . . .done."

I tried, in root, 'alsactl init' but got the result"No soundcards found". In the shutdown sequence it also reports"no soundcards found", although according to inxi there is one (see below).

Searching in the antiX forum produced this:

viewtopic.php?f=13&t=3224&hilit=no%20sound%20cards

which sounds similar, as this user also had a Yamaha card that wasn't being detected. I followed the instructions and put the resulting 'yamaha' directory and its four files in /lib/firmware, with the result that I lost video as well as sound so gave up on that idea. Mind you, I'm on Luddite, and things might have changed since that thread in 2011.

Here's some inxi output that might be useful:

System: Host: antiX1 Kernel: 3.7.10-gnu-antix.3-486-smp i686 (32 bit)
Console: tty 1 Distro: antiX-13.1_386-core-libre Luddite 19 June 2013
Machine: Mobo: N/A model: N/A Bios: N/A version: N/A date: N/A
CPU: Single core Celeron (Coppermine) (-UP-) cache: 128 KB
flags: (pae sse) clocked at 497.839 MHz
Graphics: Card: Advanced Micro Devices [AMD] nee ATI Rage Mobility P/M AGP 2x
X.org: 1.12.4 drivers: ati FAILED: mach64 tty size: 80x25
Advanced Data: N/A out of X
Audio: Card: Yamaha YMF-754 [DS-1E Audio Controller] Sound: ALSA
ver: k3.7.10-gnu-antix.3-486-smp

There's a FAILED in the Graphics section, but for the time being that's not a problem.

Also this from lspci:

00:09.0 Multimedia audio controller: Yamaha Corporation YMF-754 [DS-1E Audio Controller]
Subsystem: NEC Corporation Device 80b5
Flags: medium devsel, IRQ 5
Memory at febf0000 (32-bit, non-prefetchable)
I/O ports at ef00
I/O ports at efe4
Capabilities: [50] Power Management version 1

And this from lsmod | grep snd:

snd_ymfpci 22521 0
snd_mpu401_uart 4131 1 snd_ymfpci
snd_opl3_lib 5966 1 snd_ymfpci
snd_hwdep 4072 1 snd_opl3_lib
snd_seq_midi 3497 0
snd_seq_midi_event 3597 1 gameport 5365 1 snd_ymfpcisnd_seq_midi
snd_rawmidi 12946 2 snd_mpu401_uart,snd_seq_midi
snd_ac97_codec 78826 1 snd_ymfpci
snd_pcm 50892 2 snd_ymfpci,snd_ac97_codec
joydev 6702 0
snd_page_alloc 5095 2 snd_ymfpci,snd_pcm
snd_seq 35033 2 snd_seq_midi_event,snd_seq_midi
snd_seq_device 3878 4 snd_seq,snd_rawmidi,snd_opl3_lib,snd_seq_midi
snd_timer 12249 4 snd_ymfpci,snd_pcm,snd_seq,snd_opl3_lib
snd 36962 11 snd_ymfpci,snd_ac97_codec,snd_hwdep,snd_timer,snd_pcm,snd_seq,snd_rawmidi,
snd_mpu401_uart,snd_seq_device,snd_opl3_lib,snd_seq_midi
soundcore 3463 1 snd
ac97_bus 691 1 snd_ac97_codec
gameport 5365 1 snd_ymfpci

FWIW, I couldn't get alsamixer to run until after I'd installed pulseaudio, and it confirms"no soundcards" in /prom/asound/cards. Once pulseaudio is running, alsamixer doesn't work (something to sort out later, I reckon).

After much searching, I came across the suggestion that 'alsa-tools-firmware' might get over this problem, but I haven't found it in the usual repos. Is it available for debian users? Or is there another answer?

Would it be possible to overcome this lack of sound, or should I just shrug my shoulders and say"C'est LaVie"?

rustiguzzi
Last edited by rustiguzzi on 18 Nov 2013, 19:32, edited 1 time in total.
Posts: 4,164
rokytnji
Joined: 20 Feb 2009
#2
Would it be possible to overcome this lack of sound, or should I just shrug my shoulders and say"C'est LaVie"?
Yamaha sound card huh. I used to ride a chopper
========= SCRAPER REMOVED AN EMBEDDED LINK HERE ===========
url was:"http://www.nippon-bobbers.com/Yamaha_XS650_1977/images-yam0004/1977_Yamaha_XS650_Hardtail_Bobber_468x322.jpg"
linktext was:"650 twin british norton yamaha copy"
====================================
back in the late 70's.


========= SCRAPER REMOVED AN EMBEDDED LINK HERE ===========
url was:"http://debian.2.n7.nabble.com/Linux-kernel-image-2-6-23-1-sound-card-yamaha-YMF-754-td225 6927.html"
linktext was:"http://debian.2.n7.nabble.com/Linux-ker ... 56927.html"
====================================


It sounds like Anti missed the flag on

Code: Select all

# CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL is not set 
Edit: my bad, maybe not?

Code: Select all

snd_ymfpci 22521 0 
Have you tried antix control center>configure sound card and reboot? End of Edit.

Maybe. I aint no kernel expert though. Maybe running smxi in AntiX (as root in terminal, then drop out of x)

Don't dist-upgrade or anything. Just continue to kernel installation and try a older Debian kernel like 2.6 through 2.8 maybe?
Heck. I am guessing though. Howdy and Welcome by the way.

2nd edit: I never install and use pulseaudio in any of my Linux installs to get sound working. Using using the F6 key and selecting my sound card is enough. The firmware message is different though for you than what I go through though.

3rd Edit.
There's a FAILED in the Graphics section, but for the time being that's not a problem.
I get that even when I ran the open source ati radeon driver available in smxi/sgfxi install process. It shows that way in inxi but X works just fine in that old clunker IBM Laptop of mine.

4th edit: Thanks Bitjam.
Posts: 1,308
BitJam
Joined: 31 Aug 2009
#3
The first hit from Google(linux yamaha ymf-754) was to
========= SCRAPER REMOVED AN EMBEDDED LINK HERE ===========
url was:"https://wiki.debian.org/snd-ymfpci"
linktext was:"these instructions"
====================================
which tell you how to create and install the firmware.

The instructions say to use"aptitude" for the installation but people around here generally use"apt-get" instead.
Posts: 37
rustiguzzi
Joined: 03 Sep 2011
#4
Thanks for the above. I gather Debian dropped support for these older devices some while back, but it looks as though BitJam has hit on the answer, which I will try out ASAP and report back.

Incidentally, unless I'm missing something, I couldn't try rokytnji's suggestion of using the Control Centre, as antiX-core doesn't have this facility. Or maybe it's hidden somewhere and I just haven't found it yet.

Also, FWIW: I'd ticked the box for email notification of any replies, and duly received one - marked"Suspicious message" by the ISP. When I clicked on the link I got this, from Cisco Security:

The requested web page has been blocked
viewtopic.php?f=49&t=4675

Cisco Security has identified Malware on the requested page.

Cisco Email and Web Security protects your organization's network from malicious software. Malware is designed to look like a legitimate email or website which accesses your computer, hides itself in your system, and damages files. Your email administrator has configured this prevention system to ensure against such damage.

Is this normal?

rustiguzzi
Posts: 1,308
BitJam
Joined: 31 Aug 2009
#5
I don't get email notifications from these forums even though I asked for them so maybe it is normal for them to be swallowed up by spam filters.

There is no Control Centre for core but there are vague plans to make one. It might be more like a CLI applications menu. I think that would be a great feature for the core system.
Posts: 37
rustiguzzi
Joined: 03 Sep 2011
#6
Thanks. I'll forget about email notifications then, and manage without CC unless/until it gets developed for this system.

I got rid of pulseaudio, then went through the instructions at
========= SCRAPER REMOVED AN EMBEDDED LINK HERE ===========
url was:"https://wiki.debian.org/snd-ymfpci"
linktext was:"https://wiki.debian.org/snd-ymfpci"
====================================
, and all went well until step 5, which is"Reload the snd-ymfpci module" using the command
# modprobe -r snd-ymfpci ; modprobe snd-ymfpci
which produced the by-now-familiar lines:

[ 12.620141] 0000:00:09.0: Missing Free firmware
[ 12.6340731] ALSA sound/pci/ymfpci/ymfpci_main.c:2453 firmware request failed: -22

Unfortunately, in trying to find out more I screwed up some files and decided that nothing short of a nice, clean re-installation would do. I've done it and got back up-to-date, but it will be some time before I get everything back to where it was before, and I'll probably have to put the project on hold for a while. Could be a couple of weeks before I get to a position where I can start again with this problem.

Meanwhile, thanks for your help.
Posts: 37
rustiguzzi
Joined: 03 Sep 2011
#7
Just a thought . . . step 4 in the method described at https:wiki.debian.org/snd-ymfpci requires the creation of a new directory called 'yamaha' in /usr/local/lib/firmware. Would this be correct? I note that, in my antiX-core system, /usr/local/lib contains only the one directory, called antiX, which contains mostly .sh files. There is no existing 'firmware' directory. However, in /lib/firmware there is loads of stuff - .bin files, .fw files, and directories containing more of the same. This looks like a more suitable home for the yamaha .fw files.

Might this be worth trying instead?
Posts: 37
rustiguzzi
Joined: 03 Sep 2011
#8
Back up and running and have been through the above setting-up instructions again, this time putting the firmware in BOTH possible locations - but still get the same error messages. I have, however, found this:


========= SCRAPER REMOVED AN EMBEDDED LINK HERE ===========
url was:"http://www.jpberlin.de/st.pofahl/html/science-and-software/Gnu-Linux/alsa-sound.html"
linktext was:"http://www.jpberlin.de/st.pofahl/html/s ... sound.html"
====================================


though finding it hard to understand. I'll persevere and see what, if anything, I can make of it - but so far, I've not found a way to get this firmware into the system.
At least it's given me an interersting command: dmesg | grep -i firmware
which, for what it's worth, results in the same"Missing Free firmware" messages.

Pass the aspirin, someone . . .
Posts: 1,308
BitJam
Joined: 31 Aug 2009
#9
rustiguzzi wrote:Back up and running and have been through the above setting-up instructions again, this time putting the firmware in BOTH possible locations - but still get the same error messages.
There are more than 2 possible locations. In the antiX iso, the only"firmware" directory is /lib/firmware, so I suggest you put the yamaha modules in /lib/firmware/yamaha/. It should contain three files:

Code: Select all

$ ls /lib/firmware/yamaha   
ds1_ctrl.fw  ds1_dsp.fw  ds1e_ctrl.fw
You should be able to do this starting from the tarball with:

Code: Select all

$ tar xjf alsa-firmware-1.0.25.tar.bz2
$ cd alsa-firmware-1.0.25
$ ./configure
$ cd ymfpc
$ make
$ sudo make install
$ ls /lib/firmware/yamaha
anticapitalista
Posts: 5,955
Site Admin
Joined: 11 Sep 2007
#10
There is some yamaha firmware here that used to work. No idea if it still does.


========= SCRAPER REMOVED AN EMBEDDED LINK HERE ===========
url was:"http://www.mepisimo.com/antix/Tarballs/"
linktext was:"http://www.mepisimo.com/antix/Tarballs/"
====================================
Posts: 37
rustiguzzi
Joined: 03 Sep 2011
#11
Tried out the above, to no avail - but all is not yet lost.

It can be difficult for the experts to sort out problems for other people when they can't see what's going on. Fortunately, a linux-fluent family member is paying us a visit this weekend, so maybe he will be able to spot where I'm going wrong. I'll let you know what progress we make, as there may be others out there with trailing-edge technology machines who will run into the same problem.

By the way, I continue to be impressed by what can be done with core antiX, equipped with fluxbox and ROX-filer.
Posts: 2
candlerb
Joined: 16 Nov 2013
#12
I have been helping rustiguzzi with this laptop, and the problem is now solved.

Short version: the kernel with"-gnu" in its name was broken by design. Install the kernel without"-gnu" in its name, remember to"update-grub", then reboot into this kernel.

Long version:

1. When the kernel needs to load the firmware, via udev it calls a userland helper script, /lib/udev/firmware.agent to do it

2. I modified /lib/udev/firmware.agent and found that instead of being passed the name of the firmware to be loaded, it is getting the string"/*(DEBLOBBED)*/". And since there is obviously no firmware with this name, it is failing.

To demonstrate this, I made the following patch to /lib/udev/firmware.agent:

Code: Select all

--- /lib/udev/firmware.agent.orig    2013-04-28 22:44:19.000000000 +0100
+++ /lib/udev/firmware.agent.test    2013-11-16 12:07:20.466660459 +0000
@@ -3,6 +3,11 @@
 # firmware loader agent
 #

+printenv >/tmp/fwname
+
+set -x
+exec >/tmp/fff 2>&1
+
 cd /lib/udev/
 . ./hotplug.functions

The environment passed to the script, recorded in /tmp/fwname, is:

Code: Select all

UDEV_LOG=3
ACTION=add
SEQNUM=1631
USEC_INITIALIZED=7432826344
FIRMWARE=/*(DEBLOBBED)*/
DEVPATH=/devices/pci0000:00/0000:00:09.0/firmware/!*(DEBLOBBED)*!
ASYNC=0
SUBSYSTEM=firmware
TIMEOUT=60
PWD=/
Googling around for 'deblobbed' I came a cross a project called 'linux-libre', which distributes a patchset against the kernel to disable the loading of binary drivers without source. It seems that the self-styled Open Source Police have decreed that:

1. The Yamaha firmware is not Worthy to be loaded into the Holy Kernel of Linux
2. The Great Unwashed cannot be trusted to decide for themselves whether or not to load said firmware
3. Rather than simply remove the offending driver entirely, they have decided to break its functionality in a strange way, such that there will be Weeping there, and Gnashing of Teeth, when you see other sound drivers loaded in the Kernel of Linux, but you yourself Thrown Out.

AFAICS their approach is to remove the freedoms I have now, in the hope of obtaining greater freedoms later.

Anyway, the default Antix kernel (-gnu) has these patches, but an unmodified kernel is also available and you can install it explicitly.
Posts: 1,308
BitJam
Joined: 31 Aug 2009
#13
candlerb wrote:AFAICS their approach is to remove the freedoms I have now, in the hope of obtaining greater freedoms later.
candlerb, thank you for fixing this problem and thank you for taking the time to report your fix here. I can see how frustrating it must be to encounter something that seems broken by design.

I was surprised when I first heard about the libre version of the kernel. I thought that since the kernel was written under the GPL-2, it had to all be under GPL-2 and hence Free. But, as you say, non-Free binary blobs can be linked into a non-libre kernel. I really don't think their intent was ever to limit people's freedom of choice in the here and now. They are not trying to force anyone to use the libre kernel. It is an option for people who want it.

Your experience shows that it can be non-trivial for a user to know if the kernel is loading non-Free binary blobs so ISTM the libre kernel provides a useful service (for those who want it). If anyone has restricted your freedom it has been the antiX devs (if we only provide a libre version of core). I will see if we can include a non-libre core version in the next release so the choice between libre and non-libre is more clear. I will also see if we can include a more visible warning about the limitations of the libre version.

Again, thank you for diagnosing and fixing this problem. AFAIK, we were all stumped here. Now that you have figured it out, we can be on alert for it when similar problems are reported in the future. I'm sorry you had a negative experience. Now that we are aware of the potential problems, I hope that by communicating better and by offering a non-libre core version we can prevent similar negative experiences in the future.
Posts: 2,238
dolphin_oracle
Joined: 16 Dec 2007
#14
Thanks to this post, the first thing I did with my core install last nite was change the kernel to the standard one. Thanks!
Posts: 2
candlerb
Joined: 16 Nov 2013
#15
BitJam wrote:Now that you have figured it out, we can be on alert for it when similar problems are reported in the future.
I am glad of that, and it was a learning experience for me too __{{emoticon}}__

I think it could have been made a whole load easier if the libre people had include a more informative printk() message. The hint is there, but it's just three words:"Missing Free firmware". I would suggest something like this:

"Loading of non-free firmware disabled. For more information please see
========= SCRAPER REMOVED AN EMBEDDED LINK HERE ===========
url was:"http://linux-libre.fsfla.org/"
linktext was:"http://linux-libre.fsfla.org/"
====================================
"

Regards,

Brian,