This is another “HOWTO” post — setting up a Xubuntu-based kiosk, which I did to make a new “TV” for my kids.
I’m running a Xubuntu-based laptop to do this, so I first had to install usb-creator from here. Installed the two
.deb files using
dpkg -i <.deb file> and fixed up the missing dependencies with
Create a USB stick with Xubuntu
- Download the minimal CD image from here
usb-creator-gtkand install the mini.iso file to your USB drive1.
- Install the Xubuntu as proposed in the target computer.
- When asked what software to install, select Manual package selection, standard system utilities, Xubuntu minimal installation and OpenSSH server (to allow remote access into the kiosk), then press the Continue button.
Keeping everything else to defaults should install a basic system. When it’s done installing, it will want to reboot.
Configuring the wired network
- Log in to the device as your user, then do
sudo su -to become root.
ls /sys/class/netto get a list of network devices. In my case. my hard-wire NIC is called
enp6s0but it may (and likely will be) different for you — so replace
enp6s0with whatever your device’s name is in the following.
dhclient enp6s0as root, after connecting your Ethernet wire. If your network setup is sane, that should get you an IP address.
Installing auxiliary applications
We’ll want to install a few extra applications to get started, starting with a screen saver and whatever is needed to browse the web and somesuch.
- A screen saver:
sudo apt install xscreensaver xscreensaver-screensaver-\*
- Non-free stuff:
sudo apt install xubuntu-restricted-extras
- Firefox (to install Chrome):
apt install firefox
sudo dpkg -i google-chrome*.deb, then run
sudo apt-get -f installand
apt purge firefoxto finish the installation.
- Log in to the guest account for Xubuntu and start Chrome using
google-chrome --password-store=basic. Go to whatever website you need to go to and enter any credentials that will need to be persisted. Configure it any way you need to.
- Open a console and run
xscreensaver-demoto set whatever settings you want to set in the screen saver
- When done, keep the session open and switch to a root console. Find the HOME directory under
/tmp/guest-...and copy the .config/google-chrome directory to
/usr/share/lightdm/guest-session. They will be copied from there to the new HOME directory whenever a new guest session starts.
- Create /etc/guest-session/auto.sh with the following contents:
xscreensaver& google-chrome --make-default-browser google-chrome --password-store-basic <first url to surf to> xfce4-session-logout --logout
- Create /etc/guest-session/prefs.sh with the following contents:
- Create /etc/lightdm/lightdm.conf.d/50-auto.conf with the following contents:
Reboot to test — you should be done.
A few notes
I set this up for my children to have a “TV” they can use, so they just have access to the mouse and it’s in a fairly trustworthy environment (our down-stairs living room). If you’re setting up a public kiosk, you may want to invest in things like a touch screen and you may want to look into on-screen keyboards and somesuch. I have no use-case for that, so you’re on your own.
The way I set this up was using a laptop with no disk, and an external hard drive. I can take the hard drive with me and hook it up to any other computer at any time, running the OS in a VM if I need to.
You may also want to harden the setup a bit, although with only a mouse there’s not much you can do as a guest with this setup.
- I’m using a 2 GiB USB pendrive to do this — bigger should be fine, smaller might not be [↩]