Automatyczne logowanie z wyłączonym GUI w Raspbian

15

Jak mogę dokonać automatycznego logowania RPi po uruchomieniu, gdy GUI jest wyłączone?

Nie musisz wpisywać hasła podczas logowania, gdy GUI jest włączone, więc prawdopodobnie istnieje łatwy sposób na wyłączenie pytania o hasło w konsoli.

Tyilo
źródło
Bardzo niebezpieczne, brakowało mi trochę tego, że nie mam hasła i chyba spieprzyłem kartę SD. Być ostrzeżonym!

Odpowiedzi:

19

W przypadku Raspbian Wheezy:

Powinieneś być w stanie edytować plik / etc / inittab, aby włączyć automatyczne logowanie.

Znajdź taką linię w / etc / inittab

1:2345:respawn:/sbin/getty --noclear 38400 tty1

To uruchamia proces getty na tty1. Możesz dodać --autologinopcję getty do tej linii:

1:2345:respawn:/sbin/getty --autologin {USERNAME} --noclear 38400 tty1

Zastąp {NAZWA UŻYTKOWNIKA} użytkownikiem, którego chcesz się zalogować.

Uwaga: Nie testowałem tego, sprawdź stronę getty, aby uzyskać więcej informacji.

Aktualizacja: Raspbian Jessie używa systemd, więc inittab nie jest używany. Oto FAQ, które mogą pomóc Jessie: https://fedoraproject.org/wiki/Systemd#How_do_I_set_automatic_login_on_a_virtual_console_terminal.3F

FAQ dotyczy Fedory, ale powinno być bardzo podobne w Raspbian Jessie.

AKTUALIZACJA 2: Powyższa strona zniknęła, więc oto treść z maszyny Wayback:

Jak ustawić automatyczne logowanie na terminalu konsoli wirtualnej?

Najpierw utwórz nową usługę podobną do getty @ .service:

# cp /lib/systemd/system/[email protected] \
     /etc/systemd/system/[email protected]
# ln -s /etc/systemd/system/[email protected] \
     /etc/systemd/system/getty.target.wants/[email protected]

następnie edytuj wartości ExecStart, Restart i Alias, w następujący sposób:

...
ExecStart=-/sbin/mingetty --autologin USERNAME %I
Restart=no
...
Alias=getty.target.wants/[email protected]

i w końcu ponownie załaduj demona i uruchom usługę:

systemctl daemon-reload
systemctl start [email protected]

Zauważ, że jeśli opuścisz sesję tty8, nie będziesz mógł jej użyć do następnego restartu lub ręcznego uruchomienia przez systemctl, z wyjątkiem sytuacji, gdy pozostawisz Restart jako „zawsze”, ale zdecydowanie zalecamy unikanie tego ze względów bezpieczeństwa.

Craig
źródło
1
Przetestowałem to; to działa dobrze. Ponadto włóż coś do ~ / .bash_profile, a to uruchomi się automatycznie po zalogowaniu.
greggo
2
Zaktualizuj odpowiedź! Brak /etc/inittabpliku raspbian jessie.
Oki Erie Rinaldi,
@OkiErieRinaldi Dodałem link, który może pomóc w Jessie.
Craig,
Nie, nadal pojawia się monit o zalogowanie się podczas uruchamiania.
IgorGanapolsky
Rozwiązanie Raspbian Jessie nie działa.
piepi
5

istnieje prostszy sposób na zrobienie tego przy użyciu raspi-config. W tym artykule wyjaśniono to http://www.opentechguides.com/how-to/article/raspberry-pi/5/raspberry-pi-auto-start.html

pokazano:

  1. jak automatycznie zalogować się do monitu powłoki (przy użyciu metody podobnej do powyższej)
  2. Uruchamiaj skrypty podczas uruchamiania
  3. Automatyczne uruchamianie pulpitu za pomocą raspi-config
remy
źródło
1
w tym artykule pokazano, jak automatycznie zalogować się na pulpicie przy użyciu raspi-config, ale pytanie dotyczy tego, jak automatycznie się zalogować, gdy nie ma graficznego interfejsu użytkownika ani pulpitu (więc przywołanie zachęty powłoki). Jednak ten artykuł pokazuje również, jak automatycznie zalogować się do powłoki.
kolin
2

Działa to dla mnie z Jessie Lite:

sudo -i
mkdir -pv /etc/systemd/system/[email protected]
nano /etc/systemd/system/[email protected]/autologin.conf

zawartość:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin pi --noclear %I 38400 linux

Jedynym problemem jest to, że nie mogę się już zalogować przy użyciu SSH - odmowa dostępu. :-(

Henrik
źródło
1
Dobra odpowiedź powinna wskazywać, dlaczego to działa. Co robią te dwa kroki? Czy naprawdę możesz powiedzieć, że to działa, jeśli psuje SSH?
Jacobm001
To nie działa! Nadal zmusza mnie do zalogowania się z wiersza poleceń.
IgorGanapolsky
czy korzystanie z $ TERM działa dla Ciebie? ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM
esharp
0

Jeśli chcesz automatycznie zalogować się do Raspberry Pi na linii szeregowej, musisz edytować plik / etc / inittab na pi z uprawnieniami sudo.

Znajdź taką linię w / etc / inittab

T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Dodaj opcję getty --autologin do tej linii.

T0:23:respawn:/sbin/getty --autologin {username} -L ttyAMA0 115200 vt100

Zapisz i uruchom ponownie.

Arpan
źródło
Co to jest T0:23?? Myślałem, że tak powinno być 1:2345.
IgorGanapolsky
0

Korzystam z NOOBS i miałem nieco inny plik inittab. Oto, co zmieniłem, łącząc zarówno „--autologin” na linii T0, jak i linię 1: 2345:

#1:2345:respawn:/sbin/getty --noclear 38400 tty1"
1:2345:respawn:/bin/login -f pi tty1 <dev/tty1 >/dev/tty1 2>&1
T0:23:respawn:/sbin/getty --autologin pi - L ttyAMA0 115200 vt100
RichD
źródło
0

więc metoda lightdm.conf nie działała dla mnie, po trochę zabawy z najłatwiejszą metodą, którą znalazłem poniżej.

cd / etc / systemd / system /

stamtąd wpisz: ls

zobaczysz autologin @ .service

po prostu sudo nano autologin @ .service

i zmień wiersz ExecStart = - / sbin / agetty --autologin pi --noclear% I $ TERM

do

ExecStart = - / sbin / agetty --autologin [nazwa użytkownika] --noclear% I $ TERM

gdzie [Nazwa użytkownika] oznacza użytkownika, którego chcesz się zalogować bez nawiasów.

teraz miałem automatyczne logowanie pi działające przy użyciu konfiguracji raspi-config, ale użyłem powyższej metody, aby zmienić automatyczne logowanie dla nowego użytkownika.

mam nadzieję że to pomoże

olly
źródło