<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>Ah ha!</p>
<p>I see that your script does the whole thing of copying the iso to
an updateable file system on disk, extracts the squashed file
system, modifies it, and then resquashes the file system and
recreates the iso. I didn't know you could do that last step all
in one swoop -- which is pretty cool. That is actually where I
always got stuck trying to do this myself in the past. That
xorriso command to regen the iso must have 20 settings.<br>
</p>
<p>Anyway, I also see that just documenting the process so others
can replicate it is not practical. I was hoping GRML had some kind
of hook for customization that I was unaware of. <br>
</p>
<p>I generated an iso file for grml and my synth that uses the
speakup_ltlk driver. It works. So that's great.</p>
<p>But the software speech iso did not work on either a laptop or on
my desktop. They booted into GRML just fine but the software
speech driver, speakup_soft, was not loaded and there was no
speech. Weird thing is that the same ISO worked in a virtual
machine. I booted a vm with the same iso and it came up talking.
So that's strange.<br>
</p>
<p>Volume is fine, btw, that doesn't really matter.</p>
<p>I am wondering what you want to do next. I made some
modifications to the script to make it a little more friendly and
more generalized. I don't think there is any reason to make the
speakup_ltlk driver a special case. If the user specifies anything
but software speech via the speakup_soft driver, it should just
add the speakup module dependency to initramfs, generate a new
initramfs, then overwrite the old initramfs with the new. With
that change, which is actually a simplification, the script works
for all hardware synths, not just the ltlk. Pseudo code:</p>
<p><br>
</p>
<p>if driver is 'soft' then</p>
<p> generate isofiles/scripts/grml.sh</p>
<p>fi</p>
<p> add speakup module to initramfs</p>
<p><br>
</p>
<p>Note that following the above pseudo code, the software speech
module, speakup_soft, would be added to the initramfs. But that's
good. because even if everything else goes wrong, to get speech
after the boot is finished, you only have to type 'espeakup'
instead of 'modprobe speakup_soft; espeakup'. It's not a huge
improvement but it's not nothin' either.<br>
</p>
<p>I also made it so it checks if the packages the script depends on
are already installed so it doesn't try to install them again.</p>
<p>And then I wrote some code to generate a name for the resulting
iso file. If you start with something like
grml-full-2025.05-amd64.iso you end up with something like
ltlk-full-2025.05-amd64.iso.</p>
<p>It might be better to end up with something like
grml-ltlk-full-2025.05-amd64.iso. But during testing, I had too
many files starting with "grml-" and I got tired of ffilling the
tab completion.</p>
<p>How about if I put the modified script on my web site at the
Math Dept at the University of Wisconsin? I'll be responsible for
documenting, publishing, and maintaining it. That way it can help
more than just me. Oh, how about if I rename it grml2speak? That
way it fits into the grml2* fa<br>
</p>
<p><a class="moz-txt-link-freetext" href="https://people.math.wisc.edu/~jheim/GRML/grml2speak">https://people.math.wisc.edu/~jheim/GRML/grml2speak</a></p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<div class="moz-cite-prefix">On 5/11/25 12:19 AM, Kyle Sebion wrote:<br>
</div>
<blockquote type="cite" cite="mid:CA+D-UrWQkBDiwJ5Copb970XBQDAD++Gdb87yN5X+z4xorT16xw@mail.gmail.com">
<div dir="ltr">Hi John,
<div>I made a script that sets up espeakup in a grml .iso file: <a href="https://urldefense.com/v3/__https://github.com/KyleSebion/grml-espeakup/blob/main/mk.sh__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbipyT0jCQ$" target="_blank" moz-do-not-send="true">https://github.com/KyleSebion/grml-espeakup/blob/main/mk.sh</a></div>
<div>It isn't a very long script, so it shouldn't be hard to
verify that it isn't doing anything malicious.</div>
<div>To use it, boot grml, download the grml .iso you want to
use and the script, then run: ./mk.sh <grml.iso></div>
<div>It will create espeakup.iso.</div>
<div>You might need to make tweaks based on the hardware you
boot espeakup.iso on.</div>
<div>I did do a fair amount of testing though (tested using 4x
different grml .iso files with espeakup.iso as a cd/dvd in a
vm and with espeakup.iso written to a usb drive and booted on
my hardware).</div>
<div>You might also want to change the volume I set with amixer
(I cranked it to max because my speakers aren't very loud).</div>
<div>You probably know this already, but screen reading won't
start until some time after boot finishes.</div>
<div><br>
</div>
<div>I might look into getting speakup_ltlk working.</div>
<div>That is a bit more work because the initramfs doesn't
contain it, yet.</div>
<div>Could be fun, though, because, since I don't have the
proper hardware for it, I'd probably set up some other
hardware so that I have a good idea if it is working.</div>
<div><br>
</div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Sat, May 10, 2025 at
3:04 PM <<a href="mailto:tommym2006@gmail.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">tommym2006@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
Some other dependencies for software speech would be:<br>
The espeak-ng package sound hardware configured and volume set
to 3/4 volume<br>
for Mastre and PCM options.<br>
<br>
I don't know how hard this would be to do, the Debian
installer has this<br>
functionality and if there's a way you could look at this
you'd have a place<br>
to look as their install has had this for a few versions now
working<br>
properly.<br>
<br>
Tom<br>
<br>
-----Original Message-----<br>
From: Grml <<a href="mailto:grml-bounces@ml.grml.org" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">grml-bounces@ml.grml.org</a>>
On Behalf Of John G. Heim<br>
Sent: Friday, May 9, 2025 1:23 PM<br>
To: <a href="mailto:grml@ml.grml.org" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">grml@ml.grml.org</a><br>
Subject: Re: [Grml] Customizing GRML to start speech as early
as possible<br>
<br>
<br>
On 5/9/25 11:32 AM, Michael Prokop wrote:<br>
> * John G. Heim [Wed May 07, 2025 at 01:42:23PM -0500]:<br>
>> On 5/7/25 12:14 PM, Michael Prokop wrote:<br>
>>> To clarify the situation: for *you* only
"modprobe speakup" is<br>
>>> relevant, or do you use any of the specific
modules like<br>
>>> speakup_dectlk?<br>
>>><br>
>>> Do *you* need anything other than just "modprobe
speakup_soft" or<br>
>>> alike to get it working/useful for your
situation?<br>
<br>
<br>
Personally, I would need the following:<br>
<br>
1. Kernel module speakup<br>
<br>
2. Kernel module speakup_ltlk<br>
<br>
3. kernel module speakup_soft<br>
<br>
4. espeakup program/package<br>
<br>
<br>
The espeakup program has to be running for the kernel to
access a text <br>
to speech engine for software speech.<br>
<br>
<br>
<br>
>> I mostly use the Litetalk driver, speakup_ltlk. But
to use a hardware <br>
>> synth,<br>
>> you have to have a machine with a serial port. This
is another reason<br>
>> supporting hardware speech synths is more work than
it is worth. My blind<br>
>> friends say the machines they work on do not have
serial ports. So <br>
>> far, that<br>
>> has not been a problem for me. Even my desktop has a
serial port. When I<br>
>> ordered the mobo, I just made sure it had a serial
port header block.<br>
> Alright, And you don't need anything extra like espeakup
or alike,<br>
> but that might be relevant for users without hardware
like yours?<br>
<br>
<br>
For most users, this would be sufficient:<br>
<br>
1. Kernel module speakup<br>
<br>
2. Kernel module speakup_soft<br>
<br>
3. Espeakup program/package<br>
<br>
<br>
>> BTW, if you are interested, I'll be giving a talk a
week from today <br>
>> on being<br>
>> a blind systems admin to the Campus Research
Computing Consortium<br>
>> (<a href="https://urldefense.com/v3/__https://carcc.org__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbjP_dtPvg$" rel="noreferrer" target="_blank" moz-do-not-send="true">https://carcc.org</a>).
Meeting details below. I will probably mention <br>
>> GRML but<br>
>> I won't spend a lot of time on it since i have so
much to cover.<br>
> That sounds interesting. :) Did I understand the
date/timezone<br>
> right, that your zoom meeting starts at 12:00 PM in ET
(Eastern<br>
> Time), corresponding to 6:00 PM AKA 18:00 CEST?<br>
><br>
<br>
I am pretty sure it is at 1:00 Eastern. It is confusing
though. The <br>
meeting was created by somebody in the Central time sone so
that's why <br>
it says 12:00. That's his time but it's 1:00 PM Eastern. I'll
send the <br>
organizer an email just to be absolutely sure<br>
<br>
I am starting to think those people who say the entire planet
should <br>
have one time zone are on to something. If I have to get used
to 3:00 AM <br>
being lunch time, so be it.<br>
<br>
<br>
<br>
_______________________________________________<br>
Grml mailing list - <a href="mailto:Grml@ml.grml.org" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">Grml@ml.grml.org</a><br>
<a href="https://urldefense.com/v3/__https://lists.mur.at/mailman/listinfo/grml__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbhstMPDMw$" rel="noreferrer" target="_blank" moz-do-not-send="true">https://lists.mur.at/mailman/listinfo/grml</a><br>
join #grml on <a href="https://urldefense.com/v3/__http://irc.freenode.org__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbhf2s-evA$" rel="noreferrer" target="_blank" moz-do-not-send="true">irc.freenode.org</a><br>
grml-devel-blog: <a href="https://urldefense.com/v3/__http://blog.grml.org/__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbj2Y6uRBA$" rel="noreferrer" target="_blank" moz-do-not-send="true">http://blog.grml.org/</a><br>
<br>
_______________________________________________<br>
Grml mailing list - <a href="mailto:Grml@ml.grml.org" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">Grml@ml.grml.org</a><br>
<a href="https://urldefense.com/v3/__https://lists.mur.at/mailman/listinfo/grml__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbhstMPDMw$" rel="noreferrer" target="_blank" moz-do-not-send="true">https://lists.mur.at/mailman/listinfo/grml</a><br>
join #grml on <a href="https://urldefense.com/v3/__http://irc.freenode.org__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbhf2s-evA$" rel="noreferrer" target="_blank" moz-do-not-send="true">irc.freenode.org</a><br>
grml-devel-blog: <a href="https://urldefense.com/v3/__http://blog.grml.org/__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbj2Y6uRBA$" rel="noreferrer" target="_blank" moz-do-not-send="true">http://blog.grml.org/</a><br>
</blockquote>
</div>
</blockquote>
</body>
</html>