I have cross compiled the GobiNet and GobiSerial drivers downloaded from the below link:
I can insmod the GobiNet.ko into the Raspberry Pi (running NOOBS_v3_2_1 which comes with Linux Kernel version 4.19.75-v7+):
pi@raspberrypi:~ $ dmesg
[ 4782.266814] GobiNet: 2019-11-22/SWI_2.60
[ 4782.267275] usbcore: registered new interface driver GobiNet
I have also been able to cross compile the GobiSerial. However, when I try to insmod the GobiSerial.ko I get the below error:
pi@raspberrypi:~ sudo insmod GobiSerial.ko
**insmod: ERROR: could not insert module GobiSerial.ko: Unknown symbol in module**
pi@raspberrypi:~ dmesg
[ 5234.123095] GobiSerial: Unknown symbol usb_serial_generic_open (err -2)
[ 5234.123156] GobiSerial: Unknown symbol usb_serial_suspend (err -2)
[ 5234.123334] GobiSerial: Unknown symbol usb_serial_generic_resume (err -2)
[ 5234.123382] GobiSerial: Unknown symbol usb_serial_deregister_drivers (err -2)
[ 5234.123498] GobiSerial: Unknown symbol usb_serial_generic_write (err -2)
[ 5234.123540] GobiSerial: Unknown symbol usb_serial_register_drivers (err -2)
I had to customize the Gobi driver Makefiles (attached for your reference).
My Pi uses the below kernel:
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.75-v7+ #1270 SMP Tue Sep 24 18:45:11 BST 2019 armv7l GNU/Linux
I am using the same Kernel source files for cross compilation of the drivers.
The kernel source can be found as in below:
From the above, I am using one released on the 24th Sept 2019 which is exactly the same as in my pi at desk.
My reading of the original Gobi driver Makefiles indicates the downloaded Gobi drivers were written and built using linux-rpi-3.6 kernel whereas I am trying to insmod it into a rpi-4.19.75-v7 kernel and I think some of the linux APIs have been deprecated since then and hence the problem.
I would like to know your comments on this, ideally, if the same driver is available in the newer kernel? Or any other workaround.