[Grml] mk.sh

Kyle Sebion kyle at kylesebion.com
Fri May 30 04:01:18 CEST 2025


>
> 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.

Close. Nothing is resquashed. The unsquashed fs is used for collecting
packages and generating a new initramfs, then deleted.

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.

If speakup_soft isn't loaded, then I'd guess something wrong happened
during
https://github.com/KyleSebion/grml-espeakup/blob/7d66206cccaadf9b7dd3864744664a40037726b2/mk.sh#L60
(systemctl enable --now espeakup).
What do systemctl status espeakup and journalctl -ab0 -u espeakup show?

I don't think there is any reason to make the speakup_ltlk driver a special
> case.

I did that to reduce the scope of my testing.

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

That sounds fine. Just make sure to adhere to the GPL2 license:
https://github.com/KyleSebion/grml-espeakup/blob/main/LICENSE.

On Sat, May 24, 2025 at 1:04 PM John G. Heim <jheim at math.wisc.edu> wrote:

> Ah ha!
>
> 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.
>
> 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.
>
> I generated an iso file for grml and my synth that uses the speakup_ltlk
> driver. It works. So that's great.
>
> 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.
>
> Volume is fine, btw, that doesn't really matter.
>
> 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:
>
>
> if driver is 'soft' then
>
>   generate isofiles/scripts/grml.sh
>
> fi
>
> add speakup module to initramfs
>
>
> 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.
>
> 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.
>
> 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.
>
> 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.
>
> 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
>
> https://people.math.wisc.edu/~jheim/GRML/grml2speak
>
>
>
>
>
> On 5/11/25 12:19 AM, Kyle Sebion wrote:
>
> Hi John,
> I made a script that sets up espeakup in a grml .iso file:
> https://github.com/KyleSebion/grml-espeakup/blob/main/mk.sh
> <https://urldefense.com/v3/__https://github.com/KyleSebion/grml-espeakup/blob/main/mk.sh__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbipyT0jCQ$>
> It isn't a very long script, so it shouldn't be hard to verify that it
> isn't doing anything malicious.
> To use it, boot grml, download the grml .iso you want to use and the
> script, then run: ./mk.sh <grml.iso>
> It will create espeakup.iso.
> You might need to make tweaks based on the hardware you boot espeakup.iso
> on.
> 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).
> You might also want to change the volume I set with amixer (I cranked it
> to max because my speakers aren't very loud).
> You probably know this already, but screen reading won't start until some
> time after boot finishes.
>
> I might look into getting speakup_ltlk working.
> That is a bit more work because the initramfs doesn't contain it, yet.
> 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.
>
>
>
> On Sat, May 10, 2025 at 3:04 PM <tommym2006 at gmail.com> wrote:
>
>> Hi,
>> Some other dependencies for software speech would be:
>> The espeak-ng package sound hardware configured and volume set to 3/4
>> volume
>> for Mastre and PCM options.
>>
>> I don't know how hard this would be to do, the Debian installer has this
>> functionality and if there's a way you could look at this you'd have a
>> place
>> to look as their install has had this for a few versions now working
>> properly.
>>
>> Tom
>>
>> -----Original Message-----
>> From: Grml <grml-bounces at ml.grml.org> On Behalf Of John G. Heim
>> Sent: Friday, May 9, 2025 1:23 PM
>> To: grml at ml.grml.org
>> Subject: Re: [Grml] Customizing GRML to start speech as early as possible
>>
>>
>> On 5/9/25 11:32 AM, Michael Prokop wrote:
>> > * John G. Heim [Wed May 07, 2025 at 01:42:23PM -0500]:
>> >> On 5/7/25 12:14 PM, Michael Prokop wrote:
>> >>> To clarify the situation: for *you* only "modprobe speakup" is
>> >>> relevant, or do you use any of the specific modules like
>> >>> speakup_dectlk?
>> >>>
>> >>> Do *you* need anything other than just "modprobe speakup_soft" or
>> >>> alike to get it working/useful for your situation?
>>
>>
>> Personally, I would need the following:
>>
>> 1. Kernel module speakup
>>
>> 2. Kernel module speakup_ltlk
>>
>> 3. kernel module speakup_soft
>>
>> 4. espeakup program/package
>>
>>
>> The espeakup program has to be running for the kernel to access a text
>> to speech engine for software speech.
>>
>>
>>
>> >> I mostly use the Litetalk driver, speakup_ltlk. But to use a hardware
>> >> synth,
>> >> you have to have a machine with a serial port. This is another reason
>> >> supporting hardware speech synths is more work than it is worth. My
>> blind
>> >> friends say the machines they work on do not have serial ports. So
>> >> far, that
>> >> has not been a problem for me. Even my desktop has a serial port. When
>> I
>> >> ordered the mobo, I just made sure it had a serial port header block.
>> > Alright, And you don't need anything extra like espeakup or alike,
>> > but that might be relevant for users without hardware like yours?
>>
>>
>> For most users, this would be sufficient:
>>
>> 1. Kernel module speakup
>>
>> 2. Kernel module speakup_soft
>>
>> 3. Espeakup program/package
>>
>>
>> >> BTW, if you are interested, I'll be giving a talk a week from today
>> >> on being
>> >> a blind systems admin to the Campus Research Computing Consortium
>> >> (https://carcc.org
>> <https://urldefense.com/v3/__https://carcc.org__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbjP_dtPvg$>).
>> Meeting details below. I will probably mention
>> >> GRML but
>> >> I won't spend a lot of time on it since i have so much to cover.
>> > That sounds interesting. :) Did I understand the date/timezone
>> > right, that your zoom meeting starts at 12:00 PM in ET (Eastern
>> > Time), corresponding to 6:00 PM AKA 18:00 CEST?
>> >
>>
>> I am pretty sure it is at 1:00 Eastern. It is confusing though. The
>> meeting was created by somebody in the Central time sone so that's why
>> it says 12:00. That's his time but it's 1:00 PM Eastern. I'll send the
>> organizer an email just to be absolutely sure
>>
>> I am starting to think those people who say the entire planet should
>> have one time zone are on to something. If I have to get used to 3:00 AM
>> being lunch time, so be it.
>>
>>
>>
>> _______________________________________________
>> Grml mailing list - Grml at ml.grml.org
>> https://lists.mur.at/mailman/listinfo/grml
>> <https://urldefense.com/v3/__https://lists.mur.at/mailman/listinfo/grml__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbhstMPDMw$>
>> join #grml on irc.freenode.org
>> <https://urldefense.com/v3/__http://irc.freenode.org__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbhf2s-evA$>
>> grml-devel-blog: http://blog.grml.org/
>> <https://urldefense.com/v3/__http://blog.grml.org/__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbj2Y6uRBA$>
>>
>> _______________________________________________
>> Grml mailing list - Grml at ml.grml.org
>> https://lists.mur.at/mailman/listinfo/grml
>> <https://urldefense.com/v3/__https://lists.mur.at/mailman/listinfo/grml__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbhstMPDMw$>
>> join #grml on irc.freenode.org
>> <https://urldefense.com/v3/__http://irc.freenode.org__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbhf2s-evA$>
>> grml-devel-blog: http://blog.grml.org/
>> <https://urldefense.com/v3/__http://blog.grml.org/__;!!Mak6IKo!KRveEP_wSmqkGWjfMoJnuOGc6lW7lEHbwRT5N4XpDK8qH8tNxfcT3cyjCO3wR-YiS5miNMSyPbj2Y6uRBA$>
>>
> _______________________________________________
> Grml mailing list - Grml at ml.grml.org
> https://lists.mur.at/mailman/listinfo/grml
> join #grml on irc.freenode.org
> grml-devel-blog: http://blog.grml.org/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.mur.at/pipermail/grml/attachments/20250529/7e30f605/attachment-0001.html>


More information about the Grml mailing list