After trying to build a different kernel module on Ubuntu 17.04 (Zesty),
I can replicate these errors.

The first "error" isn't really an error unless the echo statements are
triggered if the "test" command fails:

    test -e include/generated/autoconf.h -a -e include/config/auto.conf
|| ( [...SNIP...] )

Notice in the part with parentheses that each line is prefixed by: echo
>&2 " ... "

This behavior of GNU Make is normal.  It will print back the commands it
runs unless told not to.  If you saw this message without 'echo >&2'  in
front, it would immediately exit afterwards with a message like:

    make: *** [all] Error 1

This "test -e [...]" command is checking that the mentioned files exist
within the Linux Kernel source directory.  This directory is mentioned
above when Make changes into it: "/usr/src/linux-
headers-4.1.0-040100rc2-generic"

The two files it is checking exist are therefore:

    /usr/src/linux-headers-4.1.0-040100rc2-generic/include/generated/autoconf.h
    # AND:
    /usr/src/linux-headers-4.1.0-040100rc2-generic/include/config/auto.conf

You can look for these files yourself to make sure they exist.  If so,
this particular output from Make can be ignored.  If they don't exist,
then you can usually follow the instructions for running "make oldconfig
&& make prepare" within the Linux Kernel source directory to create
them.

The second error message you are getting looks like the real one:

    make[1]: *** No rule to make target 'arch/x86/syscalls/syscall_32.tbl', 
needed by 'arch/x86/syscalls/../include/generated/asm/syscalls_32.h'. Stop.
    arch/x86/Makefile:181: recipe for target 'archheaders' failed
    make: *** [archheaders] Error 2

This error is listed around the Internet surrounding building Linux
Kernel modules on Debian (and Fedora) against Linux Kernel source that
is missing "syscalls_32.tbl" and "syscalls_32.h" files.

These files should exist in the "Vanilla" Linux Kernel source code which
can always be found at kernel.org.  However, it appears that some
distributions such as Debian and Ubuntu are missing these files in their
newer "linux-headers-*" packages.

This appears to be a packaging bug which can be filed against "linux-
headers-*" package.  The "linux-headers" packages should include these
files in order to build kernel modules using them.

The workaround is to get a full copy of the appropriate version of the
Linux Kernel source tree by whatever means, and to use this directory to
build your modules against.


Note that I'm answering this question based on my personal experience with the 
linux-headers-4.10.0-37-generic package on Ubuntu 17.04 "Zesty Zapus".  I'm 
under the assumption that this file has been missing from the "linux-headers-*" 
packages for a while now based on the many instances of people running into 
this error since 2013 posted on the internet.

If you can somehow locate the "syscalls_32.tbl" and "syscalls_32.h"
files within your /usr/src/linux-headers-4.1.0-040100rc2-generic/
directory, then you should check the bbswitch module's source directory
Makefile.  Sometimes the way an external Kernel Module's Makefile is
written prevents it from finding the right linux-headers or
/lib/modules/  directory during build.    Other solutions have been
posted for changing the way GNU Make is finding the Linux Source
directory and the Kernel Module's working directory usually with $$(PWD)
or $(shell $PWD).

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1487666

Title:
  non-fatal error right after login (just upgraded the kernel to 4.1)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/bbswitch/+bug/1487666/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to