Falha ao criar entrada / dev de sysfs, Nenhum dispositivo ou endereço

1

Eu tenho algum tipo de sistema de entretenimento doméstico executando uma versão antiga do Linux 2.6. Tem um SATA > Sistema de ponte USB e um par de portas USB. O que eu quero fazer é usá-lo como armazenamento anexado à rede.

Agora, felizmente, ele tem um servidor de telnet aberto e acessível em execução.

O problema é que não consigo encontrar onde estão o kernel nem o sistema init. A caixa está executando o BusyBox.

A placa tem um único chip flash nela. Mas, sob sysfs no bloco / vejo vários chips de flash:

/sys/block # ls
...
mtdblock0  mtdblock2  mtdblock4
mtdblock1  mtdblock3

Por que isso é estranho?

Agora, quero criar uma entrada /dev para eles, para que eu possa despejar cada um deles em uma unidade flash USB e analisá-los.

Então eu fiz isso:

/sys/block # cat /sys/block/mtdblock0/dev
31:0

E ..

mknod /dev/mtdblock0 c 31 0

Que saiu com 0 e tentei ler dados brutos para testar o dispositivo:

/sys/block # cat /dev/mtdblock0 
cat: /dev/mtdblock0: No such device or address

Por que isso? dd está dizendo o mesmo. Há entradas em /proc/devices :

/sys/block # cat /proc/devices 
Character devices:
  1 mem

{ ... }

Block devices:
  1 ramdisk
  7 loop
  8 sd
 31 mtdblock

{ ... }
    
por Gala 27.07.2016 / 16:36

1 resposta

0
mknod /dev/mtdblock0 c 31 0

Você criou um dispositivo de caractere. Você queria um dispositivo de bloco. Portanto, use b em vez de c no comando mknod .

Os números de dispositivos de bloqueio e números de dispositivos de caracteres são independentes. O dispositivo de bloco 31: 0 não está relacionado ao dispositivo de caractere 31: 0. Seu kernel não tem driver para o dispositivo de caractere 31: 0, daí o erro “No such device or address”.

    
por 28.07.2016 / 00:22