Kernel module compatibility

I own a device that was provided with closed source drivers for FreeBSD 8.2. Meanwhile I run FreeBSD 9.0. When I try to load the driver I get
Code:
kldload: can't load DRIVER.so: Exec format error
and in /var/log/messages
Code:
kernel: link_elf: symbol __cxa_finalize undefined

Is it possible to run drivers for older kernels on newer kernels? Are the COMPAT kernel-options only for userland programs (ABI)?
 
You can load only dynamic kernel modules on the kernel version that they were compiled for, there is no other way. It's possible to have some binary parts of it portable but it still needs to have an opensource wrapper to be compiled against your kernel.
 
The ABI compatibility does not cover kernel modules, only userspace binaries. Even with minor version upgrades the old kernel modules have to be most likely recompiled.
 
Back
Top