This is part of an experiment to use Linux as a kiosk system. In this sollution, we try to set up a window manager and several applications to turn the basic kiosk system into an (unsupervised) multimedia pc. The complete system takes up 750 mb of disk space, so together with some mb of swap, a 1 gigabyte hard disk will do. Without the overhead of a desktop, the other system requirements are also quite modest - probably any Pentium class pc with some RAM will run it - although that also depends on which applications you'll be using and how many applications will be running simultanously.
After installing a (Debian) base Linux system, we add the required applications. We will use the folowing applications :
| Application | Purpose | apt package | remarks | |
|---|---|---|---|---|
| Firefox | Web Browser | mozilla-firefox | ||
| GAIM | chat / instant messaging, compatible with all major chat services (SMS Messenger, Yahoo, ICQ, AIM, ...) | gaim | There exist specific messengers for yahoo etc (but not MSN) for Linux. | |
| Open Office | Office Suite, for non html documents | openoffice.org | ||
| evince | pdf reader | evince | re http://wiki.debian.org/PDFViewers : alternatives, including Acrobat Reader | |
| Totem | Audio and Video Player | totem | also for CD and DVD | |
| Skype | internet telephony | re skype download page | ||
| ... |
If it's (DOS / Windows) Games you're after, you may want to add DOS Box - a DOS emulator that will allow you to play games designed for DOS / Windows 9x). Just add to the list of software and add a menu entry to fvwm, etc - you get the idea by now ...
You may also want to support printing, possibly a printer shared on a Microsoft Windows or a Samba server, so you'll want to add cups and maybe an smbclient.
To make our setup reproducable over multiple machines, we use scripts. The list of applications we want to set up translates into the following lines of code :
# packages from the debian distribution apt-get install vim ssh x-window-system fwvm aptitude bastille aptitude install --with-recommends xscreensaver mozilla-firefox openoffice.org totem gaim aptitude install --with-recommends evince flashplugin-nonfree #aptitude install --with-recommends smbclient cups # suggested additional packages (recommends are already included by aptitude) apt-get install fvwm-themes fvwm-icons wm-icons # workaround 1 for 'unofficial' packages eg acroread: add additional apt sources and/or use pinning # TODO : set up pinning. for now resort to workaround 2 # workaround 2 for 'unofficial' packages eg skype : download and install ... pushd /root ftp # use ftp commands or script here : ftp -s ... # downloaded files will be in /root dpkg-install blahblahblah.deb popd # packages : # # # #
howto ? ftp scripts. This page describes an automated upload with ftp under DOS, but the mechanism is similar to automating downloads under Linux.
We create 1 user (www) with password www. This account will be used to use the PC as a web client.
#create a user:password www:www useradd --force-badname -m -s /bin/false -p `mkpasswd www SD` www tail -n1 /etc/passwd #just checking tail -n1 /etc/shadow sleep 2
Unless we use FAI (Fully Automatic Installation) or create a debian package that sets up the window manager and the applications the way we want them, we'll have to do it 'by hand', i.e. copy the relevant config files into the appropriate locations, and possibly edit the system configuration where necessary (e.g. set default runlevel). Here's a quick and dirty script (nothing more than a list of commands to execute, really). Note the use of the variable CP_SRC (copy-source) to hold the location where to copy from : could be a floppy, an USB stick, a CD, a network location, any directory, ...
######### create the GUI ############################### echo enter location of files for kiosk configuration : read CP_SRC mkdir /home/www/.fvwm/ cp $CP_SRC/.fvwm2rc /home/www/.fvwm/.fvwm2rc cp $CP_SRC/ConfigFvwmTaskBar /home/www/.fvwm/ConfigFvwmTaskBar ########## no GUI in runlevel 2 ######################### mv /etc/rc2.d/S99xdm /etc/rc2.d/s99xdm mv /etc/rc2.d/S20xfs /etc/rc2.d/s20xfs mv /etc/rc2.d/S20xprint /etc/rc2.d/s20xprint ln -s /etc/init.d/xdm /etc/rc2.d/K01xdm ########## more stuff to do by hand ##################### echo don't forget : echo set default runlevel to 3 (kiosk) => /etc/inittab echo run bastille (with -b and prefab config) to lock down the system echo ""
The configuration files can be something like this:
you may also want a prefab config file for bastille so you don't have to do an interactive lockdown. refer to 'man bastille (or have a quick look at web client setup).
As all users will be working with the same account 'www', they'll be able to see each others browser history, most recently used file list, mesenger acacounts, etc. Therefore, all applications should get a predesigned setup (eg For firefox : default download location, cookie policy, history settings, .... Same for OpenOffice and others).
That, in fact, calls for techniques to set up these applications automatically with the appropriate preferences and options : unattended silent installs.
Possibly (haven't tried it yet), we could edit the preferences and options in OpenOffice, Firefox, Gaim, ... in a model installation. Assuming these are saved in the logged-on user's home directory (.openoffice - .gaim - .mozilla - ...), we could copy them into a save location where the www user has 'read' access, then 'Exec exec' a script that copies them into /home/www when fvwm starts.
The same script could delete files such as .recently-used a.o.