Colección de citas famosas - Slogan de motivación - El sistema Android8.1 modifica el nodo del puerto serie.

El sistema Android8.1 modifica el nodo del puerto serie.

A petición del cliente, el nombre de nodo del puerto serie 4 (/dev/ttyS4) en el sistema Android debe cambiarse a /dev/ttyS9.

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.