Re: Problems trying to recompile the Linux Kernel 64 bits on Knoppix 6.7
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-18.104.22.168-64
and the /boot/config-22.214.171.124-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.
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:
tar -xvjf linux-source-126.96.36.199-64.tar.bz2
cp /boot/config-188.8.131.52-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 <email@example.com>
I would expect the 64bit options to vanish if you are trying to compile
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-184.108.40.206-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-220.127.116.11-64 (no more "-64" at the
> end of the 18.104.22.168 cf below)
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
Basically, the main Makefile (look for EXTRAVERSION), but make-kpkg
> 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 ?
--append-to-version=-64 will do this for you when building the package.
No, but compiler version and kernel-package are the same version as on
> Did you try to recompile the Kernel 64 bits using the Knoppix 6.7 DVD ?
my build system.
gcc has been updated, but I think it's the Makefile variables and the
> (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.
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.