Dlaczego „Tryb samolotowy” ciągle przełącza się na moim laptopie HP w Ubuntu 18.04?

15

Mam konwertowalnego laptopa HP Spectre x360 i korzystam z systemu Ubuntu 18.04. Za każdym razem, gdy obracam ekran w bok lub w trybie tabletu iz powrotem, aktywowany jest tryb samolotowy. W rzeczywistości, kiedy uruchamiam się i loguję, muszę ręcznie wyłączyć „Tryb samolotowy” i ponownie włączyć Wi-Fi. Nie chcę wyłączać wtyczki gnome rfkill w następujący sposób: „gsettings set org.gnome.settings-daemon.plugins.rfkill active false”, ponieważ wtedy nie mogę już używać bluetooth. Ponadto, z jakiegoś zapomnianego powodu, nawet gdy wyłączam wtyczkę, powłoka gnome i tak włącza „tryb samolotowy”, co oznacza, że ​​muszę włączyć Wi-Fi przy każdym logowaniu. To takie denerwujące, naprawdę Podobało mi się, gdzie zmierza 18.04, ale to poważnie psuje całe doświadczenie powłoki gnoma.

Nicholas Stommel
źródło
1
Czy problem pojawił się w wersji 17.10? Mam ten sam laptop i miałem ten sam problem z Ubuntu 17.04. Co gorsza w wersji 17.10, to, że klawisz „tryb samolotowy / F12” już nie działa, więc muszę przejść do menu w prawym górnym rogu, aby go ponownie włączyć. Czy masz ten sam problem?
Pierre-Antoine,
O ile wiem, prawidłowe ustawienie kodów podczas uruchamiania rozwiązuje również problem z niedziałającym klawiszem F12 w trybie samolotowym. Obecnie z radością przełączam klawisz trybu samolotowego, ponieważ w końcu działa. Stało się to dla mnie widoczne dopiero po pierwszym użyciu powłoki gnome w 17.10, ponieważ nigdy nie użyłem spinu gnome.
Nicholas Stommel,

Odpowiedzi:

23

W skorupie gnoma „Tryb samolotowy” jest automatycznie aktywowany podczas uruchamiania wielu laptopów HP, gdy ekran jest przechylony na bok lub gdy pokrywa jest otwarta / zamknięta. Poniżej przedstawiono poprawkę dla laptopów HP z systemem Linux i korzystających z powłoki gnome. Kod dostępu 240 jest zdefiniowany jako KEY_UNKNOWN (rodzaj klucza braku operacji) w /usr/include/linux/input-event-codes.h. Również Twój syslog nie będzie już monitował o zdefiniowanie kodów HP e057 i e058, co może być wyjątkowo denerwujące.

Pierwszą jest poprawka z użyciem klasycznego skryptu inicjującego SysV, umieszczonego w katalogu init.d i odpowiednio dowiązanego symbolicznie (Zasadniczo chcemy, aby działał niezależnie od poziomu uruchamiania na wszystkim oprócz halt (0) lub restartu (6)). Drugi to usystematyzowana usługa, która jest znacznie bardziej niezawodna i być może obecna z ostatnimi zmianami systemowymi, które również działają na Fedorze 28 i innych platformach dystrybucyjnych. W szczególności w Fedorze znajdziesz prawie całkowity brak skryptów w katalogu /etc/init.d, wraz z małym README opisującym przejście z SysV na systemd. Pierwsza metoda będzie działać, ale druga metoda jest bardziej „przyjazna dla przyszłości”, szczególnie biorąc pod uwagę, dokąd zmierza Ubuntu, i będzie działać w nieco mniej ... irytujący sposób. Systemowe skrypty inicjujące są w rzeczywistości całkiem przydatne, w pełni zaimplementowane i często używane w Ubuntu 18.04.

Stara metoda 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 restart

Nowa zalecana metoda systemowa:

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

Wklej następujące wiersze lub wpisz je do pliku:

[Jednostka]
Opis = Poprawka HP setkeycodes

[Usługa]
Wpisz = oneshot
Uruchom ponownie = nie
RemainAfterExit = nie
ExecStart = / usr / bin / setkeycodes e057 240 e058 240

[Zainstalować]
WantedBy = rescue.target
WantedBy = multi-user.target
WantedBy = graphical.target

Zapisz i potwierdź nazwę pliku za pomocą ctrl-x, y.

$ sudo systemctl daemon-reload
$ sudo systemctl włącza hp-keycodes.service
$ sudo restart

I to wszystko, nie musisz już denerwować dziwnych rzeczy, gdy przechylasz ekran lub zamykasz / otwierasz pokrywę laptopa!

Nicholas Stommel
źródło
To zadziałało w przypadku mojego notebooka HP 15-ac14ne
Tooniis,
1
to nie działało na Ubuntu 17.10
nikhilweee
2
DZIĘKUJĘ CI. Działa to na moim Spectrze x360, gdy wiele innych rozwiązań nie.
Matt West
1
Pracowałem dla trybu samolotowego logowania i obracania ekranu w moim 2015 13 "HP Spectre x360.
wakers01
1
Działa idealnie dla mojego HP Spectre 13-4110nd x360
Hugo
1

Mam ten sam problem z 17.10 na moim HP Spectre x360. W rzeczywistości mam do czynienia zarówno z problemami Nicholasa, jak i Pierre-Antoine'a:

  • Tryb samolotowy aktywowany przy każdym logowaniu lub przełączaniu do trybu tabletu;
  • Fn + F12 (klawisz Przełącz tryb samolotowy) już nie działa.

Aby szybko przełączyć Wi-Fi, stworzyłem mały skrypt:

## 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

Rzadko używam bluetooth, więc obsługuje tylko Wi-Fi, ale możesz go łatwo zmodyfikować, aby obsługiwał zarówno Bluetooth, jak i Wi-Fi.

Wszystko to jest wyraźną regresją z 17.04, gdzie wszystko działało bezbłędnie. Próbowałem wersji beta 18.04, ale jest to ta sama sytuacja, co w wersji 17.10.

Nicholas, Pierre-Antoine, wypełniam jak wypełniając dwa raporty o błędach dotyczące tych problemów (po raporcie na problem). Czy uważasz, że mógłbyś mieć komentarz w tych raportach, kiedy skończę raportować? Pomogłoby to potwierdzić status błędu (dotyczy więcej niż jednego użytkownika).

Twoje zdrowie

Antoine
źródło
Aby oznaczyć raport o błędzie jako mający wpływ na kogoś, powinien kliknąć Does this bug affect you?link tuż pod tytułem błędu.
Chai T. Rex,
Jeśli zgłosiłeś błąd, czy możesz opublikować link tutaj, aby inni, którzy mają ten problem (w tym ja), mogli go subskrybować?
ec2011
Niestety, o ile mi wiadomo, jest to tak naprawdę sprzęt przenośny HP, który może nie być w ogóle obecny na większości komputerów, więc dodanie specjalnej klauzuli lub skryptu init w oficjalnym repozytorium pakietów może nie być dobrym rozwiązaniem w wszystko. Wydaje się, że jest to problem jądra i powłoki gnome. Mógłbym spróbować zgłosić raport o błędzie przeciwko powłoce gnome, ale wkrótce przeszli na koszmar gitlaba. Klucz trybu samolotowego jest naprawiony poprawioną odpowiedzią (systemowy skrypt startowy).
Nicholas Stommel
Antoine Próbowałem, ale nie pracowałem dla mnie, czy możesz mi pomóc na tym askubuntu.com/q/1146524
ARIF MAHMUD RANA