So I just installed raspbian jessie lite on my pi 2. But I can't get it to login automatically. I first tried with raspi-config, which didn't work. Then after googling a bit, I found a tutorial which I'm suppose to edit inittab
but when I try to access it, it's empty.
4 Answers
I found a solution that uses raspi-config. I played around with it for a bit, and found something (NOTE: You may need to update raspi-config)
To enable Auto-login with raspi-config:
Run: sudo raspi-config
Choose option: 1 System Options
Choose option: S5 Boot / Auto Login
Choose option: B2 Console Autologin
Select Finish, and reboot the Raspberry Pi.
You should then be logged in automatically on every reboot. It's as easy as pi! :)
-
-
-
1For me it was: 1 System Options -> S5 Boot / Auto Login -> B2 Console Autologin– nimig18Sep 12, 2021 at 20:48
First create a new service similar to getty@.service:
# cp /lib/systemd/system/getty@.service \
/etc/systemd/system/autologin@.service
# ln -s /etc/systemd/system/autologin@.service \
/etc/systemd/system/getty.target.wants/getty@tty8.service
then edit ExecStart, Restart and Alias values, like this:
...
ExecStart=-/sbin/mingetty --autologin USERNAME %I
Restart=no
...
Alias=getty.target.wants/getty@tty8.service
and finally reload daemon and start the service:
systemctl daemon-reload systemctl start getty@tty8.service
Note that if you exit tty8 session, you wont be able to use it until next reboot or manual start by systemctl, except if you leave Restart as ‘always’, but I highly recommend to avoid this according to security reasons.
-
-
1
The simplest way I have found using Raspbian, is to edit the raspi-config file. Do this by opening /etc/lightdm/lightdm.conf
and setting the autologin-user=
parameter.
Change: autologin-user=pi
to autologin-user=username
where username
is your username.
-
Since when did
/etc/lightdm/lightdm.con
[sic] became "the raspi-config file"? Never mind that there's simply no such file in the first place on Raspbian lite. Feb 7, 2020 at 8:10
I needed to know how to do this manually, not using raspi-config
. I couldn't find anyone sharing the secret sauce. Thank Stallman for open source. Just read the source.
do_boot_behaviour() {
if [ "$INTERACTIVE" = True ]; then
BOOTOPT=$(whiptail --title "Raspberry Pi Software Configuration Tool (raspi-config)" --menu "Boot Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT \
"B1 Console" "Text console, requiring user to login" \
"B2 Console Autologin" "Text console, automatically logged in as '$USER' user" \
"B3 Desktop" "Desktop GUI, requiring user to login" \
"B4 Desktop Autologin" "Desktop GUI, automatically logged in as '$USER' user" \
3>&1 1>&2 2>&3)
else
BOOTOPT=$1
true
fi
if [ $? -eq 0 ]; then
case "$BOOTOPT" in
B1*)
systemctl set-default multi-user.target
ln -fs /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
rm -f /etc/systemd/system/getty@tty1.service.d/autologin.conf
;;
B2*)
systemctl set-default multi-user.target
ln -fs /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
cat > /etc/systemd/system/getty@tty1.service.d/autologin.conf << EOF
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin $USER --noclear %I \$TERM
EOF
;;
B3*)
if [ -e /etc/init.d/lightdm ]; then
systemctl set-default graphical.target
ln -fs /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
rm -f /etc/systemd/system/getty@tty1.service.d/autologin.conf
sed /etc/lightdm/lightdm.conf -i -e "s/^autologin-user=.*/#autologin-user=/"
disable_raspi_config_at_boot
else
whiptail --msgbox "Do 'sudo apt-get install lightdm' to allow configuration of boot to desktop" 20 60 2
return 1
fi
;;
B4*)
if [ -e /etc/init.d/lightdm ]; then
systemctl set-default graphical.target
ln -fs /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
cat > /etc/systemd/system/getty@tty1.service.d/autologin.conf << EOF
What I learned from this is that my changes to /etc/lightdm/lightdm.conf
were not affecting my autologin as expected because I was missing a file called /etc/systemd/system/getty@tty1.service.d/autologin.conf
The critical missing step is this one:
cat > /etc/systemd/system/getty@tty1.service.d/autologin.conf << EOF
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin $USER --noclear %I \$TERM
EOF
Which will be set to the username that raspi-config
wants, not the one that you want. So you have to change the $USER
in /etc/systemd/system/getty@tty1.service.d/autologin.conf
to match the username you are setting in the /etc/lightdm/lightdm.conf
parameter autologin-user
inittab
won't. Indeed most of the tutorials before mid 2015 (and many after) are for SysV and won't work. Some will actually interfere with normal operation.