Intel536ep and kernel 2.6.26

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





I've been using the Intel 536ep for quite some time now. It requires a
kernel module to work. The source has been getting updated each time
the kernel changes and breaks something, but so far no changes to
allow the module to continue to compile under the latest kernel,
2.6.26 (at the time of this writing). As I use this modem to connect
to the Internet, if I can't get the modem working again I'm stuck not
being able to update the kernel.

So far I can see two problems. First the proc_root one:

/tmp/intel-536EP-2.56.76.0/coredrv/coredrv.c: In function 'create_hamproc':
/tmp/intel-536EP-2.56.76.0/coredrv/coredrv.c:746: error: 'proc_root'
/undeclared (first use in this function)
/tmp/intel-536EP-2.56.76.0/coredrv/coredrv.c:746: error: (Each undeclared
/identifier is reported only once
/tmp/intel-536EP-2.56.76.0/coredrv/coredrv.c:746: error: for each function
it appears in.)
/tmp/intel-536EP-2.56.76.0/coredrv/coredrv.c: In function 'detach_hamproc':
/tmp/intel-536EP-2.56.76.0/coredrv/coredrv.c:754: error: 'proc_root'
/undeclared (first use in this function)

Place in coredrv/coredrv.c someplace near the top

#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26))
extern struct proc_dir_entry proc_root;
#endif

allows to continue on to problem #2, tty_driver troubles:


/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c: In function
/'softserial_register_tty':
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:135: error: 'struct
/tty_driver' has no member named
'open'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:136: error: 'struct
tty_driver' has no member named
'close'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:137: error: 'struct
tty_driver' has no member named
'write'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:138: error: 'struct
tty_driver' has no member named
'put_char'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:139: error: 'struct
tty_driver' has no member named
'flush_chars'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:140: error: 'struct
tty_driver' has no member named
'write_room'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:141: error: 'struct
tty_driver' has no member named
'chars_in_buffer'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:142: error: 'struct
tty_driver' has no member named
'flush_buffer'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:143: error: 'struct
tty_driver' has no member named
'ioctl'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:144: error: 'struct
tty_driver' has no member named
'throttle'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:145: error: 'struct
tty_driver' has no member named
'unthrottle'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:146: error: 'struct
tty_driver' has no member named
'send_xchar'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:147: error: 'struct
tty_driver' has no member named
'set_termios'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:148: error: 'struct
tty_driver' has no member named
'stop'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:149: error: 'struct
tty_driver' has no member named
'start'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:150: error: 'struct
tty_driver' has no member named
'hangup'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:151: error: 'struct
tty_driver' has no member named
'break_ctl'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:152: error: 'struct
tty_driver' has no member named
'wait_until_sent'
/tmp/intel-536EP-2.56.76.0/coredrv/softserial.c:153: error: 'struct
tty_driver' has no member named
'set_ldisc'


likely due to differences in

/usr/src/linux-2.6.25.9/include/linux/tty_driver.h my last kernel, versus /usr/src/linux-2.6.26/include/linux/tty_driver.h from the new 2.6.26.

struct tty_driver now is missing things like:

        int  (*open)(struct tty_struct * tty, struct file * filp);
        void (*close)(struct tty_struct * tty, struct file * filp);
        int  (*write)(struct tty_struct * tty,
const unsigned char *buf, int count);
        void (*put_char)(struct tty_struct *tty, unsigned char ch);
        void (*flush_chars)(struct tty_struct *tty);
        int  (*write_room)(struct tty_struct *tty);
        int  (*chars_in_buffer)(struct tty_struct *tty);
        int  (*ioctl)(struct tty_struct *tty, struct file * file,
                    unsigned int cmd, unsigned long arg);

and instead has

        /*
         * Driver methods
         */

        const struct tty_operations *ops;


This problem is beyond my bad C skills, and I can't seem to fix it. The URL at

http://linmodems.technion.ac.il/packages/Intel/Philippe.Vouters/

has had the source updated before, but the latest is

intel-536EP-2.56.76.0_2008_03_22.tar.bz2

which doesn't allow for the major changes in 2.6.26. I looked in the 2008 archives from the linmodem website but didn't see anything about 2.6.26 changes and Intel 536ep. As this linux isn't a distro, I'm both the captain and sole passenger of my own vessel. Hence, there's not alot of places to get help with something of this nature. Any help greatly appreciated.






[Index of Archives]     [Linux Media Development]     [Asterisk]     [DCCP]     [Netdev]     [X.org]     [Xfree86]     [Fedora Women]     [Linux USB]

  Powered by Linux