I'm glad I could help some. Must have been meant to be because I got very lucky when I found the command to create the .iso file. That was the first time I've created a .iso file like that. And yeah, testing outside a vm is quite time consuming, even with good sight. I'll try to think of a better way to do it.
On Sat, May 31, 2025, 11:34 John G. Heim <jh...@math.wisc.edu> wrote: > 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 <jh...@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 <tommym2...@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-boun...@ml.grml.org> On Behalf Of John G. Heim >>> Sent: Friday, May 9, 2025 1:23 PM >>> To: grml@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@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@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@ml.grml.org >> 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 - Grml@ml.grml.org https://lists.mur.at/mailman/listinfo/grml join #grml on irc.freenode.org grml-devel-blog: http://blog.grml.org/