Reputation: 109
I am trying to install MOXA Nport 5110A Driver in my Linux Ubuntu 14.04, but failed miserably. The details about installation process is too long for me to understand where the problem is (and frankly I am still a noob in Linux world). The details is listed below.
===============================================================================
Copyright (C) 2002-2012 Moxa Inc.
All Rights Reserved.
MOXA NPort Server Real TTY Driver V1.18 Installation.
System Imformation: Kernel 3.13.0-62-generic; Machine x86_64.
===============================================================================
Tar files, please wait ... OK!
Building driver...
If you want to use secure communication with target,
you might choose [y] to enable the SSL function.
Note: This function support RealCOM with secure mode only.
Do you want to enable secure function? [y/N].
N
make -C /lib/modules/3.13.0-62-generic/build SUBDIRS=/tmp/moxa modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-62-generic'
CC [M] /tmp/moxa/npreal2.o
/tmp/moxa/npreal2.c: In function ‘npreal_init_tty’:
/tmp/moxa/npreal2.c:661:11: error: dereferencing pointer to incomplete type
de->data = (void *) net_node;
^
/tmp/moxa/npreal2.c:663:11: error: dereferencing pointer to incomplete type
de->proc_fops = &npreal_net_fops;
^
In file included from /tmp/moxa/npreal2.c:92:0:
/tmp/moxa/npreal2.c: In function ‘npreal_init’:
/tmp/moxa/npreal2.h:28:35: error: ‘struct tty_driver’ has no member named ‘termios_locked’
#define DRV_VAR_P(x) npvar_sdriver->x
^
/tmp/moxa/npreal2.c:779:5: note: in expansion of macro ‘DRV_VAR_P’
DRV_VAR_P(termios_locked) = npvar_termios_locked;
^
/tmp/moxa/npreal2.c: In function ‘npreal_open’:
/tmp/moxa/npreal2.c:1064:13: error: invalid type argument of unary ‘*’ (have ‘struct ktermios’)
*tty->termios = info->normal_termios;
^
/tmp/moxa/npreal2.c:1066:13: error: invalid type argument of unary ‘*’ (have ‘struct ktermios’)
*tty->termios = info->callout_termios;
^
/tmp/moxa/npreal2.c:1080:8: error: ‘struct tty_struct’ has no member named ‘low_latency’
tty->low_latency = 1;
^
/tmp/moxa/npreal2.c: In function ‘npreal_close’:
/tmp/moxa/npreal2.c:1170:32: error: invalid type argument of unary ‘*’ (have ‘struct ktermios’)
info->normal_termios = *tty->termios;
^
/tmp/moxa/npreal2.c:1172:33: error: invalid type argument of unary ‘*’ (have ‘struct ktermios’)
info->callout_termios = *tty->termios;
^
/tmp/moxa/npreal2.c: In function ‘npreal_ioctl’:
/tmp/moxa/npreal2.c:1612:21: error: invalid type argument of ‘->’ (have ‘struct ktermios’)
tty->termios->c_cflag = ((tty->termios->c_cflag & ~CLOCAL) |
^
/tmp/moxa/npreal2.c:1612:47: error: invalid type argument of ‘->’ (have ‘struct ktermios’)
tty->termios->c_cflag = ((tty->termios->c_cflag & ~CLOCAL) |
^
/tmp/moxa/npreal2.c: In function ‘npreal_block_til_ready’:
/tmp/moxa/npreal2.c:1962:26: error: invalid type argument of ‘->’ (have ‘struct ktermios’)
if ( tty->termios->c_cflag & CLOCAL )
^
/tmp/moxa/npreal2.c: In function ‘npreal_startup’:
/tmp/moxa/npreal2.c:2155:27: error: invalid type argument of ‘->’ (have ‘struct ktermios’)
if (info->tty->termios->c_cflag & CBAUD)
^
/tmp/moxa/npreal2.c: In function ‘npreal_shutdown’:
/tmp/moxa/npreal2.c:2278:42: error: invalid type argument of ‘->’ (have ‘struct ktermios’)
if (!info->tty || (info->tty->termios->c_cflag & HUPCL))
^
/tmp/moxa/npreal2.c: In function ‘npreal_port_init’:
/tmp/moxa/npreal2.c:2325:18: error: incompatible types when assigning to type ‘struct ktermios *’ from type ‘struct ktermios’
if (!(termio = info->tty->termios))
^
/tmp/moxa/npreal2.c: In function ‘npreal_port_shutdown’:
/tmp/moxa/npreal2.c:2700:18: error: incompatible types when assigning to type ‘struct ktermios *’ from type ‘struct ktermios’
if (!(termio = info->tty->termios))
^
/tmp/moxa/npreal2.c: In function ‘tty_buffer_free’:
/tmp/moxa/npreal2.c:3352:9: error: implicit declaration of function ‘kfree’ [-Werror=implicit-function-declaration]
kfree(b);
^
/tmp/moxa/npreal2.c:3355:22: error: ‘struct tty_struct’ has no member named ‘buf’
b->next = tty->buf.free;
^
/tmp/moxa/npreal2.c:3356:12: error: ‘struct tty_struct’ has no member named ‘buf’
tty->buf.free = b;
^
In file included from include/linux/seqlock.h:35:0,
from include/linux/time.h:5,
from include/linux/stat.h:18,
from include/linux/module.h:10,
from /tmp/moxa/npreal2.c:42:
/tmp/moxa/npreal2.c: In function ‘npreal_flush_to_ldisc’:
/tmp/moxa/npreal2.c:3424:31: error: ‘struct tty_struct’ has no member named ‘buf’
spin_lock_irqsave(&tty->buf.lock, flags);
^
include/linux/spinlock.h:199:34: note: in definition of macro ‘raw_spin_lock_irqsave’
flags = _raw_spin_lock_irqsave(lock); \
^
/tmp/moxa/npreal2.c:3424:9: note: in expansion of macro ‘spin_lock_irqsave’
spin_lock_irqsave(&tty->buf.lock, flags);
^
/tmp/moxa/npreal2.c:3425:19: error: ‘struct tty_struct’ has no member named ‘buf’
head = tty->buf.head;
^
/tmp/moxa/npreal2.c:3428:16: error: ‘struct tty_struct’ has no member named ‘buf’
tty->buf.head = NULL;
^
/tmp/moxa/npreal2.c:3452:26: error: ‘struct tty_buffer’ has no member named ‘char_buf_ptr’
cp = head->char_buf_ptr + head->read;
^
/tmp/moxa/npreal2.c:3453:26: error: ‘struct tty_buffer’ has no member named ‘flag_buf_ptr’
fp = head->flag_buf_ptr + head->read;
^
/tmp/moxa/npreal2.c:3455:44: error: ‘struct tty_struct’ has no member named ‘buf’
spin_unlock_irqrestore(&tty->buf.lock, flags);
^
In file included from include/linux/seqlock.h:35:0,
from include/linux/time.h:5,
from include/linux/stat.h:18,
from include/linux/module.h:10,
from /tmp/moxa/npreal2.c:42:
/tmp/moxa/npreal2.c:3461:39: error: ‘struct tty_struct’ has no member named ‘buf’
spin_lock_irqsave(&tty->buf.lock, flags);
^
include/linux/spinlock.h:199:34: note: in definition of macro ‘raw_spin_lock_irqsave’
flags = _raw_spin_lock_irqsave(lock); \
^
/tmp/moxa/npreal2.c:3461:17: note: in expansion of macro ‘spin_lock_irqsave’
spin_lock_irqsave(&tty->buf.lock, flags);
^
/tmp/moxa/npreal2.c:3463:16: error: ‘struct tty_struct’ has no member named ‘buf’
tty->buf.head = head;
^
/tmp/moxa/npreal2.c:3465:36: error: ‘struct tty_struct’ has no member named ‘buf’
spin_unlock_irqrestore(&tty->buf.lock, flags);
^
/tmp/moxa/npreal2.c: In function ‘npreal_create_proc_entry’:
/tmp/moxa/npreal2.c:3546:5: error: implicit declaration of function ‘create_proc_entry’ [-Werror=implicit-function-declaration]
return( create_proc_entry( name, mode, parent ) );
^
/tmp/moxa/npreal2.c:3546:5: warning: return makes pointer from integer without a cast [enabled by default]
/tmp/moxa/npreal2.c: In function ‘npreal_remove_proc_entry’:
/tmp/moxa/npreal2.c:3554:26: error: dereferencing pointer to incomplete type
remove_proc_entry(pde->name, pde->parent);
^
/tmp/moxa/npreal2.c:3554:37: error: dereferencing pointer to incomplete type
remove_proc_entry(pde->name, pde->parent);
^
/tmp/moxa/npreal2.c: In function ‘npreal_net_open’:
/tmp/moxa/npreal2.c:3606:5: error: implicit declaration of function ‘PDE’ [-Werror=implicit-function-declaration]
de = PDE(inode);
^
/tmp/moxa/npreal2.c:3606:8: warning: assignment makes pointer from integer without a cast [enabled by default]
de = PDE(inode);
^
/tmp/moxa/npreal2.c:3615:32: error: dereferencing pointer to incomplete type
nd = (struct nd_struct *)de->data;
^
/tmp/moxa/npreal2.c: In function ‘npreal_net_write’:
/tmp/moxa/npreal2.c:4255:18: error: ‘struct tty_struct’ has no member named ‘low_latency’
if(!info->tty->low_latency)
^
/tmp/moxa/npreal2.c:4283:5: warning: passing argument 1 of ‘tty_buffer_request_room’ from incompatible pointer type [enabled by default]
if ((cnt = tty_buffer_request_room(tty, count)) <= 0)
^
In file included from /tmp/moxa/npreal2.c:57:0:
include/linux/tty_flip.h:5:12: note: expected ‘struct tty_port *’ but argument is of type ‘struct tty_struct *’
extern int tty_buffer_request_room(struct tty_port *port, size_t size);
^
/tmp/moxa/npreal2.c:4296:17: error: ‘struct tty_struct’ has no member named ‘icanon’
if (!tty->icanon || tty->canon_data)
^
/tmp/moxa/npreal2.c:4296:32: error: ‘struct tty_struct’ has no member named ‘canon_data’
if (!tty->icanon || tty->canon_data)
^
/tmp/moxa/npreal2.c:4311:13: error: ‘struct tty_struct’ has no member named ‘icanon’
if (!tty->icanon || tty->canon_data)
^
/tmp/moxa/npreal2.c:4311:28: error: ‘struct tty_struct’ has no member named ‘canon_data’
if (!tty->icanon || tty->canon_data)
^
/tmp/moxa/npreal2.c:4313:52: error: ‘struct tty_struct’ has no member named ‘read_cnt’
if ((cnt = MIN(cnt,(N_TTY_BUF_SIZE-1) - tty->read_cnt )) <= 0)
^
/tmp/moxa/npreal2.c:117:26: note: in definition of macro ‘MIN’
#define MIN(a,b) ((a) < (b) ? (a) : (b))
^
/tmp/moxa/npreal2.c:4313:52: error: ‘struct tty_struct’ has no member named ‘read_cnt’
if ((cnt = MIN(cnt,(N_TTY_BUF_SIZE-1) - tty->read_cnt )) <= 0)
^
/tmp/moxa/npreal2.c:117:38: note: in definition of macro ‘MIN’
#define MIN(a,b) ((a) < (b) ? (a) : (b))
^
/tmp/moxa/npreal2.c:4347:5: warning: passing argument 1 of ‘tty_insert_flip_string’ from incompatible pointer type [enabled by default]
if ((count = tty_insert_flip_string(tty, (unsigned char *)buf, cnt)))
^
In file included from /tmp/moxa/npreal2.c:57:0:
include/linux/tty_flip.h:29:19: note: expected ‘struct tty_port *’ but argument is of type ‘struct tty_struct *’
static inline int tty_insert_flip_string(struct tty_port *port,
^
/tmp/moxa/npreal2.c:4349:9: warning: passing argument 1 of ‘tty_flip_buffer_push’ from incompatible pointer type [enabled by default]
tty_flip_buffer_push(tty);
^
In file included from /tmp/moxa/npreal2.c:57:0:
include/linux/tty_flip.h:14:13: note: expected ‘struct tty_port *’ but argument is of type ‘struct tty_struct *’
extern void tty_flip_buffer_push(struct tty_port *port);
^
/tmp/moxa/npreal2.c: In function ‘npreal_process_notify’:
/tmp/moxa/npreal2.c:4516:16: error: ‘struct tty_struct’ has no member named ‘low_latency’
if(!tty->low_latency)
^
/tmp/moxa/npreal2.c:4522:9: warning: passing argument 1 of ‘tty_insert_flip_char’ from incompatible pointer type [enabled by default]
tty_insert_flip_char(tty, 0, TTY_BREAK);
^
In file included from /tmp/moxa/npreal2.c:57:0:
include/linux/tty_flip.h:17:19: note: expected ‘struct tty_port *’ but argument is of type ‘struct tty_struct *’
static inline int tty_insert_flip_char(struct tty_port *port,
^
/tmp/moxa/npreal2.c: In function ‘npreal_do_session_recovery’:
/tmp/moxa/npreal2.c:4571:22: error: incompatible types when assigning to type ‘struct ktermios *’ from type ‘struct ktermios’
if (!(termio = info->tty->termios))
^
cc1: some warnings being treated as errors
make[2]: *** [/tmp/moxa/npreal2.o] Error 1
make[1]: *** [_module_/tmp/moxa] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-62-generic'
make: *** [module] Error 2
Check Driver...
FAILED !!!
Install Not Completed !
Can you help me finding out where is the problem?
I attach the link to download the driver files here: NPort Real TTY Driver for Linux
Upvotes: 1
Views: 4087
Reputation: 4617
To help anyone else with this problem, you need a MUCH later driver. As of Oct 2015 the latest driver is available from this link (Linux) moxa support forum link
Please remind Moxa tech support that it looks REALLY bad that the product they are selling has a 4 year old driver, not updated on their site!
Upvotes: 1
Reputation: 11
I had the same problem and got in contact with MOXA. They managed to redirect me to the distributor (systerra in Germany). They (systerra) sent to me the driver version 1.18.51_build_15051816 which worked just fine. I asked MOXA to upload this version to their website as well, don't know if they managed so far.
Upvotes: 1