Instalando o Raspbian a partir do NOOBS sem exibição

88

Estou tentando instalar o Raspbian a partir do NOOBS, mas não tenho outra tela / teclado disponível além da tela / teclado do laptop. Eu encontro informações suficientes sobre o uso de uma tela / teclado de laptop para um Pi, mas você já precisa ter um sistema operacional instalado. Mas eu não tenho sistema operacional instalado, porque meu cartão SD contém NOOBS e quero instalar o Raspbian usando NOOBS.

Como posso fazer isso apenas com a tela e o teclado do laptop? Estou executando o Windows 7 no meu laptop.

ProgramFOX
fonte
13
Porque se importar. Se você não possui uma tela ou teclado, o que planeja fazer com o NOOBS? Basta baixar o Raspbian e instalar no cartão SD. NOOBS é apenas um desperdício de espaço.
Milliways

Respostas:

117

Isso não funciona mais, pois sshnão está ativado.

Usando apenas a tela e o teclado do laptop (antes e depois da instalação), é possível instalar e configurar a operação sem cabeça usando SSH usando NOOBS (eles chamam de "instalação silenciosa"). Ele não exigem uma tela separada ou teclado / mouse. No entanto, requer um leitor de cartão SD no laptop (USB interno ou externo).

A única coisa necessária no lado do Raspberry Pi é uma conexão Ethernet (para fazer o SSH a partir de um sistema host). Como alternativa, usando um hardware especial (adaptador USB para serial), é possível usar alguns pinos GPIO no Raspberry Pi. [3]

Isso pode ser feito excluindo algumas pastas, editando dois arquivos no cartão SD e configurando alguns links simbólicos /etc/init.d(faça uma cópia de backup primeiro do conteúdo do cartão SD, se você tiver apenas o cartão SD com NOOBS). O responsável pela segurança pode querer alterar a senha padrão antes da instalação.

Pré-requisitos:

  • Um computador host capaz de executar um cliente SSH e de ler / gravar o sistema de arquivos no cartão SD do Raspberry Pi ( ext4 ). O sistema operacional pode ser Windows, Mac ou Linux. Pode ser um computador normalmente executando o Windows, mas com uma unidade de DVD, para que o Ubuntu possa ser iniciado no modo de teste usando um LiveCD .

  • Uma conexão Ethernet ao Raspberry Pi e acessível pelo computador host TCP / IP (caso o computador host possa usar Ethernet ou uma conexão sem fio).

  • Um editor de texto no sistema host que pode manipular corretamente os caracteres de fim de linha do Unix . Por exemplo, o UltraEdit no Windows que eu usei para testar. O Notepad ++ e o Vim no Windows também devem estar bem.

  • Um leitor de cartão SD (para fazer alterações cruciais no cartão SD durante o processo, pré-instalação e pós-instalação).

Como

Pré-instalação

Por exemplo, para instalar automaticamente o Raspbian (a opção recomendada) quando a energia é aplicada ao Raspberry Pi com o cartão SD, faça o seguinte offline (no sistema host, Windows, Mac ou Linux):

  1. Faça o download e prepare o NOOBS ( NOOBS 1.3.10 , lançado em 09-09-2014, é um download de 704 MB) em um cartão SD suficientemente grande, 4 GB ou mais.

    Isso pode envolver o uso do SDFormatter com a opção "FORMAT SIZE ADJUSTMENT" definida como "ON" para formatar todo o cartão SD como uma grande partição formatada em FAT32). Veja a página vinculada para detalhes.

  2. Na ospasta no cartão SD com NOOBS, elimine todas as pastas, exceto Raspbian(pastas Arch, RaspBMC, Pidora, OpenELEC, RISC_OS, e data_partitionpara noobs 1.3.7. E só Data_Partitionpara noobs 1.3.10).

  3. Edite o arquivo \os\Raspbian\flavours.json, para que ele contenha apenas a versão desejada do Raspbian, "Raspbian" (não "Raspbian - Boot to Scratch").

    Antes:

       {
         "flavours": [
           {
             "name": "Raspbian - Boot to Scratch",
             "description": "A version of Raspbian that boots straight into Scratch"
           },
           {
             "name": "Raspbian",
             "description": "A Debian wheezy port, optimised for the Raspberry Pi"
           }
         ]
       }
    

    Depois de:

       {
         "flavours": [
           {
             "name": "Raspbian",
             "description": "A Debian wheezy port, optimised for the Raspberry Pi"
           }
         ]
       }
    

    Exclua os arquivos extras que seu editor de texto pode produzir (como um arquivo .bak).

  4. Edite o arquivo recovery.cmdline(na rootpasta do cartão SD ) para anexar silentinstallà lista de argumentos.

    Antes (pode variar dependendo da versão do NOOBS):

     runinstaller quiet vt.cur_default=1 coherent_pool=6M elevator=deadline
    

    Depois (pode variar dependendo da versão do NOOBS):

     runinstaller quiet vt.cur_default=1 coherent_pool=6M elevator=deadline silentinstall
    

    Exclua os arquivos extras que seu editor de texto pode produzir (como um arquivo .bak).

  5. Opcional:

    Para manter a opção aberta de conectar uma TV à saída de vídeo, adicione também display=3(3 para PAL, 4 para NTSC):

     runinstaller quiet vt.cur_default=1 coherent_pool=6M elevator=deadline silentinstall display=3
    
  6. Opcional: altere o nome de usuário e a senha padrão editando \os\Raspbian\os.json:

    Antes:

       {
         "name": "Raspbian",
         "url": "http://www.raspbian.org/",
         "version": "wheezy",
         "release_date": "2014-01-07",
         "kernel": "3.10",
         "description": "A community-created port of Debian wheezy, optimised for the Raspberry Pi",
         "username": "pi",
         "password": "raspberry"
       }
    

    Depois de:

       {
         "name": "Raspbian",
         "url": "http://www.raspbian.org/",
         "version": "wheezy",
         "release_date": "2014-01-07",
         "kernel": "3.10",
         "description": "A community-created port of Debian wheezy, optimised for the Raspberry Pi",
         "username": "pi",
         "password": "DerSkalMangeFlereJobsTilI2014tOverHeleVerden11111111111111111111df11111111111111111111"
       }
    

    Exclua os arquivos extras que seu editor de texto pode produzir (como um arquivo .bak).

  7. Coloque o cartão SD no Raspberry Pi, conecte-o com um cabo Ethernet para que o sistema host com o cliente SSH possa vê-lo e para que o DHCP esteja disponível para o Raspberry Pi (por exemplo, a maioria dos roteadores NAT possui um servidor DHCP construído no). Talvez desconecte o sistema da Internet até que a senha seja alterada.

  8. Ligue o Raspberry Pi para iniciar a instalação. E espere! Isso pode demorar um pouco, como meia hora ou mais. Para ter certeza, deixe em paz por algumas horas. Um tempo de instalação de 19 minutos e 20 segundos foi medido ao usar o NOOBS 1.3.10 (da inicialização até o primeiro ping bem-sucedido). O consumo atual foi de 400 - 480 mA e caiu para 370 mA após o primeiro ping ser bem-sucedido.

Pós-instalação

  1. Encontre o endereço IP do Raspberry Pi (atribuído pelo DHCP) de alguma forma. Por exemplo, suponha que, no intervalo de endereços IP, que um servidor DHCP em um roteador NAT use e faça ping nesses endereços (o meu está configurado para usar 192.168.0.100 - 192.168.0.255 e, geralmente, é atribuído a 192.168.0.100 ou 192.168.0.101) .

    O Wireshark também pode ser usado para esse fim, principalmente se ele estiver em um ambiente com muitos dispositivos. Isso é muito mais fácil se o endereço MAC do Raspberry Pi for conhecido e pode ser obtido temporariamente usando a etapa 4 abaixo.

    Esta etapa não é necessária se um endereço IP fixo estiver definido na etapa 4 abaixo.

  2. Faça ping no host para testar se há uma conexão.

  3. Por padrão, o SSH não está ativado para Raspbian na versão 1.3.7 do NOOBS - apesar do que algumas páginas afirmam. (Pode ser diferente para o Arch Linux.) No entanto, é para o Raspbian no NOOBS versão 1.3.10, e essa etapa pode não ser mais necessária (no entanto, qualquer Raspberry Pi adquirido pode ser entregue com um cartão SD com uma versão anterior do NOOBS, e pode valer a pena salvar o download de 700 MB).

    A maneira mais fácil de habilitá-lo é descrita na resposta de Oli para Preparar o ssh sem uma tela (neste site) e é alterar os links simbólicos em /etc/init.d(in root).

    Por exemplo, inicializar a partir do Ubuntu 13.04 LiveCD com um leitor de cartão USB no sistema host e emitir esses comandos no Terminal será suficiente:

     sudo su
     cd /media/ubuntu/root
     for i in 2 3 4 5; do sudo ln -s /etc/init.d/ssh etc/rc$i.d/S02ssh; done
    
  4. Opcional: defina um endereço IP fixo se isso facilitar e o tipo de rede permitir. Em uma rede doméstica, isso pode ocorrer atribuindo um endereço IP fora do intervalo de endereços IP usado pelo servidor DHCP de um roteador NAT, por exemplo, 192.168.0.93.

    No arquivo cmdline.txt(na pasta bootfora da raiz do cartão SD), adicione-o no final da linha longa:

    ip=192.168.0.93
    

    O resultado final pode ser algo como:

    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait ip=192.168.0.93
    

    Como na etapa 3, o arquivo a ser editado seria /media/ubuntu/root/boot/cmdline.txt.

    Nota: sem parâmetros extras após o endereço IP, não há conexão com a Internet e, portanto, a etapa 11 abaixo falhará.

  5. Se o método LiveCD tiver sido usado para as etapas 3 e 4: Desligue o Ubuntu (para gravar as alterações e desmontar o cartão SD).

  6. Inicie o Raspberry Pi com o cartão SD inserido.

  7. SSH para o Raspberry Pi usando o endereço IP encontrado nas etapas 1 ou 4 (por exemplo, usando PuTTY no Windows) e efetue login:

    login as: pi
    [email protected]'s password: raspberry    (or the password that was set in os.json, see 6 in *Pre-install*.)
    
  8. Mude para uma nova senha:

        su pi
        passwd
    
  9. Opcional: faça uma configuração adicional do Raspberry Pi

        sudo raspi-config
    
  10. Opcional: ativar saída de TV

    • Abrir config.txtno vi :

        sudo vi /boot/config.txt
      
    • Finalize esta linha (o NOOBS pode ter inserido uma linha extra com essa opção ativada), para ler (inserir # no início da linha):

        #hdmi_force_hotplug=1
      
    • Remova o comentário desta linha ( 2é para PAL; use 0para NTSC), para ler (remova o #no início da linha):

        sdtv_mode=2
      
    • :wq

    • Reinicie para ver o efeito:

        sudo shutdown -r now
      
  11. Até o Raspbian entregue com o NOOBS 1.3.10 tem a vulnerabilidade Shellshock muito séria que existe no Bash , e você não deseja que o Raspberry Pi fique sem patch.

    Para testar se o Raspberry Pi é vulnerável ao Shellshock, emita:

    env x='() { :;}; echo "WARNING: SHELLSHOCK DETECTED"' bash --norc -c ':' 2>/dev/null;
    

    Para atualizar os repositórios e atualizar o Bash, emita:

    sudo su
    apt-get update && apt-get install --only-upgrade bash
    

Ao testar isso, usei:

  1. NOOBS 1.3.7 e NOOBS 1.3.10.

  2. UltraEdit no Windows, pois lida com arquivos de texto com finais de linha Unix sem problemas.

  3. Windows XP de 64 bits (sim, eu sei)


Fontes:

  1. NOOBS no GitHub , subseção Como instalar automaticamente um sistema operacional

  2. Rodando o Raspberry Pi decapitado com o Debian Linux (no entanto, isso pressupõe que o SSH esteja ativado por padrão, o que não é o caso da versão 1.3.7 do NOOBS).

  3. Nova instalação sem cabeça do software pronto para uso (NOOBS) em um Raspberry Pi . Vídeo do youtube. Ele usa hardware especial (cabo USB com um conversor USB-serial embutido) para conectar-se aos pinos TX / RX no GPIO. Efetivamente, é como conectar um terminal de despejo antiquado ao Raspberry Pi.

  4. Conexões remotas do Raspberry Pi - sem rede! . Descreve como conectar um computador diretamente ao Raspberry usando um cabo Ethernet normal (não é necessário um cruzamento especial) e como definir um endereço IP estático no Raspberry Pi (no entanto, o exemplo impede a conexão fora da sub-rede atual e, portanto, conexão à Internet).

  5. Montando o sistema de arquivos raiz via NFS (nfsroot) , próximo a "Este parâmetro informa ao kernel". Documentação formal para definir um endereço IP estático como na fonte 4 e 8 outros parâmetros que devem permitir a conexão à Internet, mas não está claro exatamente quais devem ser esses parâmetros ...

  6. Configurando a Ethernet , próximo a "Método 1: Editando /boot/cmdline.txt". Exemplo dos usos mais avançados de "ip =", dos quais pode ser possível deduzir como configurá-lo, de modo que seja possível uma conexão com a Internet.

Peter Mortensen
fonte
2
Sim, ótima resposta! Definitivamente vale a recompensa! Algumas coisas interessantes aqui :)
Piotr Kula
Nota: usando o método de endereço IP estático, não há conexão com a Internet, pois o endereço do gateway etc. não está configurado. Portanto, o patch do Shellshock não funcionará. Mas pode ser usado para inicializar o processo, localizando o endereço MAC enquanto conectado usando o método de endereço IP estático - emita "ifconfig" e anote o endereço MAC (campo "HWaddr" na linha com "eth0"). O endereço MAC pode ser usado com um servidor DHCP para sempre usar o mesmo endereço IP (reservar um endereço IP específico para um endereço MAC específico) para obter efetivamente um endereço IP estático.
Peter Mortensen
(Para editar: próximo a "ele pode ser obtido temporariamente usando a etapa 4 abaixo").
Peter Mortensen
1
@ PeterMortensen Eu percebi isso enquanto isso. Obrigado por confirmar. Observe que a partição deve ter o tipo hexadecimal C(FAT32 LBA) ou o Raspberry Pi não inicializa.
FUZxxl
1
Resposta incrível! Dê uma olhada nesta pergunta: raspberrypi.stackexchange.com/questions/61351/… está de alguma forma relacionada a este tópico. Preciso de ajuda para garantir que os espelhos de rede estejam desativados durante a instalação. Obrigado.
Desenhou
9

A resposta curta é: baixe a versão de instalação offline do NOOBS, edite o arquivo recovery.cmdlinee adicione silentinstall-o no final da primeira linha.

Isso instalará automaticamente o raspbian e reiniciará a área de trabalho quando terminar.

Mike Redrobe
fonte
2
Se você encontrar recovery.cmdline com uma linha em branco no final, exclua a linha, caso contrário a instalação silenciosa não funcionará!
perfil completo de Mike Redrobe
8

Para uma configuração sem cabeçalho, o SSH pode ser ativado colocando um arquivo nomeado ssh, sem nenhuma extensão, na partição de inicialização do cartão SD.

Quando o Pi é inicializado, ele procura o ssharquivo. Se for encontrado, o SSH está ativado e o arquivo é excluído. O conteúdo do arquivo não importa: ele pode conter texto ou nada.

philip mudenyo
fonte
O arquivo está realmente excluído? Nesse caso, após uma reinicialização subsequente, o arquivo não estaria mais presente e o SSH não seria ativado. É realmente apenas um mecanismo de uso único e, sempre que o Pi é inicializado, o ssharquivo precisa ser substituído manualmente? Isso não parece muito certo.
Greenonline
1
Sim, o arquivo é realmente excluído. Na inicialização, você precisa fazer o login e configurar as inicializações normais para o ssh, como: sudo systemctl enable sshpara que seja exibido na próxima vez.
Dave X
Confirmado que o arquivo foi definitivamente excluído na inicialização.
slm 28/07
5

Eu achei este guia o mais útil.

Uma atualização importante na instalação:

  • O ssh é desativado por padrão nas imagens mais recentes. Você precisa criar um novo arquivo ssh em / boot (pode estar vazio). Por exemplo

    touch /Volumes/boot/ssh

gameweld
fonte
2

A maneira como fiz isso foi a seguinte:

  1. Remova o cabo de alimentação do Pi e retire o cartão SD.

  2. Use um leitor de cartão (ou embutido, se o seu laptop tiver um) e o adaptador SD para ler o cartão no seu computador.

  3. Em recovery.cmdlineadição vncinstallao final da linha. Fonte aqui , exemplo aqui .

  4. Ejete a mídia com segurança em seu sistema operacional e remova o adaptador.

  5. Insira o SD no Pi, conecte o Pi com a Ethernet ao seu roteador, ligue-o e encontre o dispositivo na sua rede. Se você não conseguir acessar o roteador para ver os dispositivos conectados, use uma ferramenta como nmapa de varredura na sua rede. por exemplo nmap 192.168.1.0/24 -p 5900. Outra coisa que você pode tentar é nslookup raspberrypiou ping raspberrypiencontrar o IP. Use vncviewer raspberrypiou vncviewer <IP>para se conectar ao host.

  6. Instale o Raspbian usando sua conexão VNC.

  7. Após a instalação, o dispositivo será reiniciado.

  8. Desligue o Pi e volte a colocar o cartão no seu computador.

  9. Adicione um arquivo chamado sshà partição de inicialização. Você pode usar touchno Linux para fazer isso.

  10. Ejete o SD com segurança, volte ao Pi e ligue-o.

  11. Agora você poderá fazer o SSH para o Pi.

  12. Mude a senha imediatamente usando passwd.

SilverlightFox
fonte
1

Até eu estava enfrentando o mesmo problema que o seu. Eu estava usando o monitor RCA para o NOOBS e não havia nada na tela. A única opção que eu tinha era usar meu laptop, mas isso precisa ser configurado inicialmente com o PuTTY para conectar-se ao Raspberry Pi via SSH.

A solução rápida para o seu problema é: Baixe uma imagem separada do Raspbian no site oficial e monte-a no cartão SD após a formatação. Você verá a tela facilmente. Você só precisa obter um monitor RCA (talvez você tenha um aparelho de TV antigo por aí).

Sanyam Khurana
fonte
1
O OP declarou: "Não tenho outra tela / teclado disponível além da tela / teclado do meu laptop".
Peter Mortensen
Qual é a configuração padrão para RCA em Raspbian, PAL ou NTSC?
Peter Mortensen
1

Postei a configuração detalhada de um Raspberry Pi sem uma tela, mouse e teclado em Como iniciar o Raspberry Pi sem uma tela? .

Kush Rami
fonte
5
Bem-vindo ao Raspberry Pi! Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
precisa saber é o seguinte