Jump to content
Форум по продукции MOXA

Recommended Posts

Здравствуйте! Очень прошу помочь собрать драйвер для Real TTY Driver для Linux.

 

Я собрал, сервер на базе Ubuntu Linux 16 с ядром Linux 4.8.0-22-generic on x86_64, gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12). Не учел, что драйвер под Linux поддерживает версию ядра до 3.

Может как-то из исходников можно пересобрать?

 

При запуске стандартного скрипта, получил это:

 

 

# /tmp/moxa/mxinst m64

===============================================================================
Copyright © 2002-2012 Moxa Inc.
All Rights Reserved.

MOXA NPort Server Real TTY Driver V1.18 Installation.
System Imformation: Kernel 4.8.0-22-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/4.8.0-22-generic/build SUBDIRS=/tmp/moxa modules
make[1]: вход в каталог «/usr/src/linux-headers-4.8.0-22-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 ‘struct proc_dir_entry’
de->data = (void *) net_node;
^~
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’; did you mean ‘termios’?
#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:208: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:208: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:13: error: implicit declaration of function ‘create_proc_entry’ [-Werror=implicit-function-declaration]
return( create_proc_entry( name, mode, parent ) );
^~~~~~~~~~~~~~~~~
/tmp/moxa/npreal2.c:3546:13: warning: return makes pointer from integer without a cast [-Wint-conversion]
return( create_proc_entry( name, mode, parent ) );
~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/moxa/npreal2.c: In function ‘npreal_net_open’:
/tmp/moxa/npreal2.c:3606:10: 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 [-Wint-conversion]
de = PDE(inode);
^
/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:40: error: passing argument 1 of ‘tty_buffer_request_room’ from incompatible pointer type [-Werror=incompatible-pointer-types]
if ((cnt = tty_buffer_request_room(tty, count)) <= 0)
^~~
In file included from /tmp/moxa/npreal2.c:57:0:
./include/linux/tty_flip.h:6: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’; did you mean ‘disc_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’; did you mean ‘disc_data’?
if (!tty->icanon || tty->canon_data)
^~
/tmp/moxa/npreal2.c:4313:52: error: ‘struct tty_struct’ has no member named ‘read_cnt’; did you mean ‘read_wait’?
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’; did you mean ‘read_wait’?
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:41: error: passing argument 1 of ‘tty_insert_flip_string’ from incompatible pointer type [-Werror=incompatible-pointer-types]
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:32: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:30: error: passing argument 1 of ‘tty_flip_buffer_push’ from incompatible pointer type [-Werror=incompatible-pointer-types]
tty_flip_buffer_push(tty);
^~~
In file included from /tmp/moxa/npreal2.c:57:0:
./include/linux/tty_flip.h:13: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_wait_command_completed’:
/tmp/moxa/npreal2.c:4462:13: error: implicit declaration of function ‘interruptible_sleep_on_timeout’ [-Werror=implicit-function-declaration]
interruptible_sleep_on_timeout(&nd->cmd_rsp_wait,timeout);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/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:30: error: passing argument 1 of ‘tty_insert_flip_char’ from incompatible pointer type [-Werror=incompatible-pointer-types]
tty_insert_flip_char(tty, 0, TTY_BREAK);
^~~
In file included from /tmp/moxa/npreal2.c:57:0:
./include/linux/tty_flip.h:16: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
scripts/Makefile.build:295: ошибка выполнения рецепта для цели «/tmp/moxa/npreal2.o»
make[2]: *** [/tmp/moxa/npreal2.o] Ошибка 1
Makefile:1489: ошибка выполнения рецепта для цели «_module_/tmp/moxa»
make[1]: *** [_module_/tmp/moxa] Ошибка 2
make[1]: выход из каталога «/usr/src/linux-headers-4.8.0-22-generic»
Makefile:65: ошибка выполнения рецепта для цели «module»
make: *** [module] Ошибка 2
Check Driver...
FAILED !!!

Install Not Completed !

 

 

Пожалуйста, подскажите, - куда грести?

 

Link to comment

Вы внушили мне уверенность, в завтрашнем дне!

Файлик из указанной вами темы еще новее, чем я нашел!

 

Я правда, нашел еще один вариант... Пока пере устанавливать не буду. Попробую сначала заглушкой помониторить. Если будут проблемы тогда ваш вариант использую.

 

Скачал драйвер отсюда: Драйвер Real Com TTY for Linux

 

Product:    NPort Linux Real TTY Driver (V2)
Version:    1.18.33 Build 14060316
Date:        06/03/2014
Company:    Moxa Inc.

 

Распаковал архив с сохранением атрибутов файдлов в папку /tmp/moxa
Запустил скрипт установки драйвера с правами суперпользователя# /tmp/moxa/mxinst m64

===============================================================================
Installation process is completed.
The all driver files are installed on /usr/lib/npreal2/driver.
Now you can cd /usr/lib/npreal2/driver and run ./mxaddsvr to add tty port.
===============================================================================

Открыл 8 портов:
root@mint-orange:/usr/lib/npreal2/driver# ./mxaddsvr 192.168.1.46 8


Adding Server...

ttyr00, cur00
ttyr01, cur01
ttyr02, cur02
ttyr03, cur03
ttyr04, cur04
ttyr05, cur05
ttyr06, cur06
ttyr07, cur07
Added RealCom server: ip : 192.168.1.46

mknod -m 666 ttyr00 c 33 0
mknod -m 666 cur00 c 38 0
mknod -m 666 ttyr01 c 33 1
mknod -m 666 cur01 c 38 1
mknod -m 666 ttyr02 c 33 2
mknod -m 666 cur02 c 38 2
mknod -m 666 ttyr03 c 33 3
mknod -m 666 cur03 c 38 3
mknod -m 666 ttyr04 c 33 4
mknod -m 666 cur04 c 38 4
mknod -m 666 ttyr05 c 33 5
mknod -m 666 cur05 c 38 5
mknod -m 666 ttyr06 c 33 6
mknod -m 666 cur06 c 38 6
mknod -m 666 ttyr07 c 33 7
mknod -m 666 cur07 c 38 7
Complete.



Проверил их наличие:

hitkliv@mint-orange:~$ ls -l /dev/ttyr*
crw------- 1 root root 33, 0 янв 26 18:41 /dev/ttyr0
crw-rw-rw- 1 root root 33, 0 янв 26 18:41 /dev/ttyr00
crw-rw-rw- 1 root root 33, 1 янв 26 18:41 /dev/ttyr01
crw-rw-rw- 1 root root 33, 2 янв 26 18:41 /dev/ttyr02
crw-rw-rw- 1 root root 33, 3 янв 26 18:41 /dev/ttyr03
crw-rw-rw- 1 root root 33, 4 янв 26 18:41 /dev/ttyr04
crw-rw-rw- 1 root root 33, 5 янв 26 18:41 /dev/ttyr05
crw-rw-rw- 1 root root 33, 6 янв 26 18:41 /dev/ttyr06
crw-rw-rw- 1 root root 33, 7 янв 26 18:41 /dev/ttyr07
crw------- 1 root root 33, 1 янв 26 18:41 /dev/ttyr1
crw------- 1 root root 33, 2 янв 26 18:41 /dev/ttyr2
crw------- 1 root root 33, 3 янв 26 18:41 /dev/ttyr3
crw------- 1 root root 33, 4 янв 26 18:41 /dev/ttyr4
crw------- 1 root root 33, 5 янв 26 18:41 /dev/ttyr5
crw------- 1 root root 33, 6 янв 26 18:41 /dev/ttyr6
crw------- 1 root root 33, 7 янв 26 18:41 /dev/ttyr7

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...