Antes limitado apenas ao protocolo de datagrama do usuário (UDP), o U-boot agora permite iniciar o Linux a partir de um servidor HTTP.
U-Boot é um carregador de inicialização primário de código aberto usado em dispositivos incorporados para empacotar as instruções para inicializar o kernel do sistema operacional do dispositivo.
Até agora, o U-boot suportava apenas o protocolo de datagrama do usuário (UDP), permitindo inicialização TFTP e NFS, mas Linaro agora adicionou suporte para TCP e HTTP no U-boot para inicializar o Linux a partir de servidores web comuns.
U-boot agora permite iniciar o Linux a partir de um servidor HTTP
A inicialização TFTP do U-boot é suportada há anos, pois por volta do ano de 2006, lembro-me de implementar a inicialização TFTP Linux para um sistema de karaokê para reduzir o custo do BoM selecionando um dispositivo flash menor e também expliquei como inicializar o Linux em uma caixa de TV com TFTP em 2014.
Isso requer a instalação de um servidor TFTP em seu servidor, o que é uma tarefa bastante trivial, mas os servidores HTTP são onipresentes, portanto, é uma adição bem-vinda ao U-boot.
Se você quiser usar o HTTP para inicializar o Linux, ele precisa ser ativado na configuração do U-boot:
CONFIG_PROT_TCP=y
CONFIG_PROT_TCP_SACK=y
CONFIG_CMD_WGET=y
As opções superior e inferior são bastante óbvias, e a segunda configuração permite Reconhecimento Seletivo (SACK) para desempenho máximo do protocolo TCP.
Depois de instalar um servidor HTTP no servidor que hospeda a imagem do Linux, você pode inicializar o Linux no dispositivo de destino executando o U-boot da seguinte maneira:
setenv autoload 0;dhcp
setenv serverip 192.168.0.1
wget $loadaddr ~/vmlinuz
Como alternativa, também é possível carregar o Linux com uma única linha de comando depois que um endereço IP é adquirido por meio do DHCP:
wget $loadaddr 192.168.0.1:~/vmlinuz
A vantagem de usar HTTP sobre TFTP é limitada, mas isso é apenas o começo do trabalho feito como parte do projeto Arm SystemReady, já que Linaro planeja implementar o suporte HTTPS e eventualmente integrá-lo com UEFI HTTP boot para permitir que o U-boot têm uma maneira padronizada e segura de baixar imagens de inicialização de um servidor web.