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! :)
-
1
-
2For me it was: 1 System Options -> S5 Boot / Auto Login -> B2 Console Autologin– nimig18Sep 12, 2021 at 20:48
-
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/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
rm -f /etc/systemd/system/[email protected]/autologin.conf
;;
B2*)
systemctl set-default multi-user.target
ln -fs /lib/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
cat > /etc/systemd/system/[email protected]/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/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
rm -f /etc/systemd/system/[email protected]/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/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
cat > /etc/systemd/system/[email protected]/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/[email protected]/autologin.conf
The critical missing step is this one:
cat > /etc/systemd/system/[email protected]/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/[email protected]/autologin.conf
to match the username you are setting in the /etc/lightdm/lightdm.conf
parameter autologin-user
First create a new service similar to [email protected]:
# 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]
then edit ExecStart, Restart and Alias values, like this:
...
ExecStart=-/sbin/mingetty --autologin USERNAME %I
Restart=no
...
Alias=getty.target.wants/[email protected]
and finally reload daemon and start the service:
systemctl daemon-reload systemctl start [email protected]
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.
-
-
3
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
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.