El sistema Android8.1 modifica el nodo del puerto serie.
Debido a que los nodos del dispositivo están registrados y generados en el controlador, verifique el controlador serial. Según la información de registro, encontramos la función de registro dw8250_probe en el puerto serie driver\kernel\driver\tty\serial\8250\8250_. En esta función encontramos Serial8250_register_8250_port, que es la función para registrar el nodo del dispositivo. Luego mire la definición de la función serial8250_register_8250_port (kernel \ drivers \ tty \ Serial \ 8250 \ 8250 _ core. c), busque la función uart_add_one_port para los nodos de registro posteriores y continúe mirando esta función (ubicada en kernel \ drivers \ tty \) Serial _ core ), esta función se registra llamando a tty_port_register_device_attr. Continuando con el seguimiento de esta función (kernel\drivers\tty\port.c), llama a tty_register_device_attr (ubicado en kernel\drivers\tty). Al agregar el análisis de registros, se puede ver que el nombre del nodo del puerto serie lo genera tty_line_name. Así que mire la implementación de tty_line_name:
static ssize_t tty_line_name(struct tty_driver * driver, int index, char *p)
{
if(driver- >flag&TTY_driver_unnumbered_node)
return sprintf(p, "%s", driver->name);
p>Otro
Return sprintf(p, "%s%d", controlador->nombre,
?index+driver->nombre_ base);
}
}
¿Sabe al imprimir que el nombre del dispositivo del nodo del puerto serie está controlado por el nombre? Conductor -> Índice de nombre y número de serie, ¿entonces agregar criterio? Controlador -> el nombre es "ttys", es ttyS", el índice es 4, si es así, reemplácelo.