242 lines
5.9 KiB
Markdown
242 lines
5.9 KiB
Markdown
# Installation tools for APUs and Raspberry Pi boxes
|
|
|
|
Supports the following boxes used at LIN sample environment:
|
|
|
|
- bare-apu: Linux box
|
|
- controlbox: from FRM2
|
|
- ionopimax: PLC from Sfera Labs with compute module 3
|
|
- ionopi: PLC from Sfrea labs with Raspberry Pi 3
|
|
- dual-eth-rpi: dual ethernet Raspberry Pi with compute module 4
|
|
|
|
`cfg/` contains the configuration files for all boxes
|
|
|
|
`to_system/` contains the files to be installed in the system
|
|
|
|
`to_<box>/` system files specific for a box (box names as in above list)
|
|
|
|
|
|
## config files
|
|
|
|
filename: cfg/(hostname)_(hexdigits).cfg
|
|
|
|
* (hostname) the hostname to be given on startup
|
|
* (hexdigits) the last six digits of the ethernet adress of the first interface on the APU (leftmost plug)
|
|
|
|
### example content of a config files for a control box:
|
|
|
|
```
|
|
[BOX]
|
|
type=controlbox
|
|
|
|
[NETWORK]
|
|
eth0=192.168.127.254 # leftmost socket: connect here a moxa with factory settings
|
|
eth1=192.168.2.2 # connected device will get this ip via DHCP
|
|
eth2=192.168.3.3 # or must be configured static to this IP
|
|
eth3=dhcp # rightmost socket is the uplink
|
|
|
|
[ROUTER]
|
|
3000=/dev/ttyUSB0 # routing 3000 to the internal serial port /dev/ttyUSB0
|
|
5900=192.168.2.33 # routing VNC (local port 5900 to port 5900 on 192.168.2.33
|
|
8080=192.168.127.254:80 # routing 8080 to port 80 of 192.168.127.254
|
|
|
|
[FRAPPY]
|
|
cfg=uniax # the cfg file for the frappy server
|
|
port=5000 # the port for the frappy server
|
|
|
|
[DISPLAY]
|
|
startup_text=startup...|HOST|ADDR # startup text, 3 lines separated with |
|
|
```
|
|
|
|
the [BOX] section is optional for controlbox and bare-apu
|
|
|
|
|
|
### example content of a config files for a control box:
|
|
|
|
```
|
|
[BOX]
|
|
type=ionopi
|
|
|
|
[NETWORK]
|
|
eth0=wan
|
|
```
|
|
|
|
## network configuration
|
|
|
|
The example above fits the most cases.
|
|
|
|
Here a detailed description of possible settings:
|
|
|
|
### fixed IP
|
|
```
|
|
eth1=192.168.3.5
|
|
```
|
|
Configure the IP address of the connected device to get the specified IP via DHCP or
|
|
configure the device to with this static IP. The last number must be within 1..254,
|
|
the APU port itself will get 1 (or 2, if the specified IP is 1).
|
|
|
|
### custom network
|
|
```
|
|
eth2=192.168.3.1/24 # our ip address, the static address of the connected device must
|
|
# be within 1-254 and not match our own
|
|
```
|
|
24 means 24 bit = 3 bytes network address.
|
|
A local network with static addresses. This way, the APU can get an other address than
|
|
192.168.x.1 or 192.168.x.2 or the network address size might be defined other than 24.
|
|
Probably needed rarely.
|
|
|
|
### uplink via DHCP
|
|
```
|
|
eth0=wan # or eth0=dhcp
|
|
```
|
|
Uplink configured for DHCP in any network n.x.y.z with n < 192
|
|
|
|
### customized uplink
|
|
```
|
|
eth0=wan,192.168.1.0/24
|
|
```
|
|
Add more networks to the allowed uplink range. More than one range is allowed, comma separated.
|
|
Must not overlap networks specified for other ports!
|
|
|
|
### disabled port
|
|
```
|
|
eth3=off # disabled
|
|
```
|
|
|
|
## display
|
|
|
|
available on control boxes (MLZ type) only. must therefore not be present on bare apu boxes.
|
|
|
|
|
|
## Installation of a Fresh Control Box or bare APU
|
|
|
|
Install image by means of the USB stick BOOT_TINY.
|
|
The stick has TinyLinux on it and some additional scripts,
|
|
if you do not have one, you may create it from another box.
|
|
|
|
### a) create a USB stick with TinyLinux (omit if you have the stick already)
|
|
|
|
log in as root/FrappyLinse to an apu box
|
|
```
|
|
apu> cd boxtools
|
|
apu> ./makeusb
|
|
```
|
|
You are asked to give the device name from a list (typically sdb)
|
|
before it writes to the stick.
|
|
|
|
|
|
### b) boot with TinyLinux from USB stick
|
|
|
|
Connect a Mac with an USB to serial adapter (and null-modem!).
|
|
```
|
|
mac> screen /dev/tty.usbserial-130 115200
|
|
```
|
|
|
|
Do not yet conenct to LAN, if the box is not yet registered to PacketFence.
|
|
Plug USB stick and start the box, wait for prompt 'tc@box:' and cd into BOOT_TINY
|
|
```
|
|
cd /media/BOOT_TINY
|
|
```
|
|
|
|
### c) Determine address/name for registering in PacketFence
|
|
|
|
```
|
|
sh reg
|
|
```
|
|
enter new hostname (HWaddr will be on the output)
|
|
register to PacketFence and set role to sinq-samenv
|
|
connect LAN to rightmost socket on a bare APU or the leftmost socket on a control box
|
|
|
|
|
|
### d) Copy Image to APU SSD
|
|
|
|
```
|
|
sh write_to_ssd
|
|
```
|
|
some random art images are shown ...
|
|
```
|
|
images from l_samenv@samenv:boxes/apuimages:
|
|
|
|
2022-11-09.lz4
|
|
2024-01-18.lz4
|
|
|
|
which image?
|
|
```
|
|
|
|
* Enter the image you want to write (typically the last one).
|
|
* It will take around 10 mins to write the image.
|
|
* remove the stick, power off/on (or do `sudo reboot now`)
|
|
|
|
|
|
### e) Install Display Firmware (control box only)
|
|
|
|
display in test mode?
|
|
- finish it by touching several times
|
|
|
|
> cd boxtools
|
|
> git pull
|
|
> sudo python3 display.py fw_display.bin
|
|
|
|
|
|
### f) Install Services
|
|
|
|
login with root/FrappyLinse
|
|
```
|
|
> cd boxtools
|
|
> git pull
|
|
> python3 install.py
|
|
...
|
|
enter host name:
|
|
...
|
|
|
|
> reboot now
|
|
```
|
|
|
|
DONE!
|
|
|
|
|
|
### f) Cloning an Image from an Existing Box
|
|
|
|
Use (b) above to boot from the BOOT_TINY USB stick
|
|
```
|
|
$ sh clone
|
|
```
|
|
You are asked to confirm or change the image name.
|
|
|
|
|
|
## Installation of a Fresh Raspberry Pi
|
|
|
|
### install from cloned image (work currently from a Mac only)
|
|
|
|
Put compute module into PoE adapter, connect microUSB 'POWER' to
|
|
a USB power supply, and connect micorUSB 'SLAVE' to your computer.
|
|
|
|
Go to the rpi subdir and then start
|
|
```
|
|
cd rpi
|
|
`./write_to emmc
|
|
```
|
|
|
|
You may test starting up the compute module in the PoE adapter, with a
|
|
LAN cable attached, or directly in the iono pi max.
|
|
|
|
* on startup, the name will be boxaaaaaa with aaaaaa the last digits of the ethernet address
|
|
* a new file should be created in the cfg sub directory
|
|
|
|
|
|
### installing RPI tools from an fresh raspberry image (downloaded with Raspberry Pi Imager)
|
|
|
|
use the script install-ionopimax.sh or install-ionopi.sh
|
|
(together with configsrtc.sh config-rtc-MCP79410.service)
|
|
to add the needed items for iono pi and the run time clock
|
|
|
|
### create a clone image
|
|
|
|
In the rpi subdirectory, execute
|
|
```
|
|
./clone
|
|
```
|
|
An dated image will be created within about 10 min. and copied to the given directory.
|
|
|
|
|
|
|