Having problems with the Gentoo Handbook? If you're still working your way through it, or just need some info before you start your install, this is the place. All other questions go elsewhere.
Java Runtime with specified jars
pre-built executables from go
wifi
nftables
micro
When building my system chroot environment, it has a lot of libraries and tools I'm not sure I need. I ultimately build a squashfs image and dd that onto the USB image, but prior to that, I am wondering what tools would I use to perhaps just ensure that those executables and necessary libraries are available and nothing more?
That will ensure the boot time is as little as possible and the system can only do what is intended.
Should I generate a filelist to include for squashfs as opposed to listing what files to exclude? Having a single-user should be fine to further simplify matters.
Java Runtime with specified jars
pre-built executables from go
wifi
nftables
micro
When building my system chroot environment, it has a lot of libraries and tools I'm not sure I need. I ultimately build a squashfs image and dd that onto the USB image, but prior to that, I am wondering what tools would I use to perhaps just ensure that those executables and necessary libraries are available and nothing more?
That will ensure the boot time is as little as possible and the system can only do what is intended.
Should I generate a filelist to include for squashfs as opposed to listing what files to exclude? Having a single-user should be fine to further simplify matters.
you can use lddtree to do a lot of the work here. It won't help you find and include required resources/config files, only libraries though
If you want to do it from scratch using portage, you can use "emerge --root </builddir> <packages>" to build a system image from scratch, but you have to be sure to start with baselayout, then the system set, but that will include a lot of "unnecessary" stuff like compilers
Java Runtime with specified jars
pre-built executables from go
wifi
nftables
micro
When building my system chroot environment, it has a lot of libraries and tools I'm not sure I need. I ultimately build a squashfs image and dd that onto the USB image, but prior to that, I am wondering what tools would I use to perhaps just ensure that those executables and necessary libraries are available and nothing more?
That will ensure the boot time is as little as possible and the system can only do what is intended.
Should I generate a filelist to include for squashfs as opposed to listing what files to exclude? Having a single-user should be fine to further simplify matters.
In the past I used a USB stick with Gentoo, Xfce, compilers, etc. to boot, install gentoo and fix laptops. Was very slow. Now I am using 2TB USB drive for this purpose.
Size of USB stick or drive?
Gui or no gui?
Applications?
Hardware specs to build on?
Hardware specs to boot from and run on?
Observation after 30 years working with computers:
All software has known and unknown bugs and vulnerabilities. Especially software written in complex, unstable and object oriented languages such as perl, python, C++, C#, Rust and the likes.
The size of the drive isn't the issue, my use case is a special one. I will be booting the system to RAM so I will copy the contents of the USB image to memory so that the USB stick can be removed. The systems I will be operating on have 8GB of ram, but even before that, the less I can put on the image, the faster it will load and all of that good stuff.
I want to essentially make it like an embedded device, like a wifi router that boots up a tiny Linux system.
Yes, I was thinking that I'd use lddtree and I think I'd probably start with a list of executables and from that, generate a list of files. I will start from the ugrd code and go from there. Right now for reference, my system is about 2.5GB and maybe 2.2GB compressed. It will surely work, but I want to optimize ...