我正在尝试在我的Linux Ubuntu 14.04中安装MOXA Nport 5110A驱动程序,但失败了。有关安装过程的详细信息太长,我无法理解问题所在(坦率地说,我仍然是Linux世界中的菜鸟)。详情如下。
===============================================================================
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 !
你能帮我找出问题所在吗?
我附上链接以下载驱动程序文件: NPort Real TTY Driver for Linux
答案 0 :(得分:1)
我遇到了同样的问题,并与MOXA取得了联系。他们设法将我重定向到了经销商(德国的systerra)。他们(systerra)向我发送了驱动程序版本1.18.51_build_15051816,它运行得很好。我要求MOXA将此版本上传到他们的网站,不知道他们是否管理到目前为止。
答案 1 :(得分:1)
为了帮助其他人解决这个问题,你需要一个以后的驱动程序。截至2015年10月,可从此链接(Linux)moxa support forum link
获取最新驱动程序请提醒Moxa技术支持,他们销售的产品有一个4岁的驱动程序,而不是在他们的网站上更新,真的很糟糕!