Is there any actual reason why anyone would actually want to use Gentoo for anything other than as an autistic hobby? I understand other distros' purpose, Ubuntu, Mint, PopOS, Kali, Tails, maybe even arch (to some extent). Is there something about Gentoo that I'm missing or something? Why would anyone want to compile everything?
Why wouldn't you want to have all your binaries use all CPU extensions you already have?
>Why would anyone want to compile everything?
For speed. It's like tuning a sports car. You can get the CFLAGS just right for your system and squeeze out that last bit of performance and watch your computer fly.
Is the speed difference noticeable?
A little. Diminishing returns beyond the kernel and very intensive programs that are CPU bound.
name one kernel option that makes your system faster, don't include things that are configurable at boot
-flto
cpu µarch optimizations (https://github.com/graysky2/kernel_compiler_patch)
>-flto
doesn't work on my machine
just put it in your cflags. Requires new gcc versions.
this doesn't do anything
What? It's link time optimization.
which means very little, unless you have perfect config for your hardware
>just figure out every single driver that can be removed without making your system unbootable
not worth it, gentoo-kernel takes 5 hours, 5 hours of compile time at night is nothing, wasting 3 months flipping every flag is worth too much
What do you mean "every flag"? There are two. It takes this kernel literally 14 minutes to compile on my 7950X. Removing drivers is for storage space on embedded systems, it has little to no performance detriment.
you honestly cannot be serious and unironically imply that loadable modules are just as fast as embedded modules + flto
>14 minutes to compile
still too slow, don't care, not going to waste my time trying to reboot, last time I tried, I literally disabled too much and couldn't even boot.
Another instance of diminishing returns. Does not matter what the performance penalty of the fricking wacom tablet or whatever is. Especially if you don't own one. The important ones are set to embedded by default.
I don't even care about performance, initially I wanted to save on compile time, I'd rather compile Linux at night than spend months removing drivers I don't need though.
>spend months removing drivers I don't need though.
make localmodconfig
make localyesconfif
let me guess, you NEED more
>it has little to no performance detriment.
Not him but: the kernel compiles faster, you get less ram usage (a lot in some cases) and the kernel image itself is smaller. I would say it's worth it.
I'm him, and RAM usage part is not true, by default, everything is a module, not loaded unless actually used.
Speaking of those modules, I tried to be lazy and compile only with currently loaded modules, kernel was unbootable on my system, not gonna waste time trying to tinkertroony.
>everything is a module
No it isn't. Run make defconfig and see for yourself.
I'm talking about gentoo-kernel, the only relevant kernel in existence.
>defconfig
doesn't boot on my laptop from 2011, it's so conservative in what it supports it cannot even be called a toy, that config is worthless unless you're a kernel dev.
Dude, if you want actual customization you want gentoo-sources not gentoo-kernel.
I don't care about customizing boot process, and I said I already gave up on trying to remove bloat, 5 hour compilation at night is 150 watts wasted on this laptop, convert this to money and tell me it's worth wasting more time just to save this money.
I am fine with
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
CONFIG_HZ=1000
CONFIG_HZ_1000=y
# CONFIG_HZ_300 is not set
CONFIG_LOCALVERSION="-custom"
# CONFIG_NO_HZ is not set
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ_IDLE=y
CONFIG_PREEMPT=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_SPECULATION_MITIGATIONS is not set
# CONFIG_TICK_CPU_ACCOUNTING is not set
CONFIG_PGTABLE_LEVELS=4
# CONFIG_X86_5LEVEL is not set
I've been considering setting HZ to 100, I think throughput would improve overall performance more than anything else, and watching anime doesn't really need realtime latency.
You picked a distribution kernel which is bloated by default because it needs to work on as many machines as possible. You're not going to achieve any good results from debloating with that, 5 hour compilation time is not normal btw, mine compiles under 15 minutes on a potato. If you want to seriously improve it do
emerge gentoo-sources, look at the individual settings, read the help page and consider if you need them, disable ones you don't, compile and update bootloader.
I picked gentoo-kernel because everything else I tried was unbootable. I spent more than 5 hours trying to avoid gentoo-kernel, since it took more, it's literally faster to just use gentoo-kernel.
(me)
now that I think about it, gentoo kernel config guide mentions SATA right away, maybe that's why nothing worked for me
>defconfig doesn't include SATA
do kernel devs work on hardware from 90's?
How the hell does it take 14 minutes? I just tried and got '2m28.035s', yes I ran make clean first.
lto is slow as shit and i have all the modules enabled.
Oh, you're not even using gcc. I don't want to do that.
>Is there something about Gentoo that I'm missing or something?
>Why would anyone want to compile everything?
Yes, the 100% source distributed distribution* versus the binary first distribution, compiling from source is an afterthought** is the superior idea.
That said, I use Linux Mint because I don't have time for all this shit, all the Linux distros are shit and the one who deals with the trivial stuff the fastest so I can have a functioning system is the best one.
*imo the idea of Linux distribution is fricked from the start, *BSD ports is the superior system because it tracks the upstream the closest and portage/gentoo is the closest we have to this
** Debian/Ubuntu/Mint don't even come with a gcc outside the box ffs. And to make things extra moronic when you install a package they don't even install development packages by default. Linux distribution are just moronic and a disgrace for GNU and UNIX. I bet Fedora and other RedHat based distributions do something moronic like that too. And don't get me started on the whole Flatpak/Snap moronation. Frick you!
Example of the moronation that is giving Gentoo a bad name
SHOVE THE FUNROLL_LOOPS UP YOUR ARSE homosexual
(compilation flags are a good idea but they got abused by ricers which in turn gave gentoo a bad name)
tl;dr; Slackware should have won, Gentoo could have been good (it still has some good stuff, like no systemd), *BSDs are the superior UNIX.
I use it just to show off how rich I am. I laugh at poorgays who complain about compile times, lol.
there should be a benchmark somewhere if gentoo speed improvements are meaningful
I use Gentoo because it allows me to have a stable base system and combine it with newer packages on top. A lot of binary based distros seem to assume I'd want a bleeding edge base system just because I want versions of programs from the current year.
I've been running it for about 6 years now, Only 2 memorable issues I have had were the Xorg to Wayland transition and Pipewire. Both were mostly due to me updating my system not as often as I should.
Most effort I've put into fine tuning my system is putting the output of cpuid2cpuflags into my make.conf
>Only 2 memorable issues I have had were the Xorg to Wayland transition and Pipewire. Both were mostly due to me updating my system not as often as I should.
Yeah no thanks. It's better to deal with small headaches in the short term which is a better experience in the long term than to delay the inevitable and to fix a giant cluster headache for not updating.
People on "stable" distros like Debian like to make fun of Arch for being "unstable" until the big release comes around that breaks their shit or they're unable to upgrade it gracefully to the point they just end up reinstalling their OS but in a new version lmao. They're not avoiding stability issues altogether, they're just delaying it to the point it becomes a clusterfrick. Never had to reinstall Arch on my machine because of shit breaking
Typically, when Arch breaks, it’s the moronic maintainers fault, and when gentoo breaks, it’s usually your fault. I prefer not being at mercy of troony Black folk.
In the most literal sense, I don't care what you use. It costs me nothing either way.
memorable issues =/= major issue
Also I have never reinstalled Gentoo in any capacity, the nature of a source-based package manager means the system is salvageable from any point.
>when gentoo breaks, it’s usually your fault.
Lmao yeah, I remember when the notice for switching to Pipewire was pushed out, I just added a '-pipewire' flag in make.conf and forgot about it. Then 8 or so months later I upgraded and no longer had functioning audio. Only took a few minutes to realize the mistake, but every package with the flag had to be recompiled. Not a big deal since my hardware is fairly modern, but it'd probably be a game-end for some other anon's e-waste-tier hardware.
I also have -pipewire because alsa just works
I wish I could add that in, I'm not sure how to configure alsa though, how do you route stuff through loopbacks and shit? I want to record stuff from my system.
I'm in this boat too and wanted to know the differences between: Slackware, Gentoo, arch (Artix), and how these distributions would be different to rolling your own.
portage can handle broken ABI, your package managerless distro cannot
There are two main reasons.
a) fine-grained control over the way packages are compiled
This means you can control which compiler is used for each package, enable Link-Time Optimisation and/or Profile Guided Optimisation, enable microarchitecture-specific compiler flags for extra optimisation, define optimisation level per-package, define linker and linker flags per package, enable or disable features at compile time (for example if you don't use bluetooth you can define USE=-bluetooth to avoid compiling and installing any bluetooth-related code on your system), and many other such things. This allows you to have a streamlined, minimal system that is as optimised as possible without too much effort. The differences are noticeable. For example, GCC compiled with Profile-Guided Optimisation is about 10% faster than without it.
b) flexibility
This means that you can easily configure your system to use any bootloader, any disk layout imaginable combined with any filesystem (for example I run btrfs with three subvolumes on top of LVM on top of LUKS), any kernel version, any init system (openrc or systemd or runit or...). In fact almost any combination of any version of any package. Common distros such as Debian, Arch etc are much more constrained in comparison.
If you want either of these, you need gentoo.
That being said, gentoo has a steep learning curve.
>all these morons that think that the main appeal of gentoo is muh speed
amazing how people have been missing the point for more than 20 years
the point of gentoo is not muh speed, but gentoo can be faster if you configure it the right way
Control. OCD/Autism makes me want absolute control unironically.
Stable but rolling release distro
Very easy to create own modified packages with the changes you want
Good package manager
No systemd
Lets you pick the features you want and skip the ones you dont want
Sensible maintainers who grew up from ricing
linuxchads, please enlighten me for which use cases should one go the Gentoo route and for which the Linux From Scratch route ?
the only reason to install lsf is to go through the process of building a distro for the sake of knowledge/curiosity. you won’t get anything very usable out of it.
Until there is an auto kernel script that can figure out all the drivers I need, I won't frick with gentoo. How did no one make a program that does this of all autistic things possible?
That already exists, load dist kernel, make localmodconfig, it makes a config that includes only loaded modules.
except that not all modules you need will be loaded at all times
example: you have a memory card slot on your laptop but no memory card in it
you make localmodconfig, but the memory card driver module won't be loaded, so localmodconfig will not know to install it
next time you try using the memory card slot, it will not work
a partial solution is to make a list of all the modules you could ever possibly need given your available hardware
but this is still not enough, since kernel modules are needed not only for hardware but for software
example: you start using gentoo without installing a firewall
you make localmodconfig, but the kernel modules a firewall needs won't be loaded
next time you try installing a firewall, it won't work
same for crypto modules etc etc
the solution for this does not exist, since you cannot possibly predict all the types of software you will ever possibly need AND all the kernel modules they will require
simply put, your best bet is to compile all the modules
yes, it takes much longer this way
It gets enough, if there's something else you need you're probably aware of it and just add it in the menuconfig. It's not difficult.
it doesn't get enough
for hardware you might have a more or less complete list of all the modules you will ever need
you cannot possibly be aware of all the kernel modules all your software will ever need
I did it, made everything a non-module with the localyesconfig and it runs fine. Never had an issue.
Most software is dependent on user space libraries abstracting the role, not kernel drivers. Firewall duties are outside a kernel's domain anyhow.
kali works very fast tbh, sad it's only shilled for muh security bullshit