I made an ISO file with your script, posted it on my web site, and somebody on the blind sysadmins list has already used it to rescue a down server. It works for him, he got speech during boot.

I am mostly testing on a laptop so maybe it's just that one machine. I As i said, i also tried it on my desktop early on and didn't get speech. But testing it on my desktop is a PITA because I have to reboot my desktop with every test iteration. It's hard to test even on my laptop because it takes a long time to try a modification, recreate the iso file, write it to a thumb drive, put the thumb drive in the laptop, and reboot the laptop. Each testing cycle takes like 15 minutes. Plus then if i don't get speech, i can't figure out what is wrong with speech. I have to ssh in and if that doesn't work for some reason, I've wasted 15 minutes.

But like i said, it works in a VM and it works for this other guy. I think we are due for some bad weather here in Wisconsin over the next few days. I'll just take my time and get back to you if i figure anything out.

No matter what, we are way better off than before you wrote the script. I tried many times over the years to rebuild the GRML iso with the hardware synth drivers loaded by default. I could easily enough figure out how to take apart the GRML iso but I could never figure out how to put it back together agin. I was always trying to resquas the file system and put that back in there. I didn't even notice you weren't doing that until you pointed it out. But I don't think that was where I was failing anyway. I think I was failing to rebuild a ISO from the iso file system. That's hard.

PS: We got into a bit of a discussion about hardware synths on one of the lists i am on for blind sys admins and seems like nobody still has their hardware synth but me. Man, I don't know though. That seems dangerous to me. I would not want to rely on software speech when the chips are down.





On 5/29/25 9:01 PM, Kyle Sebion wrote:

    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 <https://urldefense.com/v3/__https://github.com/KyleSebion/grml-espeakup/blob/7d66206cccaadf9b7dd3864744664a40037726b2/mk.sh*L60__;Iw!!Mak6IKo!MqwfPPZFyi3KaXuLWXbkkqGKRSo2ryK-cn2Ksj8b76e69jieC2zJwKaY4kJpng5Nmo6hR4nJ5sLdl68NVQ$> (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 <https://urldefense.com/v3/__https://github.com/KyleSebion/grml-espeakup/blob/main/LICENSE__;!!Mak6IKo!MqwfPPZFyi3KaXuLWXbkkqGKRSo2ryK-cn2Ksj8b76e69jieC2zJwKaY4kJpng5Nmo6hR4nJ5sJ9FBRegg$>.

On Sat, May 24, 2025 at 1:04 PM John G. Heim <[email protected]> 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 <[email protected]> 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 <[email protected]> On Behalf Of John G. Heim
        Sent: Friday, May 9, 2025 1:23 PM
        To: [email protected]
        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 - [email protected]
        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 - [email protected]
        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 - [email protected]
    https://lists.mur.at/mailman/listinfo/grml
    
<https://urldefense.com/v3/__https://lists.mur.at/mailman/listinfo/grml__;!!Mak6IKo!MqwfPPZFyi3KaXuLWXbkkqGKRSo2ryK-cn2Ksj8b76e69jieC2zJwKaY4kJpng5Nmo6hR4nJ5sJp0sqyOA$>
    join #grml on irc.freenode.org
    
<https://urldefense.com/v3/__http://irc.freenode.org__;!!Mak6IKo!MqwfPPZFyi3KaXuLWXbkkqGKRSo2ryK-cn2Ksj8b76e69jieC2zJwKaY4kJpng5Nmo6hR4nJ5sIyAMUXYQ$>
    grml-devel-blog: http://blog.grml.org/
    
<https://urldefense.com/v3/__http://blog.grml.org/__;!!Mak6IKo!MqwfPPZFyi3KaXuLWXbkkqGKRSo2ryK-cn2Ksj8b76e69jieC2zJwKaY4kJpng5Nmo6hR4nJ5sL1DKtewA$>
_______________________________________________
Grml mailing list - [email protected]
https://lists.mur.at/mailman/listinfo/grml
join #grml on irc.freenode.org
grml-devel-blog: http://blog.grml.org/

Reply via email to