Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
blocks:porteus_kiosk_dev [2020-11-17 06:49]
mattias created
blocks:porteus_kiosk_dev [2024-03-13 07:57] (current)
mattias [Using SSH]
Line 1: Line 1:
-====== PIXILAB Player ======+====== PIXILAB Player with developer tools======
  
-PIXILAB Player is a free application that makes a browser-based player or interactive kiosk out of almost any PC-style computerincluding those built into many touch displays. The result can then be used by Blocks as a Display Spot. It's based on an enhanced version of the excellent [[http://porteus-kiosk.org/|Porteus Kiosk]] open source project.+Sometimes it is useful to create player with settings that enables some tools for trouble-shooting. 
 +SSH access to the player, toolbars and developer tools  can come in handy while testing scripts and hardware 
  
-This is how it works:+Follow the [[blocks:porteus_kiosk|guide to build a standard kiosk]] but use the settings provided here.
  
-  * Download a small ISO image and write it to a USB stick. +=== Configuration File ===
-  * Boot the target computer from this USB stick. +
-  * Connect the computer to the Internet to download a web browser. +
-  * Make some choices as to how the player should operate. +
-  * A complete operating system, including the browser, is written either to a USB stick or an internal drive. +
-  * Restart the computer.+
  
-This guide describes in detail how you can make a player for use as a Display Spot with Blocks. We recommend using an [[https://www.intel.com/content/www/us/en/products/boards-kits/nuc/kits.html|Intel NUC]] as the player. For basic applications in HD resolution, you can choose a low-cost, Celeron based model. For most applications, an i3-based model is sufficient. For demanding applications, select an i5 or i7-based model.  +Use the text file method to configure the player, edit and copy the text shown below to another FAT32-formatted USB stick. Put it at the root level of the USB stick, naming it //kiosk-config-dev.txt// or any other describing name
- +
-You need to add RAM to the computer. While 2 GB is for most applications, 4 GB is the smallest in the market. For UHD playback, dual rams are recommended, this is nothing to do with size but with bandwidth. Check your motherboards spec sheet to work out what type of RAM is suitable. Most modern NUCs runs SO-DIMM at max 2666Mhz. (No need to buy faster RAM than the motherboard can support) +
-You do not need any HD/SSD – just a USB memory stick to boot from. +
- +
-==== Obtaining the Installer ==== +
- +
-Start by downloading the ISO image of [[http://files.pixilab.se/outgoing/blocks/player/pixilab-player-200527-4.1.iso|PIXILAB Player version 4.1]] . This file needs to be copied to a USB stick using Etcher. Make sure your target computer can boot from a USB stick. Download [[https://www.balena.io/etcher/|Etcher]] and use it to copy the ISO image onto your USB memory stick. +
-==== Starting the Installer ==== +
- +
-Connect the USB stick to the player computer, and turn on power. Press the designated key for entering BIOS or to choose the startup device (often F10, F2, F8, DEL or similar, as indicated on screen during startup). Choose the USB stick as the boot device. Turn off the Secure Boot option if applicable. +
- +
-Since the browser isn't included in the ISO, you must connect the player computer to a network that has Internet access. Preferably, this network should support automatic network configuration (DHCP) to simplify the setup. +
- +
-==== Installation Settings ==== +
- +
-Once the installer ISO has started, you should see a screen like this one. +
- +
-{{ :blocks:porteus:porteus_kiosk_wizard.png?800;nolink |}} +
- +
-Assuming you're using a wired Ethernet connection, click the leftmost button.  +
- +
-Next, choose "Configure using DHCP". This assumes your network supports automatic client configuration. If not, you need to configure the network manually here instead. +
- +
-{{ :blocks:porteus:porteus_network_config.png?800;nolink |}} +
- +
-Click "Next" if not using a proxy. +
- +
-{{ :blocks:porteus:porteus_proxy_settings.png?800;nolink |}} +
- +
-Select which browser to use. Chrome usually has the best performance. A confirmation/summary page appears, summarizing your choices so far, click Next. +
- +
-{{ :blocks:porteus:porteus_browser_selection.png?800;nolink |}} +
- +
-A network connection will be established (this may take some time). If a license agreement is presented, read and agree to it. Your browser of choice will be downloaded. +
- +
-At the next page, you have the choice of either doing all settings manually, or loading them in from a text file on a USB stick. The text file method is faster, while the manual method allows for greater flexibility in choosing the options you want.  +
- +
-{{ :blocks:porteus:porteus_final_options.png?800;nolink |}} +
- +
-=== Automatic Configuration === +
- +
-If you want to use the text file method, copy the text shown below to another FAT32-formatted USB stick. Put it at the root level of the USB stick, naming it //kiosk-config.txt//+
  
 <code> <code>
Line 60: Line 14:
 dhcp=yes dhcp=yes
 browser=chrome browser=chrome
-homepage_append=mac 
 homepage=http://pixi.guide/spot homepage=http://pixi.guide/spot
-hide_mouse=yes 
-disable_navigation_bar=yes 
 disable_private_mode=yes disable_private_mode=yes
-homepage_check=PIXILAB Blocks Server can't be reached. Please check your network connection. 
 wake_on_lan=yes wake_on_lan=yes
 disable_zoom_controls=yes disable_zoom_controls=yes
-additional_components=uefi.zip initrdpxe.xz 
 persistence=session persistence=session
-timezone=Factory 
 primary_keyboard_layout=us primary_keyboard_layout=us
-</code> +additional_components=uefi.zip initrdpxe.xz 08-ssh.xzm 
-  +root_password=pixi 
-Choose "Load configuration from removable media"When prompted to do so (not before), insert the USB stick containing the //kiosk-config.txt// file, and load it. Adjust options as needed before proceeding+hide_mouse=no 
 +disable_navigation_bar=no
  
-If you need to display any custom content that shows time-related data, you may want to set the value of the timezone parameter to your local zone, from one of [[https://porteus-kiosk.org/files/timezones.txt|these constants]]. 
- 
-If you want to use a keyboard with the player, specify the desired keyboard layout using the value of the primary_keyboard_layout parameter , from one of [[https://porteus-kiosk.org/files/keyboards.txt|these constants]]. 
- 
-If you want to configure a NTP server use the ntp_server parameter. If the parameter is not present, then default NTP server is 'pool.ntp.org'. Change the value to the server or pool you prefer. 
-<code> 
-ntp_server=server.org 
 </code> </code>
  
-=== Manual Configuration ===+The differences compared to a standard setting are: 
 +  * Add 08-ssh.xzm module to enable SSH. 
 +  * Set root-password for SSH access. 
 +  * Show the mouse 
 +  * Show the navigation bar
  
-If you choose to do the configuration manually, here are some options you most likely need to set. 
  
-  * Enable Wake on LAN. 
-  * Enable Home Page, setting the url to ''http://pixi.guide/spot'' and selecting "Append string to the homepage: MAC address". 
-  * Private mode; disable. 
-  * Zoom Controls; disable. 
-  * Navigation bar; disable. 
-  * Mouse Cursor; Disable (with "Hide Permanently") if using a touch screen, else Enable. 
-  * The additional components mentioned above (uefi.zip pixilab.xzm), where pixilab.xzm provides custom functionality such as power management and improved reliability under some network conditions.  
  
-The second point above (as well as the //homepage// option in the config file) assumes that you have a DNS that resolves ''pixi.guide'' to your local Blocks server. If not, type the IP address (and possibly port number) of your server instead of ''pixi.guide''. Finally, press Next, which displays a "Setting report" with similar information as shown for the //kiosk-config.txt// file above. 
-==== Disable Automatic Fixes ==== 
  
-Choose "Disable Porteus kiosk automatic fixes" to avoid updating to the player automatically, as doing so may interfere with normal operation. 
  
-{{ :blocks:porteus:porteus_disable_automatic_updates.png?800;nolink |}}+==== Using SSH ====
  
-Then click Next to proceed.+In case you need to access the player with SSH, you first have to find its IP numberThis can be found in the Blocks editor under Display spot settings/Information
  
-==== Specifying Installation Drive ====+To log on, use a ssh enabled terminal window. 
  
-Choose "Quick Formatand select target storage device in the list. This can be the device you're installing from, which will then be overwritten. Alternatively, it can be another USB memory stick or internal storage device, such as a hard drive or an SSD.+:!: On Windows, you must enable //OpenSSH Client// under "Windows optional features".
  
-{{ :blocks:porteus:porteus_system_installation.png?800;nolink |}} 
  
-Click "Install System".+<code> 
 +$ ssh root@[ipnumber] 
 +</code> 
 +Enter the password specified in the kiosk-config file.
  
-==== Making multiple players ====+On your computer used to access the player over SSH, you may have to reset the //known_hosts// file. That is because the hash identifying the player changes on each restart. To do so:
  
-While the above step is sufficient for installing PIXILAB Player onto one bootable deviceit can be quite tedious to repeat this procedure if you want the same configuration on numerous playersTo install the system onto multiple players, click the "Save ISO" button instead of the "Install System" button shown on the image above.+  - Open the //known_hosts// file  stored under your user in a hidden folder called //.ssh//  using a  [[blocks:drivers:tools|code editor]] or other plain text editorsuch as Notepad. 
 +  - Delete the line with your player's IP address.  
 +  - Save the file. 
 +  - Use the ssh command again, as shown above, to access the player
  
-Once the new dialog appears, insert a removable, FAT32-formatted, USB drive. You will get a message saying something along the lines of "Removable device /dev/sda1 mounted under /media folder". Once you've seen this message, click "Save ISO" at the bottom of the dialog. + To avoid the known host issue one can use: 
- +<code> 
-An ISO file will be placed at the root level of the USB drive. Use Etcher on another computer to flash any USB drive with the ISO, as described above. +$ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@[ip-number
- +</code> 
-:!: Using [[https://www.balena.io/etcher/|Etcher]] you can flash several USB drives at the same time. +Ip number can be found in blocks editor or in the dhcp servers client lease list
- +
-==== Booting the player over the network ==== +
- +
-If you're using our [[blocks:server:creating_a_server|Linux based server]], you can configure the server so that players can be booted over the network (PXE boot). This has the following advantages: +
- +
-  * No USB stick is needed for each player. +
-  * The player resides only on the server, making it easy to update. +
-  * The configuration of all players also resides in a single place, making it easier to apply changes without making new USB sticks. +
- +
-In order to use this feature, your player PCs must support network boot based on the UEFI standard. This is supported by all reasonably modern NUC computers. Follow the instructions found [[blocks:server:pxe-boot|here]] to enable network boot of players on your server. +
-===== Using the Display Spot ===== +
- +
-Connect the computer to your the network used by the Blocks server. For the above settings to work, you need to have at least a DHCP server on this network (which may be the one built into the [[blocks:server:creating_a_server|Blocks Linux Server]], or a separate one as often built into routers and gateways). Allow the player to restart and connect to the network. A browser window will open, attempting to access the specified URL (e.g., ''http://pixi.guide/spot'' in the example above). If everything works as expected, you should see the PIXILAB logo on screen with an ID string below, allowing you to add it as a Display Spot to Blocks. +
- +
-==== Power Management ==== +
- +
-When used with Blocks 2.2 or later, you can control the power of the player as well as the attached display. This works with most modern NUC models. In order to power up the player, make sure "wake on LAN" is enabled. This is specified in the configuration file above, but on some PCs this must also be enabled in the BIOS settings. +
- +
-The display's power can be controlled in either of two ways: +
- +
-  * If the display supports CEC control (often called something else by display manufacturers), make sure this feature is enabled in the display's or TV's menu settings. +
-  * If you're using a computer-style display, it may not support CEC. Instead it will typically turn itself off and on automatically as the computer is turned off/on. Make sure to enable this automatic power management feature of our display. +
- +
-If you want to use the CEC method, you need to enter the BIOS settings of the NUC. Navigate to ADVANCED,  DEVICES, ONBOARD DEVICES. Enable //HDMI CEC Control// and set //Auto Turn On/Off TV// as shown below. When set in this way, the NUC will tell the TV to turn on and off in unison with itself. +
-  +
-{{ :blocks:porteus:intel_nuc_bios_cec_options.png?800;nolink |}} +
- +
-To make sure your NUC-based display spot restarts after a power failure, in BIOS settings select "Last State" under Advanced, Power, Secondary Power Settings, After Power Failure. +
-{{ :blocks:porteus:intel_nuc_bios_power_options.png?800;nolink |}} +
- +
-==== Booting your players from the Blocks server ==== +
- +
-As an alternative to booting from a USB stick, you may chose to boot the players over the network from your Blocks server. This method is known as network booting or PXE booting. +
-Before attempting to boot the player from the server, make a USB stick as described above, and make sure your player works properly. +
- +
-To enable network booting of you player, do the following (where individual steps may vary depending on the BIOS in the player computer): +
- +
-  * Open the player's bios settings by pressing the appropriate key during startup. +
-  * Select "Boot USB Devices First" to make it boot from USB if one is attached. +
-  * Select "Boot Network Device Last" to make it boot from the server if no USB key is connected. +
-  * Select "Unlimited Boot to Network Attempts" to keep retrying if server can't be reached. +
-  * Disable "legacy boot"+
-  * Disable "secure boot"+
-  * Select "UEFI:LAN:PXE" as the preferred boot device. +
- +
-Follow [[blocks:server:pxe-boot|this guide]] to configure your Blocks server for network booting. +
- +
-==== Manage Pixilab Player Chrome Policies from the Blocks server ==== +
- +
-In some cases, when using the Chrome browser with PIXILAB Player, you may need to override the browser's policies. This can be done by storing a text file named chrome-policies.txt in the directory <your-blocks-root>/public/PIXILAB_Player (where "<your-block-root>" is the location of your Blocks root directory).The path to this file is then be specified in the kiosk-config.txt file used when creating the player the, as described above. This example assumes the default domain name //pixi.guide// (which in your case may be another domain name, or a hardcoded IP address). +
- +
-<code>browser_preferences=http://pixi.guide/public/PIXILAB_Player/chrome-policies.txt</code> +
- +
-The "chrome-policies.txt" file must contain the following policies (for live video capture to work). Replace //pixi.guide// below with your domain name or hardcoded IP address: +
- +
-<code>"VideoCaptureAllowed": true, +
-"VideoCaptureAllowedUrls": [ "http://pixi.guide/", "https://pixi.guide/" ], +
-"Audio​Capture​Allowed": true, +
-"Audio​Capture​Allowed​Urls": [ "http://pixi.guide/", "https://pixi.guide/" ], +
-"Override​Security​Restrictions​On​Insecure​Origin": [ "http://pixi.guide/", "https://pixi.guide/" ],</code> +
- +
- +
-More information on Chrome policies and syntax can be found [[https://cloud.google.com/docs/chrome-enterprise/policies/|here]]+