NETGEAR is aware of a growing number of phone and online scams. To learn how to stay safe click here.
Forum Discussion
vbif
Dec 26, 2016Aspirant
dmesg "disagrees about version of symbol module_layout" modprobe fails with self compiled cdc_acm
Hello, I try to compile cdc_acm kernel driver to make out of NAS a zwave control center (USB Zwave stick). First I've tried to compile ftdi_sio und succeded, modprobe can load this driver. what've...
WhoCares_
Dec 29, 2016Mentor
Starting with I believe ReadyNAS OS 6.5.0 I found that the only way to successfully compile kernel modules is to do it directly on the ReadyNAS. All other ways I tried (using VMs, cross compiling and dedicated hardware) simply failed because of the symbol mismatches you're experiencing.
-Stefan
- vbifDec 29, 2016Aspirant
hm, I hope NetGear tries to fix this, the VM is realy nice. In the mean time, I've failed to compile directly on NAS, the headers are missing. have had tried the obvious
apt-get install linux-headers-$(uname -r) or
apt-get install linux-headers or
apt-get install linux-headers-generic.... there are no such packeges available. Should I mess with apt sources to install headers? Or is there some other possibilities to compile kernel drivers?
- WhoCares_Dec 30, 2016Mentor
Huh? You don't need the kernel headers. Everything you need is in the GPL archive provided by NETGEAR. This includes the complete kernel sources.
-Stefan
- vbifDec 30, 2016Aspirant
Ok, I've found the header files in ../linux-4.1.30-armada/include, but there are slightly differnt from those under /usr/include
and so make, or make modules fails with lot of errors such
root@NAS:/DATA/kernel/linux-4.1.30-armada# make modules CHK include/config/kernel.release CHK include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h make[1]: 'include/generated/mach-types.h' is up to date. CC kernel/bounds.s In file included from include/linux/page-flags.h:8:0, from kernel/bounds.c:9: include/linux/types.h:16:9: error: unknown type name ‘__kernel_ino_t’ typedef __kernel_ino_t ino_t; ^ include/linux/types.h:20:9: error: unknown type name ‘__kernel_off_t’ typedef __kernel_off_t off_t; ^ include/linux/types.h:21:9: error: unknown type name ‘__kernel_pid_t’ typedef __kernel_pid_t pid_t; ^ include/linux/types.h:22:9: error: unknown type name ‘__kernel_daddr_t’ typedef __kernel_daddr_t daddr_t; ^ include/linux/types.h:24:9: error: unknown type name ‘__kernel_suseconds_t’ typedef __kernel_suseconds_t suseconds_t; ^ include/linux/types.h:25:9: error: unknown type name ‘__kernel_timer_t’ typedef __kernel_timer_t timer_t;
and so on....
EDIT:
found the problem, include/ lacks an asm/ so
ln uapi/asm-generic/ include/asm -s
does the trick and 'make' runs smoothly now!
Related Content
NETGEAR Academy

Boost your skills with the Netgear Academy - Get trained, certified and stay ahead with the latest Netgear technology!
Join Us!