github.io things
I recently set up a Rapsberry Pi to display a website on a 60” TV in my office. It is displaying a slideshow of various sales metrics (being served up from another Raspberry Pi, coincidentally).
I could have used the built-in Samsung browser, but that had some issues - mainly that the TV won’t connect to enterprise WiFi. Also, I liked the flexiblity of having full control over what was being displayed on the TV - RetroPie, anyone?
So, the Raspberry Pi:
This guide from @chatchavan was enormously helpful. Of course, using a Pi 3 I didn’t have to worrry about dongles or anything like that.
I am summarizing most of it below, focusing on the enterprise aspect.
In order to connect to enterprise WiFi, you need to make changes to /etc/wpa_supplicant/wpa_supplicant.conf
and /etc/network/interface
. Pretty straight forward.
As always, make a backup of your configuration files!
Note that @chatchavan recommends hashing your password - I tried this, but it did not connect with the hashed password. But it did connect with my password in clear text (eek). I don’t know if this is due to the Pi, or my office network. I need to do some more digging. However, the Pi is only accessible via SSH so I’m okay with this for the moment.
Give hashing it a go on your system - your WiFi might be different than mine.
echo -n 'YOUR_PASSWORD' | iconv -t utf16le | openssl md4
The output will be something like (stdin)= 31d6cfe0d16ae931b73c59d7e0c089c0
- the string after the equals sign is your hash. After hashing your password, clear input history with history -c
Use sudo
to open /etc/wpa_supplicant/wpa_supplicant.conf
and add the following for enterprise configuration:
network={
ssid="YOUR_NETWORK_NAME"
proto=RSN
key_mgmt=WPA-EAP
pairwise=CCMP TKIP
group=CCMP TKIP
identity="YOUR_USER_NAME"
password=hash:YOUR_PASSWORD_HASH
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
}
If you are not hasing your password, the password
line will read as
password="YOUR_PASSWORD"
sudo
edit /etc/network/interface
. In the block for wlan0
, replace the text there with the following:
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -B -Dwext -i wlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf
post-down killall -q wpa_supplicant
Restart wlan0
with:
sudo ifdown wlan0
sudo ifup wlan0
…aaaand you should be connected to your enterprise wifi!
In order to boot Chromium into kiosk mode, we just need to add a file to ./config/autostart
- which I didn’t know existed until I started digging to figure out how to do this! Yay learning! This is summarized from this StackExchange post.
First, you need Chromium:
sudo apt-get install chromium-browser
Then, create the Chromium autostart file with your editor of choice:
nano ~./config/autostart/autoChromium.desktop
And enter the following into the file:
[Desktop Entry]
Type=Application
Exec=/usr/bin/chromium-browser --noerrdialogs --disable-session-crashed-bubble --disable-infobars --kiosk http://www.website.com
Hidden=false
X-GNOME-Autostart-enabled=true
Name[en_US]=AutoChromium
Name=AutoChromium
Comment=Start Chromium when GNOME starts
Despite setting --disable-session-crashed-bubble
, I have still gotten this error message intermittently. But if I SSH into the Pi and reboot, it boots back into kiosk mode without that message appearing.
Also, getting Chromium out of kiosk mode is a bit of a pain - only way I’ve been able to do it is to remove the autoChromium.desktop
file, and reboot. However, as this Pi is dedicated to just loading and displaying a webpage, that is not something I need to do…really ever. Only if I want to do something else on a 60” TV in the office!