# GobiSerial Compile Errors

**URL:** <https://forum.sierrawireless.com/t/gobiserial-compile-errors/7864>\
**Category:** MC/EM Series\
**Created:** [April 8, 2015, 8:45pm UTC](https://forum.sierrawireless.com/t/gobiserial-compile-errors/7864 "2015-04-08T20:45:19Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![nrardin](https://avatars.discourse-cdn.com/v4/letter/n/858c86/32.png) [@nrardin](https://forum.sierrawireless.com/u/nrardin)\
**Post date:** [April 8, 2015, 8:45pm UTC](https://forum.sierrawireless.com/t/gobiserial-compile-errors/7864/1 "2015-04-08T20:45:19Z")

</div>

Hi,

I have an embedded linux system running 2.6.24 kernel. When I try and compile the GobiSerial drivers for the MC7304 modem I get the following errors. Can someone please advise? It appears this driver was written to handle legacy kernels.

CC drivers/usb/serial/GobiSerial.o  
drivers/usb/serial/GobiSerial.c:218:2: warning: #warning “Using legacy method of locking disc\_mutex”  
drivers/usb/serial/GobiSerial.c: In function ‘Gobi\_lock\_disc\_mutex’:  
drivers/usb/serial/GobiSerial.c:220: error: ‘struct usb\_serial’ has no member named ‘disc\_mutex’  
drivers/usb/serial/GobiSerial.c:221: error: ‘struct usb\_serial’ has no member named ‘disc\_mutex’  
drivers/usb/serial/GobiSerial.c: In function ‘Gobi\_unlock\_disc\_mutex’:  
drivers/usb/serial/GobiSerial.c:224: error: ‘struct usb\_serial’ has no member named ‘disc\_mutex’  
drivers/usb/serial/GobiSerial.c: In function ‘Gobi\_dtr\_rts’:  
drivers/usb/serial/GobiSerial.c:383: error: ‘struct usb\_serial’ has no member named ‘disconnected’  
drivers/usb/serial/GobiSerial.c: At top level:  
drivers/usb/serial/GobiSerial.c:503: error: unknown field ‘dtr\_rts’ specified in initializer  
drivers/usb/serial/GobiSerial.c:503: warning: initialization from incompatible pointer type  
drivers/usb/serial/GobiSerial.c:505: error: unknown field ‘release’ specified in initializer  
drivers/usb/serial/GobiSerial.c:505: warning: initialization from incompatible pointer type  
drivers/usb/serial/GobiSerial.c: In function ‘flush\_and\_resubmit\_read\_urb’:  
drivers/usb/serial/GobiSerial.c:887: error: implicit declaration of function ‘tty\_port\_tty\_get’  
drivers/usb/serial/GobiSerial.c:887: error: ‘struct usb\_serial\_port’ has no member named ‘port’  
drivers/usb/serial/GobiSerial.c:887: warning: initialization makes pointer from integer without a cast  
drivers/usb/serial/GobiSerial.c:893: error: implicit declaration of function ‘tty\_kref\_put’  
drivers/usb/serial/GobiSerial.c:900: error: ‘struct usb\_serial\_port’ has no member named ‘console’  
drivers/usb/serial/GobiSerial.c:900: error: ‘struct usb\_serial\_port’ has no member named ‘sysrq’  
drivers/usb/serial/GobiSerial.c:905: error: implicit declaration of function ‘usb\_serial\_handle\_sysrq\_char’  
drivers/usb/serial/GobiSerial.c:912: error: implicit declaration of function ‘usb\_serial\_generic\_resubmit\_read\_urb’  
drivers/usb/serial/GobiSerial.c: In function ‘GobiReadBulkCallback’:  
drivers/usb/serial/GobiSerial.c:964: error: ‘urb’ undeclared (first use in this function)  
drivers/usb/serial/GobiSerial.c:964: error: (Each undeclared identifier is reported only once  
drivers/usb/serial/GobiSerial.c:964: error: for each function it appears in.)  
drivers/usb/serial/GobiSerial.c:1110: warning: ISO C90 forbids mixed declarations and code  
drivers/usb/serial/GobiSerial.c:1220: error: invalid storage class for function ‘GobiInit’  
drivers/usb/serial/GobiSerial.c:1272: error: invalid storage class for function ‘GobiExit’  
drivers/usb/serial/GobiSerial.c:1287: error: initializer element is not constant  
drivers/usb/serial/GobiSerial.c:1288: error: initializer element is not constant  
drivers/usb/serial/GobiSerial.c:1288: warning: ISO C90 forbids mixed declarations and code  
drivers/usb/serial/GobiSerial.c:1295: error: invalid storage class for function ‘\_\_check\_debug’  
drivers/usb/serial/GobiSerial.c:1295: warning: ISO C90 forbids mixed declarations and code  
drivers/usb/serial/GobiSerial.c:1295: warning: ISO C90 forbids mixed declarations and code  
drivers/usb/serial/GobiSerial.c:1297: error: invalid storage class for function ‘\_\_check\_flow\_control’  
drivers/usb/serial/GobiSerial.c:1297: warning: ISO C90 forbids mixed declarations and code  
drivers/usb/serial/GobiSerial.c:1297: warning: ISO C90 forbids mixed declarations and code  
drivers/usb/serial/GobiSerial.c:1299: error: invalid storage class for function ‘\_\_check\_ignore\_gps\_start\_error’  
drivers/usb/serial/GobiSerial.c:1299: warning: ISO C90 forbids mixed declarations and code  
drivers/usb/serial/GobiSerial.c:1299: warning: ISO C90 forbids mixed declarations and code  
drivers/usb/serial/GobiSerial.c:1300: error: expected declaration or statement at end of input  
make[3]: \*\*\* [drivers/usb/serial/GobiSerial.o] Error 1

Thanks!

---

<div class="post-metadata">

**Author:** ![nrardin](https://avatars.discourse-cdn.com/v4/letter/n/858c86/32.png) [@nrardin](https://forum.sierrawireless.com/u/nrardin)\
**Post date:** [April 9, 2015, 8:12pm UTC](https://forum.sierrawireless.com/t/gobiserial-compile-errors/7864/2 "2015-04-09T20:12:04Z")

</div>

I have found that the usb\_serial structure in “include/linux/usb/serial.h” does in fact have these missing members in the errors above. I am not sure why this would be though. It is almost as if this driver was made to not support 2.6.24 version kernels even though it says it does. Anyone have any suggestions or input?

---

<div class="post-metadata">

**Author:** ![nrardin](https://avatars.discourse-cdn.com/v4/letter/n/858c86/32.png) [@nrardin](https://forum.sierrawireless.com/u/nrardin)\
**Post date:** [April 9, 2015, 8:21pm UTC](https://forum.sierrawireless.com/t/gobiserial-compile-errors/7864/3 "2015-04-09T20:21:18Z")

</div>

After downloading linux kernel 2.6.25 I see that these missing struct members were added in this release. Does this mean that 2.6.24 is in fact not supported in GobiSerial.c?
