O Ubuntu 16.10 falha ao inicializar no Laptop MSI GP72

3

Eu basicamente preciso de ajuda para descobrir como obter o Ubuntu 16.10 AMD64 (kernel Linux 4.8.0-22-genérico) para inicializar o sistema com sucesso, para que eu possa realmente voltar a usá-lo. A inicialização para 16.04 LTS também é uma solução aceitável.

Abaixo, você encontrará partes com informações adicionais sobre o sistema, coisas que eu tentei e os resultados que obtive. Agradecemos antecipadamente por qualquer ajuda que você pode proporcionar. Detalhes à frente: O!

Resumo

Eu comprei este laptop MSI em julho deste ano e, após um lote de solução de problemas, consegui instalar o Ubuntu 16.04 LTS AMD64 nele e usá-lo nos últimos meses sem problemas. (Eu tenho isso como um sistema de dual-boot, com o Windows 10 do outro lado.)

Eu atualizei de 16.04 - & gt; 16.10 há alguns dias e não consigo mais inicializar o laptop. Pior, eu não posso nem conseguir para inicializar o mesmo 16.04 LTS que eu tinha originalmente de uma unidade USB ao vivo. (O Windows ainda inicializa, no entanto.) As soluções que eu tinha implementado na primeira vez (veja abaixo) não fazem a diferença desta vez e eu não tenho idéia do por que isso é repentino.

Observe que o processo de atualização pareceu ser concluído normalmente. Já passei por várias perguntas semelhantes aqui para versões anteriores do Ubuntu (por exemplo, 14.04), mas elas não funcionaram ou não são aplicáveis à minha situação. Já passei vários dias nisso ...

Comportamento atual e mensagens de erro

Isso depende de qual opção de inicialização eu escolho, mas aqui está o resumo de tentar inicializar a instalação atual atualizada do 16.10 (comandos de inicialização incluídos):

O comando básico é linux /vmlinuz-4.8.0-22-generic root=UUID... ro_quiet splash $vt_handoff , portanto, listarei apenas as diferenças entre as opções de legibilidade.

  1. Opção de inicialização padrão: Comando como mostrado acima (com UUID completo, é claro).
    • O sistema trava imediatamente após mostrar o logotipo do Ubuntu.
    • Pressionar uma tecla para mostrar o console antes da interrupção mostra que nenhuma mensagem é gravada nela.
  2. Comando de inicialização pré-atualização: Adicionados acpi_osi="Linux" pci=nomsi arguments.
    • O mesmo comportamento acima
    • Esses argumentos fizeram parte da solução para que ele funcionasse em julho com uma instalação 16.04.
  3. Recovery Mode 1: Isso adiciona os argumentos do kernel ro recovery nomodeset
    • Grande quantidade de resultados mostrando serviços iniciados
    • A última mensagem é o [OK] Started Light Display Manager. (ou seja, o lightdm service)
    • A tela fica preta e não responde mais.
    • Apenas a mensagem de erro exibida está abaixo.
  4. Recovery Mode 2: Os mesmos argumentos de recuperação como # 3, mas com acpi_osi="Linux" pci=nomsi adicionados manualmente
    • basicamente o mesmo resultado que # 3

O único erro que vejo nas opções 3 e 4 é:

[FAILED] Failed to start NVIDIA Persistence Daemon.
See 'systemctl status nvidia-percistenced.service' for details

O processo de inicialização não aguenta essa falha. O processo de inicialização continua até que o serviço LightDM tenha iniciado, mas antes de você realmente ver o saudador.

Além disso, eu tentaria o comando systemctl , mas:

  1. sistemas suspensos não aceitam comandos e
  2. Na verdade, eu depurei o nvidia-367 drivers / package durante uma tentativa de recuperação anterior ( apt-get purge nvidia\* ) em favor de uma versão mais recente da página oficial.

Em qualquer caso, mesmo que o driver seja o problema (por exemplo, não pode ser carregado como um LKM), eu esperaria (no máximo) que a interface gráfica e a interface do usuário para não aparecessem Nesse caso, eu teria o terminal para fazer o login e resolvê-lo. No entanto, não posso chegar tão longe.

Tentativas de solução de problemas e resultados anteriores

Desde que eu já vi (e resolvi) alguns desses erros antes, passei os últimos dias tentando seguir os passos e resolver o problema antes de postar aqui. Infelizmente, as coisas que funcionaram antes para problemas com aparência semelhante não ajudam (AFAIK).

Originalmente solução de sucesso (não funciona desta vez)

Quando resolvi problemas em julho, essas foram as coisas que fiz e que me ajudaram a resolver os problemas de inicialização e login que tive:

  1. Adicione o argumento do kernel acpi_osi="Linux" para contornar os erros da tabela ACPI
    • Geralmente, eles são criados para sistemas Windows pela BIOS e podem causar problemas no Linux.
  2. Adicione o argumento do kernel pci=nomsi ao problema de solução alternativa com este laptop
    • Sem essa opção, o kernel manteria o registro de uma mensagem ad-infinitum e consumiria o espaço disponível na partição, e essa opção corrigiu esse problema.
  3. Desativar inicialização segura para permitir login após a instalação do driver
    • Basicamente, não posso usar o driver Nouveau para um projeto no qual estou trabalhando. Eu preciso usar o driver NVIDIA, que não está assinado (ele é construído localmente durante a instalação) e, no mundo da inicialização segura, é um módulo de kernel não confiável.
    • Em um ambiente de Inicialização Segura, os módulos do kernel não assinados não podem carregar / funcionar como você poderia esperar, e a criação / instalação de drivers NVIDIA permite que a tela de login seja exibida, mas todas as tentativas de login falhar antes que você chegue à sua área de trabalho (ele volta para a tela de login).
    • Você precisa desabilitar o Secure Boot para passar deste ponto (ou encontrar uma maneira de a Microsoft assinar seu driver personalizado (boa sorte) ou fazer você mesmo (boa sorte novamente) ...

Eu tentei essas coisas desta vez para a minha 16.10 reinstalação, mas não vi os mesmos resultados. O mistério é que eu não posso nem conseguir que o 16.04, que funcionou em julho, se comporte da mesma maneira agora que naquela época. Eu não tenho explicação para isso.

Eu também usei pci=off em um laptop HP anterior para solucionar problemas de inicialização, mas tentar isso com o MSI não me levou a nada.

A inicialização via USB ao vivo falha

Neste momento, tentando inicializar 16.04 LTS ou 16.10 a partir de um USB ativo, com opções padrão¹, trava com as seguintes mensagens no console:

...
lvm2-monitor.service
tmp.mount
systemd-tmpfiles-setup.service
resolvconf.service
[ kernel-time] nouveau 0000:01:00.0: pci: failed to adjust lnkctl speed
[ kernel-time] iwlwifi 0000:02:00.0: Unsuported splx structure
[ kernel-time] NMI watchdog: BUG: soft lockup - CPU#4 stuck for 22s! [plymouthd:314]
[ kernel-time] NMI watchdog: BUG: soft lockup - CPU#4 stuck for 23s! [plymouthd:314]
[ kernel-time] ...<same message>...
[ kernel-time] INFO: task systemd:1 blocked for more than 120 seconds.
[ kernel-time]       Tainted: G             L 4.8.0-22-generic #24-Ubuntu
...
[ kernel-time] INFO: rcu_sched self-detected stall on CPU
[ kernel-time] NMI watchdog: ...<same message>...

Adicionar acpi_osi="Linux" pci=nomsi ao comando USB ao vivo produz uma saída ligeiramente diferente, com a linha de erro adicionada sobre pci_enable_msi failed - -22

...
lvm2-monitor.service
tmp.mount
systemd-tmpfiles-setup.service
systemd-update-utmp.service
[ kernel-time] nouveau 0000:01:00.0: pci: failed to adjust lnkctl speed
[ kernel-time] pci_enable_msi failed - -22
[ kernel-time] iwlwifi 0000:02:00.0: Unsuported splx structure
[ kernel-time] NMI watchdog: BUG: soft lockup - CPU#4 stuck for 23s! [plymouthd:314]
[ kernel-time] INFO: rcu_sched self-detected stall on CPU

Já vi as mensagens de bloqueio suaves antes (nos laptops da HP) e podia sempre rastreá-las até as opções de Virtualização de CPU e VT-d serem desativadas em o BIOS, e habilitá-los resolveria rapidamente esse problema. Enquanto eu não me lembro imediatamente se eu tivesse essas barracas de CPU em julho, se eu tivesse, então eu teria resolvido da mesma maneira. (Você ainda precisa de virtualização se quiser executar máquinas virtuais de qualquer maneira - por exemplo, caixa virtual.)

Eu li outras respostas pelo site, algumas das quais sugeriram desativar estados da CPU C, mas isso não funcionou para mim também.

Configurações relevantes do BIOS

Aqui estão as configurações que foram relevantes antes, por guia e seus valores atuais , que estavam funcionando antes do 16.04 - & gt; 16,10 upgrade. Note que eu tentei diferentes combinações ativadas / desativadas entre algumas das opções (por exemplo, desativando o hyper-threading, c states, etc), sem sucesso.

separador Avançado

  1. Tecnologia de virtualização da Intel: ativada
  2. VT-d: Ativado
  3. Hyper-threading: ativado
  4. estados da CPU C: ativado

Guia de inicialização

  1. Inicialização rápida: ativada
  2. Selecione o modo de inicialização: UEFI

Guia Segurança - & gt; Menu de inicialização segura

  1. Boot Seguro: Desativado
  2. Modo de inicialização segura: padrão

Notas de rodapé

  1. Comando de inicialização padrão no USB ativo: linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash ---
por ray 17.10.2016 / 09:03

3 respostas

4

Consegui corrigir o problema pouco depois de postar a pergunta, embora eu quis ter certeza antes de tentar postar minha resposta. Observe que não modificações adicionais nas configurações do BIOS / UEFI foram necessárias - além do que eu já havia especificado no OP.

Meus passos para corrigir

O processo foi basicamente o seguinte:

  1. Adicione argumentos do kernel: nomodeset acpi_osi= para permitir que a inicialização prossiga
    • O uso de acpi_osi="Linux" não funcionou no começo. tinha que estar vazio como mostrado acima¹
    • Você pode editar os comandos de inicialização pressionando e no menu GRUB
  2. Isso permite uma inicialização bem-sucedida de 16.10 do USB ativo.
    • No meu caso, pedi uma reinstalação²
  3. Após a reinstalação, alterei os argumentos do kernel de volta para pci=nomsi acpi_osi="Linux"

Não sei por que nomodeset ³ é necessário para fazer com que o sistema inicialize primeiro , mas não é realmente necessário após o fato , o que é provavelmente o motivo Esqueci que provavelmente fiz isso em julho, quando resolvi o problema da instalação original do 16.04 LTS. De qualquer forma, espero que isso ajude alguém que possa se deparar com problemas semelhantes.

Tornando as mudanças permanentes

Atualmente, você precisa editar o comando de inicialização toda vez, e isso fica mais rápido. Para atualizar o comando de inicialização permanentemente , siga estas etapas:

  1. Abra /etc/default/grub para edição, como root
    • sudo vim /etc/default/grub do terminal
    • Altere vim do seu editor favorito (por exemplo, nano )
  2. Edite esta linha da seguinte maneira e salve as alterações
    • Padrão: GRUB_CMDLINE_LINUX=""
    • Editado: GRUB_CMDLINE_LINUX="pci=nomsi acpi_osi=\"Linux\""
  3. Execute o comando sudo update-grub2 para gerar um arquivo /boot/grub/grub.cfg atualizado
    • Lembre-se de não editar /boot/grub/grub.cfg diretamente

Se você está se perguntando sobre o argumento pci=nomsi , isso impede que o kernel preencha sua unidade (por exemplo, /var/log/syslog ) com muitas mensagens falsas. Isso parece específico para o laptop MSI, já que minha área de trabalho e um antigo laptop HP não precisavam dessa solução alternativa.

Notas de rodapé

  1. Se você não alterar acpi_osi= de volta para acpi_osi="Linux" e tiver instalado o pacote de drivers nvidia , as tentativas de login falharão e você verá a saudação exibida novamente. Você pode identificar isso porque sua senha está correta (ou seja, nenhuma mensagem de erro sobre a incompatibilidade de senha) e, se você Ctrl + Alt + F1 em um terminal, você pode logar com sucesso a partir daí.
  2. Se você tiver seu diretório /home em sua própria partição (como deveria, IMHO), certifique-se de marcar a partição para uso com o mesmo sistema de arquivos (por exemplo, ext4) e ponto de montagem (por exemplo, /home ), mas sem formatá-lo. Também reinscrevi as mesmas credenciais da conta durante a instalação. Tenha em atenção que as contas antigas continuarão no seu diretório /home , mas poderão não aparecer se utilizar as Definições & gt; & gt; Usuários, desde que leia de /etc/passwd . Talvez seja necessário sudo adduser ... para que eles sejam exibidos corretamente.
  3. Veja O que o nomodeset faz?
por ray 17.10.2016 / 16:27
2

Eu tenho o mesmo laptop, o GP72-6qf .. tenho o Ubuntu rodando agora.

  1. Verifique se você tem as atualizações mais recentes do BIOS e do firmware. houve um novo lançamento em outubro.
  2. Defina estados da CPU C : Desativado & amp; Inicialização rápida : desativado
  3. Edite o arquivo /etc/default/grub e altere

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    

    para

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi= acpi_backlight=none acpi=ht pci=nomsi"
    

    Em seguida, execute sudo update-grub

  4. Atualize o Ubuntu ( sudo apt update && sudo apt upgrade ).

por user608037 17.10.2016 / 15:39
0

No meu caso, eu estava tendo problemas para obter drivers da Nvidia para rodar no Ubuntu 16.04

Minha correção:

add-apt-repository ppa:xorg-edgers/ppa
apt-get update
apt-get install nvidia-375
reboot
    
por Eduardo 04.01.2017 / 14:43