SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Whoa! Why are you creating a symbolic link between the 32bit and 64bit kernels?
Are you trying to build a 32bit or 64bit kernel? Based on what you're building, you should only copy that kernel (32bit would be in the x86 folder and 64bit would be in the x86_64 folder).
you mean seeing the file -> file remarks are not links that is feed back using -v
Quote:
Here's all you need to do to build a kernel after you've configured it as you desired (based on a 64bit kernel... if that's different, switch the x86_64 to x86).
Code:
make bzImage modules
make modules_install
cp arch/x86_64/boot/bzImage /boot/vmlinuz-4.8.6
$(/usr/share/mkinitrd/mkinitrd_command_generator.sh -r -k 4.8.6 -a "-o /boot/initrd-4.8.6.gz")
Everything else is not needed and can be left out for simplicity. You can remove other kernels, if needed, so grub will pick this up properly. If it doesn't work, then it is one of two issues... 1. your kernel isn't configured properly for your machine, or 2. grub on Void isn't set up properly for the new kernel. Unfortunately, until you know you're configuring grub properly, there's no easy way to determine whether the issue is grub or your kernel config (at least not that I'm familiar with).
where did the 4.8.6 come from? I just downloaded the latest 4.8.4 yesterday off kernel.org
I got 20 minutes to try this today. thanks
So I would suggest you get those modules installed correctly,
then you boot into void and run the above command, that should
scan the partitions and in theory it will pickup your new kernel.
The first line in your previous post... "ln -fsn ../../x86/boot/bzImage ./arch/x86_64/boot/bzImage" There's no reason to do that.
Sorry, I meant 4.8.4. I got the versions mixed up as there's been a lot of different versions discussed. I'll edit my previous post.
it is not that big a deal - only think I remember someone else did the same, and just seeing 4.8.6 confused me a little
what did they update that much already? do you know something that I don't?
so I went and checked
So I would suggest you get those modules installed correctly,
then you boot into void and run the above command, that should
scan the partitions and in theory it will pickup your new kernel.
Good luck
well that last run last night didn't end up in a kernel panic .. it couldn't find a directory (i forget what it called it, being all abbreviated words, but it looked like it meant something to do with Supports ExpressCard/54 cards or that PIMAC or how ever they spell that Acronym for that card slot, I think that may have been what it was looking for, a directory that dealt with that.
It just hung up trying to boot, I had to catch the last bus out, so I just shut it down, put everything back, ran update-grub , then took off.
as far as grub I was thinking the same thing, as you are right about the command it runs for grub, just in a script, or wrapper, which ever term is correct, named update-grub.
the theory being that it should or is suppose to pick up the latest kernel and make that one the default, and the others stand-by . but I have no idea how it would know by its name? One should not even have to dig into the code or the how does this really work instructions, to know, it is suppose to just work. I have never had this problem before with Grub not seeing other distros before. I only know basic stuff on programming and Linux methodology.
there are bugs in it. someone put bugs in it. Grub one was working just fine. look how long lilo has been around, and what changes have they made to that one? and it is still working. (that is just me ranting)
as far as me actually taking the time to learn how to chain load something, right now with Void being a rolling release, I get Kernel updates whenever they come out, I'd be forever changing lilo to keep up.
I am going to start fresh with a new unzip of the kernel then go from there, because I screwed something up with the modules in the naming of the directory it says 4.8.44.8.4 and not just 4.8.4 .
as I am going to replace that one with the one that is in /boot just to make sure it is a fresh correct it came with the HUGE kernel config file.
it states it looks at and or uses this one in that directroy, and not the one in /boot yes? so I'd be better off looking at that one first, and I could make changes within it as well first before running make oldconfig ? because I am actually getting some , to me, nasty errors showing up in syslog on the HUGE kernel, that should be tended to. In my option. well they are just warnings actually, but just the same.
I just looked at syslog, and made sure which Kernel was going me them errors, because of my doing this kernel thing. it'd probably be a good idea to TRY and get that squared away first yes? at least I think so. maybe not, I could be wrong, seriously I could be.
well I just looked inside it
Code:
userx@SlackDaddy & log >> $ls /lib/modules/4.4.23/.config
ls: cannot access '/lib/modules/4.4.23/.config': No such file or directory
why is it not there? is it suppose to be? the config script says it is.
DOES THIS LINK have anything to do with this grub problem in Void not picking up the new kernel?
Are you building 32bit or 64bit? Because the kernel directory you linked to was for 32bit Slackware.
And you really should start out with the configs in the testing/ directory (the 32bit and 64bit 4.6 kernel configs), as they were prepped for 4.6, rather than 4.4, so that's fewer options you need to go through when you do make oldconfig.
As for CONFIG_DEFCONFIG_LIST, I believe that is just one place the kernel will look for a .config file, but I don't think it will place it there automatically. However, I can't verify this, because I'm having a hard time finding info on that option through my google-fu. In actuality, just take whatever config you end up using and copy/move it to the base of your 4.8.4 kernel source and name it ".config" (without quotes). You don't need a .config anywhere else (including /boot/, that was only referenced in the SlackDocs so you can save the .config used to build that kernel).
Are you building 32bit or 64bit? Because the kernel directory you linked to was for 32bit Slackware.
And you really should start out with the configs in the testing/ directory (the 32bit and 64bit 4.6 kernel configs), as they were prepped for 4.6, rather than 4.4, so that's fewer options you need to go through when you do make oldconfig.
As for CONFIG_DEFCONFIG_LIST, I believe that is just one place the kernel will look for a .config file, but I don't think it will place it there automatically. However, I can't verify this, because I'm having a hard time finding info on that option through my google-fu. In actuality, just take whatever config you end up using and copy/move it to the base of your 4.8.4 kernel source and name it ".config" (without quotes). You don't need a .config anywhere else (including /boot/, that was only referenced in the SlackDocs so you can save the .config used to build that kernel).
I forgot how I got to that sight off of Slacks sight, but WHAAT , anyways I didn't bother replacing it, checking what it was linked to in /boot, it was Slacks original config so I used that one instead. but thanks for the heads up. I just did a make oldconfig and held down the enter key selecting all of the defaults it has in it. that list is long, and most already default to N, so I do not even know why they bother putting in all of that support. just cuz I suppose. (rhetorical statement)
it compiled in under 10 minutes, using make -j 8 all which is valid for modules getting compiled too. Next step install modules etc...
that 4.8.6 thing is interesting though. How did they get so far ahead of themselves?
Initial RAM filesystem and RAM disk (initramfs/initrd) support (BLK_DEV_INITRD) [Y/n/?] y
Initramfs source file(s) (INITRAMFS_SOURCE) [] (NEW)
first what the hell is this, question.
I don't know. This is one of the things you need to figure out if you're running a newer kernel than what Pat provides. My guess is you can leave this blank, because I would assume this is where you can specify source files for your initrd, but it likely isn't required to be specified in the kernel (just like your resume from hibernation partition can be specified in the kernel, but doesn't need to be).
Running a newer kernel than what Slackware ships (or provides testing configs for) can add a lot of difficulty. Especially when you aren't familiar with the kernel and the options it has. Building custom kernels isn't something everyone needs to do (although, it can still be a great learning exercise).
I guess I should ask, is there a reason for building such a new kernel series? If you're just looking to patch the dirty cow exploit, you can simply use Slackware's existing config to build the latest version of the 4.4 series (anything 4.4.26 and later are patched against dirty cow -- it's currently at 4.4.27). You don't even have to run make oldconfig (although, it probably wouldn't hurt) because there are no new options from the 4.4.14 kernel used in 14.2. Here's all you need to do to patch against dirty cow.
Code:
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.27.tar.xz
tar -xvf linux-4.4.27.tar.xz
cd linux-4.4.27
cp /boot/config-huge-4.4.* .config
make bzImage modules
make modules_install
cp arch/x86_64/boot/bzImage /boot/vmlinuz-4.4.27
Then just update your grub to see the new kernel. If you're basing it off the huge kernel, there's normally no need for an initrd.
I am running make oldconfig using what ever Slack has before in its config and just getting the NEW stuff and it is tendentiously long. download it and just check it out.
go through each one separately and time yourself ...
I don't know. This is one of the things you need to figure out if you're running a newer kernel than what Pat provides. My guess is you can leave this blank, because I would assume this is where you can specify source files for your initrd, but it likely isn't required to be specified in the kernel (just like your resume from hibernation partition can be specified in the kernel, but doesn't need to be).
Running a newer kernel than what Slackware ships (or provides testing configs for) can add a lot of difficulty. Especially when you aren't familiar with the kernel and the options it has. Building custom kernels isn't something everyone needs to do (although, it can still be a great learning exercise).
I guess I should ask, is there a reason for building such a new kernel series? If you're just looking to patch the dirty cow exploit, you can simply use Slackware's existing config to build the latest version of the 4.4 series (anything 4.4.26 and later are patched against dirty cow -- it's currently at 4.4.27). You don't even have to run make oldconfig (although, it probably wouldn't hurt) because there are no new options from the 4.4.14 kernel used in 14.2. Here's all you need to do to patch against dirty cow.
Code:
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.27.tar.xz
tar -xvf linux-4.4.27.tar.xz
cd linux-4.4.27
cp /boot/config-huge-4.4.* .config
make bzImage modules
make modules_install
cp arch/x86_64/boot/bzImage /boot/vmlinuz-4.4.27
Then just update your grub to see the new kernel. If you're basing it off the huge kernel, there's normally no need for an initrd.
just a learning experience is all. along with curtailing it to just my hardware on my laptop. My brain has as of late being toying with the idea to just get the source for what it in it then trimming that instead.
that dirty cow doesn't bother me I am not running a server to think someone might try to exploit my system (laptop) but it is a good point, they could I think in theory use me to piggy back off of maybe ?
I am going to right now run that series of commands you gave me to see what I see. as soon as I boot out of Void and back into Slack.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.