Huh, are you running arch on that box as well? I am wondering if
speakup is even loaded. I noticed in the espeakup build systemd
services that it loads speakup_soft when the systemd service is
started.
I'm not crazy about that being the way to load speakup particularly
but I'm not that familiar with various distros way of doing things but
it appears the espeakup maintainers figure everyone is running
systemd.
That's one of the reasons I mentioned getting folks opinions in my
last message to you. For people that don't run systemd it will
certainly break things.
On Sat, 18 Sep 2021, Janina Sajka wrote:
Well, maybe here's a clue of something ...
Going to my System76 box, which is fully updated as of this morning,
including alsa-lib 1.2.5.1-3
espeakup 0.90-1
There is no /dev/softsynth* of any kind.
root@minuet 12:40:10 dev#ls -l soft*
ls: cannot access 'soft*': No such file or directory
Weirder still, there's no /sys/accessibility.
My older machine, also updated this morning, but with the newer alsa-lib
and espeakup held out of the upgrade, there is indeed a
/sys/accessibility/speakup, where there is indeed a soft directory owned
by janina:janina, as are all the files inside.
And this older box also has:
crw------- 1 root root 10, 122 Sep 18 12:08 softsynth
crw------- 1 root root 10, 121 Sep 18 12:08 softsynthu
But this is the working box, so I don't want to mess with upgrading
alsa-lib here. One broken machine is all I can handle for the moment.
Does that tell us anything useful? It's beyond my paygrade! <grin>
Janina
Kirk Reiser writes:
Hi Janina: I and Alex have been working on this issue the past couple
of days. This is what works for now and what the final solution will
be isn't quite clear to me yet.
With alsa 1.2.5 installed chown the /dev/softsynth devices to the user
using them something like:
sudo chown janina.janina /dev/softsynth*
The astriks wil cover both devices.
Then you need to change the permissions of /var/run or whatever it's
called on your system so espeakup can write the pid file:
sudo chmod 1777 /run
Then run espeakup as yourself:
/usr/bin/espeakup
We are currently looking into why espeakup doesn't work with pipewire
yet espeak-ng does. It appears that possibly espeakup handles writing
to the alsa sound system directly from espeak-ng. I'm not at all sure
of that yet. It's been a hell of a long time since I looked at 'c'
code so I'm pretty rusty.
It does appear that going forward pipewire is going to be the
pulseaudio replacement.
I'm certainly open to ideas on the cleanest way to handle all this
stuff. Possibly running pipewire as root or just running everybody as
the individual user, I don't know. Unfortunately it appears we need a
solution to keep up with future alsa libasound2 development.
Kirk
On Sat, 18 Sep 2021, Janina Sajka wrote:
Hi, Kirk:
I'm on Arch, not Debian, but I've had broken Espeakup ever since
alsa-lib-1.2.5 showed up. Since then Espeakup has been upversioned to
0.90, but this has not fixed things for me, though apparently it has for
Alexander now maintaning Espeakup.
I currently have two functional Linux machines, both fully upgraded as
of just about half an hour ago except as described below.
The newer hardware will run by hand with the command: 'espeakup -d', but
it's highly brittle and prone to crash the system so that a three finger
salute is needed.
If I want console access on this 2020 era box, I have to turn to fenrir,
which I'm just not as comfortable with--but that's another story.
My older machine is prevented by my /etc/pacman.conf from updating
alsa-lib and espeakup, and it runs just fine.
So, my suggestion is back off to the latest alsa-lib-1.2.4, and the
latest espeakup-0.8 you have, and you should be fine until someone
figures out what's really going on.
For anyone running Arch you want the following in your /etc/pacman.conf:
IgnorePkg =espeakup
IgnorePkg =alsa-lib
If you've already updated your Arch beyond these versions, you can
downgrade. You'll find a cache of previous versions in:
/var/cache/pacman/pkg/
Just cd on over there as root and check what you have with a command
like:
ls -1 alsa-lib* espeakup*
You can then downversion with pacman like this:
pacman -U ./[filename]
where [filename] is the full name you got from ls. I recommend using the
Speakup clipboard to get the command right.
Best,
Janina
Kirk Reiser writes:
Hi folks: Does anyone have espeakup running on debian sid with
libasound2 1.2.5? After I upgraded a few days ago I lost my speech
output. I have built espeakup and espeak-ng from the current repo on
them with no joy either.
Curious minds and all that type thing.
Kirk