Projects:Kiosk

From Diyode Community Workshop
Revision as of 16:38, 26 February 2015 by Zander (Talk | contribs)

Jump to: navigation, search

Information and Payment Kiosk

Project : Build a self contained information and payment kiosk for the DIYode workshop.


Requirements : The Kiosk should be a simple to use system which will accept member payment in various ways.



Installing Debian on IBM SurePOS Type 4840-563

Install Debian

Install a base Debian with desktop in the usual manner :) I used Debian 7.4.0 - i386 because I already had the install CD.

Disable Kernel Mode Switching

On reboot the main lcd screen will go blank. There appears to be something wrong with the i915 linux video drivers.

This is a hack that will allow the main lcd work. The only way to get in is to use the external VGA with keyboard.

 $> cat /etc/modprobe.d/i915-kms.conf
    options i915 modeset=0 

Reboot after you have added this config.

Be careful to not switch consoles with the Linux CTRL-SHIFT-F1. You will not be able to switch back to the GUI desktop. This appears to also be a bug. If you switch out of GUI mode the only way to get it back is to reboot. :(

Several sources say 'modeset=0' will break KernelModeSwitching and that the new release of X11 will not run with KMS turned off. Well it does run with this Debian version. But it definitely has problems.

The other way to get X11 working is to blacklist the i915 driver.

Just so you don't have to have the external VGA and keyboard I suggest installing the SSH daemon, which will allow you to login via the network.

 sudo apt-get install openssh-server


Enable all 8 Serial Ports

A normal linux kernel will only 'see' the first 4 serial ports. If you have more you need to add a boot parameter to enable them:

Edit /etc/default/grub; GRUB_CMDLINE_LINUX="8250.nr_uarts=8"

 sudo update-grub.
 sudo shutdown -r now


Check to see that all the Serial ports are available with :

 sudo setserial -g /dev/ttyS[0-7]*

You also have to make sure the serial port you want to use has an irq tied to it. I got some help from here: <<http://www-01.ibm.com/support/docview.wss?uid=pos1R1003073>>

The IBMPOS I have has the multiserial card on irq 17 and serial port 4 is connected to the touchscreen.

 sudo setserial /dev/ttyS6 uart 16550A port 0x9c00 irq 17  ^fourport 
 sudo stty -F /dev/ttyS6 raw

You should only have to do this once.

EloGraphics Touch X11

If the below procedure does not work then you will need to install the EloGraphics drivers

 sudo apt-get install xserver-xorg-input-elographics

I got a lot of help from this page <<http://who-t.blogspot.fi/2012/07/elographics-touchscreen-setup.html>> Give it a read if you want the background for the configuration below.

 sudo apt-get install inputattach
 sudo apt-get install evtest
   $> cat /lib/udev/rules.d/99-elographics.rules
   ACTION=="add|change", SUBSYSTEM=="tty|pnp", KERNEL=="ttyS6", \
       RUN+="/sbin/modprobe elo", \
       RUN+="/usr/bin/inputattach -elo /dev/%k --daemon"
   $> cat /usr/share/X11/xorg.conf.d/99-elographics.conf
   Section "InputClass"
     Identifier "elographics config"
     MatchProduct "Elo Serial TouchScreen"
     Option "InvertY" "True"
   EndSection

The last section I had to add 'Option "InvertY" "True"' because the cursor tracked the wrong way on the Y-axis. If the cursor does not track the correct way on the X or Y axis they make the appropriate changes to your config.

2015/02/26 - mz