You are not logged in.

#61 2020-08-14 02:25:44

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 12,547
Website

Re: How To - Kernel Compile With Custom Options

Is ~/GCC-10.1.0/bin/gcc executable?
And, try

hash gcc

after the export command, to make sure the new path has been picked up.

Test it with some other random executable, in some arbitary path.


...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), now on Bluesky, there's also some GitStuff )

Introduction to the Bunsenlabs Boron Desktop

Offline

#62 2020-08-14 03:22:24

sleekmason
zoom
Registered: 2018-05-22
Posts: 1,103
Website

Re: How To - Kernel Compile With Custom Options

All items in the folder are executable.No gcc, but gccgo. Tried linking directly to that as well. hash gcc showed nothing.  Maybe I didn't build in the right items?

sleekmason@ai:~/GCC-10.1.0$ ls bin
c++    gfortran                 x86_64-pc-linux-gnu-g++
g++    lto-dump                 x86_64-pc-linux-gnu-gccgo
gccgo  x86_64-pc-linux-gnu-c++  x86_64-pc-linux-gnu-gfortran

Test it with some other random executable, in some arbitary path.

I have executables in ~/bin I can move around, but don't understand how to test the path? will gladly do so if you tell me how sir:)

Offline

#63 2020-08-14 04:29:36

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 12,547
Website

Re: How To - Kernel Compile With Custom Options

sleekmason wrote:

All items in the folder are executable. No gcc, but gccgo.

No gcc, then 'which gcc' will of course show the one in /usr/bin. What executable are you trying to override here?

'hash <executable>' shows nothing if the executable exists (else an error message) - it just caches the path. Sometimes I've found it necessary when adding a new executable to PATH, to prevent the stale cached path being used.

don't understand how to test the path?

I just meant to put an executable file in some non-standard location, add that path to PATH and see if the system can find it. Or make some executable testfile in ~/GCC-10.1.0/bin, run your export command again and see what 'which testfile' returns.

But I think the issue is that you haven't got anything called gcc in ~/GCC-10.1.0/bin.


...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), now on Bluesky, there's also some GitStuff )

Introduction to the Bunsenlabs Boron Desktop

Offline

#64 2020-08-14 12:30:33

sleekmason
zoom
Registered: 2018-05-22
Posts: 1,103
Website

Re: How To - Kernel Compile With Custom Options

johnraff wrote:

But I think the issue is that you haven't got anything called gcc in ~/GCC-10.1.0/bin.

Looks like I may have some further exploring to do:) Thank you for your suggestions. Hopefully I can get it figured out.

Offline

#65 2020-08-20 19:25:14

sleekmason
zoom
Registered: 2018-05-22
Posts: 1,103
Website

Re: How To - Kernel Compile With Custom Options

Guide updated.

As a side note, linux-image-4.19.0-10-amd64 (currently installed with bl-welcome), has the BFQ scheduler enabled as a module.  This can be checked with:

sudo cat /sys/block/sda/queue/scheduler

You can try it for the existing session with:

sudo echo bfq > /sys/block/sda/queue/scheduler

Run cat again to check.

If you want to make BFQ default, look in the guide for instructions.  Just need to change a file, and add a file:)

Offline

#66 2020-08-30 19:24:46

sleekmason
zoom
Registered: 2018-05-22
Posts: 1,103
Website

Re: How To - Kernel Compile With Custom Options

Thought I would share the difference in times between the kernel as is, and one that has been optimized to get rid of some of the debugging, and a few other easy optimizations.
The native configuration needs some tweaking.

Just after install:

sleekmason@ai:~$ systemd-analyze
Startup finished in 7.524s (kernel) + 49.303s (userspace) = 56.828s 
graphical.target reached after 49.282s in userspace

After customization:
sleekmason@ai:~$ systemd-analyze

Startup finished in 4.259s (kernel) + 28.872s (userspace) = 33.132s 
graphical.target reached after 28.847s in userspace

This translates to opening of apps, taskes, etc.

My computer is a 2009 Dell dual-core with 2 gigs ram.  Probably doesn't matter with a newer system, but sure makes these old boxes fly!

Offline

#67 2020-10-29 13:38:21

sleekmason
zoom
Registered: 2018-05-22
Posts: 1,103
Website

Re: How To - Kernel Compile With Custom Options

A look at what is coming down the pike:
510 Features
Expected Features

And my new favorite info tool for flags and such is cpuid.

Sudo apt install cpuid
cpuid | less

Gives readable info about everything. Wanna know what flags are supported? Here ya go.

Offline

#68 2020-11-12 13:32:08

sleekmason
zoom
Registered: 2018-05-22
Posts: 1,103
Website

Re: How To - Kernel Compile With Custom Options

Quick note -

Rc Kernel 5.10 uses schedutil as the default governer, and shows no option in the configuration for on-demand.  No idea if it will be re-introduced or not, and probably isn't worth the bother.

This means if you are compiling by putting your old .config in the kernel folder to run the build, it will fail.

You must run "make oldconfig" first. The other fun way is to run a "make localmodconfig" if you have never done so.  Just make sure to have everything plugged in that you may need, or it will not be recognized, and will not function in the new kernel.

Offline

#69 2020-11-23 03:42:54

sleekmason
zoom
Registered: 2018-05-22
Posts: 1,103
Website

Re: How To - Kernel Compile With Custom Options

sleekmason wrote:

Quick note -

Rc Kernel 5.10 uses schedutil as the default governer, and shows no option in the configuration for on-demand.  No idea if it will be re-introduced or not, and probably isn't worth the bother.

Ondemand is back in 5.10rc4. Guess we'll just have to wait and see if they finally decide to do away with it or not.  I didn't really notice any issues running schedutil, so probably doesn't make much difference.  The 5.10 kernel in general seems to run quite smoothly.  Very scientific, I know.

Offline

#70 2021-04-01 14:20:36

sleekmason
zoom
Registered: 2018-05-22
Posts: 1,103
Website

Re: How To - Kernel Compile With Custom Options

Kernel 5.12 has been out for a bit.  Currently on 5.12-rc5. 

Anyway, one of the new features in 5.12 is a whole subsection of Dell settings!  Maybe these were spread out into different areas before, but looks pretty cool. 

You will find them under /drivers - X86 Platform Specific Device Drivers in menuconfig. Still not activated by default . . .yet.

https://www.phoronix.com/scan.php?page= … Linux+5.12

Offline

#71 2021-04-08 22:30:56

sleekmason
zoom
Registered: 2018-05-22
Posts: 1,103
Website

Re: How To - Kernel Compile With Custom Options

Just built kernel 5.11.12 without all of the debugging here: https://github.com/sleekmason/Kernel-Stable

If you have had difficulty getting a build using the Debian kernel for "oldconfig", try installing this kernel first, and then build with whatever options you like from here.

See my github "readme" for instructions, and the guide for any additional questions.

I've added a "march.patch" I am currently using from https://github.com/graysky2/kernel_gcc_patch) to the zip file as well for patching against 5.11 Sources  - provides all the possible processor family optimizations ("Ice Lake" "Sky Lake" "Atom" etc . . )

Also, the pesky "ath10 firmware" error warnings I was getting on boot are gone in 5.11. yay!

Be aware that this kernel is for Bullseye/Sid.

You may get firmware warnings on boot if used with Buster.

Last edited by sleekmason (2021-04-08 23:07:11)

Offline

#72 2021-08-11 16:47:57

Peregrino69
Member
Registered: 2016-03-11
Posts: 99

Re: How To - Kernel Compile With Custom Options

Tried this and ended up in a mess which prompted me to reinstall the whole system. Lucky it's vanilla, so nothing essential lost.

Problem came here:

sleekmason wrote:

Make oldconfig only needs to be done (and should be) at the change of the major kernel release number, i.e. from 4.15 to 4.16.

Accept all of the defaults by hitting enter repeatedly (just hold it down), or look through them if you want.

Now "Accept all etc." implies that at this point some kind of configuration window should have opened where options are chosen. Didn't happen. Make oldconfig spat out a few lines of text and apparently created a file in /somewhere/.config, but that was all.

Is there maybe something missing, or did I miss "open /somewhere/.config/foo in text editor"?

Offline

#73 2021-08-11 20:14:40

sleekmason
zoom
Registered: 2018-05-22
Posts: 1,103
Website

Re: How To - Kernel Compile With Custom Options

Peregrino69 wrote:

Tried this and ended up in a mess which prompted me to reinstall the whole system. Lucky it's vanilla, so nothing essential lost.

Problem came here:

sleekmason wrote:

Make oldconfig only needs to be done (and should be) at the change of the major kernel release number, i.e. from 4.15 to 4.16.

Accept all of the defaults by hitting enter repeatedly (just hold it down), or look through them if you want.

Now "Accept all etc." implies that at this point some kind of configuration window should have opened where options are chosen. Didn't happen. Make oldconfig spat out a few lines of text and apparently created a file in /somewhere/.config, but that was all.

Is there maybe something missing, or did I miss "open /somewhere/.config/foo in text editor"?


----------------------------------
Howdy, Sorry you had problems.  A few questions:)

Were you able to install 5.11.12 without issues?
Did you install the required packages to build a kernel?

sudo apt install build-essential libncurses5-dev libssl-dev libelf-dev bison flex bc fakeroot

Did you follow the guide to get started?

"Make oldconfig" uses the current configuration based on whichever kernel is active at the time.
You should never need to reinstall your system because of a faulty kernel.  You should have an option in your grub menu on boot to change into whichever kernel you want based on what you have installed. (several different kernels, several choices.)

The default choices during make oldconfig are what you would generally have in any kernel made for any distro, meaning, they are the standard choice for any new configuration, designed to not interfere with your system.

5.11.12 was directly built from https://www.kernel.org/  to allow for an easy build sans any Debian patches. It is possible that you require a package that Debian has added for some reason.

It is always possible this kernel simply won't work for you.

Basically, If you installed the 5.11.12 kernel and have zero issues, and have the required packages for building a kernel, you shouldn't have any issues with a new build. (In theory).

If the kernel doesn't work, simply reboot and change to your prior kernel through the grub screen within the options. Then remove the 5.11.12 kernel using "apt remove"

Hope you will give it another go:)  Once you have a working kernel to build against, there is no end to fun to be had changing the different settings.  You will still want to run "make menuconfig" after "make oldconfig" to get into the settings.  Hope this helps!

Last edited by sleekmason (2021-08-11 20:15:44)

Offline

#74 2021-08-12 15:28:14

Peregrino69
Member
Registered: 2016-03-11
Posts: 99

Re: How To - Kernel Compile With Custom Options

No probs mate :-)

sleekmason wrote:

Were you able to install 5.11.12 without issues?

I wasn't even actually trying that, just wanted to get a newer kernel than 4.19.0-13, as Virtualbox required the headers which weren't available with apt anymore. 0-17 got installed as well, but for some reason Ubuntu (the first installed Linux) didn't add that to the menu when I run sudo upgrade-grub for the first time (yes, under Ubuntu). Second time it decided to pick the installed 0-17 as well, and I'm now happily running that one smile

Now I'm trying to figure out how to promote BL as the master so I can scrap that Ubuntu altogether. Not a fan tongue

Did you install the required packages to build a kernel?

sudo apt install build-essential libncurses5-dev libssl-dev libelf-dev bison flex bc fakeroot

Did you follow the guide to get started?

Yes and yes, and everything went exactly as described. The stumbling block was "Accept all defaults" as it indicates that another window should have opened at that point. Noting was, hence I was wondering if there's just a piece of text missing at that specific point. 
I think I found the stumbling block... you say:

run "make menuconfig" after "make oldconfig" to get into the settings

So do I understand correctly that you will only get the settings-window after "make menuconfig", and nothing similar is actually even supposed to happen after "make oldconfig"?

At one point I actually just soldiered on and got the settings-window, but I didn't know whether there should've been another similar window after "make oldconfig". Anyway by then my system was already so messed up with missing dependencies and whatnot that it was easier just to reinstall big_smile

I'd suggest re-wording that part of the instruction, maybe even adding a screenshot, for clarity. I've been curious about kernel building for quite a while, but haven't managed to find a clear enough workflow to actually take a plunge. So thanks for an otherwise good job smile

Offline

#75 2021-08-12 16:08:47

sleekmason
zoom
Registered: 2018-05-22
Posts: 1,103
Website

Re: How To - Kernel Compile With Custom Options

Peregrino69 wrote:

So do I understand correctly that you will only get the settings-window after "make menuconfig", and nothing similar is actually even supposed to happen after "make oldconfig"?

--------------

Yep!  Only the main terminal window will be open during "make oldconfig" as it runs through the questions. If the versions are only off by a little, you may not see any changed configuration questions at all, and it will end as such.

"Make menuconfig" is where the settings can be accessed and changed at will.  (There are other options for changing settings as well in the guide).

Running "make oldconfig" while booted into the standard Debian kernel is where you likely ran into problems.  The 5.11.12 kernel has to be installed and running on your system when performing "make oldconfig", to draw from it's settings. You can always change back using grub at boot if you run into problems:)

*Edit - Guide updated to show that no extra window is opened during "make oldconfig"  Thank you for the suggestion!

Last edited by sleekmason (2021-08-12 16:12:45)

Offline

#76 2021-08-12 16:17:02

Peregrino69
Member
Registered: 2016-03-11
Posts: 99

Re: How To - Kernel Compile With Custom Options

sleekmason wrote:

Yep!  Only the main terminal window will be open during "make oldconfig" as it runs through the questions. If the versions are only off by a little, you may not see any changed configuration questions at all, and it will end as such.

Oki, so that's why no questions!

I'll probably be upgrading to a 5-kernel at some point, good to have more clarity on this. Thanks mate smile

Offline

#77 2021-11-26 08:58:22

Naik
Member
From: the edge of insanity
Registered: 2015-10-03
Posts: 328

Re: How To - Kernel Compile With Custom Options

Hey there!

At first: I am a frequent user of this guide, and thank you very much for your constant work on it!

Besides any controversy on security this may bring up:
Is anyone of you aware of a comprehensible guide on signing the kernel(-modules) created for use with secureboot? I know that all the tools needed for this are at hand in the repos, but I just seem to be unable to propperly use them.

Thanks in advance an keep safe and sound!

naik --greetz


"Kaum macht [Mensch]* es richtig, funktioniert es sofort!"
BL-Kitchen Codeberg

Offline

#78 2021-11-26 10:01:02

unklar
Back to the roots 1.9
From: #! BL
Registered: 2015-10-31
Posts: 2,640

Re: How To - Kernel Compile With Custom Options

But that was already 7 months ago.
Whereby I always trust @towo. With "snake oil" he means "secureboot".   wink

https://debianforum.de/forum/viewtopic. … secureboot

Offline

#79 2021-11-26 11:37:09

Naik
Member
From: the edge of insanity
Registered: 2015-10-03
Posts: 328

Re: How To - Kernel Compile With Custom Options

Thanks, this will help me get stuff done.
Though I just still don`t know what I am doing there.

... get rid of "the snake oil" would be preferable. But I at least wanted to learn about signing and certificates.
And also the compay letting me this machine allowed me to dualboot, but won`t like me to disable secureboot.
I`m gonna ask them why!
wink

naik --greetz

Last edited by Naik (2021-11-26 11:42:54)


"Kaum macht [Mensch]* es richtig, funktioniert es sofort!"
BL-Kitchen Codeberg

Offline

Board footer

Powered by FluxBB