porque o kernel atribui 250 como um número principal no driver de dispositivo

0

Recentemente, afirmei trabalhar no desenvolvimento de drivers de dispositivos. Inicialmente, eu construo um driver e aplicativo simples. O que eu notei é que toda vez que eu insiro meu módulo, o kernel atribui um número maior de 250. Eu quero saber porque sempre ele atribui 250 ?? Outra coisa que eu quero saber que eu tenho gerado o arquivo do meu dispositivo usando o comando "mknod". E se eu quiser criar um arquivo de dispositivo permanente na memória do dispositivo que permaneça nele mesmo após o desligamento?

Qualquer ideia seria muito apreciada.

    
por Shaswat Dube 04.02.2015 / 12:30

1 resposta

0

250 é escolhido por padrão, quando você não especificou o número principal durante o registro do dispositivo ou durante a criação do nó (mknod).

Para Ex: Para registrar um driver de dispositivo de caractere, a sintaxe da função é

register_chrdev(Major Number, Name of the driver, File operations);

Isso tem que ser feito na função de chamada module_init.

Para criar um nó, depois de carregar esse módulo é

sudo mknod -m 666 /dev/char_driver c 240 0

Aqui,

  • 666 - permissão
  • char_driver - nome do driver (pode ser de qualquer nome)
  • c - Diz que é um driver de caractere
  • 240 - Número principal (o mesmo que se estivesse em register_chrdev)
  • 0 - Número menor.

Isso provavelmente deve funcionar.

    
por Naga2Raja 04.02.2015 / 13:00