@aihaike
I suppose you're running the kernel from Raspbian on your Pi2. The issue you came across trying to load the module you've just compiled:
Quote:
8812au: disagrees about version of symbol module_layout
|
is caused by the fact that the kernel is compiled with CONFIG_MODVERSIONS set and the module symbols from your driver are different from the ones in the other (depending) kernel modules/kernel. This CONFIG_MODVERSIONS option was introduced in the kernel some time ago for consistency checking of the loadable modules and it was meant to be used optionally and only on productions systems (where you wouldn't let anyone play around / tamper / taint with the kernel ). Nowadays it is enabled by default in all kernel compilations, I'm still asking myself why, and it is a BIG (to be read catastrophic) pain in the A$$!
https://www.kernel.org/doc/Documenta...ld/modules.txt
Your only option is to get at least the kernel headers corresponding to your kernel from Raspbian, which includes the Module.symvers file and try to compile your module in the kernel headers tree. Theoretically. In practice, although a lot of people are showing off that they have their own "magic" scripts for doing that, I've never seen one actually posting some of those scripts, nor explaining how they achieve it through compiler/environmental variables.
Recently I was in the same situation like yours and found out that not even the "gurus" could have helped me and I had to recompile the whole kernel for a simple driver (I was registered as geronimo):
https://discourse.osmc.tv/t/kernel-d...-2-hd-ci/38459
Under Slack ARM there is no way you can get the kernel headers / kernel source from Raspbian and your only alternative is to get them directly under a running Raspbian - check the following post for the how-to (I was justme123 - before they banned me

):
https://www.raspberrypi.org/forums/v...me123#p1156462
Since the kernel version is not something the folks at Raspberry really care about, you need to check your actual running kernel version with uname -a under Slackware and then guess which Raspbian Image came with it... or maybe you remember what release you have used in the first place:
https://downloads.raspberrypi.org/ra...ease_notes.txt
Raspbian Images Repository:
https://downloads.raspberrypi.org/raspbian/images/
or Raspbian Lite Images Repository:
https://downloads.raspberrypi.org/raspbian_lite/images/
My advice will be to compile your driver directly under Raspbian and then move the compiled ko to your Slackware like I was documenting in this post:
https://www.linuxquestions.org/quest...8/#post5750237
You haven't specified what Slack ARM version you run on (14.2 / current), nor the kernel version. You should pay attention at the ending of your running kernel - if it's armv6 or armv7 - for example 4.4.50+ for armv6 and 4.4.50-v7+ for armv7 and not mix them, that's stay on the same kernel version on both Raspbian / Slack.
Personally, I'm also compiling a patched DVB-S2 driver file
directly under Slackware with only having the kernel headers available, but I'm using (hacking) the media_build script and just substituting the original source file with my patched one. If you're into such an approach, then you'll need the kernel .config file and to not forget to prepare the kernel headers first.
- to get the .config file from your running kernel run the following:
Code:
modprobe configs
cp /proc/config.gz /usr/src/linux-headers-VERSION
rmmod configs
cd /usr/src/linux-headers-VERSION
gunzip config.gz
- VERSION should be completed with your actual version
- then prepare the kernel headers
Code:
cd /usr/src/linux-headers-VERSION
make -j 4 oldconfig && make -j 4 prepare
make -j 4 modules_prepare
... finally build your driver in a way that it reads/respects the Module.symvers