Por que slowusb e scandelay?

2

Estou executando o linux-3.4.9 compilado com o genkernel e inicializando de um disco rígido USB. Fiquei um pouco irritado com o processo de inicialização lenta, em particular, durante a execução de scripts genkernel no modprobe & estágio mdev.

Então, depois de ter carregado os módulos, parece esperar um tempo fixo para os dispositivos inicializarem. Existe uma razão profunda para isso? Por que não esperar até que o dispositivo raiz específico fique disponível? Ou a minha compreensão da situação é totalmente incorreta?

    
por Alexander Shamov 09.10.2012 / 02:48

1 resposta

3

A primeira coisa que deve ser considerada aqui é que, uma vez que você pode inicializar a partir do USB, significa que o BIOS do seu PC suporta a inicialização de um dispositivo USB. Isso, por sua vez, significa que o BIOS possui um firmware embutido que inclui uma pilha de protocolos USB e pode controlar um dispositivo de destino como um HDD USB através do Universal Serial Bus. Após o protocolo de handshake USB ser estabelecido entre o host USB (o PC que precisa ser inicializado) e o dispositivo USB (HDD USB), o mecanismo de controle e dados fornecido pelo USB pode ser abstraído e as camadas superiores do código de inicialização do BIOS trate o HDD USB como um HDD interno. Ou seja, o primeiro setor da "unidade de disco" deve ser lido para obter seu registro mestre de inicialização (MBR).

No entanto, alguns problemas como o seu começam por causa de algumas alterações feitas na forma como o USB é inicializado.Anteriormente, cada usb tinha um tempo de espera de 100ms como parte da inicialização.No entanto, os novos usb 'usam o mecanismo de trabalho atrasado para agendar a próxima etapa de inicialização 100ms no futuro. Para os kernels que possuem a troca USB integrada, isso permite que o thread de boot faça outro trabalho, em vez de bloquear a espera por esses atrasos. No entanto, os kernels que não têm essa funcionalidade levaram mais tempo para inicializar devido à mudança de atraso futuro.

    
por 09.10.2012 / 13:39