RK3399 Android固定USB串口設(shè)備端口號(hào)
本文以飛凌RK3399開(kāi)發(fā)板為例講解,隨著RK3399的版本迭代,一些方式方法可能已經(jīng)失效,本文使用的思路和方法僅供參考使用,其它arm開(kāi)發(fā)板雖然芯片不同,但思路和方法有很多的共性,希望對(duì)您在板卡的使用中能夠有所幫助,更多ARM開(kāi)發(fā)板相關(guān)資訊,關(guān)注飛凌嵌入式。
使能客戶所需串口驅(qū)動(dòng)(例如ch340)
修改/kernel/arch/arm64/configs/rockchip_defconfig文件,添加CONFIG_USB_SERIAL_CH341=y將ch340驅(qū)動(dòng)編譯進(jìn)內(nèi)核
Android固定USB串口設(shè)備端口號(hào)
采用打補(bǔ)丁的方式修改/kernel/drivers/usb/serial/usb-serial.c文件。
通過(guò)USB設(shè)備名去識(shí)別USB轉(zhuǎn)串口插入的哪個(gè)U口,再根據(jù)不同的U口分配一個(gè)不同的節(jié)點(diǎn)。
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轉(zhuǎn)串口設(shè)備名
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)
{
...內(nèi)容省略...
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;
}
...內(nèi)容省略...
}
配置環(huán)境變量
source build/envsetup.sh
lunch rk3399_all-userdebug
單獨(dú)編譯內(nèi)核文件。
./mklinux.sh
打包鏡像燒寫(xiě)文件。
./mkimage.sh
將/kernel/rockdev/Image-rk3399_all/boot.img分區(qū)燒寫(xiě)到RK3399開(kāi)發(fā)板。
相關(guān)產(chǎn)品 >
-
FET3399-C核心板
飛凌RK3399安卓高性能核心板采用 采用六核Rockchip RK3399芯片,雙Cortex-A72大核+四Cortex-A53小核結(jié)構(gòu),對(duì)整數(shù)、浮點(diǎn)、內(nèi)存等作了大幅優(yōu)化,在整體性能、功耗及核心面積三個(gè)方面提升。以下將對(duì)瑞芯微芯片RK3399參數(shù),RK3399核心板方案及其性能做具體介紹。如您對(duì)飛凌RK3399系列核心板有興趣,歡迎咨詢了解。
了解詳情 -
OK3399-C開(kāi)發(fā)板
飛凌嵌入式RK3399安卓開(kāi)發(fā)板主芯片采用高性能六核CPU Rockchip RK3399,GPU采用Mail-T860四核 GPU,RK3399作為目RK產(chǎn)品線中低功耗、高性能的代表,可滿足人臉識(shí)別設(shè)備、機(jī)器人、無(wú)人機(jī)、IoT物聯(lián)網(wǎng)領(lǐng)域應(yīng)用。飛凌RK3399開(kāi)發(fā)板在整體性能、功耗及核心面積做了大幅度優(yōu)化,更加滿足工業(yè)設(shè)計(jì)需求。飛凌RK3399開(kāi)發(fā)板為進(jìn)一步減少用戶二次開(kāi)發(fā)難度,開(kāi)放了底板原理圖,并提供了RK3399用戶手冊(cè)、芯片手冊(cè),加上優(yōu)質(zhì)的技術(shù)服務(wù),讓您的方案從構(gòu)思到上市時(shí)間縮短。