LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   new 3.8.3 kernel on 13.37 64 errors (http://www.linuxquestions.org/questions/slackware-14/new-3-8-3-kernel-on-13-37-64-errors-4175454819/)

plisken 03-20-2013 05:33 AM

new 3.8.3 kernel on 13.37 64 errors
 
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.

markush 03-20-2013 06:33 AM

Hi,

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

Markus

plisken 03-20-2013 07:58 AM

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?

My /boot
Code:

drwxr-xr-x  3 root root 1.0K Mar 19 20:31 ./
drwxr-xr-x 23 root root  536 Mar 14 20:37 ../
lrwxrwxrwx  1 root root  37 Feb  6 14:35 README.initrd -> /usr/doc/mkinitrd-1.4.6/README.initrd
-rw-r--r--  1 root root 2.0M Mar 19 20:26 System.map
-rw-r--r--  1 root root 1.7M Apr  9  2011 System.map-generic-2.6.37.6
-rw-r--r--  1 root root 2.6M Apr 10  2011 System.map-huge-2.6.37.6
lrwxrwxrwx  1 root root  24 Feb  6 14:43 System.old -> System.map-huge-2.6.37.6
-rw-r--r--  1 root root  512 Feb  6 14:48 boot.0810
-rw-r--r--  1 root root  137 Feb  6 14:43 boot_message.txt
lrwxrwxrwx  1 root root  20 Feb  6 14:43 config -> config-huge-2.6.37.6
-rw-r--r--  1 root root 110K Apr  9  2011 config-generic-2.6.37.6
-rw-r--r--  1 root root 110K Apr 10  2011 config-huge-2.6.37.6
-rw-r--r--  1 root root 5.0K Mar 27  2011 diag1.img
-rw-r--r--  1 root root  18K Mar 27  2011 diag2.img
drwx------  2 root root  12K Feb  6 14:32 lost+found/
-rw-------  1 root root 123K Mar 19 20:31 map
-rw-r--r--  1 root root  16K Mar 27  2011 slack.bmp
-rw-r--r--  1 root root 3.1M Mar 19 20:26 vmlinuz
-rw-r--r--  1 root root 2.9M Apr  9  2011 vmlinuz-generic-2.6.37.6
-rw-r--r--  1 root root 5.6M Apr 10  2011 vmlinuz-huge-2.6.37.6
lrwxrwxrwx  1 root root  21 Feb  6 14:43 vmlinuz.old -> vmlinuz-huge-2.6.37.6

and my lilo.conf part looks like:

Code:

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.

markush 03-20-2013 08:08 AM

Here it looks like this
Code:

markus@samsung:~$ ls -lh /boot/
insgesamt 35M
lrwxrwxrwx  1 root root  37 Mär  3 22:08 README.initrd -> /usr/doc/mkinitrd-1.4.7/README.initrd
lrwxrwxrwx  1 root root  24 Mär  4 00:22 System.map -> System.map-generic-3.7.1
-rw-r--r--  1 root root 2,0M Mär  4 13:49 System.map-generic-3.7.1
-rw-r--r--  1 root root 3,2M Dez 21 04:21 System.map-huge-3.7.1
-rw-r--r--  1 root root  512 Dez 10 21:52 boot.0800
-rw-r--r--  1 root root  209 Dez 10 21:52 boot_message.txt
lrwxrwxrwx  1 root root  20 Mär  4 00:22 config -> config-generic-3.7.1
-rw-r--r--  1 root root 123K Mär  4 13:49 config-generic-3.7.1
-rw-r--r--  1 root root 127K Dez 21 04:21 config-huge-3.7.1
-rwxr-xr-x  1 root root 213K Jan 10  2011 elilo-ia32.efi*
-rwxr-xr-x  1 root root 245K Jan 10  2011 elilo-x86_64.efi*
drwxr-xr-x 14 root root 4,0K Mär  4 13:52 initrd-tree/
-rw-r--r--  1 root root 4,2M Mär  4 13:52 initrd.gz
-rw-------  1 root root  38K Mär  4 13:52 map
-rw-r--r--  1 root root  33K Aug 18  2012 tuxlogo.bmp
lrwxrwxrwx  1 root root  21 Mär  4 00:22 vmlinuz -> vmlinuz-generic-3.7.1
-rw-r--r--  1 root root 3,2M Mär  4 13:49 vmlinuz-generic-3.7.1
-rw-r--r--  1 root root 6,1M Dez 21 04:21 vmlinuz-huge-3.7.1

and lilo.conf
Code:

# Linux bootable partition config begins
image = /boot/vmlinuz
  initrd = /boot/initrd.gz
  append = "resume=/dev/sda9"
  root = /dev/sda5
  label = Slack64-current
  read-only
###
image = /boot/vmlinuz-huge-3.7.1
  root = /dev/sda5
  label = failsafe
  read-only
# Linux bootable partition config ends

it's Slackware64-current (before the latest updates).

Markus

plisken 03-20-2013 09:03 AM

last few lines of my make
Code:

  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


markush 03-20-2013 09:14 AM

I've never seen this error.

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.

Markus

plisken 03-20-2013 09:33 AM

Quote:

Originally Posted by markush (Post 4915170)
I've never seen this error.

Did you download the kernel-sources from kernel.org?

Yea



3.8.3 with the config from generic-2.6.37.6 (slandard 13.37 64 slack) compiles fine, no errors. Not at machine, so can't boot test

genericus 03-20-2013 10:44 AM

I had the same problem. Disabling GFS2 in the configuration fixed it.

psionl0 03-20-2013 11:07 AM

Quote:

Originally Posted by plisken (Post 4915182)
3.8.3 with the config from generic-2.6.37.6 (slandard 13.37 64 slack) compiles fine, no errors. Not at machine, so can't boot test

You need to use the huge config and boot from the huge kernel until you can make an initrd.

plisken 03-20-2013 01:31 PM

Quote:

Originally Posted by psionl0 (Post 4915254)
You need to use the huge config and boot from the huge kernel until you can make an initrd.

I don't understand, sorry

plisken 03-20-2013 01:38 PM

This is where my booting gets to:

https://www.dropbox.com/s/qlep18ksno...2017.20.54.mp4

psionl0 03-20-2013 01:44 PM

Quote:

Originally Posted by plisken (Post 4915342)
I don't understand, sorry

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

plisken 03-20-2013 03:28 PM

Quote:

Originally Posted by psionl0 (Post 4915352)
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:
Code:

mkinitrd -c -k 3.8.3 -m ext3:reiserfs -f reiserfs -r /dev/sdb4
which allowed the system to boot. (THANKS FOR THAT)

I guess my problem remains though, I cant compile 3.8.3 using config-huge-2.6.37.6

volkerdi 03-20-2013 07:15 PM

Quote:

Originally Posted by plisken (Post 4915411)
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.

plisken 03-21-2013 01:36 PM

Quote:

Originally Posted by volkerdi (Post 4915544)
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.

Thanks for all comments guys.


All times are GMT -5. The time now is 09:45 PM.