RK3399 Android固定USB串口设备端口号

原创 2022-08-08 13:38:00 rk3399 rk3399 android RK3399开发板

本文以飞凌RK3399开发板为例讲解,随着RK3399的版本迭代,一些方式方法可能已经失效,本文使用的思路和方法仅供参考使用,其它arm开发板虽然芯片不同,但思路和方法有很多的共性,希望对您在板卡的使用中能够有所帮助,更多ARM开发板相关资讯,关注飞凌嵌入式


使能客户所需串口驱动(例如ch340)

修改/kernel/arch/arm64/configs/rockchip_defconfig文件,添加CONFIG_USB_SERIAL_CH341=y将ch340驱动编译进内核


Android固定USB串口设备端口号

采用打补丁的方式修改/kernel/drivers/usb/serial/usb-serial.c文件。

通过USB设备名去识别USB转串口插入的哪个U口,再根据不同的U口分配一个不同的节点。

static int allocate_minors(struct usb_serial *serial, int num_ports)

{

struct usb_serial_port *port;

unsigned int i, j;

int minor;

dev_dbg(&serial->inte**ce->dev, "%s %d\n", __func__, num_ports);

mutex_lock(&table_lock);

for (i = 0; i < num_ports; ++i) {

port = serial->port[i];

minor = idr_alloc(&serial_minors, port, 0, 0, GFP_KERNEL);

//固定USB转串口设备名

if(!strcmp(dev_name,"5-1"))

{

minor=1;

}

else if(!strcmp(dev_name,"7-1.1"))

{

minor=2;

}

else if(!strcmp(dev_name,"7-1.2"))

{

minor=3;

}

if (minor < 0)

goto error;

port->minor = minor;

port->port_number = i;

}

serial->minors_reserved = 1;

mutex_unlock(&table_lock);

return 0;

error:

/* unwind the already allocated minors */

for (j = 0; j < i; ++j)

idr_remove(&serial_minors, serial->port[j]->minor);

mutex_unlock(&table_lock);

return minor;

}

 

static int usb_serial_probe(struct usb_inte**ce *inte**ce,

       const struct usb_device_id *id)

{

...内容省略...

if (allocate_minors(serial, num_ports)) { 

替换为

if (allocate_minors(serial, num_ports,dev_name(&port->serial->dev->dev))) {

dev_err(ddev, "No more free serial minor numbers\n");

goto probe_error;

}

...内容省略...

}

配置环境变量

source build/envsetup.sh

lunch rk3399_all-userdebug

单独编译内核文件。

./mklinux.sh

打包镜像烧写文件。

./mkimage.sh

将/kernel/rockdev/Image-rk3399_all/boot.img分区烧写到RK3399开发板

相关产品 >

  • FET3399-C核心板

    飞凌RK3399安卓高性能核心板采用 采用六核Rockchip RK3399芯片,双Cortex-A72大核+四Cortex-A53小核结构,对整数、浮点、内存等作了大幅优化,在整体性能、功耗及核心面积三个方面提升。以下将对瑞芯微芯片RK3399参数,RK3399核心板方案及其性能做具体介绍。如您对飞凌RK3399系列核心板有兴趣,欢迎咨询了解。

    了解详情
    FET3399-C核心板
  • OK3399-C开发板

    飞凌嵌入式RK3399安卓开发板主芯片采用高性能六核CPU Rockchip RK3399,GPU采用Mail-T860四核 GPU,RK3399作为目RK产品线中低功耗、高性能的代表,可满足人脸识别设备、机器人、无人机、IoT物联网领域应用。飞凌RK3399开发板在整体性能、功耗及核心面积做了大幅度优化,更加满足工业设计需求。飞凌RK3399开发板为进一步减少用户二次开发难度,开放了底板原理图,并提供了RK3399用户手册、芯片手册,加上优质的技术服务,让您的方案从构思到上市时间缩短。

    了解详情
    OK3399-C开发板

推荐阅读 换一批 换一批