this post was submitted on 26 Jul 2023
359 points (97.4% liked)

Linux

45530 readers
1472 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

It's not really a big deal, but I am currently writing this using a linux kernel I compiled from source, which certainly feels like an accomplishment. The Arch Wiki has made the process fairly easy to follow. I just took the stock Arch Linux configuration without changes for now.

The most important part of this is of course that I have the option to do that, to take the source code of this incredible project and build my own kernel binary.

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 55 points 11 months ago

That we can make software unique to our needs is one of these best parts of software freedom. Good for you!

[–] [email protected] 29 points 11 months ago (2 children)

I often did this for years, using -march=corei7 and -mtune=skylake or whatever was the best option for my cpu, patching with brainfuck scheduler, etc.

Now I don't care really 😑

It's always cool to tinker with kernel and config, congrats 🎉

[–] [email protected] 36 points 11 months ago (1 children)

As a student I wasted so much time mucking around with flags and settings in Gentoo. It definitely wasn't pointless since I learned so much, but I didn't need to sit there and watch it compile as much as I did.

It was pleasing to watch though, just like defrag in Windows.

[–] [email protected] 17 points 11 months ago (1 children)

just like defrag in Windows

That felt more a horror for me.

[–] [email protected] 19 points 11 months ago (2 children)

Defrag all night and wake up to the sound of the hard drive failing.

[–] [email protected] 8 points 11 months ago (1 children)
[–] [email protected] 2 points 11 months ago

You have backups. Right. Right??

[–] [email protected] 2 points 11 months ago

A friend of mine is a musician. About a decade or two ago I went over to his house and he said that he had to get a new fan to fix his computer. I asked him what was going on, so he turned it on and I heard that tick-tick-tick of the read head. I had to let him know it was his hard drive. He had a lot backed up, but not everything, and not the stuff he'd been working on the past couple weeks. Just a bummer. But he did set up a backup program after that.

[–] [email protected] 5 points 11 months ago* (last edited 11 months ago)

ahh what a shame. I have: https://kernel.melroy.org/.

But I also didn't had the time to create new kernels. My PC is too slow at the moment. hahaha. Just wait.. maybe I will get the latest threadripper. Instead of the first -gen i7 from 2008.

[–] [email protected] 28 points 11 months ago

Maybe it's not a big deal.. But I still remember the first time I compiled the Linux kernel. It feels good. Well done!!

[–] [email protected] 27 points 11 months ago (1 children)
[–] [email protected] 7 points 11 months ago

8MB for an entire thing running a web server.

Mind: blown

[–] [email protected] 23 points 11 months ago

This is the best part of free/libre/open-source software. Even if you would never want or need to compile software yourself, the fact that you have the option to do so, and the opportunity to learn how the software works, is what makes FLOSS superior to proprietary software IMO.

I just compiled Handbrake from source a few minutes ago, and I know how you feel. Best of luck in your future code-compiling endeavors.

[–] [email protected] 21 points 11 months ago (2 children)

How long did it take to compile?

[–] [email protected] 28 points 11 months ago (2 children)

I didn't really keep track, but I would estimate around 10-15 minutes on a Ryzen 5800X.

[–] [email protected] 25 points 11 months ago (1 children)

I compiled my first Linux kernel back in the mid 90s, mostly on 386 and Dec Alpha hardware, interesting enough both were not that much slower than what you mentioned, I think the alpha (a measly 21066) took about 40 minutes. If you had asked me back then, I’d probably have imagined a minute or two, 30 years later. Guess it says something about how much larger the Linux kernel has become.

[–] [email protected] 8 points 11 months ago

That just brings me back to starting the compile, getting something to eat, doing chores, and whatever else. Then when it was finally done, booting it up only for it to not boot because I forgot some checkbox. Repeat a couple of times. Nights getting the thing working. And then on the next kernel release, trying to make sure I remembered all the checks because it didn't let you export the current config back then.

[–] [email protected] 6 points 11 months ago

Last time I compiled a kernel it was on a bus-overclocked K6-3/500 (higher bus, lower multiplier).

[–] [email protected] 9 points 11 months ago

not OP but on my i7 7700K a fully-featured kernel takes about 2 hours or so to compile. if i minimize the kernel to only the modules i need i can get it down to 20-30 minutes (clean). incremental compiles barely hit 5-10 mins

overall not a big deal, especially compared to something like firefox (or god forbid chromium). or gcc with pgo (which is technically cheating because it compiles itself 3 times if you enable pgo)

[–] [email protected] 16 points 11 months ago
[–] [email protected] 14 points 11 months ago (2 children)

It's not the compiling that kernel is hard - ironically, it's one of the easiest things in the whole ecosystem to compile, got great tooling. It's breaking down the mental barrier of something that you thought would be hard, but turns out to be completely within your grasp. Great work, keep it up, and never be afraid to keep pushing onwards.

[–] [email protected] 2 points 11 months ago

Yes, that was my experience as well. And of course there is the added tension that if you mess up somehow your system might become unbootable.

[–] [email protected] 1 points 11 months ago

I didn't dare try to recompile it myself until I saw someone do it in a Youtube video. Changing the config is literally an interactive menu with labelled options and buttons. And your distro almost certainly includes a copy of the settings it uses, so you can just change a few values and keep everything else the same.

[–] [email protected] 13 points 11 months ago* (last edited 11 months ago)

Congratulations on being awesome. ^Keep^ ^that^ ^shit^ ^up.^

[–] [email protected] 10 points 11 months ago (1 children)

Congrats! Keep this kind of mindset if you can, even later in life. It will continue to take you farther in life than you would imagine.

[–] [email protected] 3 points 11 months ago

Yep. The mindset will take you much further than the kernel itself.

[–] [email protected] 7 points 11 months ago
[–] [email protected] 6 points 11 months ago

Nice! After the first time you get the hang of it but keep in mind, If you do make your own config you will have to recompile your kernel for any hardware that isn't automatically enabled in the config like graphics, touchpad, tablets, and other peripherals you will plug into your computer. Reading up on what hardware you have helps a lot but I still manage to forget something when I have to create my own config. Thankfully you can just transfer your config to the next kernel instead of creating it all over again.

[–] [email protected] 6 points 11 months ago (1 children)

Nice! I also compiled the kernel multiple times when I used Gentoo back in mid 00's. It may not be a big deal as such, but I feel kind of good being able to say I've done it.

Next challenge: write your own kernel.

[–] [email protected] 2 points 11 months ago

I installed gentoo from stage 1 or maybe 2 back in the day... it compiles to compiler to compile the rest of the build process and then compiles the kernel and base... quite fascinating but it took about 3 hours on the hardware I was using.

[–] [email protected] 4 points 11 months ago

Now this is what gives a man the feeling of power.

[–] [email protected] 4 points 11 months ago* (last edited 11 months ago)

Surely this is a feat of engineering on Arch. But in NixOS, this is just Monday. 😉

[–] [email protected] 4 points 11 months ago (1 children)

I feel like compiling your own kernel officially makes you not a normie. So... Welcome to the club!

[–] [email protected] 2 points 11 months ago* (last edited 11 months ago)

Hey, I did compile my kernel so I'm part of the club!

But now that I think about it, the last time was 20 years ago and it's because it was the only way to get my sound card and network card working...

[–] [email protected] 3 points 11 months ago* (last edited 11 months ago)

Nice job! Now you begin the journey of refining and perfecting your kernel config over time, to suit you. A new world awaits.

[–] [email protected] 2 points 11 months ago

The Arch Build System also makes it very easy to apply patches. This allows you for example to try fixes before they get merged.

[–] [email protected] 2 points 11 months ago

I used to do this with Gentoo, and it was always a blast! Glad that you’re having fun “rolling your own!”

[–] [email protected] 2 points 11 months ago

A feat I have yet to achieve, and I have been using Linux since Yiggdrasil.

[–] [email protected] 2 points 11 months ago (1 children)

Can I ask what are your pc specs , and how long did it take? + do you have a degree in computer science or prior knowledge of compiling code?

[–] [email protected] 2 points 11 months ago

It took roughly 10-15 minutes on a Ryzen 5800X with 32GB RAM. I have compiled other programs before, but none nearly as large and notable as the kernel. I am in fact very close to getting a computer science degree, but that is in no way required to be able to do this. If you are able to follow the wiki-page I linked, you can do it too.

[–] [email protected] 2 points 11 months ago

Fun times. Always keep a fallback kernel installed. Even if you're not compiling your own.

I had to learn what chroot is when I borked my own kernel compile and there wasn't fallback.

[–] [email protected] 1 points 11 months ago (1 children)

That's certainly nothing to shake a stick, OP! Very well done. The last time I compiled a kernel was back in 1999 with Slackware. If I remember correctly it was a version previous to 7.

[–] [email protected] 4 points 11 months ago* (last edited 11 months ago)

I have vague memories around that time of doing it, I think it took 3 days to compile IIRC.

Or maybe I'm thinking of early Gentoo installs...

[–] [email protected] 1 points 11 months ago (1 children)

I compiled Hyprland 2 hours ago, since it's not in NixOS repos.

[–] [email protected] 3 points 11 months ago

But there is a modul! Look into Hyprland wiki

[–] [email protected] 1 points 11 months ago

Wow, well done. I haven't done that in like 20 years!

[–] [email protected] -3 points 11 months ago

Please contribute to Pine64. As a consumer I really want Linux phones to go mainstream.

[–] [email protected] -4 points 11 months ago (1 children)
[–] [email protected] 3 points 11 months ago
[–] [email protected] -4 points 11 months ago

I hope it was in an airgapped environment.

load more comments
view more: next ›