So last week I compiled myself a shiny new Linux kernel and installed it. Everything about that went very smoothly. I built the kernel into an RPM package and installed it that way. The only problem I ran into was this: When I installed the kernel RPM, I got a long series of warnings stating that files belonging to a bunch of other installed packages would be overwritten by the installation and was I sure I wanted to do this? I told it yes, and the kernel installed. A reboot confirmed everything was working.
Fast-forward a week or so. I wanted to try some new optimizations in my kernel config, so I went to my kernel source and ran “make xconfig”. I then got a weird error from a fixdep script saying something failed with error 2. I don’t have the actual error message in front of me at the moment.
Best guess, one or more of those overwritten files broke something that the build system depends on (either a major library or one of the build tools themselves). The old kernel is a 3.16.x (the desktop kernel that came with my distribution), while the new was 4.4.5 built with an updated (“make silentoldconfig” for the win) config from the old. I used “make binrpm-pkg” to build the RPM for the new kernel.
So, my question to you: When building a new kernel, is it your experience that you have to get/build new versions of major libraries or build tools as well? I checked the new kernel’s build requirements in the readme, and my toolchain fulfilled them handily.
Purely speculating, but I would guess if you’re using an existing kernel as your base starting point before modification, you might want to consider a vanilla kernel(not kernel-desktop) which won’t have special openSUSE modifications.
TSU
The tool chain got broken with binutils 2.26. For details see https://bugzilla.opensuse.org/show_bug.cgi?id=970239
If you use an older version you should check, if the kernel sources contain a patch that requires a newer version.
In Tumbleweed kernel 4.5.0 works again, but needs the newest binutils version to get compiled AFAIK.
Hendrik
So, in other words, I need binutils 2.26 and then I should be able to reliably compile and install new kernels. I see there are various “unofficial” binutils 2.26 packages available on software.opensuse.org for openSUSE 13.2, or there’s the “official” 2.26 for Tumbleweed. How safe is it for me to install 2.26 on 13.2?
No. It’s actually the other way round: If you build the kernel with binutils 2.26, the resulting kernel won’t work (on 32bit at least)!
The openSUSE binutils 2.26 packages should contain a fix for that meanwhile, though.
I don’t know whether you need 2.26 for building kernel 4.5.0 or whether an older version should suffice too.
Regarding your last question: it should be “safe” to upgrade binutils, as it only contains development tools anyway.
According to the documentation in the kernel source, binutils 2.12 is the minimum required. My last compile attempt used whatever version came with openSUSE 13.2.
My oS 13.2 installation contains binutils-2.24-6.1.7. That version does not suffer from the problem in the bugreport in my link.
You should provide the actual error messages. Otherwise we can only keep guessing.
Hendrik