hitkliv Posted January 26, 2017 Share Posted January 26, 2017 Здравствуйте! Очень прошу помочь собрать драйвер для 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].Nmake -C /lib/modules/4.8.0-22-generic/build SUBDIRS=/tmp/moxa modulesmake[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(;^~~~~/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, ((a) < ( ? (a) : ()^/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, ((a) < ( ? (a) : ()^/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 errorsscripts/Makefile.build:295: ошибка выполнения рецепта для цели «/tmp/moxa/npreal2.o»make[2]: *** [/tmp/moxa/npreal2.o] Ошибка 1Makefile:1489: ошибка выполнения рецепта для цели «_module_/tmp/moxa»make[1]: *** [_module_/tmp/moxa] Ошибка 2make[1]: выход из каталога «/usr/src/linux-headers-4.8.0-22-generic»Makefile:65: ошибка выполнения рецепта для цели «module»make: *** [module] Ошибка 2Check Driver...FAILED !!!Install Not Completed ! Пожалуйста, подскажите, - куда грести? Link to comment
Незнайка Posted January 26, 2017 Share Posted January 26, 2017 Добрый день! http://www.moxa.ru/forum/index.php?/topic/25069-moxa-5130-vs-linux-inputoutput-error/ 3тье сообщение в теме - попробуйте? Link to comment
hitkliv Posted January 26, 2017 Author Share Posted January 26, 2017 Вы внушили мне уверенность, в завтрашнем дне! Файлик из указанной вами темы еще новее, чем я нашел! Я правда, нашел еще один вариант... Пока пере устанавливать не буду. Попробую сначала заглушкой помониторить. Если будут проблемы тогда ваш вариант использую. Скачал драйвер отсюда: Драйвер Real Com TTY for Linux Product: NPort Linux Real TTY Driver (V2)Version: 1.18.33 Build 14060316Date: 06/03/2014Company: 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, cur00ttyr01, cur01ttyr02, cur02ttyr03, cur03ttyr04, cur04ttyr05, cur05ttyr06, cur06ttyr07, cur07Added RealCom server: ip : 192.168.1.46mknod -m 666 ttyr00 c 33 0mknod -m 666 cur00 c 38 0mknod -m 666 ttyr01 c 33 1mknod -m 666 cur01 c 38 1mknod -m 666 ttyr02 c 33 2mknod -m 666 cur02 c 38 2mknod -m 666 ttyr03 c 33 3mknod -m 666 cur03 c 38 3mknod -m 666 ttyr04 c 33 4mknod -m 666 cur04 c 38 4mknod -m 666 ttyr05 c 33 5mknod -m 666 cur05 c 38 5mknod -m 666 ttyr06 c 33 6mknod -m 666 cur06 c 38 6mknod -m 666 ttyr07 c 33 7mknod -m 666 cur07 c 38 7Complete. Проверил их наличие: hitkliv@mint-orange:~$ ls -l /dev/ttyr*crw------- 1 root root 33, 0 янв 26 18:41 /dev/ttyr0crw-rw-rw- 1 root root 33, 0 янв 26 18:41 /dev/ttyr00crw-rw-rw- 1 root root 33, 1 янв 26 18:41 /dev/ttyr01crw-rw-rw- 1 root root 33, 2 янв 26 18:41 /dev/ttyr02crw-rw-rw- 1 root root 33, 3 янв 26 18:41 /dev/ttyr03crw-rw-rw- 1 root root 33, 4 янв 26 18:41 /dev/ttyr04crw-rw-rw- 1 root root 33, 5 янв 26 18:41 /dev/ttyr05crw-rw-rw- 1 root root 33, 6 янв 26 18:41 /dev/ttyr06crw-rw-rw- 1 root root 33, 7 янв 26 18:41 /dev/ttyr07crw------- 1 root root 33, 1 янв 26 18:41 /dev/ttyr1crw------- 1 root root 33, 2 янв 26 18:41 /dev/ttyr2crw------- 1 root root 33, 3 янв 26 18:41 /dev/ttyr3crw------- 1 root root 33, 4 янв 26 18:41 /dev/ttyr4crw------- 1 root root 33, 5 янв 26 18:41 /dev/ttyr5crw------- 1 root root 33, 6 янв 26 18:41 /dev/ttyr6crw------- 1 root root 33, 7 янв 26 18:41 /dev/ttyr7 Link to comment
Незнайка Posted January 26, 2017 Share Posted January 26, 2017 Хорошо когда есть из чего выбрать Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now