Ubuntu – Ubuntu Server 18.04 hide/disable all boot messages (kiosk mode)

18.04bootgrub2kioskserver

I've just installed Ubuntu Server 18.04 LTS on my Intel NUC PC.

I'd like to make it a kiosk system, running only Chrome (for example).

How can I suppress / hide / disable all these messages printed to the monitor? I'd like to be a black screen from power on to (e.g.) Chrome.

I did follow Ubuntu Server 16.04.02 with Splash Screen and Kiosk mode and other tutorials like that. But there's something new in 18.04 (I think) that prevents me for getting things done.

  1. Grub. Editing GRUB_CMDLINE_LINUX_DEFAULT didn't change anything, I had to edit GRUB_CMDLINE_LINUX instead. Is it ok? (Note: of course I run sudo update-grub after each change)

    GRUB_DEFAULT=0
    GRUB_HIDDEN_TIMEOUT_QUIET=true
    GRUB_TIMEOUT=0
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT=""
    GRUB_CMDLINE_LINUX="quiet"
    GRUB_TERMINAL=console
    
  2. Welcome / MOTD / login messages

No way to avoid them! The closest I got was to remove /etc/update-motd.d/ folder so I only saw something like:

Ubuntu 18.04 LTS nuc tty1

nuc login: kiosk (automatic login)

Last login: [...]

kiosk@nuc:~$

(Note: I disabled autorun script for actually seeing these messages, otherwise they're too fast to catch.)

Ideally all those outputs should disappear in order to boot just black, from power on to Chrome. And back of course: from Chrome to power off, but that's another story.

Which files should I take care of?

How can I reach a completely silent / quiet boot?

— Update about GRUB —

Done a fresh install of Ubuntu 18.04 Server LTS on another PC. I can confirm that the key GRUB_CMDLINE_LINUX_DEFAULT doesn't do anything; instead I've to set GRUB_CMDLINE_LINUX.

Tried to crawl the web but nothing found about that. Am I the only one who experienced this behaviour??

Best Answer

Now that you have fixed the Kernel boot logs, you have to finalize your kiosk configuration and the login screen will not show anymore!

Configure auto-login, you can do that with getty like I did and explained in my orignal question.

Configure Getty:

    sudo mkdir /etc/systemd/system/getty@tty1.service.d/
    sudo tee -a /etc/systemd/system/getty@tty1.service.d/autologin.conf <<EOF
    [Service]
    ExecStart=
    ExecStart=-/sbin/agetty --autologin YOU_USER_HERE--noclear %I $TERM
    Type=idle
    EOF

Enable Getty:

    sudo systemctl enable getty@tty1.service

You also want to configure XOrg / Chrome to start automatically on login. The solution I used before may not be the best one today. I had to use xserver-xorg-legacy but it probably means that you can use xorg in a better way than login script.

Related Question