ls -l /dev
fornecerá números maiores e menores, por exemplo
crw-rw---- 1 root dialout 4, 64 Apr 4 07:54 /dev/ttyS0
tem maior número 4 e menor número 64.
Depois, você pode ver /proc/devices
para procurar o número principal. Neste exemplo, temos um dispositivo de caractere ( c
no início da linha) com o maior número 4
e, em /proc/modules
, encontramos
Character devices: ... 4 tty 4 ttyS
A alocação de números menores depende do dispositivo.
Alguns dispositivos são acionados a partir do código principal do kernel (por exemplo, tty
), enquanto outros são gerenciados por módulos carregáveis (por exemplo, rfcomm
). Você poderia tentar procurar em /proc/modules
por um módulo correspondente; alternativamente, procure em /proc/kallsyms
pelo nome do módulo. Você obterá muitos resultados, mas a principal coisa a procurar é a presença ou ausência de uma string entre colchetes. Por exemplo, grep tty /proc/kallsyms
fornece
0000000000000000 t tty_drivers_open 0000000000000000 t show_tty_range 0000000000000000 t show_tty_driver ...
considerando que grep rfcomm /proc/kallsyms
gievs
0000000000000000 t rfcomm_apply_pn [rfcomm] 0000000000000000 t rfcomm_dlc_debugfs_open [rfcomm] 0000000000000000 t rfcomm_dlc_debugfs_show [rfcomm]
[rfcomm]
indica que o código está no módulo rfcomm
, enquanto tty
está no próprio kernel e não em um módulo, então nada aparece entre colchetes.
Este método não é definitivo, mas deve lhe dar uma idéia de onde o código de controle mora.