### Start Vagrant Machine for FullPageOS Build Source: https://github.com/guysoft/fullpageos/blob/devel/README.rst Starts the Vagrant machine and provisions it for building FullPageOS. ```bash cd FullPageOS/src/vagrant sudo vagrant up ``` -------------------------------- ### Install unclutter Source: https://github.com/guysoft/fullpageos/wiki/Hide-mouse-cursor Install the unclutter utility to manage mouse cursor visibility. ```bash apt-get install unclutter ``` -------------------------------- ### Install CEC Client Utilities Source: https://github.com/guysoft/fullpageos/wiki/Control-TV-over-HDMI Install the necessary package for controlling HDMI-CEC devices from the command line. ```bash sudo apt install cec-utils ``` -------------------------------- ### Run HyperPixel4 Installer Script Source: https://github.com/guysoft/fullpageos/wiki/Pimoroni-HyperPixel-4.0"-for-Raspberry-Pi-3B--or-older Navigate to the cloned directory and execute the install script with sudo privileges to set up the HyperPixel4 display. ```bash cd hyperpixel4 sudo ./install.sh ``` -------------------------------- ### Install Build Dependencies Source: https://github.com/guysoft/fullpageos/blob/devel/README.rst Installs necessary packages for building FullPageOS. ```bash sudo apt install coreutils p7zip-full qemu-user-static ``` -------------------------------- ### Start Vagrant Environment Source: https://github.com/guysoft/fullpageos/blob/devel/src/vagrant/instructions.rst Starts the Vagrant virtual machine and environment. This command requires sudo privileges. ```bash sudo vagrant up ``` -------------------------------- ### Install Vagrant and NFS Dependencies Source: https://github.com/guysoft/fullpageos/blob/devel/README.rst Installs Vagrant, NFS server, and VirtualBox for building FullPageOS with Vagrant. ```bash sudo apt-get install vagrant nfs-kernel-server virtualbox sudo vagrant plugin install vagrant-nfs_guest sudo modprobe nfs ``` -------------------------------- ### Enable Systemd TV On Service Source: https://github.com/guysoft/fullpageos/wiki/Control-TV-over-HDMI Enable the previously created systemd service to ensure it starts automatically on boot. ```bash sudo systemctl enable tv-on ``` -------------------------------- ### Install Vagrant and NFS Server Source: https://github.com/guysoft/fullpageos/blob/devel/src/vagrant/instructions.rst Installs Vagrant and the NFS kernel server required for shared folders. Ensure you have sudo privileges. ```bash sudo apt-get install vagrant nfs-kernel-server ``` -------------------------------- ### Install Vagrant NFS Guest Plugin Source: https://github.com/guysoft/fullpageos/blob/devel/src/vagrant/instructions.rst Installs the vagrant-nfs_guest plugin, which helps manage NFS shares within the guest VM. Requires sudo privileges. ```bash sudo vagrant plugin install vagrant-nfs_guest ``` -------------------------------- ### Complete config.txt for Display Rotation (Raspberry Pi 4) Source: https://github.com/guysoft/fullpageos/wiki/FAQ A comprehensive example of `/boot/config.txt` settings for Raspberry Pi 4, including display rotation, GPU memory allocation, and disabling newer display drivers to enable legacy configuration. ```config # ......config [pi4] # Enable DRM VC4 V3D driver on top of the dispmanx display stack # disabling, since fkms does not allow rotation via config.txt # https://www.raspberrypi.com/documentation/computers/config_txt.html#display_hdmi_rotate #dtoverlay=vc4-fkms-v3d max_framebuffers=2 [all] # enable raspicam start_x=1 # gpu_mem=128 disable_splash=1 # disable all new rpi4 display driver, use legacy by commenting out dtoverlay # https://www.raspberrypi.com/documentation/accessories/display.html # dtoverlay=vc4-kms-v3d # increase gpu_mem for display rotate gpu_mem=256 # Rotate HDMI screen # 1 is 90 degrees. 2 is 180 degress. 3 is 270 degrees. display_hdmi_rotate=1 # only for lcd screens # 180? # display_lcd_rotate=1 # only used for syncing touch wich screen 1=180? flip? # lcd_rotate=1 ``` -------------------------------- ### Transfer Extension Build Files via rsync Source: https://github.com/guysoft/fullpageos/blob/devel/README.rst Example of using rsync to transfer extension build files to the FullPageOS device. ```bash rsync -av / pi@fullpageos.local:extensions// ``` -------------------------------- ### Remove SingletonLock File Source: https://github.com/guysoft/fullpageos/wiki/Screen-black-after-hostname-change Execute this command to remove the SingletonLock file, which is often the cause of a black screen after a hostname change. This action allows Chrome to start properly on reboot. ```bash rm -rf /home/pi/.config/chromium/SingletonLock ``` -------------------------------- ### Get Raspberry Pi IP Address Source: https://github.com/guysoft/fullpageos/blob/devel/README.rst Retrieves the IP address of the Raspberry Pi, useful for remote access. ```bash hostname -I ``` -------------------------------- ### Turn TV On using cec-client Source: https://github.com/guysoft/fullpageos/wiki/Control-TV-over-HDMI Execute this command to send an 'on' signal to the TV via HDMI-CEC. Ensure the TV is connected and HDMI-CEC is enabled. ```bash echo 'on 0.0.0.0' | cec-client -s -d 1 ``` -------------------------------- ### Systemd Service to Turn TV On at Boot Source: https://github.com/guysoft/fullpageos/wiki/Control-TV-over-HDMI Create a systemd service file to automatically turn the TV on when the Raspberry Pi boots up. This ensures the TV is ready when the system is operational. ```systemd [Unit] Description=Turn TV on using cec-client After=network.target [Service] Type=simple ExecStart=/bin/bash -c "echo 'on 0.0.0.0' | cec-client -s -d 1" [Install] WantedBy=multi-user.target ``` -------------------------------- ### Clone FullPageOS and Dependencies Source: https://github.com/guysoft/fullpageos/blob/devel/README.rst Clones the FullPageOS and CustomPiOS repositories to prepare for building. ```bash git clone https://github.com/guysoft/CustomPiOS.git git clone https://github.com/guysoft/FullPageOS.git ``` -------------------------------- ### Disable vc4-fkms-v3d Overlay Source: https://github.com/guysoft/fullpageos/wiki/PI-3.5-inch-Touchscreen Modify the /boot/config.txt file to comment out the vc4-fkms-v3d dtoverlay. This is often required for the 3.5-inch touchscreen to work properly. ```diff -dtoverlay=vc4-fkms-v3d + #dtoverlay=vc4-fkms-v3d ``` -------------------------------- ### Build a Variant on Vagrant Machine Source: https://github.com/guysoft/fullpageos/blob/devel/README.rst Builds a specified variant of FullPageOS on the Vagrant machine. ```bash cd FullPageOS/src/vagrant run_vagrant_build.sh [Variant] ``` -------------------------------- ### Update CustomPiOS Paths and Build Source: https://github.com/guysoft/fullpageos/blob/devel/README.rst Updates build paths and initiates the FullPageOS build process. ```bash cd .. ../../CustomPiOS/src/update-custompios-paths sudo modprobe loop sudo bash -x ./build_dist ``` -------------------------------- ### Download Latest Raspbian Image Source: https://github.com/guysoft/fullpageos/blob/devel/README.rst Downloads the latest Raspbian Lite image required for building FullPageOS. ```bash cd FullPageOS/src/image wget -c --trust-server-names 'https://downloads.raspberrypi.org/raspios_lite_armhf_latest' ``` -------------------------------- ### Build a FullPageOS Variant Source: https://github.com/guysoft/fullpageos/blob/devel/README.rst Builds a custom variant of FullPageOS. Specify the variant name as an argument. ```bash sudo bash -x ./build_dist [Variant] ``` -------------------------------- ### Configure LightDM to hide cursor completely Source: https://github.com/guysoft/fullpageos/wiki/Hide-mouse-cursor Edit the LightDM configuration file to permanently hide the cursor. Uncomment and modify the xserver-command line. ```bash sudo nano /etc/lightdm/lightdm.conf ``` ```bash xserver-command=X -nocursor ``` -------------------------------- ### Configure SSH Client for Direct Connection Source: https://github.com/guysoft/fullpageos/wiki/Monitoring-FullpageOS-devices Set up your local SSH client configuration to easily connect to a remote FullpageOS device through a jump host using ProxyJump. This simplifies direct access to the device. ```sshconfig Host my-remote-pi User pi # Change this ProxyJump myjumphost.example.com Hostname localhost Port 2222 ``` -------------------------------- ### Run Nightly Build on Vagrant Machine Source: https://github.com/guysoft/fullpageos/blob/devel/README.rst Executes a nightly build on the provisioned Vagrant machine, updating from the 'devel' branch. ```bash cd FullPageOS/src/vagrant run_vagrant_build.sh ``` -------------------------------- ### Build FullPageOS Script Source: https://github.com/guysoft/fullpageos/blob/devel/README.rst These commands are used to build FullPageOS from within a Debian-based system. Ensure you have the necessary dependencies and sufficient free space. ```bash sudo apt-get update sudo apt-get install git cd ~/ git clone https://github.com/guysoft/CustomPiOS cd CustomPiOS/ sudo ./build-docker.sh -r fullpageos ``` -------------------------------- ### Configure X11 Screen Resolution Source: https://github.com/guysoft/fullpageos/wiki/FAQ Create or edit `/usr/share/X11/xorg.conf.d/screen-resolution.conf` to set the desired screen resolution for the HDMI monitor. This requires the monitor identifier to be set previously. ```config Section "Screen" Identifier "HDMI-1" SubSection "Display" Modes "1920x1080" EndSubSection EndSection ``` -------------------------------- ### Load NFS Kernel Module Source: https://github.com/guysoft/fullpageos/blob/devel/src/vagrant/instructions.rst Loads the NFS kernel module to enable NFS functionality. This command requires sudo privileges. ```bash sudo modprobe nfs ``` -------------------------------- ### Configure unclutter for delayed hiding Source: https://github.com/guysoft/fullpageos/wiki/Hide-mouse-cursor Add this line to your X11 configuration file to hide the cursor after a short delay. Adjust the time in seconds as needed. ```bash unclutter -idle 0.01 -root ``` -------------------------------- ### Clone HyperPixel4 Repository Source: https://github.com/guysoft/fullpageos/wiki/Pimoroni-HyperPixel-4.0"-for-Raspberry-Pi-3B--or-older Clone the HyperPixel4 repository to your Raspberry Pi. Use the 'pi3' branch for compatible Pi models. ```bash git clone https://github.com/pimoroni/hyperpixel4 -b pi3 ``` -------------------------------- ### Configure X11 Monitor Identifier Source: https://github.com/guysoft/fullpageos/wiki/FAQ Create or edit `/usr/share/X11/xorg.conf.d/monitors.conf` to define the HDMI monitor identifier. This is part of configuring screen resolution. ```config Section "Monitor" Identifier "HDMI-1" Option "Primary" "false" EndSection ``` -------------------------------- ### Force HDMI Output Configuration Source: https://github.com/guysoft/fullpageos/wiki/Control-TV-over-HDMI Add these lines to /boot/firmware/config.txt to ensure the Raspberry Pi always outputs HDMI. Reboot after applying changes. ```config hdmi_force_hotplug=1 hdmi_drive=2 ``` -------------------------------- ### Force HDMI Output and Set Mode (Raspberry Pi 4) Source: https://github.com/guysoft/fullpageos/wiki/FAQ These settings in `/boot/config.txt` can help resolve display issues on newer Raspberry Pi 4 models by forcing HDMI output and specifying a video mode. ```config hdmi_force_hotplug=1 hdmi_group=2 hdmi_mode=82 config_hdmi_boost=4 ``` -------------------------------- ### Schedule TV Standby and System Shutdown with Cron Source: https://github.com/guysoft/fullpageos/wiki/Control-TV-over-HDMI Configure cron jobs to automatically put the TV into standby mode at a specific time and then shut down the Raspberry Pi gracefully. This is useful for nightly routines. ```cron 0 18 * * * echo 'standby 0.0.0.0' | /usr/bin/cec-client -s -d 1 5 18 * * * sudo /sbin/shutdown -h now >/dev/null 2>&1 ``` -------------------------------- ### Configure SSHD for Autossh User Source: https://github.com/guysoft/fullpageos/wiki/Monitoring-FullpageOS-devices Restrict the 'iot' user's SSH capabilities on the jump host to only allow TCP forwarding. Ensure 'GatewayPorts' is set to 'no' to prevent unintended access. ```bash Match User iot AllowTcpForwarding yes AllowAgentForwarding no X11Forwarding no PermitTunnel no PermitTTY no ForceCommand echo "Port forwarding only" GatewayPorts no ``` -------------------------------- ### Set up Autossh Systemd Service Source: https://github.com/guysoft/fullpageos/wiki/Monitoring-FullpageOS-devices Configure a systemd service on the FullpageOS device to maintain a persistent SSH tunnel using autossh. This service automatically restarts if it fails. ```ini [Unit] Description=Persistent SSH tunnel using autossh After=network-online.target Wants=network-online.target [Service] Type=simple User=pi # Change this to your non-root username Environment=AUTOSSH_GATETIME=0 ExecStart=/usr/bin/autossh -M 0 -N -T -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -o ExitOnForwardFailure=yes -R 2222:localhost:22 iot@jumphost.example.com Restart=always RestartSec=10 [Install] WantedBy=multi user.target ``` -------------------------------- ### Open Terminal in GUI Source: https://github.com/guysoft/fullpageos/wiki/FAQ Run this command from tty1 to open an xterm terminal within the graphical environment. ```bash DISPLAY=:0 xterm ``` -------------------------------- ### Rotate HDMI Display (Raspberry Pi 4) Source: https://github.com/guysoft/fullpageos/wiki/FAQ Use this configuration in `/boot/config.txt` to rotate the HDMI output on Raspberry Pi 4. Ensure no conflicting `dtoverlay` is set and sufficient GPU memory is allocated. ```config # 1 is 90 degrees. 2 is 180 degress. 3 is 270 degrees. display_hdmi_rotate=1 ``` -------------------------------- ### Rotate Screen via xrandr (Raspberry Pi 4 Option 2) Source: https://github.com/guysoft/fullpageos/wiki/FAQ This script snippet rotates the screen using `xrandr` based on the `DISPLAY_ORIENTATION` variable. It's an alternative method for display rotation on Raspberry Pi 4. ```shell # Rotate screen if needed, see 'xrandr -h' for options. DISPLAY_ORIENTATION=normal # optional are: normal left right inverted if [[ "${DISPLAY_ORIENTATION}" != 'normal' ]] then xrandr --orientation ${DISPLAY_ORIENTATION} fi ``` -------------------------------- ### Disable Connectivity Check in FullPageOS Source: https://github.com/guysoft/fullpageos/wiki/FAQ Disable the connectivity check before opening the browser by creating a file named 'check_for_httpd' with the content 'disabled'. This ensures the browser opens regardless of network accessibility. ```bash echo disabled > "/boot/firmware/check_for_httpd" ``` -------------------------------- ### Rotate HyperPixel4 Display Source: https://github.com/guysoft/fullpageos/wiki/Pimoroni-HyperPixel-4.0"-for-Raspberry-Pi-3B--or-older Set the screen rotation for the HyperPixel4 display. This command updates touch settings and screen configuration. Available options are left, right, normal, and inverted. ```bash hyperpixel4-rotate left ``` ```bash hyperpixel4-rotate right ``` ```bash hyperpixel4-rotate normal ``` ```bash hyperpixel4-rotate inverted ``` -------------------------------- ### Change VNC Password Source: https://github.com/guysoft/fullpageos/blob/devel/README.rst Changes the VNC password for remote GUI access. This is separate from the user password. ```bash x11vnc -storepasswd ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.