Por que o “Airplane Mode” continua alternando no meu laptop HP no Ubuntu 18.04?

5

Eu tenho um laptop conversível HP Specter x360 e estou executando o Ubuntu 18.04. Toda vez que viro a tela para o lado ou no modo tablet e volto, o "Modo Avião" é ativado. Na verdade, quando eu inicializo e faço login, eu tenho que desligar manualmente 'Modo Avião' e ligar o wifi novamente. Eu não quero desativar o plugin gnome rfkill da seguinte forma: 'gsettings set org.gnome.settings-daemon.plugins.rfkill active false' porque então eu não posso mais usar o bluetooth. Além disso, por algum motivo esquecido, mesmo quando eu desabilitar o plugin, o shell do gnome ativa o 'Airplane Mode' de qualquer maneira, o que significa que eu tenho que ligar o Wi-Fi de volta TODA vez que eu fizer login. Isso é muito chato gostei de onde 18.04 estava indo, mas isso está seriamente quebrando toda a experiência do shell do gnome.

    
por Nicholas Stommel 17.10.2017 / 03:36

2 respostas

3

No shell do gnome, o "Modo Avião" é ativado automaticamente na inicialização de muitos laptops HP, quando a tela é inclinada para os lados ou quando a tampa é aberta / fechada. A seguir, uma correção para laptops HP que executam o Linux e usam o shell do gnome. Keycode 240 é definido como KEY_UNKNOWN (um tipo de chave não operacional) em /usr/include/linux/input-event-codes.h. Além disso, o seu syslog não solicitará mais que você defina os códigos HP e057 e e058, o que pode ser extremamente irritante.

Primeiro é uma correção usando um script de init clássico do SysV, colocado no diretório init.d e linkado simbolicamente (Basicamente, nós queremos que ele seja executado independentemente do runlevel em qualquer coisa exceto halt (0) ou reboot (6)). O segundo é um serviço systemd que é muito mais confiável e talvez esteja presente com mudanças recentes do systemd, que também funcionam no Fedora 28 e em outras plataformas de distribuição. No Fedora em particular, você encontrará uma ausência quase completa de scripts no diretório /etc/init.d, juntamente com um pequeno README detalhando a transição do SysV para o systemd. O primeiro método funcionará, mas o segundo método é muito mais "amigável para o futuro", especialmente considerando para onde o Ubuntu está indo, e também funcionará de uma maneira um pouco menos ... irritante. Os scripts de inicialização do Systemd são realmente bastante úteis e totalmente implementados e usados com frequência no Ubuntu 18.04.

Método antigo do SysV:

$ sudo sh -c 'printf "#!/bin/sh\n/usr/bin/setkeycodes e057 240 e058 240\n" > /etc/init.d/hp-keycodes'
$ sudo chmod +x /etc/init.d/hp-keycodes
$ sudo ln -s /etc/init.d/hp-keycodes /etc/rc1.d/K01hp-keycodes
$ sudo ln -s /etc/init.d/hp-keycodes /etc/rc2.d/S01hp-keycodes
$ sudo ln -s /etc/init.d/hp-keycodes /etc/rc3.d/S01hp-keycodes
$ sudo ln -s /etc/init.d/hp-keycodes /etc/rc4.d/S01hp-keycodes
$ sudo ln -s /etc/init.d/hp-keycodes /etc/rc5.d/S01hp-keycodes
$ sudo reboot

Novo método recomendado pelo Systemd:

$ sudo nano /etc/systemd/system/hp-keycodes.service

Cole as seguintes linhas ou digite-as no arquivo:

[Unit]
Description=HP setkeycodes fix

[Service]
Type=oneshot
Restart=no
RemainAfterExit=no
ExecStart=/usr/bin/setkeycodes e057 240 e058 240

[Install]
WantedBy=rescue.target
WantedBy=multi-user.target
WantedBy=graphical.target

Salve e confirme o nome do arquivo com ctrl-x, y.

$ sudo systemctl daemon-reload
$ sudo systemctl enable hp-keycodes.service
$ sudo reboot

E é isso, nada de coisas estranhas mais irritantes quando você inclina a tela ou fecha / abre a tampa do laptop!

    
por Nicholas Stommel 17.10.2017 / 03:36
0

Eu enfrento o mesmo problema com 17.10 no meu HP Spectre x360. Na verdade, enfrento os problemas de Nicholas e Pierre-Antoine:

  • Modo avião ativado toda vez que faço login ou alterno para o modo tablet;
  • Fn + F12 (tecla Alternar Modo Avião) não está mais funcionando.

Para alternar rapidamente o wifi, criei um pequeno script:

## Content of ~/scripts/wifi_toggle : ##
    #!/bin/bash
    str='export LANGUAGE=en_GB ; nmcli r wifi'
    [ "$str" == "enabled" ] && nmcli r wifi off
    [ "$str" == "disabled" ] && nmcli r wifi on

Eu raramente uso bluetooth, por isso só lida com wifi, mas você pode modificá-lo facilmente para lidar com bluetooth e wifi.

Tudo isso é uma regressão clara de 17.04, onde tudo funcionou perfeitamente. Eu tentei o beta 18.04 mas é a mesma situação que com 17.10.

Nicholas, Pierre-Antoine, preenchei como preencher dois relatórios de bugs sobre esses problemas (no relatório por edição). Você acha que poderia ter um comentário nesses relatórios sempre que eu terminar de reportar? Isso ajudaria a confirmar o status do bug (mais de um usuário afetado).

Felicidades

    
por Antoine 17.03.2018 / 14:05