baseraspberrypisetupbookworm
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| baseraspberrypisetupbookworm [2026/10/26 15:44] – [4. First login with SSH] tputman | baseraspberrypisetupbookworm [2026/10/27 16:55] (current) – tputman | ||
|---|---|---|---|
| Line 4: | Line 4: | ||
| Complete this setup before installing MIX or the TransSECS built deployment. | Complete this setup before installing MIX or the TransSECS built deployment. | ||
| + | |||
| + | This guide was validated using a **Raspberry Pi 4 with Raspberry Pi OS Bookworm Legacy 64-bit Lite** installed through Raspberry Pi Imager. Current MIX and TransSECS deployments were validated on this system using **Java 25**. Sections describing Raspberry Pi 5 hardware, command-line imaging, or MIX-specific network configuration are retained as reference information but were not part of this validation. | ||
| ===== 1. Hardware ===== | ===== 1. Hardware ===== | ||
| Line 9: | Line 11: | ||
| For a new installation, | For a new installation, | ||
| - | A TransSECS Devices system can normally run on a 1 GB Pi or better (2GB or 4GB, for example). If the Raspberry Pi will also display a MIX or MIStudio | + | A TransSECS Devices system can normally run on a 1 GB Pi or better (2 GB or 4 GB, for example). If the Raspberry Pi will also display a MIX user interface in a browser, use **4 GB or more**. |
| If your Raspberry Pi came with an OS installed on its microSD Card, you may start with this installation or you may start with a new SD Card and keep this bundled SD Card for reference. | If your Raspberry Pi came with an OS installed on its microSD Card, you may start with this installation or you may start with a new SD Card and keep this bundled SD Card for reference. | ||
| Line 39: | Line 41: | ||
| - Choose your Raspberry Pi model. | - Choose your Raspberry Pi model. | ||
| - Choose the appropriate Raspberry Pi OS **Bookworm** image. | - Choose the appropriate Raspberry Pi OS **Bookworm** image. | ||
| - | | + | |
| - Use **Lite** when the Pi will run TransSECS or MIX without its own graphical display (running headless). | - Use **Lite** when the Pi will run TransSECS or MIX without its own graphical display (running headless). | ||
| - Use **Desktop** when the Raspberry Pi itself will drive a screen, although the kiosk article also describes installing only the graphical packages which are needed. | - Use **Desktop** when the Raspberry Pi itself will drive a screen, although the kiosk article also describes installing only the graphical packages which are needed. | ||
| Line 72: | Line 74: | ||
| Then connect Ethernet if needed and apply power. | Then connect Ethernet if needed and apply power. | ||
| - | ===== 3. Command-line alternative | + | ===== 3. Command-line |
| - | Experienced | + | This section is an alternative for experienced |
| - | When using '' | + | Experienced Linux users may write a downloaded |
| + | |||
| + | After imaging, create the SSH and user configuration on the boot partition: | ||
| <code text> | <code text> | ||
| sudo touch / | sudo touch / | ||
| echo " | echo " | ||
| - | sudo umount / | ||
| </ | </ | ||
| + | |||
| + | The boot partition mount path varies by Linux distribution. Replace '' | ||
| + | |||
| + | Safely unmount or eject the microSD card before removing it from the computer. | ||
| After the first login, set the hostname and correct time zone: | After the first login, set the hostname and correct time zone: | ||
| Line 97: | Line 104: | ||
| ===== 4. First login with SSH ===== | ===== 4. First login with SSH ===== | ||
| - | Connect Ethernet | + | Connect |
| From Windows Command Prompt, PowerShell, Linux, or macOS: | From Windows Command Prompt, PowerShell, Linux, or macOS: | ||
| Line 171: | Line 178: | ||
| * A Raspberry Pi 4 or 5 using the 64-bit image reports '' | * A Raspberry Pi 4 or 5 using the 64-bit image reports '' | ||
| * The reported Raspberry Pi model matches the hardware being configured. | * The reported Raspberry Pi model matches the hardware being configured. | ||
| + | |||
| ===== 5. Give the Pi a fixed IP address ===== | ===== 5. Give the Pi a fixed IP address ===== | ||
| Line 179: | Line 187: | ||
| ==== Wired Ethernet ==== | ==== Wired Ethernet ==== | ||
| - | For a TransSECS-only | + | For a system using wired Ethernet: |
| <code text> | <code text> | ||
| Line 187: | Line 195: | ||
| Choose **Edit a connection**, | Choose **Edit a connection**, | ||
| - | After saving, restart the connection: | + | Check the connection name with: |
| + | |||
| + | <code text> | ||
| + | nmcli connection show | ||
| + | </ | ||
| + | |||
| + | After saving, restart the connection. | ||
| + | |||
| + | Replace '' | ||
| <code text> | <code text> | ||
| Line 238: | Line 254: | ||
| Choose **Network Configuration**. | Choose **Network Configuration**. | ||
| + | |||
| + | This MIX setup-page method was not part of the base Raspberry Pi validation described above. | ||
| + | |||
| ===== 6. Check the hostname configuration ===== | ===== 6. Check the hostname configuration ===== | ||
| Line 289: | Line 308: | ||
| The Linux login username does not need to change when the hostname changes. | The Linux login username does not need to change when the hostname changes. | ||
| + | |||
| ===== 7. Network interfaces ===== | ===== 7. Network interfaces ===== | ||
| Line 312: | Line 332: | ||
| For MIX systems, network configuration can also be managed through the MIX setup page. | For MIX systems, network configuration can also be managed through the MIX setup page. | ||
| + | |||
| ===== 8. Update Linux and install supporting packages ===== | ===== 8. Update Linux and install supporting packages ===== | ||
| Line 337: | Line 358: | ||
| active | active | ||
| </ | </ | ||
| + | |||
| ===== 9. Disable Automatic Software Updates ===== | ===== 9. Disable Automatic Software Updates ===== | ||
| Line 455: | Line 477: | ||
| These changes do not prevent an administrator from installing updates manually later. Updates can still be performed deliberately during a maintenance period after they have been reviewed and tested. | These changes do not prevent an administrator from installing updates manually later. Updates can still be performed deliberately during a maintenance period after they have been reviewed and tested. | ||
| - | ===== 10. Install Java 8 ===== | ||
| - | ErgoTech applications covered by this guide use **Java 8** unless ErgoTech support specifies otherwise. | + | ===== 10. Install Java 25 ===== |
| - | For a 64-bit | + | Current MIX and TransSECS deployments validated with this guide require **Java 25**. |
| + | |||
| + | The validated | ||
| + | |||
| + | The Java installation used during validation is: | ||
| <code text> | <code text> | ||
| - | cd /tmp | + | /opt/java/zulu25.34.17-ca-fx-jdk25.0.3-linux_aarch64 |
| - | wget -O java8.tar.gz " | + | |
| - | sudo mkdir -p /opt/java | + | |
| - | sudo tar -xzf java8.tar.gz -C /opt/java | + | |
| - | ls /opt/java | + | |
| </ | </ | ||
| - | The '' | + | Create |
| + | |||
| + | <code text> | ||
| + | sudo mkdir -p /opt/java | ||
| + | </ | ||
| - | For example, | + | Install or extract |
| <code text> | <code text> | ||
| - | jdk8u504-b01-jre | + | /opt/java |
| </ | </ | ||
| - | The exact Java version changes over time. Use the **actual folder name shown by '' | + | If the Java package is supplied as a '' |
| For example: | For example: | ||
| <code text> | <code text> | ||
| - | sudo update-alternatives | + | cd /tmp |
| + | wget -O zulu25.tar.gz " | ||
| + | sudo mkdir -p /opt/java | ||
| + | sudo tar -xzf zulu25.tar.gz | ||
| + | ls /opt/java | ||
| </ | </ | ||
| - | Replace '' | + | For the validated installation, |
| - | + | ||
| - | Verify | + | |
| <code text> | <code text> | ||
| - | java -version | + | zulu25.34.17-ca-fx-jdk25.0.3-linux_aarch64 |
| </ | </ | ||
| - | The version should begin with: | + | Verify Java directly from that installation: |
| <code text> | <code text> | ||
| - | openjdk version "1.8.0_ | + | / |
| </ | </ | ||
| - | Also verify which Java executable is selected: | + | The validated installation reports: |
| <code text> | <code text> | ||
| - | readlink | + | openjdk version " |
| + | OpenJDK Runtime Environment Zulu25.34+17-CA | ||
| + | OpenJDK 64-Bit Server VM Zulu25.34+17-CA | ||
| </ | </ | ||
| - | The path should point to the Java 8 installation under: | + | Also verify that the Java executable exists: |
| <code text> | <code text> | ||
| - | /opt/java/ | + | ls -l /opt/java/zulu25.34.17-ca-fx-jdk25.0.3-linux_aarch64/ |
| </ | </ | ||
| - | If Java 17, Java 21, or another version is still selected: | + | MIX and TransSECS select this Java installation explicitly. |
| + | |||
| + | MIX uses '' | ||
| <code text> | <code text> | ||
| - | sudo update-alternatives | + | MIX_JAVA_HOME=/ |
| </ | </ | ||
| - | Choose | + | A TransSECS deployment can use the same Java installation by placing its '' |
| <code text> | <code text> | ||
| - | java -version | + | PATH=/opt/java/ |
| - | readlink | + | |
| </ | </ | ||
| - | again to verify the selection. | + | The MIX and TransSECS installation procedures configure these Java settings when their services are installed. |
| - | ==== Java 11 when specifically required ==== | + | It is not necessary to change the Raspberry Pi's system-wide '' |
| - | Only install or select | + | Java 8 is not required as part of the current Raspberry Pi base setup. During current TransSECS validation, the deployed runtime could not start using Java 8 because the deployed classes require Java 25. |
| - | <code text> | + | Older ErgoTech software releases may have different Java requirements. Follow the requirements for the specific software release when maintaining an older system. |
| - | cd /tmp | + | |
| - | wget -O java11.tar.gz " | + | |
| - | sudo tar -xzf java11.tar.gz -C /opt/java | + | |
| - | ls /opt/java | + | |
| - | </ | + | |
| - | Register the extracted Java 11 installation using its actual folder name and a lower priority than Java 8. | ||
| ===== 11. Keep Linux system logs from filling the SD card ===== | ===== 11. Keep Linux system logs from filling the SD card ===== | ||
| Line 558: | Line 582: | ||
| The exact layout can vary between Raspberry Pi OS versions. | The exact layout can vary between Raspberry Pi OS versions. | ||
| - | On current Raspberry Pi OS Bookworm Lite, the configuration | + | On the Bookworm Lite system used for this validation, the configuration |
| <code text> | <code text> | ||
| Line 581: | Line 605: | ||
| </ | </ | ||
| - | In this layout, there may be no existing '' | + | There was no existing '' |
| Edit the configuration: | Edit the configuration: | ||
| Line 589: | Line 613: | ||
| </ | </ | ||
| - | For the combined Bookworm block, add: | + | For this combined Bookworm block, add: |
| <code text> | <code text> | ||
| Line 615: | Line 639: | ||
| </ | </ | ||
| - | If the system uses a different rsyslog layout with separate log blocks and existing '' | + | If the system uses a different rsyslog layout with separate log blocks and existing '' |
| Do not create '' | Do not create '' | ||
| - | |||
| - | Do not change the other logrotate settings. | ||
| Save with **Ctrl+O**, **Enter**, **Ctrl+X**. | Save with **Ctrl+O**, **Enter**, **Ctrl+X**. | ||
| Line 631: | Line 653: | ||
| The '' | The '' | ||
| - | For a configuration using '' | + | For the validated |
| <code text> | <code text> | ||
| Line 641: | Line 663: | ||
| ==== Limit the systemd journal ==== | ==== Limit the systemd journal ==== | ||
| - | Also cap the systemd journal at 50 MB: | + | Cap the systemd journal at 50 MB: |
| <code text> | <code text> | ||
| Line 663: | Line 685: | ||
| </ | </ | ||
| - | The current | + | The journal |
| ===== 12. Add startup cleanup and recovery ===== | ===== 12. Add startup cleanup and recovery ===== | ||
| - | '' | + | '' |
| - | On Raspberry Pi OS Bookworm Lite, '' | + | On the Bookworm Lite system used for this validation, '' |
| Check whether the file already exists: | Check whether the file already exists: | ||
| Line 688: | Line 711: | ||
| </ | </ | ||
| - | Replace the file with: | + | Use: |
| <code text> | <code text> | ||
| Line 714: | Line 737: | ||
| # Trim oversized Linux system logs | # Trim oversized Linux system logs | ||
| find /var/log -maxdepth 1 -type f | find /var/log -maxdepth 1 -type f | ||
| - | \( -name " | + | \( -name " |
| - | -o -name " | + | -o -name " |
| - | -o -name " | + | -o -name " |
| - | -o -name " | + | -o -name " |
| - | -o -name " | + | -o -name " |
| - | -size +20M \ | + | -size +20M |
| -exec truncate -s 5M {} \; | -exec truncate -s 5M {} \; | ||
| Line 762: | Line 785: | ||
| The test should complete without shell errors. The maintenance log should contain a start time, disk-usage information, | The test should complete without shell errors. The maintenance log should contain a start time, disk-usage information, | ||
| - | '' | + | On the validated Bookworm system, |
| Reboot to verify automatic startup: | Reboot to verify automatic startup: | ||
| Line 777: | Line 800: | ||
| </ | </ | ||
| - | The service should show: | + | The validated system showed: |
| <code text> | <code text> | ||
| Line 786: | Line 809: | ||
| The [[SetupChromeKioskOnRpi]|MIX kiosk article]] adds two browser-specific cleanup commands to this file. | The [[SetupChromeKioskOnRpi]|MIX kiosk article]] adds two browser-specific cleanup commands to this file. | ||
| - | |||
| - | |||
| ===== 13. Timekeeping ===== | ===== 13. Timekeeping ===== | ||
| - | |||
| ==== Raspberry Pi 5 ==== | ==== Raspberry Pi 5 ==== | ||
| The Pi 5 has a built-in real-time clock. With the official RTC battery installed, it can retain the time while power is off. | The Pi 5 has a built-in real-time clock. With the official RTC battery installed, it can retain the time while power is off. | ||
| + | |||
| + | This Raspberry Pi 5 path was not part of the Raspberry Pi 4 validation described above. | ||
| Check: | Check: | ||
| Line 808: | Line 830: | ||
| These models do not have a battery-backed real-time clock. '' | These models do not have a battery-backed real-time clock. '' | ||
| - | On Raspberry Pi OS Bookworm, '' | + | On the Raspberry Pi 4 used for validation, '' |
| Save the clock every five minutes: | Save the clock every five minutes: | ||
| Line 846: | Line 868: | ||
| <code text> | <code text> | ||
| - | CRON: (root) CMD (/usr/ | + | CRON: (root) CMD (/ |
| </ | </ | ||
| Line 857: | Line 879: | ||
| </ | </ | ||
| - | On a Raspberry Pi 3 or 4, '' | + | On the Raspberry Pi 4 used for validation, '' |
| Verify that the time zone is correct and that the system clock is synchronized when a network time source is available. | Verify that the time zone is correct and that the system clock is synchronized when a network time source is available. | ||
| - | If the factory network has no Internet or local time server, the clock may drift. MIX provides another convenient way to set the system time by loading **Get Pre-License Key** on the setup page. In addition, for SECS/GEM tool applications, | ||
| ===== 14. Verify the base setup ===== | ===== 14. Verify the base setup ===== | ||
| Line 873: | Line 894: | ||
| <code text> | <code text> | ||
| - | java -version | + | /opt/java/ |
| - | readlink | + | |
| cat / | cat / | ||
| df -h / | df -h / | ||
| Line 884: | Line 904: | ||
| Verify: | Verify: | ||
| - | * Java reports version | + | * Java 25 starts successfully from '' |
| - | * '' | + | * Java reports version |
| * The boot-maintenance log contains a new start and finish entry from the reboot. | * The boot-maintenance log contains a new start and finish entry from the reboot. | ||
| * The root filesystem has plenty of free space. | * The root filesystem has plenty of free space. | ||
| Line 912: | Line 932: | ||
| If a fixed IP address was configured, reconnect using that address after the reboot to confirm that the network configuration persisted. | If a fixed IP address was configured, reconnect using that address after the reboot to confirm that the network configuration persisted. | ||
| - | At this point the SD card can be used as a **base | + | At this point the SD card can be preserved |
| Before removing the SD card, shut the Pi down cleanly: | Before removing the SD card, shut the Pi down cleanly: | ||
baseraspberrypisetupbookworm.1793043855.txt.gz · Last modified: by tputman
