Sunday, June 12, 2016

Packaging fails upon compiling 16.04 HWE kernel



Short summary:



Packaging script looks in wrong path.



Detailed error summary:




To compile the kernel, I used the compilation instructions from here, which included the steps:




  1. Checkout git sources from:



    git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/xenial -b hwe

  2. Modify the configs using:



    fakeroot debian/rules clean

    fakeroot debian/rules editconfigs


    where I changed only one option, the equivalent to CONFIG_DMA_CMA=y, listed under Device driversCMA. As it is suggested, I added a custom name for the new kernel by setting it in menuconfig, which ultimately results in CONFIG_LOCALVERSION="-cma" in the config file.



    I changed it for the x64 and x64lowlatency configs (I also tried to change it for i386 and armhf, also, but this made no difference).


  3. Build it with:



    CONCURRENCY_LEVEL=4 fakeroot debian/rules binary-headers binary-generic binary-perarch




The output of the error is:



...[a seemingly succesful compile and lots of INSTALL]...
#
# Build module blacklists:
# - blacklist all watchdog drivers (LP:1432837)
#
...[more output]...

ls: cannot access '/home/user/kernel/xenial/debian/linux-modules-4.15.0-65-generic/lib/modules/4.15.0-65-generic/kernel/drivers/watchdog/': No such file or directory
#
# Remove all modules not in the inclusion list.
#
...[more output]...
depmod: ERROR: could not open directory /home/user/kernel/xenial/debian/linux-modules-4.15.0-65-generic/lib/modules/4.15.0-65-generic: No such file or directory
depmod: FATAL: could not search modules: No such file or directory
mv: cannot stat '/home/user/kernel/xenial/debian/linux-modules-4.15.0-65-generic/lib/modules/4.15.0-65-generic/kernel': No such file or directory
debian/rules.d/2-binary-arch.mk:89: recipe for target 'install-generic' failed
make: *** [install-generic] Error 1



The message from ls is indeed correct, as this claimed directory does not exist:



/home/user/kernel/xenial/debian/linux-modules-4.15.0-65-generic/lib/modules/4.15.0-65-generic/kernel/drivers/watchdog/


Only this directory with the -cma addition exists:



/home/user/kernel/xenial/debian/linux-modules-4.15.0-65-generic/lib/modules/4.15.0-65-generic-cma/kernel/drivers/watchdog/



but it is not searched for.



I localized the output of blacklist all watchdog drivers to come from:



./xenial/debian/rules.d/2-binary-arch.mk


But I fail in identifying the parts in the Makefile, which path variable is wrong and how I would fix it. This surpasses my Linux knowledge.




Can anyone help me?



It seems I did partially solve the problem.



The instructions contain a note that I must have overlooked and that contradicts instructions that describe to do it otherwise:




NOTE: do not attempt to use CONFIG_LOCALVERSION as this will break
the build.





Now at least the abovementioned problem is solved. However, the build is not yet successful and fails at a later stage. I will open another question how to continue with custom kernel creation without having to build/compile everything from scratch over and over again.



However, in this question the way following the instructions by the letter (edit the changelog file) did not work. I'm curious what I will find...


No comments:

Post a Comment

11.10 - Can't boot from USB after installing Ubuntu

I bought a Samsung series 5 notebook and a very strange thing happened: I installed Ubuntu 11.10 from a usb pen drive but when I restarted (...