Red de conocimiento informático - Computadora portátil - El sistema Android8.1 modifica el nodo del puerto serie

El sistema Android8.1 modifica el nodo del puerto serie

En respuesta a las necesidades del cliente, el nombre del nodo del puerto serie 4 (/dev/ttyS4) en el sistema Android debe cambiarse a /dev/ttyS9.

Dado que los nodos del dispositivo están registrados y generados en el controlador, verifique el controlador del puerto serie. Según la información del registro, se encontró la función registrada dw8250_probe en el puerto serie del sistema driver\kernel\drivers\tty\serial\8250\8250_dw.c. Busque serial8250_register_8250_port en esta función. Esta es la función para registrar el nodo del dispositivo. Luego verifique la definición de la función serial8250_register_8250_port (kernel\drivers\tty\serial\8250\8250_core.c) y busque la función uart_add_one_port para los nodos de registro posteriores. Continúe verificando la definición de esta función (ubicada en kernel\drivers\tty\serial\. serial_core.c). Esta función llama a tty_port_register_device_attr (ubicada en kernel\drivers\tty\tty_io.c). Agregue un análisis de registro para descubrir que el nombre del nodo del puerto serie lo genera tty_line_name. Así que verifique la implementación de tty_line_name:

static ssize_t tty_line_name(struct tty_driver *driver, int index, char *p)

{

if (driver-gt ; banderas amp; TTY_DRIVER_UNNUMBERED_NODE)

return sprintf(p, "s", driver-gt;name);

else

return sprintf(p, " sd ", driver-gt;nombre,

? index driver-gt;name_base);

}

}

Obtenido por impresión Sabemos que el nombre del dispositivo del nodo del puerto serie se compone del nombre del controlador ?driver-gt;name y el índice del número de serie del puerto serie, por lo que agregamos un juicio para determinar si ?driver-gt;name es "ttyS" y si el índice es 4. Si es así, reemplácelo.