[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problems trying to recompile the Linux Kernel 64 bits on Knoppix 6.7



Hi Klaus,
Compiling the kernel with "ARCH=x86_64 EXTRAVERSION=.3-64 CROSS_COMPILE='' " seems to work:
Kernel modules do modprobe properly without requiring the "-f" (force) flag (version magic now matches).
FYI, the Kernel size is still slightly different but at least the /boot/System.map-2.6.39.3-64
and the /boot/config-2.6.39.3-64 stay identical (after installation) which is much better.
It seems that I have another problem now with vmware workstation not supporting
the new Intel Sandy Bridge 2600k processor, but this is a different topic...
Other question: if I recompile the kernel what about virtualbox ? (I did not use it yet)
Did you patch the kernel make so it will recompile /usr/src/virtualbox-4.0.10 as well ?
Again thank you very much for your help.
Best Regards,
Gilles

PS: below is what I did to compile the 64 bits kernel in order to have the proper environment
for other kernel modules (as for vmware workstation and tools) to compile and load properly:

cd /usr/src
tar -xvjf linux-source-2.6.39.3-64.tar.bz2
cd linux-source-2.6.39.3-64
cp /boot/config-2.6.39.3-64 .config
make ARCH=x86_64 EXTRAVERSION=.3-64 xconfig # to change whatever you need
make -j8 ARCH=x86_64 EXTRAVERSION=.3-64 CROSS_COMPILE='' all
make ARCH=x86_64 EXTRAVERSION=.3-64 install
make ARCH=x86_64 EXTRAVERSION=.3-64 modules_install
make ARCH=x86_64 EXTRAVERSION=.3-64 firmware_install

=========================================

On Sat, Aug 20, 2011 at 5:38 PM, Klaus Knopper <debian-knoppix@knopper.net> wrote:
Hello Gilles,

On Sat, Aug 20, 2011 at 03:07:02PM -0700, Gilles van Ruymbeke wrote:
>    Hi Klaus,
>    I still have problems trying to recompile the Linux Kernel 64 bits on
>    Knoppix 6.7:
>    After un-tar of the /usr/src/linux-source-2.6.39.3-64.tar.bz2 included in
>    the Knoppix 6.7 DVD and then
>    run "make xconfig" I find out that the header of the .config file changed
>    such as the kernel name is not
>    64 bits anymore as in the /boot/config-2.6.39.3-64 (no more "-64" at the
>    end of the 2.6.39.3 cf below)

I would expect the 64bit options to vanish if you are trying to compile
a 64bit kernel on a 32bit system without cross-compiling. However, the
kernel name or version number is not part of .config.

I compile both kernels on a 32bit system without any amd64 libraries,
you don't need them for the kernel.

For the 32-bit kernel, I use

make CONCURRENCY_LEVEL=8 ARCH=i386 bzImage modules && \
rm -rf debian; CONCURRENCY_LEVEL=8 ARCH=i386 MODULE_LOC=`pwd`/../modules fakeroot make-kpkg --us --uc kernel_image modules_image kernel_headers kernel_source

and for the 64-bit kernel, I use

make CONCURRENCY_LEVEL=8 ARCH=x86_64 bzImage modules && \
        rm -rf debian; MODULE_LOC=`pwd`/../modules fakeroot make-kpkg --arch=x86_64 --cross-compile=- --append-to-version=-64 --us --uc kernel_image modules_image kernel_headers kernel_source

>    which after compile and install creates serious issues (as for the
>    location of the kernel modules
>    in /lib/modules as an example). What file needs to be fixed for the kernel
>    name to be correct ?

Basically, the main Makefile (look for EXTRAVERSION), but make-kpkg
--append-to-version=-64 will do this for you when building the package.

>    Did you try to recompile the Kernel 64 bits using the Knoppix 6.7 DVD ?

No, but compiler version and kernel-package are the same version as on
my build system.

>    (6.5 was ok)
>    I also have trouble compiling and create 64 bits binaries without forcing
>    it with the -m64 flag.
>    It looks like that something changed with gcc between Knoppix 6.5 and
>    Knoppix 6.7.

gcc has been updated, but I think it's the Makefile variables and the
make-kpkg flags that do the trick. If compiling a 64-bit kernel on a
32-bit host, or a 32-bit kernel on a 64-bit host, you are
cross-compiling and need to tell make via the ARCH flag.

Regards
-Klaus


Reply to: