Page 1 of 1
What are some file(-systems) for?
Posted: Tue Aug 15, 2023 4:16 pm
by mikeslr
The ISOs of some new Puppys, such as Bookworm, provide some file(-systems) which were not in the ISOs of older Puppys,
- Other Files.png (69.24 KiB) Viewed 366 times
Specifically:
kbuild-xxx.sfs
puppy.cer, and
ucode.cpio
I could depend on my sometimes flaky memory, or search for posts. But it's more efficient to just ask:
What function do they serve? Are they always necessary?
As the author of several (many?) posts explaining how to manually deploy Puppys I wondered if there was a need to revise them. In general, those posts only specify that the following files and file-systems be copied to a Puppy's folder: initrd.(g/x)z, vmlinuz and all file-systems ending in ".sfs", except adrv.sfs or ydrv.sfs which should be examined for content and only included if their content was wanted.
Do such applications as Puppy Installer, Frugalpup and Grub2config currently, automatically write those files? Or will they have to be updated?
Re: What are some file(-systems) for?
Posted: Tue Aug 15, 2023 6:28 pm
by dimkr
The kbuild SFS contains a small subset of the kernel sources (10-15 MB out of 150+ MB) that's enough to install out-of-tree drivers like NVIDIA or Broadcom WiFi drivers, so you can install nvidia-driver
or broadcom-sta-dkms
and it will "just work" (without having to find the kernels sources SFS, download those extra 150 MB, find devx, download it ...). If you don't need any of those drivers, you can delete it and nothing bad will happen.
ucode.cpio contains Intel and AMD CPU microcode updates, which can fix system instability issues (some CPUs are sold with a slightly broken version built-in, and they're unstable unless a newer version is loaded at boot time) and contains mitigations for CPU vulnerabilities (Spectre, Meltdown, Downfall ...). For this to work, your boot loader needs to be configured to load ucode.cpio and not only initrd.gz. If you don't want this for whatever reason, you can delete ucode.cpio.
puppy.cer is there because this is a UEFI/BIOS hybrid ISO.
Re: What are some file(-systems) for?
Posted: Wed Aug 16, 2023 5:04 pm
by mikeslr
dimkr wrote: Tue Aug 15, 2023 6:28 pm
The kbuild SFS contains a small subset of the kernel sources (10-15 MB out of 150+ MB) that's enough to install out-of-tree drivers like NVIDIA or Broadcom WiFi drivers, so you can install nvidia-driver
or broadcom-sta-dkms
and it will "just work" (without having to find the kernels sources SFS, download those extra 150 MB, find devx, download it ...). If you don't need any of those drivers, you can delete it and nothing bad will happen.
ucode.cpio contains Intel and AMD CPU microcode updates, which can fix system instability issues (some CPUs are sold with a slightly broken version built-in, and they're unstable unless a newer version is loaded at boot time) and contains mitigations for CPU vulnerabilities (Spectre, Meltdown, Downfall ...). For this to work, your boot loader needs to be configured to load ucode.cpio and not only initrd.gz. If you don't want this for whatever reason, you can delete ucode.cpio.
puppy.cer is there because this is a UEFI/BIOS hybrid ISO.
Thanks, dimkr.
Just to make sure I've got this right, does "and contains mitigations for CPU vulnerabilities (Spectre, Meltdown, Downfall ...)" pertain only to AMD CPUs?
Could you also provide an example of a boot 'menu' configured to load ucode.cpio?
And please correct me if I'm wrong. But AFAIK, none of Puppy's boot-manager applications will automatically write the configuration to load ucode.cpio; the User would have to manually edit menu.lst or grub.cfg.
FWIW, likely a thread in the Tips and Tricks Section would currently be the way to get the word out.
Re: What are some file(-systems) for?
Posted: Wed Aug 16, 2023 5:25 pm
by dimkr
mikeslr wrote: Wed Aug 16, 2023 5:04 pmpertain only to AMD CPUs?
As I said - both Intel and AMD
mikeslr wrote: Wed Aug 16, 2023 5:04 pmCould you also provide an example of a boot 'menu' configured to load ucode.cpio?
Look inside the ISO, GRUB is configured to load it.
If you use syslinux or extlinux, you need to replace INITRD initrd.gz
with INITRD ucode.cpio,initrd.gz
.
mikeslr wrote: Wed Aug 16, 2023 5:04 pmCould you also provide an example of a boot 'menu' configured And please correct me if I'm wrong. But AFAIK, none of Puppy's boot-manager applications will automatically write the configuration to load ucode.cpio; the User would have to manually edit menu.lst or grub.cfg.
bootflash does, when you choose to use syslinux, extlinux or efilinux and not grub4dos. I guess nobody maintains grub4dos, the old Puppy installer (the one that doesn't support UEFI) doesn't, and I don't know what the other installers do.
Re: What are some file(-systems) for?
Posted: Mon Aug 21, 2023 10:28 pm
by mikeslr
I also don't know what the installers currently do. My current grub.cfg lists about 6 Puppys and one Kennel-OS with the ability to boot some of the Puppys 'pfix=ram' and the Kennel-OS with 3 different option: in total about a dozen listings. So it's easier to manually edit it than to run an installer and then edit all the listing.
I decided to explore the recent devuanpup-mate. So I manually added it. Rather than the ordinary last line
initrd /dev64/initrd.gz -- dev being its folder
I replaced that with
if [ -e /dev64/ucode.cpio ]; then
initrd /dev64/ucode.cpio /dev64/initrd.gz
else
initrd /dev64/initrd.gz
fi
Probably could have gotten away with just initrd /dev64/ucode.cpio /dev64/initrd.gz
But it reached desktop.