diff --git a/README_PINN.md b/README_PINN.md index be250e0e..3b8152f3 100644 --- a/README_PINN.md +++ b/README_PINN.md @@ -1,1243 +1,1249 @@ - -# What is PINN (PINN Is Not NOOBS)? - -**An easy enhanced Operating System installer for the Raspberry Pi** - -The latest version of [PINN](http://downloads.sourceforge.net/projects/pinn/pinn-lite.zip) can be downloaded from [sourceforge](http://www.sourceforge.net/projects/pinn). - -This README relates to v3.2.3 - -(PINN-lite does not include any operating systems at all. It is more akin to `NOOBS-lite` rather than `NOOBS`. For that reason, the filename that you download is called `pinn-lite.zip`. More recently, `pinn.zip` has also been made available for download which includes versions of Raspbian and LibreELEC.) - -## Index - -* [Quick Start](#quick-start) -* [PINN User Interface](#pinn-user-interface) -* [PINN Configuration](#pinn-configuration) -* [Installing OSes](#installing-oses) -* [Booting an OS with PINN](#booting-an-os-with-pinn) -* [Other Features](#other-features) -* [Archival Menu](#archival-menu) -* [Maintenance Menu](#maintenance-menu) -* [Advanced Usage](#advanced-usage) -* [Troubleshooting](#troubleshooting) -* [FAQ](#faq) -* [How to Rebuild PINN](#how-to-rebuild-pinn) - -# Introduction - -## Features -- A multi Operating System (OS) installer -- An operating system selector -- A boot manager -- An OS maintenance utility: - - Backup and Restore OSes - - A recovery shell - - SD card clone utility - - Password restorer - - File System Checker - -![alt text](screenshots/os_installed.png "PINN Interface") - -*NOTE: The list of OSes in this image is indicative only. It will vary according to your Raspberry Pi model and the availability of OSes on the installation sources. - -## Benefits - -PINN is designed to make it easy to select and install operating systems for the Raspberry Pi without having to worry about manually imaging your SD card. - -Once PINN is installed on your SD card, the installation of other OSes and a lot of the maintenance of them can mostly be done on the RPi itself without having to remove the SD card. - -The list of OSes that can be installed by PINN is growing all the time, from general purpose Linux distros, through educational versions, media centres to retro gaming solutions. It is the ideal environment to experiment and try out new OSes. - -PINN occupies just over 60MB of your precious SD card space, leaving the majority of the card available for your OSes. - -### General Operation - -On first boot, PINN will format your SD card and allow you to select which OSes you want to install from a list. This OS list is automatically generated from locally available OSes (i.e. those contained in the `/os` directory on disk or an attached USB memory stick) and those available from a remote repository (network connection required). - -Only the latest version of each OS will ever be displayed. So, you can be sure that you have installed the most up-to-date release of your selected OS. - -On any subsequent boot, you can press the SHIFT key to enter the PINN interface and easily reinstall your choice of OSes. It is also possible to press the Left mouse button, press any key on a CEC enabled TV remote, or touch the Raspberry logo on the touchscreen to enter the PINN interface. - -If no input is provided, PINN will proceed to the boot selection dialog. If only one OS installed it will booted immediately, otherwise a menu of installed OSes will be presented for one to be selected. If no choice is detected within a timeout period, the last booted OS, or a default OS will be chosen. - -It is also possible for PINN to be bypassed altogether and one of the OSes booted directly from startup. In this way it is not even noticeable that PINN is there, but it can be reinstated simply by deleting a single file on the PINN partition. - -## Requirements - -- A Raspberry Pi with power supply (works with all models) -- A blank micro SD card (or SD card for an earlier Model 1 RPi). 8GB is the minimum recommended size. 16GB or larger is preferred, especially if you want to install locally from the SD card. -- (optional) A keyboard and mouse (unless you want to use it headlessly). -- (recommended) A network connection (unless you want to install OSes from a local source, but you'll need to download them somehow first!). -- (recommended) A USB uSD card reader is not required, but it is an essential bit of kit to allow a PC to format the uSD card, install PINN initially and general editing if something goes wrong. -- Access to NOOBS formatted OS distributions (via Internet or local memory device). -- [pinn-lite.zip](http://downloads.sourceforge.net/projects/pinn/pinn-lite.zip). - ---- -# Quick Start - -The following Quick Start instructions detail the most common and quickest way to start using PINN. For more details on the other features that PINN provides, please continue reading the rest of this document. - -## Format your SD card as FAT32 - -For **Windows** users, we recommend formatting your SD card using the SD Association's Formatting Tool, which can be downloaded from https://www.sdcard.org/downloads/formatter_4/ . -If you are still using v4 of this tool, you will need to set the "FORMAT SIZE ADJUSTMENT" option to "ON" in the "Options" menu to ensure that the entire SD card volume is formatted - not just a single partition. However, this tool has now been upgraded to v5 where this feature is now the default and is no longer selectable. For more detailed and beginner-friendly formatting instructions, please refer to http://www.raspberrypi.org/quick-start-guide . - -The SD Association's Formatting Tool is also available for Mac users. However, note that the default OSX Disk Utility is also capable of formatting the entire disk (select the SD card volume and choose "Erase" with "MS-DOS" format). - -For **Linux** users, we recommend `gparted` (or the command line version `parted`). (Update: Norman Dunbar has written up the following formatting instructions for Linux users: http://qdosmsq.dunbar-it.co.uk/blog/2013/06/NOOBS-for-raspberry-pi/) - -## Copy the PINN files to your SD card. - -- Download **[pinn-lite.zip](http://sourceforge.net/projects/pinn/files/pinn-lite.zip)** from [sourceforge](http://www.sourceforge.net/projects/pinn) -- Extract the files from pinn-lite.zip file onto the SD card. (Windows built-in zip features may have trouble with this file. If so, use another program such as 7zip.) **In some cases, the files may be extracted into a folder. If this is the case, please copy the files from inside the folder rather than copying the folder itself.** - -## Using Etcher - -An alternative to unzipping the pinn-lite.zip file to a FAT32 formatted drive is to use the popular Etcher program -to burn an image directly to the SD card. - -The [pinn-lite.img.zip](http://sourceforge.net/projects/pinn/files/Etcher/pinn-lite.img.zip) image file you need to burn can be found on [sourceforge](http://www.sourceforge.net/projects/pinn) in the Etcher folder. - -## Boot PINN on your PI - -- Put the PINN SD card into your Pi and boot it. -- On first boot the "RECOVERY" FAT partition will be automatically resized to a minimum, so if you ever put your SD card back into a Windows machine it will look like a very small partition. THIS IS NORMAL. -- PINN does not come supplied with any OSes. You must download them from the internet or provide them on a USB stick. So,.... -- Connect your Pi to the internet with an Ethernet cable (easiest) -- Or If you prefer to use Wifi, click on the wifi button and select your SSID and password. If the wifi button is greyed out, choose another type of wifi dongle. -- A list of OSes that are available to install will be displayed. -- Select one or more OSes that you want and click INSTALL. - -## Self Update - -If PINN is connected to the Internet, it will check for the latest version available for download from the recovery main menu. If a newer version is available, a dialog box will pop up, showing the latest version number and the recent changes. You then have the option to cancel the update, download it, or ignore this version. - -If you cancel the update, the dialog box will keep popping up to remind you each time PINN starts. - -If you select "ignore", this version will be ignored and no dialogs will pop up again until another later version is released. - -If you choose to download this update, the zip file will be downloaded and will overwrite your current version of PINN. PINN will then reboot the RPi and restart PINN. - -It is possible to disable self-update checks by adding the `no_update` option to `recovery.cmdline`. In this case you will have to delete this option to enable self-updates again. Or you can manually check for updates at any time by choosing to `reinstall` the PINN item in the archival menu, but it must be the only item selected. - -You can force new updates to be automatically installed without user interaction by adding the `forceupdatepinn` to `recovery.cmdline`. - ---- - -# PINN User Interface - -The PINN user interface is kept fairly simple, comprising a switchable toolbar of command buttons, a list of installable operating systems and a status window indicating the capacity of appropriate attached memory devices. At the bottom of the screen is a small display customisation dialog that permits changing the language and keyboard layout of the user interface. The model of RPi you are using is also displayed just above this, - -![alt text](screenshots/interface.png "PINN User Interface") - -## Toolbars - -There are three toolbars: - -- **[Main Menu](#main-os-list-window)** - - **[Install](#installing-oses)**: Installs the selected OSes onto your SD card. Changing this selection erases all OSes that are currently installed. - - **[Wifi](#wireless-wifi-networks)**: configures the wifi. - - **[Help](#online-help-via-web-browser)**: [Networking Required] Opens a browser that displays the Raspberry Pi Help page (http://www.raspberrypi.org/help/), allowing people to quickly access help and troubleshooting information. - - **[Info](#info-on-os)**: [Networking Required] Opens a browser that displays the webpage for the selected OS. - - **[Clear](#clear)**: Clears all selected OSes from the available and installed OS lists. - - **[Exit](#exit)**: Quits PINN and reboots the Pi into the OS boot menu. -- **[Archival](#archival-menu)** - - **[Download](#download)**: Downloads an OS for offline installation. - - **[Clone SD](#how-to-clone-an-sd-card)**: Clones the SD to another card. - - **[Info](#info-on-os)**: [Networking Required] Opens a browser that displays the webpage for the selected OS. - - **[Firmware](#pinns-firmware-upgradedowngrade)**: Upgrades or downgrades PINN's firmware for use on RPI3B+ or other models. - - **[Time](#set-time)**: Sets the current time. -- **[Maintenance](#maintenance-menu)** - - **[Edit Config](#easy-config-file-editor)**: Opens a text editor, allowing the `cmdline` and `config` files for the selected installed OS to be edited. - - **[Password](#how-to-recover-from-a-lost-password)**: Allows the password of an OS to be restored or replaced. - - **[Backup](#backup)**: Backup Operating Systems. - - **[Fix](#how-to-fix-an-os)**: Performs repairs on file systems of the selected installed OSes. - - **[Reinstall](#reinstall-individual-oses)**: Allows individual installed OSes to be reinstalled back to their original installation without affecting any of the other installed OSes. - - **[Replace](#replace-individual-oses)**: Allows individual installed OSes to be replaced by other/different OSes without affecting any of the other installed OSes. - - **[Info](#info-on-os)**: [Networking Required] Opens a browser that displays the webpage for the selected OS. - - **[Alias](#alias)**: Renames an installed OS by assigning it an alias. - -The `more` button can be used to cycle through the 3 toolbars. (shortcuts = M) - -## Main OS List Window - -Beneath the toolbar is the main list of Operating Systems which displays the name and a short description of each OS. At the right hand side is an icon indicating the source where the latest version will be installed from (Internet, SD card or USB drive). - -OSes are grouped onto tabs which categorise the type of OS they are. This grouping includes the following categories: General, Media, Gaming, Education, Minimal & Utility. To avoid this grouping, specify **`no_group`** on recovery.cmdline and the OSes will all appear in one list. - -Each OS has a checkbox at the left hand side to select whether it will be installed or not. When PINN is booted with OSes already installed, these OSes will normally have their checkbox automatically ticked (but see the `select` option) and their background will also be light green in colour, along with the word **[installed]** next to their name. Note that installed OSes may be selected in multiple tabs. - -When the **Maintenance** toolbar is selected, this list will change to only show the list of OSes that are already installed, since the toolbar buttons are only relevent to installed OSes. - -## Status Window - -Below the main OS List Window is a status window indicating the capacity of appropriate attached memory devices. - -On the **Main Menu**, this status window will show the space on the SD card that is available to install OSes, along with the amount of required space for the selected OSes. If a USB drive is inserted, a drop down selection box will appear to change the install device from the SD card to the USB device. You will be prompted to format the USB drive if it is not already formatted in the correct way for a PINN installation. The model of RPi you are using is shown in the bottom right corner of this status window. - -On the **Archival** menu, this status window will change to show the amount of available and required space on the USB drive for downloading OSes to. Such a USB drive will only be selectable if it has an /os folder on its first partition to store OSes on. - -On the **Maintenance** menu, this status window will not appear. - -## Display Customisation - -In addition to the toolbars, the following functionality is provided: - - Language Selection: Allows you to select the language used for text display. - - Keyboard Layout Selection: Allows you to select the keyboard layout to be used. - - Display Mode Selection: By default, PINN will output over HDMI at your display's preferred resolution, even if no HDMI display is connected. If you do not see any output on your HDMI display or are using the composite output, press 1, 2, 3 or 4 on your keyboard to select HDMI preferred mode (1), HDMI safe mode (2), composite PAL mode (3), or composite NTSC mode (4), respectively. - - Background colour: To change the background colour for the screen and most windows, add `background=r,g,b` to recovery.cmdline, where 0,0,0 is black and 255,255,255 is white. - - style: The style of the windows display can be modified by adding `style=motif/windows/platinum` to recovery.cmdline - - Wallpaper: The background wallpaper of PINN can be changed by adding your own `wallpaper.jpg` or `wallpaper.png` file to PINN's recovery partition. - - wallpaper_resize: A custom wallpaper can be resized to fill the entire desktop by adding this option. - -Note that all user settings (language, keyboard layout, display mode) will persist between reboots and will also be automatically passed to the installed OSes. This means that if you can see the PINN interface on your display device, you should be able to see the OS CLI/GUI when it boots too. - -## User Control - -### Mouse & Keyboard - -If you are using the RPi locally, the majority of the program can be used with a mouse alone, although a keyboard can make it easier. A keyboard is required to enter the wifi credentials if you want to connect to a network that way. However, the wifi can be preconfigured to avoid even this use. - -### CEC Control - -PINN can be controlled with a TV remote, if the HDMI TV has CEC support. -The default CEC remote keys are mapped as follows: - -To simulate a mouse the following keys are used: -- Cursor Up/Down/Left/Right - moves the mouse cursor in each direction -- Select - mouse click - -For quicker selection, the following keys may be easier if supported by your model of TV: -- Channel Up - previous list item -- Channel Down - next list item -- PLAY key - Enter Key -- Exit Key - Escape -- 9 key - Changes the toolbar -- 1-8 keys - select the menu buttons numbered from left to right - -Any of the above remote keys can be used instead of the keyboard shift key on startup to access the main menu. - -There is no onscreen keyboard in PINN, so a local keyboard will be needed to enter wifi credentials, unless the wifi is preconfigured. - -**NOTE: CEC implementations vary between TV manufacturers. The above key mappings work on Samsung TVs supporting their Anynet+. Other TV brands may not work as well, but the mouse simulation is designed to work on most TVs.** - -It is possible to program your own set of key mappings for your particular remote. -To do this you should create a `cec_keys.json` file. -See the [cec_keys.md](cec_keys.md) document on how to do this. -The default mappings are listed in the [wiki](https://github.com/procount/pinn/wiki/Default-CEC-Key-mappings-for-cec_keys.json). - -### How to use with the Raspberry Pi Touch Display - -If PINN detects you are using the [Raspberry Pi Touch Display](https://www.raspberrypi.org/products/raspberry-pi-touch-display/), it will enable the following functionality: -- A tap on the touchscreen on the Raspberry logo (or holding down the shift key) can activate PINN. -- A tap on the touchscreen will simulate a mouse click. -- A long press on the touchscreen will simulate a mouse double-click. - -There is no onscreen keyboard in PINN, so a local keyboard will be needed to enter wifi credentials, unless the wifi is preconfigured. - -### How to use with Gert's VGA666 DPI display screen - -The VGA666 adaptor connects to the GPIO pins and allows a VGA display to be attached to the RPi. The normal VGA666 installation instructions should be followed to allow it to work with PINN. - -Create a config.txt file with the following lines in it: -``` -dtoverlay=VGA666 -enable_dpi_lcd=1 -display_default_lcd=1 -dpi_group= (e.g. dpi_group=1, or dpi_group=2) -dpi_mode= (e.g. dpi_mode=28 - see tvservice for a list of possible modes) -``` -In addition, the `recovery.cmdline` file should have `disablesafemode` added as a parameter. Without it, the VGA666 will force PINN into safe mode, due to its connections to the GPIO header. - -Remember to also enable the display in each OS that you want to use it with. - -### How to use with Pimoroni's Hyperpixel displays - -Support for Pimoroni's original Hyperpixel and the Hyperpixel4 displays has now been built into PINN in the form of new composite kernel drivers. These provide screen detection, LCD initialisation and touchscreen support for both screens. - -To enable support for these screens add the appropriate dtoverlay to your config.txt file. The supported parameters are provided below: - -Name: pimhyp3 -Info: Overlay for activation of Pimoroni Hyperpixel 3.5" -Load: dtoverlay=pimhyp3,[=] -Params: rotate or rotate_0 Default orientation (landscape) - rotate_1 Rotate 90 degrees CW (portrait) - rotate_2 Rotate 180 degrees (landscape) - rotate_3 Rotate 180 degrees (landscape) - checkonly Checks for presence of screen but does not load driver - poll Uses polling instead of interrupts for Touchscreen - refresh-rate= Sets the refresh rate for polling mode in ms. - -Name: pimhyp4 -Info: Overlay for activation of Pimoroni Hyperpixel 4" -Load: dtoverlay=pimhyp4,[=] -Params: rotate or rotate_0 Default orientation (portrait) - rotate_1 Rotate 90 degrees CW (landscape) - rotate_2 Rotate 180 degrees (portrait) - rotate_3 Rotate 270 degrees (landscap) - checkonly Checks for presence of screen but does not load driver - -To rotate the screens, add `display_lcd_rotate=0` to config.txt. -Replace the `0` with 1,2 or 3 for the various rotations. -To rotate the touchscreen add the appopriate dtparam to the overlay, e.g. `dtoverlay=pimhyp4:rotate_0` -For some rotations, it may also be necessary to set the `framebuffer_width` and `framebuffer_height` parameters. - -Example config.txt files called config.hyp3 and config.hyp4 are included with example settings for each of the 4 rotations. - -Remember to also enable the display in each OS that you want to use it with. - -### How to use PINN Headlessly (VNC) - -It is possible to access PINN without a keyboard and mouse using VNC over a network. - -Append `vncinstall` to the argument list in the `recovery.cmdline` file which is found in the root PINN directory. Using `forcetrigger` in addition can be useful as it is not always easy to connect quickly enough to see the splash screen and hold the shift key remotely. This will force you to use VNC to continue the boot process into your installed OS on each boot, so it is best to remove `forcetrigger` once the required OS's have been installed. Alternatively you could use `gpiotriggerenable` (see later). - -To connect over VNC, you need to know the IP address of the Pi. If you are using DHCP, then you should see your router for a list of the devices connected to it and the IP addresses that have been assigned, or use an IP scanner like Fing to identify your device. If you have a monitor attached and are using `vncshare`, the IP address of the PI is shown in the window title bar for ease of connection. Connect to port 5900 of this IP address. Using tightvnc, you need to specify this as :5900 e.g. 192.168.1.0:5900. - -When VNC is selected, there will be no GUI present on any attached display, as all output is redirected over the VNC network connection. Alternatively, appending `vncshare` to the argument list instead of `vncinstall` will share the screen between the locally attached display and redirect it over the VNC network connection simultaneously. - -NOTE 1: These VNC options are meant to be used on a local LAN only. If your Pi is open to the internet, **anyone** can gain access to PINN as there is no security. - -Note 2: The `remotetimeout` option is useful to gain remote access within a timeout period, yet, allowing the default boot operation to continue. - -### How to access the shell or SSH into PINN - -1. Once the PINN GUI is launched, the busybox shell can be accessed by pressing CTRL-ALT-F2. Use the Username of `root` and password of `raspberry`. Use CTL-ALT-F1 to get back to the GUI. This can be useful for editing recovery.cmdline locally or performing other maintenance tasks on your SD card. - -2. You can also SSH into the PINN basic busybox shell. To enable this feature, add `ssh` to the argument list in the `recovery.cmdline` file. SSH is also accessible from the rescueshell, but allow 5 seconds after boot to allow the network to establish. PINN SSH does not store any keys, so it takes a while to connect at first after each boot as it generates new keys for that session. - -The IP address of the PI is shown in the window title bar for ease of connection. - -Use the username of `root` and password `raspberry` to login to the shell via the console or SSH. - -NOTE: This SSH option is meant to be used on a local LAN only. If your Pi is open to the internet, **anyone** can gain access to PINN as the only security is a well-known username/password. - -### Shell editors - -Two editors are available in the recovery shell: vi and nano. Only the Tiny version of nano is included, so some features may not be present when compared to the version supplied with Raspbian. - -### How to change display output modes - -By default, PINN will output over HDMI at your display’s preferred resolution, even if no HDMI display is connected. If you do not see any output on your HDMI display or are using the composite output, press 1, 2, 3 or 4 on your keyboard to select HDMI preferred mode (1), HDMI safe mode (2), composite PAL mode (3), or composite NTSC mode (4), respectively. - -If you don't have a keyboard, you can still change the display mode used by PINN through editing the `recovery.cmdline` file in the root PINN directory prior to first boot and appending the following argument: -- `display=` (e.g. `display=1` or `display=3`) - ---- - -# PINN Configuration - -## Network Connection - -To get the best out of PINN it is important that it has access to the internet in order to keep itself updated and ensure it has access to the latest version of each OS. Connecting to a switch or router with an ethernet cable is the easiest way to get it online. Wifi support is enabled for all built-in wifi chips and many popular wifi dongles, but it requires a little more setup to connect to the correct wifi network. - -PINN will also work in offline mode to install OSes from a USB memory device, or even from the SD card itself. This is useful at locations where network access is not assured, for example at Raspberry Jams or schools, but the OS installation files still need to be downloaded from the internet at some point and kept up to date. - -### Wired Networks - -If a wired ethernet cable is plugged into the Pi before PINN starts, PINN will connect to your DHCP enabled router. This is the easiest way to access the Internet as it requires no configuration. PINN will connect to a remote download repository and present a list of available operating systems that are available for installation. - -### Wireless Wifi Networks - -If you have the official [Rapberry Pi USB wifi Dongle](https://www.raspberrypi.org/products/usb-wifi-dongle/), or are using the Raspberry Pi 3 Model B/B+ or Pi0W with built-in Wi-Fi, the Wi-Fi icon on the PINN toolbar will be available. Click on this to select your Wi-Fi SSID network and enter the Wi-Fi password. If the password is correct, you will soon be connected to the Internet and PINN will present a list of downloadable operating systems for you to install. - -![alt text](screenshots/wifi_selector.png "Select your Wi-Fi network and enter the password.") - -PINN will remember your wifi network connections, so it is only necessary to enter them once. Some operating systems, like Raspbian, will copy these wifi connections when they install, so they will also be able to use them as soon as they are booted. - -### Preconfiguring a WiFi network - -If you already know your WiFi details, you can preconfigure PINN to use them straight away. Put a copy of your `wpa_supplicant.conf` file on the PINN root partition and PINN will read it and store it in its settings for all future uses. The file will be renamed to `wpa_supplicant.conf.bak` to prevent it from overwriting any subsequent changes you make to the Wi-Fi networks using the GUI. This file will also be passed on to some OSes when they install. - -If you need to have more control over your network connection, like setting a static IP address, it is also possible to drop a new copy of the dhcpcd.conf file onto the PINN root partition and PINN will read it and store it in its settings for all future uses. The file will be renamed to `dhcpcd.conf.bak` after being copied. - -### Network Drivers - -From v1.9.4, the following network drivers have been added to support a wider range of Wi-Fi and network adapters: -* zd1211rw -* rtl8192cu - fixed in v1.9.5 -* rt2500usb -* rt73usb -* rt2800usb -* mt7601u -* rtl8150 -* r8152 -* asix -* ax88179_178a -* dm9601 -* smsc95xx - -from v2.0 -* rtl8188eu - for hubpiwi and others -from v2.1 -* IoTpHAT -from 2.4.5f -* rtl8812 - -NOTE: Realtek wifi drivers (rtl8188eu, rtl8812au, rtl8192cu) are not present in v2.5.1. - -### Enabling SSH for Raspbian - -In recent Raspbian releases, SSH has been disabled by default for security reasons. To override this and enable SSH from first boot, it is necessary to create a file called `ssh` or `ssh.txt` in the Raspbian boot partition. If PINN detects such a file in the PINN recovery partition, it will copy it across to the Raspbian boot partition whenever it is installed, enabling SSH to be enabled immediately, which is very useful especially for headless installs. - -NOTE: this file does not enable SSH access to PINN. To enable that the 'ssh' keyword must be added to `recovery.cmdline`. - -### How to change the default Language, Keyboard layout, Display mode, or Boot Partition etc. - -Edit the `recovery.cmdline` file in the root PINN directory and append the following arguments where relevant: -- `lang=` (e.g. `lang=de` or `lang=en`) -- `keyboard=` (e.g. `keyboard=de` or `keyboard=us`) -- `display=` (e.g. `display=1` or `display=3`) -- `partition=` (e.g. `partition=6`) -- `showall` (shows all available OSes regardless of your Raspberry Pi model) - -Note that these defaults will be overwritten by any changes made in the GUI to these settings. - -## Cmdline Options - -The following is a complete list of all the PINN options that can be added to the `recovery.cmdline` file on the PINN recovery partition to affect its operation: - -- **runinstaller**: This option is present when PINN is first installed to cause it to reformat the SD card. Once reformatted, PINN will delete this option. Manually adding it back in will cause PINN to reformat the SD card on next boot, losing any and all installed OSes, so be careful! - -- **reserve=(+)NNN**: This option will reserve a set amount of space for PINN's partition (typically /dev/mmcblk0p1) when the `runinstaller` option first formats the SD card. This space may be useful for adding OS install files later, or for using the first partition as a transfer area for data between the RPi and a Windows PC that can only read the SD card's first partition. NNN specifies the total size of this partition in MB. The default value is around 64MB. If the size is prefixed with a '+' sign, the value indicates an amount of disk space to be reserved [i]in addition[/i] to the size of PINN's files. So, `reserve=200` will make P1 200MB in size and `reserve=+200` will make it about 263MB in size. - -- **no_update**: Prevents PINN from performing a self-update check on boot up. Use the `reinstall` option to manually check for updates on PINN. - -- **forceupdatepinn** - Forces a PINN self update if one exists, without user interaction. - -- **nofirmware**: Prevents PINN from upgrading the firmware of old OSes to be compatible with PINN. - -- **vncinstall**: Uses a VNC network connection to control PINN instead of any locally attached keyboard, mouse and display. When this is used, any local display will remain blank. - -- **vncshare**: Uses a VNC network connection to control PINN. However, unlike `vncinstall`, any locally attached keyboard and mouse will still be active and the display will be duplicated to the local screen and the VNC connection. - -- **ssh**: Enables an SSH connection to the rescueshell in PINN. It cannot be used to control PINN, but having a shell is very useful to perform remote maintenance on any of the SD card partitions. - -- **rescueshell**: This option causes a local command shell to be opened when PINN is booted. When the shell is exited, PINN will then be booted as normal. Alternatively, inserting a physical jumper between pins 5 & 6 of GPIO header P1 will cause the rescueshell to be entered as well. - -- **lang=\**: Sets the language to be used by PINN - -- **keyboard=\**: Sets the keyboard code to be used by PINN - -- **display=\<1|2|3|4\>**: Sets one of 4 simple display modes - -- **partition=\**: Sets the default partition to be booted if no input is detected. - -- **forcetrigger**: Forces the PINN interface to be entered on startup (as if the shift key had been pressed). This is very useful when using a VNC connection. - -- **gpiotriggerenable**: Forces Recovery Mode to be entered on boot if GPIO pin 3 on header P1 is connected to GND (pin 25). - -- **keyboardtriggerdisable**: Prevents a `SHIFT` keypress from entering Recovery Mode on boot (maybe you have a problematic keyboard which is erroneously triggering every time you boot) - -- **remotetimeout=\