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.
I'm trying to compile a 3.8.3 on a fresh install of 13.37 64 and having some problems.
current kernel will be 2.6.*.* (clean install from 13.37 disk)
I'm wondering if there is something I'm missing in order to be able to compile a 3.8.* kernel, as in is the gcc high enough etc etc?
Mind, this is a fresh 13.37 install.
I'm finding that the compile is ending with error(s), I've tried using the .config file from the 3.8.3 tree, the 2.6.*.* tree and also the huge one from /boot
I've tried using defaults for all new questions in make menuconfig but all results in fails. I think I managed to get one successfull compilation but it hangs during boot.
Lilo is correct so can still boot old kernel but I'm at a loss.
I appreciate this may not be a slackware thing and indeed difficult to sort out why compilation should fail but I'm just looking for some advice as I worry I am missing something and things have changed since I last regularly done this sort of thing.
My steps were as alsways to place in /usr/src/Linux-*.*.* and from in there run:
Code:
make menuconfig
make
make modules_install
make install
Previously I would have followed something like:
Code:
make menuconfig
make dep
make clean
make bzImage
make modules
make modules_install
make install
cp /usr/src/'Linux_kernel_source'/src/arch/i386/boot/bzImage /boot/newkernel (if needed) and sort lilo
My next line of thought is to recompile current kernel version and see if that completes and boots, though I'm not so sure that will tell me anything meaningful.
All help is as always appreciated.
O - hardware is a GA-990FXA-UD3 with an AMD FX6300 with sata drives.
you should copy the .config from your current (working) kernel into the linux-3.8.3/ directory and then run
Code:
make oldconfig
this will adapt your old configuration to the new kernel and ask you for new options, in order to select the defaults, hold the <ENTER> key pressed until it is ready.
Then build with make.
I use only the make modules_install command after building the kernel, the rest es done manually. Here's what I do:
Code:
cd linux-8.3.8
make mrproper
cp /boot/config ./.config
make oldconfig
make
make modules_install
cp arch/x86/boot/bzImage /boot/kernel-3.8.3
cp .config /boot/config-3.8.3
cp System.map /boot/System.map-3.8.3
then change lilo.conf and run lilo.
This should work.
And of course it would be good if you told us which errors you get! both when building the kernel and while booting
I think I may have screwed up the system.map file somehow. would I be right in thinking that the vmlinuz file in /boot is associated with the system.map file and if so, as such the System.map-huge-2.6.37 is associated with the vmlinuz-huge-2.6.37 and system.map.old associated with vmlinuz.old file?
image = /boot/vmlinuz
root = /dev/sdb4
label = 3.8.3_kernel
read-only # Partitions should be mounted read-only for checking
image = /boot/vmlinuz.old
root = /dev/sdb4
label = Slackware
read-only
# Linux bootable partition config ends
# Windows bootable partition config begins
other = /dev/sda1
label = Windows7
table = /dev/sda
# Windows bootable partition config ends
So I copy the .config file from /usr/src/linux-2.6.37.6 to new kernel source dir as opposed to copying /boot/config-huge-2.6.37.6
Cause the one that resides in the 2.6.37.6 source is not the one that boots, it is the same as the config-generic-2.6.37.6 and it is the huge-2.6.37.6 kernel that boots
I'm going to try again now, using your manual recomendations from above and grab any errors and update post.
AR arch/x86/lib/lib.a
LINK vmlinux
LD vmlinux.o
MODPOST vmlinux.o
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
LD init/built-in.o
fs/built-in.o: In function `gfs2_lock':
file.c:(.text+0x3fe9d9): undefined reference to `dlm_posix_lock'
file.c:(.text+0x3fea18): undefined reference to `dlm_posix_unlock'
file.c:(.text+0x3fea38): undefined reference to `dlm_posix_get'
fs/built-in.o: In function `gdlm_cancel':
lock_dlm.c:(.text+0x412775): undefined reference to `dlm_unlock'
fs/built-in.o: In function `gdlm_lock':
lock_dlm.c:(.text+0x412988): undefined reference to `dlm_lock'
fs/built-in.o: In function `gdlm_unmount':
lock_dlm.c:(.text+0x412eee): undefined reference to `dlm_release_lockspace'
fs/built-in.o: In function `control_unlock':
lock_dlm.c:(.text+0x4130bd): undefined reference to `dlm_unlock'
fs/built-in.o: In function `sync_lock':
lock_dlm.c:(.text+0x413200): undefined reference to `dlm_lock'
fs/built-in.o: In function `gdlm_put_lock':
lock_dlm.c:(.text+0x413b07): undefined reference to `dlm_unlock'
fs/built-in.o: In function `gdlm_mount':
lock_dlm.c:(.text+0x413ec4): undefined reference to `dlm_new_lockspace'
lock_dlm.c:(.text+0x414181): undefined reference to `dlm_unlock'
lock_dlm.c:(.text+0x4141e9): undefined reference to `dlm_release_lockspace'
make: *** [vmlinux] Error 1
Did you download the kernel-sources from kernel.org? I would (in order to verify an incompatiblity between 13.37 and kernel 3.8.3) download an older kernel (maybe the 2.6.xx which is included in 13.37) from kernel.org and do exactly the same configuration and then make.
If you get the same error, you've probably messed up your system.
Instead of config-generic-2.6.37.6 use config-huge-2.6.37.6 to make your kernel. (Both should be in your /boot directory).
ok, thats where things went a bit wrong, when I try to use huge, it simply doesn't compile but with generic it does, though, I have to admit, I forgot all about the filesystems then being modules so you were obviously right above, I had to:
I guess my problem remains though, I cant compile 3.8.3 using config-huge-2.6.37.6
It would make more sense to start with the huge config for 3.7.10 in -current, since that's a lot closer to what 3.8.3 will expect. I did that here, taking all the defaults running "make oldconfig", and it compiled fine.
It would make more sense to start with the huge config for 3.7.10 in -current, since that's a lot closer to what 3.8.3 will expect. I did that here, taking all the defaults running "make oldconfig", and it compiled fine.
done as suggested and it does indeed compile fine, it also boots but....
Code:
CONFIG_X86_X32 enabled but no binutils support
which I'm guessing is something that is in newer kernels and has been answered with a "y" when I don't have 32bit build tools or something on my system.
I think I'll give up and do a fresh install of 14 and see if that is any better.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.