Rk3399—添加usb转串口驱动

本文详细指导如何在Linux内核中启用PL2303等U转串设备驱动,查找ttyUSB设备,解决权限问题,并提供永久修改设备文件权限的方法。涉及USB转串口、设备驱动配置及权限管理。

有些时候我们板子上的原生串口不够用,需要通过usb转成串口使用,我们称之为u转串或u转TTL,u转串的芯片有ch340、pl2303、cp210x、ftxx等等,在adb下是可以看到rk3399 usb相关信息的,比如在adb下输入:lsusb

查看usb信息

 

  • Bus 008 : 表明设备连接到哪条总线
  • Device 00x: 表明这是连接到总线上的第x台设备
  • ID xxxx:xxxx: 设备的供应商ID与产品ID,即VID与PID

插上我们u转串设备,然后查看,发现多了一个usb

 在安卓应用层通过这个usb的VID与PID是可以直接对这个串口进行操作的,通过usb收发数据,串口也是可以正常使用的,不过今天要说的不是安卓直接操作usb,而是另外一种方式!

u转串设备文件

在adb下输入ls /dev/tty,然后table键补全,会出现诸多tty设备,其中

/dev/ttyn是虚拟控制台

/dev/ttySn是串行端口(串口)

/dev/ttyUSBx是USB到串口的转换器

并没有发现我们需要的ttyUSBx这种设备文件,这是因为我们的u转串驱动没有开启或者没起作用

启用u转串驱动

在kernel下输入make menuconfig,会弹出.config的对话框菜单,我们进入

> Device Drivers > USB support > USB Serial converter support

因为我们的u转串芯片是PL2303,所以移动到我们的Prolific 2303,如果是其它芯片则需要选中其它,像我们看到有CP210x、F81232等,这些都是常用的u转串芯片,按空格键变成“*”号编译进内核,然后保存退出。实际就是在.config中增加CONFIG_USB_SERIAL_PL2303=y。

然后重新编译内核,烧写程序查看

 临时修改设备文件权限

有时我们提供了u转串的设备文件,但是上层无法使用,查看一下文件权限

 可以看到有些权限没有放开,所属用户名跟用户组都是radio,我们可以简单粗暴的将其权限全部放开,chmod 777 /dev/ttyUSB0

但是这样修改的权限只是临时起作用,关机重启后会失效,那怎么修改才能永久有效呢?

永久修改设备文件权限

修改ueventd.rockchip.rc资源文件,该文件在:./rockchip/common/ueventd.rockchip.rc

/dev/ttyUSB0    0660   radio	radio

分别对应设备节点,设备权限,设备所有者,设备所有者所在组。

最后,u转串源码驱动是在kernel/drivers/usb/serial/目录下,如果驱动需要升级,或者有其它u转串的驱动需要添加,需要将文件放置该目录下,其中PL2303系列驱动可以在:​​​​​​pl2303完整驱动,包括windows、mac、linux下全方面驱动-Linux文档类资源-优快云下载

包括源码以及不同linux内核版本的驱动。 

### RK3568 USB串口配置及驱动 对于RK3568平台上的USB串口功能,通常涉及两个主要方面:一是内核配置以支持相应的USB串行驱动;二是具体的硬件连接和参数设置。 #### 内核配置 为了启用USB串口的支持,在Linux内核中应当激活`USB_SERIAL`选项以及任何特定于所使用的USB-to-serial换芯片的子项。这可以通过菜单配置完成: ```plaintext Device Drivers ---> [*] USB support ---> <*> USB Serial Converter support ---> <*> FTDI USBUART (FTDI Async/Belkin/Palm Zire) support <*> PL2303 USB to serial support <*> CP210x family of UART bridges from Silicon Labs ``` 上述列表并非详尽无遗,而是列举了一些常见的USB串口适配器对应的模块[^1]。具体选择取决于实际使用的硬件型号。 #### 设备树节点定义 除了确保必要的驱动被编译入内核外,还需要适当配置设备树(DTS/DTSI文件),以便操作系统能够识别并初始化这些接口。例如,如果使用的是带有集成USB控制器的标准USB端口,则可能不需要额外修改;但如果涉及到专用或非标准类型的USB串口方案,则需添加相应描述至`.dts`文件中。 假设采用的是通用型USB-UART桥接器件,那么一般无需特别定制化这部分内容,因为大多数流行品牌已被良好支持,并可通过自动探测机制加载合适的驱动程序[^2]。 #### 测试与验证 一旦完成了以上两步操作之后,就可以通过插入USB串口线缆来进行测试了。此时应该可以在系统的`/dev/ttyUSB*`下找到新创建出来的字符设备节点表示该串行端口。可以利用诸如`screen`, `minicom`这样的终端仿真软件来建立通信会话,或是借助编程方式读写数据流。 ```bash # 使用 screen 工具打开 ttyUSB0 端口,默认波特率为 115200 bps screen /dev/ttyUSB0 115200 ``` 另外还可以编写简单的C/C++应用程序调用POSIX I/O API实现更复杂的交互逻辑[^4]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东皇※太一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值