baseraspberrypisetupbookworm
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| baseraspberrypisetupbookworm [2026/09/17 22:33] – created wikiadmin | baseraspberrypisetupbookworm [2026/09/18 00:35] (current) – [12. Add startup cleanup and recovery] wikiadmin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Raspberry Pi Base Setup for ErgoTech Software ====== | ====== Raspberry Pi Base Setup for ErgoTech Software ====== | ||
| + | |||
| + | This article continues from [[PiFreshSetupIntructions]| Setting up Raspberry Pi for MIX or TransSECS Deployments (Bookworm)]] | ||
| Complete this setup before installing MIX or the TransSECS built deployment. | Complete this setup before installing MIX or the TransSECS built deployment. | ||
| Line 38: | Line 40: | ||
| 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. | ||
| - | Write down whether you installed 32-bit or 64-bit Raspberry Pi OS. ErgoTech may need this information when preparing | + | Download Bookworm from here (scroll |
| ==== Recommended initial settings ==== | ==== Recommended initial settings ==== | ||
| Line 49: | Line 50: | ||
| |Password|'' | |Password|'' | ||
| - | A TransSECS-only system may instead use '' | + | A TransSECS-only system may instead use '' |
| - | The examples in these articles use '' | + | The examples in these articles use '' |
| ===== 3. Write the SD card with Raspberry Pi Imager ===== | ===== 3. Write the SD card with Raspberry Pi Imager ===== | ||
| - | Raspberry Pi Imager is the easiest method for someone who is new to Raspberry Pi. | + | Raspberry Pi Imager |
| In Imager: | In Imager: | ||
| - Choose your Raspberry Pi model. | - Choose your Raspberry Pi model. | ||
| - | - Choose the appropriate Raspberry Pi OS. | + | - Choose the appropriate Raspberry Pi OS (Bookworm) |
| - | - Choose the microSD card carefully. The selected device will be erased. | + | - Choose the microSD card carefully. The selected device will be erased. Check that the size matches what you expect and be very cautious. |
| - Open the OS customization settings. | - Open the OS customization settings. | ||
| - Set the hostname, username, password, time zone, and keyboard layout. | - Set the hostname, username, password, time zone, and keyboard layout. | ||
| - | - Enable **SSH** using password authentication. | + | - Enable **SSH** using password authentication. You will need SSH for the next steps. |
| - Write and verify the card. | - Write and verify the card. | ||
| Line 71: | Line 72: | ||
| ==== Command-line alternative using dd ==== | ==== Command-line alternative using dd ==== | ||
| - | Experienced Linux users may write a downloaded '' | + | Experienced Linux users may write a downloaded '' |
| - | <code text> | + | When using '' |
| - | sudo umount /dev/sdX* 2>/ | + | |
| - | xzcat 2024-07-04-raspios-bookworm-arm64-lite.img.xz | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync | + | |
| - | </ | + | |
| - | + | ||
| - | Replace '' | + | |
| - | + | ||
| - | When using '' | + | |
| <code text> | <code text> | ||
| Line 93: | Line 87: | ||
| sudo raspi-config nonint do_hostname mix | sudo raspi-config nonint do_hostname mix | ||
| timedatectl list-timezones | timedatectl list-timezones | ||
| - | sudo timedatectl set-timezone | + | ssudo timedatectl set-timezone |
| sudo reboot | sudo reboot | ||
| </ | </ | ||
| - | Replace '' | + | Replace '' |
| ===== 4. First login with SSH ===== | ===== 4. First login with SSH ===== | ||
| Line 111: | Line 105: | ||
| The first time you connect, SSH asks whether you trust the computer’s fingerprint. Type '' | The first time you connect, SSH asks whether you trust the computer’s fingerprint. Type '' | ||
| - | If '' | + | If '' |
| <code text> | <code text> | ||
| Line 191: | Line 185: | ||
| Configure Ethernet and WiFi according to the needs of the installation. | Configure Ethernet and WiFi according to the needs of the installation. | ||
| - | |||
| - | Changing the hostname, IP address, or network configuration does not change the ErgoTech license. | ||
| If WiFi is not needed, it may be left unconfigured or disabled using the approved network setup for the system. For MIX systems, network configuration can be managed through the MIX setup page. | If WiFi is not needed, it may be left unconfigured or disabled using the approved network setup for the system. For MIX systems, network configuration can be managed through the MIX setup page. | ||
| Line 209: | Line 201: | ||
| These packages provide serial-port support, SQLite support, system logging, log rotation, Raspberry Pi clock recovery, '' | These packages provide serial-port support, SQLite support, system logging, log rotation, Raspberry Pi clock recovery, '' | ||
| - | For a project which uses Raspberry Pi GPIO: | + | ===== 9. Disable Automatic Software Updates ===== |
| - | < | + | For an ErgoTech system which will run continuously in production, software updates should be performed as a planned maintenance task rather than installed automatically. |
| - | sudo apt install | + | |
| - | sudo systemctl | + | Automatic operating-system updates can change system libraries, networking components, Chromium, Java-related packages, or other software which the ErgoTech application depends on. Disabling automatic updates helps keep a tested production system in a known configuration. |
| + | |||
| + | Stop and disable the unattended-upgrades service: | ||
| + | |||
| + | < | ||
| + | sudo systemctl disable unattended-upgrades | ||
| + | sudo systemctl | ||
| </ | </ | ||
| - | ===== 9. Install Java 8 ===== | + | Stop and disable the two automatic APT update timers: |
| + | |||
| + | < | ||
| + | sudo systemctl disable apt-daily.timer | ||
| + | sudo systemctl stop apt-daily.timer | ||
| + | |||
| + | sudo systemctl disable apt-daily-upgrade.timer | ||
| + | sudo systemctl stop apt-daily-upgrade.timer | ||
| + | </ | ||
| + | |||
| + | Prevent the system from prompting for an operating-system release upgrade. | ||
| + | |||
| + | First make a dated backup: | ||
| + | |||
| + | < | ||
| + | sudo cp / | ||
| + | </ | ||
| + | |||
| + | Open the configuration file: | ||
| + | |||
| + | < | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | Find the line beginning with: | ||
| + | |||
| + | < | ||
| + | Prompt= | ||
| + | </ | ||
| + | |||
| + | Change it to: | ||
| + | |||
| + | < | ||
| + | Prompt=never | ||
| + | </ | ||
| + | |||
| + | Save and exit nano: | ||
| + | |||
| + | * Press **Ctrl+O** to save. | ||
| + | * Press **Enter** to confirm the filename. | ||
| + | * Press **Ctrl+X** to exit. | ||
| + | |||
| + | ==== Verify ==== | ||
| + | |||
| + | Check the automatic-update service and timers: | ||
| + | |||
| + | < | ||
| + | systemctl status unattended-upgrades | ||
| + | systemctl status apt-daily.timer | ||
| + | systemctl status apt-daily-upgrade.timer | ||
| + | </ | ||
| + | |||
| + | The unattended-upgrades service and both APT timers should show which they are disabled or inactive. Press **q** if a status display remains open. | ||
| + | |||
| + | Also verify the release-upgrade setting: | ||
| + | |||
| + | < | ||
| + | grep ' | ||
| + | </ | ||
| + | |||
| + | It should show: | ||
| + | |||
| + | < | ||
| + | Prompt=never | ||
| + | </ | ||
| + | |||
| + | 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. | ErgoTech applications covered by this guide use **Java 8** unless ErgoTech support specifies otherwise. | ||
| Line 229: | Line 296: | ||
| ls /opt/java | ls /opt/java | ||
| </ | </ | ||
| - | |||
| - | For 32-bit Raspberry Pi OS, use '' | ||
| The '' | The '' | ||
| Line 266: | Line 331: | ||
| Register the extracted Java 11 installation using its actual folder name and a lower priority than Java 8. | Register the extracted Java 11 installation using its actual folder name and a lower priority than Java 8. | ||
| - | ===== 10. Keep Linux system logs from filling the SD card ===== | + | ===== 11. Keep Linux system logs from filling the SD card ===== |
| Linux system logs can grow surprisingly large when a device repeatedly reports an error. A nearly full SD card can make SSH and other commands extremely slow and can eventually make the system unusable. | Linux system logs can grow surprisingly large when a device repeatedly reports an error. A nearly full SD card can make SSH and other commands extremely slow and can eventually make the system unusable. | ||
| Line 276: | Line 341: | ||
| <code text> | <code text> | ||
| sudo cp / | sudo cp / | ||
| + | </ | ||
| + | |||
| + | Then edit the system log configuration: | ||
| + | |||
| + | <code text> | ||
| sudo nano / | sudo nano / | ||
| </ | </ | ||
| Line 305: | Line 375: | ||
| </ | </ | ||
| - | ===== 11. Add startup cleanup and recovery ===== | + | ===== 12. Add startup cleanup and recovery ===== |
| - | '' | + | '' |
| - | Make a dated backup: | + | Make a dated backup |
| <code text> | <code text> | ||
| Line 371: | Line 441: | ||
| 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, | ||
| - | The 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. |
| - | ===== 12. Timekeeping ===== | + | ===== 13. Timekeeping ===== |
| ==== Raspberry Pi 5 ==== | ==== Raspberry Pi 5 ==== | ||
| Line 411: | Line 481: | ||
| </ | </ | ||
| - | 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 through | + | 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 |
| - | ===== 13. Verify the base setup ===== | + | ===== 14. Verify the base setup ===== |
| Reboot: | Reboot: | ||
| Line 437: | Line 508: | ||
| At this point the SD card can be used as a **base master image** before TransSECS or MIX is installed. | At this point the SD card can be used as a **base master image** before TransSECS or MIX is installed. | ||
| - | Before removing the SD card, shut the Pi down cleanly: | + | Before removing the SD card, shut the Pi down cleanly |
| <code text> | <code text> | ||
baseraspberrypisetupbookworm.1789698814.txt.gz · Last modified: by wikiadmin
