Raspberry Pi Chrome Kiosk Mode

The following steps might be helpful in setting up Kiosk Mode on Raspberry Pi.

Enable SSH

You can enable or disable the SSH server on your Raspberry Pi (it is enabled by default). This is done using raspi-config:

Select “Advanced Options”

End select “Enabled”


Install Chrome Browser

Login remotely using ssh and execute the following commands:

wget http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt11/libgcrypt11_1.5.0-5+deb7u3_armhf.deb

wget http://launchpadlibrarian.net/218525709/chromium-browser_45.0.2454.85-0ubuntu0.

wget http://launchpadlibrarian.net/218525711/chromium-codecs-ffmpeg-extra_45.0.2454.85-0ubuntu0.

sudo dpkg -i libgcrypt11_1.5.0-5+deb7u3_armhf.deb

sudo dpkg -i chromium-codecs-ffmpeg-extra_45.0.2454.85-0ubuntu0.

sudo dpkg -i chromium-browser_45.0.2454.85-0ubuntu0.


Turn-on Kiosk Mode


Create a new .desktop file in ~/.config/autostart/, e.g.

sudo nano ~/.config/autostart/autoChromium.desktop

Then add the following:







Comment=Start Chromium when GNOME starts

Set Static IP


For setting a static IP for the Raspberry Pi 2 on the latest Raspbian release available at this time (20150505 through NOOBS v1.4.1), the old method modifying the/etc/network/interfaces file isn’t so efficiency as before. In fact, if you modify the/etc/network/interfaces by settingeth0 tostatic instead ofmanual(the default setting) your Raspberry Pi will get two IP adresses for the sameeth0 interface. This sucks.

The “faulty” is thedhcpcd daemon, which is a DHCP client that seems to be run before the parsing of the/etc/network/interfaces file.

So you have 3 options there:

Setting like before in/etc/network/interfaces then disabling thedhcpcd daemon, with thesudo update-rc.d -f dhcpcd remove command (you can revert back withsudo update-rc.ddhcpcd defaults). But really, don’t do this;

Add a static DHCP entry for your Raspberry Pi in your router/gateway configuration;

Force thedhcpcd daemon to get the IP you like. It’s really the best solution for me.

To implement the latest solution, justsudo nano /etc/dhcpcd.conf then at the end of the file, add the following:

# Custom static IP address for eth0.

interface eth0

static ip_address=

static routers=

static domain_name_servers=


Of course, adjust the IP as you wish. the IP address is referring to my ISP router.

Update for Raspbian Jessie

Revision 2017-02





@lxpanel –profile LXDE-pi
@pcmanfm –desktop –profile LXDE-pi
#@xscreensaver -no-splash

@xset s noblank
@xset s off
@xset -dpms

@/usr/bin/chromium-browser —noerrdialogs —disable-pinch —overscroll-history-navigation=0 —disable-session-crashed-bubble —disable-infobars —kiosk —no-first-run


pi@raspberrypi:~ $ usr/bin/chromium-browser –noerrdialogs –disable-pinch –overscroll-history-navigation=0 –disk-cache-dir=/dev/null –disable-session-crashed-bubble –disable-infobars –kiosk –no-first-run

Alert! problem with touch events, use the following keys:


chromium –kiosk –enable-kiosk-mode –enabled –touch-events –touch-events-ui –disable-ipv6 –allow-file-access-from-files –disable-java –disable-restore-session-state –disable-sync –disable-translate –disk-cache-size=1 –media-cache-size=1 http://materializecss.com/