I Compiled the Linux Kernel myself for the first time

Gobbel2000@feddit.de to Linux@lemmy.ml – 357 points –

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.

53

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

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 🎉

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.

just like defrag in Windows

That felt more a horror for me.

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

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.

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.

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

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.

How long did it take to compile?

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

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.

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.

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

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)

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.

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.

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.

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.

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.

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.

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.

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

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

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

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...

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

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

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

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?

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.

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.

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

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.

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...

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