1 ) How do I check the software version the kiosk is currently using?
For the Firefox browser please enter 'about:buildconfig' in the Firefox URL bar, click on the 'Built from' link and you should find the 'milestone' number which represents the Firefox version. If you selected Google Chrome in the wizard then please type 'chrome:version'. In order to check other components like linux kernel or Xorg you could do it by logging in the kiosk through SSH or by enabling debug mode.
System version could be checked by entering 'file:///etc/version' address in the browser's URL bar or by running the 'cat /etc/version' command over SSH. File protocol support and SSH service must be activated for these methods to work.
2 ) Does Porteus Kiosk support customizations that are not included in the Kiosk Wizard?
The kiosk can be customized with many additional functions. See the following webpage for more information on this subject.
3 ) How do I change the kiosk parameters that I configured in the wizard during installation? Is there any file that can be edited if I connect via SSH?
The kiosk settings are encrypted and embedded in the read-only ISO. You won't be able to update them over SSH. You need to perform full reinstallation in case you need to update even a single system parameter. If you plan to update the kiosk settings more often then please consider enabling the remote management feature during kiosk installation.
4 ) How can I install the Porteus Kiosk on my usb drive formatted with a FAT or NTFS filesystem?
This is not possible. For security reasons, the kiosk ISO is burnt onto the target device in the same way that it would be burnt on a CD or DVD disc. The main reason for this is to prevent any persistent changes to the system made by malicious software or potential attackers. A kiosk reboot will always bring factory defaults.
5 ) My PC has a low amount of RAM. Can I still use Porteus Kiosk on this hardware?
Yes, but bear in mind that browsers are memory hungry, so you may have to enable the 'zRam' feature which will create a compressed virtual swap partition from up to 50% of your available RAM. You can enable the zRam feature through the Kiosk Wizard utility and set the percentage of available RAM to be used as swap. Note that the kiosk's kernel also supports swap files which are placed on persistent partition. Support for swap files can be also activated through the wizard.
6 ) What is the default password for user root and guest?
Root password is extremely strong, randomly generated, and unknown to anyone, including the creators of the kiosk. There is no need to change it without a reason. The guest account is locked so there is no possibility to login with guest privileges at all (the only way to use a guest account is to run 'su guest' command from the root account). You may set custom root password in Kiosk Wizard by enabling either SSH or printing service during the installation.
7 ) After burning the kiosk on usb stick the Windows operating system shows only XX MB as available size. How can I recover my usb key?
Kiosk uses hybrid ISO images which installs isolinux bootloader to the Master Boot Record of the drive. It's enough to delete MBR content and partition table to make the drive fully usable again. Please boot any live Linux and run 'dd' command as root to wipe the MBR of the usb stick:
dd if=/dev/zero of=/dev/sdX bs=1M count=10
where 'X' is your pendrive letter. Be careful to not run this command against any other drive!
8 ) How to troubleshoot wifi connection failures?
Please follow instructions below:
a) select automatic network configuration (DHCP) in the wizard and setup your wifi connection
b) when the kiosk tries to connect to the network then plug wired cable and it should connect using wired connection instead of wireless
c) enable debug mode in the wizard, skip other options and install the system
d) keep the wired cable plugged, reboot PC and send generated system report to support@porteus-kiosk.org
When sending the report please give us a brief description of the problem in your email.
9 ) How can I find the PC ID which is assigned to my kiosk?
The PC ID is needed in case when you want to activate the kiosk system in the Customer Panel or when you want to use nested configurations for remote management. The identification number is displayed in the Kiosk Wizard during installation, it's also saved in the /etc/version file so you may access it through the browser (enter file:///etc/version in the URL bar, support for the file protocol must be activated) or by connecting to kiosk through SSH and running 'cat /etc/version' command. When remote management is enabled then the kiosk config is downloaded with PC ID appended to the GET request so you can find it in the log of the web server which is hosting the config. PC ID is also displayed in the Administration Panel of Porteus Kiosk Server.
10 ) How to add a missing printer driver to the kiosk?
Porteus Kiosk supports thousands of printer models but some drivers may be still missing. In order to add a printer driver to the system please utilize the customization service.
11 ) How to setup custom printer setting for the Firefox browser?
Printing drivers are different and it's not possible to cover all configurations in the first run wizard. Luckily browser_preferences parameter allows to predefine printing settings for the Firefox browser (provided solution won't work for Chrome). Please follow setup procedure below:
a) Install testing kiosk with following functions activated in the wizard: disable private mode for the browser, configure persistence for the session, enable SSH access to the system.
b) Boot the kiosk and setup printing settings to your preferred values.
c) Restart browser and make sure your printing settings are remembered. If this is not the case then manual modification to the PPD driver will be necessary. It could be implemented in a customized build - please contact builds@porteus-kiosk.org for help.
d) Login to kiosk through ssh and run following command:
- grep print $profile/prefs.js
You should get the output as below:
user_pref("print.printer_kiosk-printer.print_bgcolor", false);
user_pref("print.printer_kiosk-printer.print_bgimages", false);
user_pref("print.printer_kiosk-printer.print_colorspace", "default");
user_pref("print.printer_kiosk-printer.print_downloadfonts", false);
user_pref("print.printer_kiosk-printer.print_evenpages", true);
.... more preferences here ....
user_pref("print.printer_kiosk-printer.print_unwriteable_margin_left", 6);
user_pref("print.printer_kiosk-printer.print_unwriteable_margin_right", 4);
user_pref("print.printer_kiosk-printer.print_unwriteable_margin_top", 21);
user_pref("print_printer", "kiosk-printer");
e) Copy all listed preferences and save them in some file hosted on the network
f) Reinstall the kiosk for use in a production, activate 'browser_preferences=' parameter and point it to your Firefox preferences file
From now on your custom printing preferences will be forced in your kiosk.
12 ) How can I use wired connection as a fallback to the wireless one?
Wired and wifi connections work as a fallback to each other if you select 'Automatic IP configuration' in the wizard and setup wifi connection. DHCP performs auto configuration on all available interfaces so if one connection goes down then another can take over its role. Static IP can not be used for this purpose.
13 ) Users need to provide username and password in order to access my website. How to tell the browser to remember login credentials across system reboots?
You need to set persistence to "full", disable private mode and enable login manager. Please add following parameters to your kiosk config:
persistence=full
disable_private_mode=yes
password_manager=yes
You also need to have the navigation bar enabled in the browser to get the popup to remember password. Navigation bar can be disabled once the password is remembered.
If persistence is not an option then you can try to use the 'run_command=' parameter with the 'xdotool' utility which allows you to emulate the key presses. Below is a sample for Chrome browser and a webpage which requires 'tester' as username and 'Tester12345' as a password to login:
run_command=( while true; do [ "`ps | grep -c chrome`" -gt 3 ] && break; done; sleep 20; xdotool key t e s t e r Tab T e s t e r 1 2 3 4 5 Enter; ) &
Mind that this trick wont work if the browser is restarted as run_command= is executed only once during session start.
14 ) How to force booting the kiosk from removable media to test a new system version or configuration?
In some cases it may be desired to test specific kiosk version or configuration on certain hardware prior to updating the kiosk system which is installed on the hard drive. In order to force booting the kiosk from removable media (applies to USB, SD/MMC cards) you need to add following parameter to your kiosk config during system installation:
kernel_parameters=boot_from_usb
15 ) How to prevent the kiosk updating the PC's hardware clock?
If the kiosk is installed on a removable device and you are using it occasionally e.g. to do an online banking, then you may want to prevent the kiosk updating the hardware clock as it probably affects the system time in your main operating system. If this is the case then you need to point the kiosk to some non existing NTP server in order to never update the hardware clock. Please use this parameter in your kiosk configuration:
ntp_server=fake.server.org
16 ) How to configure multiple scheduled actions in the system?
'scheduled_actions=' parameter supports Linux shell syntax so it's possible to execute commands one after another by separating them with a semicolon. If you want to restart the browser at 11:30 in the morning and stop the kiosk at 18:00 in the afternoon then you need to use following parameter:
scheduled_actions=Monday-11:30 Tuesday-11:30 Wednesday-11:30 Thursday-11:30 Friday-11:30 Saturday-11:30 Sunday-11:30 action:killall chrome; sleep 390m; halt
'sleep 390m' command tells the system to wait 390 minutes (6.5 hours) before powering off the system.
If you need to perform different actions at specific day in a month or a year then you need to utilize cron daemon for this task. You can inject cron jobs directly to the crontab using the 'run_command=' parameter:
run_command=echo '0 9 * * 1-5 root su - -c your_command' >> /etc/crontab; echo '0 10 * * SAT,SUN root su - -c your_command' >> /etc/crontab
Mind that in kiosk's crontab you need to specify the username which will execute the command.
If you have many actions to schedule then it may be easier to use 'run_command=' parameter to download and replace original /etc/crontab:
run_command=wget https://domain.com/files/kiosk/crontab -O /etc/crontab
There is no need to restart the cron as the cron daemon automatically discovers the changes made to it's config.
17 ) How can I append custom flags (command line switches) to Chrome?
Please utilize 'run_command=' parameter for this task:
run_command=grep -q "your-flag" $chflags || echo '--your-flag --your-flag2 --your-flag3' >> $chflags
Example for 'disable smooth scrolling' function:
run_command=grep -q "smooth-scrolling" $chflags || echo '--disable-smooth-scrolling' >> $chflags
Full list of currently supported flags for the Chrome browser can be found here.
18 ) How to block or unblock certain keyboard shortcuts in kiosk?
Keyboard shortcuts are blocked on the window manager level and it depends on the system used (Kiosk, Cloud, Thin Client, Server) and your kiosk configuration which ones are blocked by default.
Please login to kiosk over SSH and run following command to find all shortcuts which are blocked in your system:
grep -A1 'Disable following keybindings' /etc/xdg/openbox/rc.xml
In order to block F11 key and Ctrl+D shortcut please use following 'run_command=' parameter:
run_command=sed -e 's/ Menu / Menu F11 C-d /' -i /etc/xdg/openbox/rc.xml; openbox --reconfigure
In order to unblock Ctrl+B and Ctrl+D shortcuts please use following 'run_command=' parameter:
run_command=sed -e 's/C-b //' -e 's/C-d //' -i /etc/xdg/openbox/rc.xml; openbox --reconfigure
19 ) How can I enable 'developer tools' for the browser?
Please use following 'run_command=' parameter:
run_command=sed -i 's/"DeveloperToolsAvailability": 2,/"DeveloperToolsAvailability": 1,/' $json; sed -i 's/C-S-i / /' /etc/xdg/openbox/rc.xml; openbox --reconfigure; rm $profile/chrome/userContent.css
now you can press 'Ctrl+Shift+i' key combination to launch the developer console in the browser.