我正在使用Linux 15。当我试图为内核v3.5.0编译EXAR驱动程序文件版本时,这里提供了:http://www.exar.com/connectivity/uart-and-bridging-solutions/usb-uarts/xr21v1410
我得到以下错误:
v@lenovo-linux ~/Downloads/xr21v141x-lnx-3.5-pak $ sudo make
make -C /lib/modules/3.8.0-19-generic/build M=/home/v/Downloads/xr21v141x-lnx-3.5-pak
make[1]: Entering directory `/usr/src/linux-headers-3.8.0-19-generic'
LD /home/v/Downloads/xr21v141x-lnx-3.5-pak/built-in.o
CC [M] /home/v/Downloads/xr21v141x-lnx-3.5-pak/vizzini.o
/home/v/Downloads/xr21v141x-lnx-3.5-pak/vizzini.c: In function ‘xr21v141x_tty_set_termios’:
/home/v/Downloads/xr21v141x-lnx-3.5-pak/vizzini.c:1104:22: error: invalid type argument of ‘->’ (have ‘struct ktermios’)
make[2]: *** [/home/v/Downloads/xr21v141x-lnx-3.5-pak/vizzini.o] Error 1
make[1]: *** [_module_/home/v/Downloads/xr21v141x-lnx-3.5-pak] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-19-generic'
make: *** [all] Error 2如何解决此错误?
发布于 2013-10-10 12:24:06
我通常先试着在他们的网站上找到一些论坛,然后问那里。如果这不起作用,我尝试自己修复它,但通常会有更多的这样的错误,我放弃了其中的几个。
要解决这个问题:
whatever->whatever的东西whatever.whatever并重试make顺便问一句,你为什么要建根呢?
发布于 2013-10-11 00:28:08
Linux内核接口经常发生变化。这取决于司机作家
xr21v1410驱动程序是为Linux3.5编写的。引用vizzini.c中第1104行的消息表示正在使用结构类型的变量。查看源代码,这是tty->termios,其中tty是tty_struct类型的。在Linux3.6左右,指针更改为另一个结构中的一个结构。
您可以尝试通过在整个代码中将tty->termios更改为tty.termios来修复这个问题。然而,这不太可能是唯一的问题。您应与制造商联系并要求更新驱动程序。
发布于 2014-07-21 09:44:05
我已经测试了您的答案,实际上,重写这一行可以解决以下问题:
// cflag = tty->termios->c_cflag;
cflag = tty->termios.c_cflag;vizzini.ko驱动程序编译得很好,并且可以使用insmod加载。
https://unix.stackexchange.com/questions/94410
复制相似问题