Ubuntu22.04 USB转串口驱动

ch9102x芯片的旧版驱动程序用在ubuntu22.04时,编译时会产生如下错误:

make[1]: Entering directory '/usr/src/linux-headers-5.16.15-76051615-generic'
  CC [M]  /home/maz/driver/ch343.o
/home/maz/driver/ch343.c:1684:33: error: initialization of ‘unsigned int (*)(struct tty_struct *)’ from incompatible pointer type ‘int (*)(struct tty_struct *)’ [-Werror=incompatible-pointer-types]
 1684 |         .write_room =           ch343_tty_write_room,
      |                                 ^~~~~~~~~~~~~~~~~~~~
/home/maz/driver/ch343.c:1684:33: note: (near initialization for ‘ch343_ops.write_room’)
/home/maz/driver/ch343.c:1686:33: error: initialization of ‘unsigned int (*)(struct tty_struct *)’ from incompatible pointer type ‘int (*)(struct tty_struct *)’ [-Werror=incompatible-pointer-types]
 1686 |         .chars_in_buffer =      ch343_tty_chars_in_buffer,
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/maz/driver/ch343.c:1686:33: note: (near initialization for ‘ch343_ops.chars_in_buffer’)
/home/maz/driver/ch343.c: In function ‘ch343_init’:
/home/maz/driver/ch343.c:1699:28: error: implicit declaration of function ‘alloc_tty_driver’ [-Werror=implicit-function-declaration]
 1699 |         ch343_tty_driver = alloc_tty_driver(CH343_TTY_MINORS);
      |                            ^~~~~~~~~~~~~~~~
/home/maz/driver/ch343.c:1699:26: warning: assignment to ‘struct tty_driver *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
 1699 |         ch343_tty_driver = alloc_tty_driver(CH343_TTY_MINORS);
      |                          ^
/home/maz/driver/ch343.c:1716:17: error: implicit declaration of function ‘put_tty_driver’ [-Werror=implicit-function-declaration]
 1716 |                 put_tty_driver(ch343_tty_driver);
      |                 ^~~~~~~~~~~~~~
cc1: some warnings being treated as errors

 GreatestCapacity 修改了代码,使其与新的Linux内核兼容。如果设备工作正常,驱动程序将在/dev目录下创建tty设备,命名为“ttyCH343USBx”。驱动代码如下:

https://github.com/WCHSoftGroup/ch343ser_linux/issues/8

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Ubuntu 是一款功能强大、安全稳定的操作系统,而 VMware 是一款常用的虚拟机软件,可以轻松地安装 Ubuntu 式操作系统,并在其上进行开发、测试、调试等工作。在使用 VMware 的过程中,我们常常需要使用到 USB 设备,因此也需要安装 VMware USB 驱动程序,以便正确地检测和使用 USB 设备。 在 Ubuntu 22.04 中,VMware USB 驱动程序的安装通常是自动完成的,不需要手动进行,只要安装了 VMware 后,该驱动程序将会随着 VMware 一同安装。但是,如果在安装 VMware 后无法正常使用 USB 设备,我们则需要手动安装 VMware USB 驱动程序。 首先,需要在 Ubuntu 上安装 VMware 官方提供的 VMware Tools 工具,这个工具包中包含了 VMware USB 驱动程序。具体安装步骤为:打开 VMware 虚拟机,选择虚拟机菜单栏中的“安装 VMware Tools”,然后在弹出的对话框中选择“运行”按钮,接着会出现一个安装向导,按照默认设置完成安装即可。 安装完成后,我们需要重新启动虚拟机,然后通过“lsmod”命令查看是否已经正确加载了驱动程序。如果已经正确加载了驱动程序,我们可以在 VMware 虚拟机中选择“插入 USB 设备”来检查是否能够正确识别和使用 USB 设备。 如果还是无法使用 USB 设备,则可能是因为 Ubuntu 的权限设置问题导致,这时我们需要在 Ubuntu 的控制台中输入“sudo usermod -aG vboxusers username”命令,其中“username”代表当前登录的用户名,这个命令的作用是将当前用户添加到 vboxusers 用户组中,而 vboxusers 用户组中包含了 USB 设备的访问权限。 总之,在使用 Ubuntu 22.04 的过程中,如果需要使用 USB 设备,我们需要安装 VMware Tools 工具,并在 Ubuntu 中正确设置权限,才能确保 VMware USB 驱动程序的正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值