1. 所购买的PCIE转串口卡芯片为MCS9922,在官方网站上下载驱动MCS9900_Linux.tar.gz。
2. 解压,阅读readme,发现是一般的安装方法,遂直接操作之。
3. make,报错,分析后可知是由于驱动针对的内核版本太低,需要对源代码进行修改。主要修改如下:
原文件: struct circ_buf *xmit = &up->port.info->xmit;
修改后:#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,31)
struct circ_buf *xmit = &up->port.info->xmit;
#else
struct circ_buf *xmit = &up->port.state->xmit;
#endif.
原文件:#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,26))
struct tty_struct *tty = up->port.info->tty;
#else
struct tty_struct *tty = up->port.info->port.tty;
#endif
修改后:
#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,26))
struct tty_struct *tty = up->port.info->tty;
#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26)) && (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,31))
struct tty_struct *tty = up->port.info->port.tty;
#else
struct tty_struct *tty = up->port.state->port.tty;
#endif
注释掉static void transmit_chars_dma_stop_done()函数。4. 修改Makefile。
原文件:ln -s /etc/init.d/mcs99xx /etc/rc.d/rc3.d/Smcs99xx || true
修改后:ln -s /etc/init.d/mcs99xx /etc/rc3.d/Smcs99xx || true
5. make, make install,此时后有设备/dev/ttyF*。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25432352/viewspace-697352/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25432352/viewspace-697352/