Table of Contents
Installing Deployments from TransSECS Servers or Devices on a Raspberry Pi
Complete Raspberry Pi Base Setup first.
These instructions apply to both TransSECS Devices and TransSECS Servers.
The examples assume:
/home/mix/secs
If your login user is pi, the equivalent location is /home/pi/secs.
1. Copy the TransSECS deployment to the Pi
The deployment normally contains run.sh, one or more .jar files, log4j.xml, and ErgoTechConfiguration.properties.
Use SFTP or SCP rather than ordinary FTP. SSH/SFTP uses port 22 and does not require a separate FTP server on the Pi.
Using scp
From a PC in the directory which contains the secs deployment folder:
scp -r secs [email protected]:/home/mix/
Replace the IP address with the Pi’s actual address.
Using sftp
sftp [email protected] put -r secs quit
Using a graphical file-transfer program
WinSCP or FileZilla can also be used.
Choose:
| Setting | Value |
|---|---|
| Protocol | SFTP |
| Host | Pi IP address or mix.local |
| Port | 22 |
| User | mix |
| Password | ErgoErgo |
Copy the complete secs folder into /home/mix.
2. Test the deployment manually
In the SSH session:
cd /home/mix/secs chmod +x run.sh ./run.sh
On the first start, TransSECS should report a prelicense key. Send this number to ErgoTech.
Press Ctrl+C to stop the application after recording the key.
If the message contains prelicense code: but no number, contact ErgoTech. The deployment may need to be rebuilt for the Raspberry Pi before it can be licensed.
Serial or SECS-I equipment
For a serial connection, the Pi’s serial library is normally under /usr/lib/jni.
Edit:
nano run.sh
Set the library path to:
export LD_LIBRARY_PATH=./:../lib/:/usr/lib/jni
Save with Ctrl+O, Enter, Ctrl+X.
HSMS network connections do not require this change.
3. Install the license
ErgoTech will provide:
ErgoIOTLicense.lic
Copy it into the TransSECS deployment folder:
scp ErgoIOTLicense.lic [email protected]:/home/mix/secs/
Run the deployment once more:
cd /home/mix/secs ./run.sh
It should start without the missing-license message.
Press Ctrl+C to stop it. The next step configures automatic startup.
4. Run TransSECS automatically as a Linux service
Linux uses systemd to manage background services. Running TransSECS as a service means it starts automatically when the Pi boots and can restart automatically if the process stops.
It is also important to send Java console output to a dedicated TransSECS log. Otherwise Linux may copy repeated application messages into syslog or daemon.log, which can consume a large amount of SD-card space.
Create the log directory:
mkdir -p /home/mix/secs/logs
Create the service:
sudo nano /etc/systemd/system/transsecs.service
Paste:
[Unit] Description=TransSECS After=network-online.target Wants=network-online.target [Service] User=mix WorkingDirectory=/home/mix/secs ExecStart=/bin/sh /home/mix/secs/run.sh Restart=always RestartSec=10 StandardOutput=append:/home/mix/secs/logs/transsecs-console.log StandardError=append:/home/mix/secs/logs/transsecs-console.log [Install] WantedBy=multi-user.target
Save with Ctrl+O, Enter, Ctrl+X.
Tell systemd about the new service, enable it for future boots, and start it now:
sudo systemctl daemon-reload sudo systemctl enable transsecs sudo systemctl start transsecs sudo systemctl status transsecs
Look for:
active (running)
Press q to leave the status display.
Check the application console log:
tail -n 20 /home/mix/secs/logs/transsecs-console.log
You should see recent TransSECS startup messages.
If you use tail -f instead, the command deliberately stays open and shows new messages as they arrive. Press Ctrl+C to return to the command prompt.
5. Limit the TransSECS console log
Create:
sudo nano /etc/logrotate.d/transsecs-console
Paste:
/home/mix/secs/logs/transsecs-console.log {
size 5M
rotate 5
compress
delaycompress
missingok
notifempty
copytruncate
create 0644 mix mix
}
Save with Ctrl+O, Enter, Ctrl+X.
Check the configuration safely:
sudo logrotate -d /etc/logrotate.d/transsecs-console
The output should mention the TransSECS console log, a 5 MB threshold, and 5 rotations. There should be no error messages.
copytruncate allows logrotate to rotate the file without stopping TransSECS.
SECSMessages.log is already limited by the log4j.xml supplied with the deployment and does not need another logrotate rule.
6. Reboot and verify
sudo reboot
Reconnect after about a minute and run:
systemctl status transsecs tail -n 20 /home/mix/secs/logs/transsecs-console.log df -h / ls -lh /var/log
Verify:
- TransSECS is
active (running). - The console log contains recent application messages.
- The SD card has plenty of free space.
- Linux logs such as
sysloganddaemon.logare remaining reasonably small.
