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.


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!


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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.