6

I'm trying to configure a Ubuntu Server 16.04.02 in Kiosk mode with Chrome. It's working but I'm not able to configure a Splash Screen instead of showing boot messages.

Working so far

Steps to create my Chrome Kiosk

  1. Installed Ubuntu Server 16.04.02 with OpenSSH Server
  2. Updates: sudo apt update && sudo apt upgrade -y
  3. Display Server + Windows Manager: sudo apt install xorg openbox -y

    Note: I tried to install openbox with --no-install-recommends but half of the screen (right side) was black.

  4. Google Chrome

    sudo add-apt-repository 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main'
    wget -qO- https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
    sudo apt update && sudo apt install google-chrome-stable -y
    
  5. Create a "Kiosk" user: sudo adduser kiosk
  6. Start Script for Chrome:

    sudo tee -a /home/kiosk/startchrome.sh <<EOF
    #!/bin/bash
    
    # Turn off DPMS (Display Power Management Signaling)
    xset -dpms
    
    # Disable screen saver blanking
    xset s off
    
    # Start OpenBox
    openbox-session &
    
    # Make sure Chrome is always started - restart if needed
    while true; do
      rm -rf ~/.{config,cache}/google-chrome/
      google-chrome --ignore-certificate-errors --kiosk --no-first-run --disable-infobars --disable-session-crashed-bubble --disable-translate         'http://localhost:8080'
    done
    EOF
    

    Make it executable and run on login:

    sudo chmod +x /home/kiosk/startchrome.sh
    echo "/usr/bin/startx /etc/X11/Xsession /home/kiosk/startchrome.sh -- :0 &> /dev/null" | sudo tee -a /home/kiosk/.profile
    
  7. Configure Auto-Login:

    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 --skip-login --noissue --autologin kiosk --noclear %I $TERM
    Type=idle
    EOF
    

    Enable Getty:

    sudo systemctl enable getty@tty1.service
    
  8. Hide Banner message on boot

    sudo touch /home/kiosk/.hushlogin
    sudo chown kiosk:kiosk /home/kiosk/.hushlogin
    

Problem - X not starting

I want to remove all Boot Messages. I tried GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" in /etc/default/grub but now, all I see is a little cursor at the top left of the screen. Chrome is not displayed anymore?

Solution

The kiosk user must be added to the video group! Don't know why it was working before I installed plymouth:

    sudo usermod -a -G audio kiosk
    sudo usermod -a -G video kiosk

Note: I tried my own procedure in Ubuntu 17.04 and i had to do those additional steps:

    sudo apt install xserver-xorg-legacy
    sudo dpkg-reconfigure xserver-xorg-legacy

Now you select "Anyone" on the menu. Than modify /etc/X11/Xwrapper.config and set:

    needs_root_rights=yes
    allowed_users=anybody

Question - How to configure a new theme

I also want a Splash Screen, I think that I have to install plymouth? What should I install and how to configure it?

Solution

I created a theme based on ubuntu-logo and copied it in /usr/share/plymouth/themes/ than I did:

    sudo update-alternatives --install /usr/share/plymouth/themes/default.plymouth default.plymouth /usr/share/plymouth/themes/MY_THEME/MY_THEME.plymouth 150
    sudo update-alternatives --config default.plymouth

It will ask for theme selection, I select mine and after you must do:

    sudo update-initramfs -u
    sudo update-grub

Thanks!

2

The boot messages are avoided by GRUB_CMDLINE_LINUX_DEFAULT="quiet splash". I don't know why you still get the cursor though.

Anyway, to answer your question about the plymouth, you want to install it by running the command sudo apt-get install plymouth. This should install it to the system. Then, your want to copy all of the contents of /usr/share/plymouth/themes/ubuntu-logo to another folder (Preferably somewhere in the /usr/share/plymouth/themes directory). Then, your most likely want to change the image ubuntu-logo in your newly copied folder. Then, to make the change to the new boot logo, edit the configuration file for plymouth located at /etc/alternatives/default.plymouth. There, change the address for the two lines below to the new folder you created earlier:

ImageDir=/usr/share/plymouth/themes/ubuntu-logo
ScriptFile=/usr/share/plymouth/themes/ubuntu-logo/ubuntu-logo.script

So, for example, I might edit the lines to be like this:

ImageDir=/usr/share/plymouth/themes/mytheme
ScriptFile=/usr/share/plymouth/themes/mytheme/ubuntu-logo.script

Then, save the configuration and reboot. You now should have your boot logo image instead of the regular Ubuntu one.

|improve this answer|||||
  • Thanks for explanations on plymouth, but I have to fix grub first. As soon as I set "quiet splash" all I see is a black screen. Chrome no more visible :S – JPelletier Jun 13 '17 at 16:39
  • What is your graphics card? Sometimes it can have an affect on the bootup process. – TechdudeGames Jun 13 '17 at 21:59
  • Intel HD Graphics 500 – JPelletier Jun 14 '17 at 11:57
  • 2
    Got it!! sudo usermod -a -G audio kiosk && sudo usermod -a -G video kiosk – JPelletier Jun 14 '17 at 12:28
  • Nice! What are you going to use the kiosk for? – TechdudeGames Jun 15 '17 at 14:52
1

If you want to get rid of the mouse cursor, when you make the startchrome.sh executable (Make it executable and run on login:) just add -nocursor e.g.:

sudo chmod +x /home/kiosk/startchrome.sh  
echo "/usr/bin/startx /etc/X11/Xsession /home/kiosk/startchrome.sh -- -nocursor :0" | sudo tee -a /home/kiosk/.profile  
|improve this answer|||||
0

my entries for grub ,you can check your possible resolution with sudo hwinfo --framebuffer

if entries are done sudo update-grub

if working n editing on plymouth / grub its never a mistake to run sudo update-initramfs -u behind

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.