This is a technical documentation of iDiD Debian 2021/2022.
Content
4 Basic usage
4.1 Keyboard shortcuts
4.2 Power commands (run in terminal)
4.3 Stopping and starting iDiD (run in terminal)
6 Network connections
6.1 Static ip
8 Screensettings
8.1 Rotation
8.2 Setting resolution
8.3 Configuring videowall settings
8.3.1 With virtual display (intel)
8.3.2 Configuring obconf for videowalls
10 Services
10.1 Managing services
10.2 Keepalive
10.3 Updater
10.4 Screensettings
10.5 Teamviewer keepalive
10.6 Network check
10.7 Unattended upgrades
10.8 Wifi reconnect
11 Firewall
11.1 Allow incoming traffic from port
11.2 Deny incoming traffic from port
11.3 Remove rule
1 Technical information
- Os version: Debian buster (10)
- Window manager: openbox
- Display manager: lightdm
- Default text editor: gedit
- Default firewall: ufw
- Network manager: network-manager-gnome
- Default time zone: Europe/Helsinki (wintertime GMT+2, summertime GMT+3)
- Default keyboard layout: fi
- Default Debian package mirror: nic.funet.fi
- iDiD repository: apt.idid.fi
- Default username: idid-player
- Default password: iDiDiDiD (Note: the password will change when iDiD is registered)
- Minimum specs: 20gb of disk space, 1gb of ram, x86_amd64 single core processor
2 Installation instructions
NOTE: the following instructions will overwrite all data on the usb drive and the disk the operating system is installed on.
- Download amd64 netinst image from https://www.debian.org/releases/buster/debian-installer/.
- Burn iso to usb or start install in a vm manager
- Burning image to usb
- Ventoy is a cross platform tool for creating bootable usb drives https://www.ventoy.net/en/index.html
- On Linux dd or startup disk creator can also be used.
- On Windows https://rufus.ie/ can also be used.
- On Mac https://www.balena.io/etcher/ can also be used.
- Configuring a vm
- Select the Debian iso as the installation media, configure the vm to have at least 1gb of memory, 1 cpu core and 20gb of disk space.
- Burning image to usb
- Run the installer
- Connect the device to a network (preferably one with dhcp).
- Select “Advanced options”
- Select “Automated install”
- When the installer prompts for the “Location of initial preconfiguration file“ enter http://apt.idid.fi and select continue. (the installer uses US keyboard layout at this point)
- Disk formatting and grub
- If the installer prompts you to format the disk and select “Guided - use entire disk”.
- If the installer prompts you to select the disk to install grub on it is usually safe to assume the correct disk is /dev/sda. (the installer uses Finnish keyboard layout by default at this point shift+7 will type /).
- After os installation the image will reboot and install teamviewer and iDiD. The installation is complete when iDiD displays the slides “Soita tai lähetä sähköpostia osoitteeseen support@idid.fi +358 10 281 4350” and “Please contact us via email or call us. support@idid.fi +358 10 281 4350”.
3 Installation status
When the os is installing ctrl+alt+f4 will display a console view of the installation.
When the os has been installed but iDiD installer is still running status can be checked by opening a terminal window (ctrl+alt+t) and running sudo systemctl status -u run-setup -f .
4 Basic usage
4.1 Keyboard shortcuts
- Refresh iDiD: ctrl+shift+5
- Disable iDiD kiosk mode: ctrl+shift+9
- Open a terminal window: ctrl+alt+t
4.2 Power commands (run in terminal)
- Power off: shutdown now
- Reboot: reboot
4.3 Stopping and starting iDiD (run in terminal)
- Stop iDiD: stop
- Start iDiD: start
5 Locale settings
- Change keyboard layout: run sudo dpkg-reconfigure keyboard-configuration in the terminal
- Change time zone: run sudo dpkg-reconfigure tzdata
6 Network connections
IP-address
- Type in terminal: ip address
- IP information is printed on the screen.
6.1 Static ip
- Select connection and press the settings cog.
- Select IPv4 Settings and select Manual from the Method dropdown.
- Press the Add button and input the ip address, Netmask and Gateway. Note: Netmask can be either a cidr value or the full subnetmask but cirdr value is the only value displayed. For example, typing 255.255.255.0 will result the Netmask field displaying 24.
- Input DNS server(s) in the DNS servers field. Use commas to separate addresses.
7 Connecting to Wi-Fi
- Press the plus button.
- Choose Wi-Fi and press Create.
- Input the SSID of the network.
Note: In some cases, choosing the network band is necessary. The recommended band is B/G (2.4 GHz).
- Select Wi-Fi Security if the connection has security enabled.
Note: Most Wi-Fi networks use WPA & WPA2 Personal - Input the password and press save.
- If the network is hidden run:
nmcli con mod "Wi-Fi connection 1" 802-11-wireless.hidden yes
8 Screensettings
To edit screensettings run gedit screensettings in the terminal.
8.1 Rotation
Remove # from the start of the line that contains the output and change normal to the correct rotation. Possible rotations: left, right, normal, and inverted.
For example, the following configuration rotates the screen connected to HDMI1 90° and HDMI2 270°.
8.2 Setting resolution
To set the outputs to send fullhd signal remove # from line “#xrandr --newmode FullHD 138.5 1920 1968 2000 2080 1080 1083 1088 1111 +HSync -VSync” to define a new resolution and from the start of the line that contains the output.
For example, the following configuration outputs fullhd signal from HDMI1 and HDMI2.
Rotation can also be set by replacing normal with left, right or inverted.
After editing the file press save and reboot by running reboot in terminal.
8.3. Configuring videowall settings
Note: replace output names with the corresponding display names from xrandr list (run xrandr command in terminal). Obconf also needs to configured for videowall to work correctly.
8.3.1 With virtual display (intel):
2 landscape screens side by side
#!/bin/bash
xrandr --newmode "DoubleFullHD" 345.02 3840 4080 4496 5152 1080 1081 1084 1118 -HSync +Vsync
xrandr --newmode "FullHD" 138.5 1920 1968 2000 2080 1080 1083 1088 1111 +HSync -VSync
xrandr --addmode VIRTUAL1 "DoubleFullHD"
xrandr --addmode HDMI1 "FullHD"
xrandr --addmode HDMI2 "FullHD"
xrandr --output VIRTUAL1 --primary --mode DoubleFullHD --pos 0x0
xrandr --output HDMI1 --mode FullHD --rotate normal --pos 0x0
xrandr --output HDMI2 --mode FullHD --rotate normal --pos 1920x0
2 landscape screens stacked
#!/bin/bash
xrandr --newmode "DoubleFullHD" 345.02 3840 4080 4496 5152 1080 1081 1084 1118 -HSync +Vsync
xrandr --newmode "FullHD" 138.5 1920 1968 2000 2080 1080 1083 1088 1111 +HSync -VSync
xrandr --addmode VIRTUAL1 "DoubleFullHD"
xrandr --addmode HDMI1 "FullHD"
xrandr --addmode HDMI2 "FullHD"
xrandr --output VIRTUAL1 --primary --mode DoubleFullHD --pos 0x0
xrandr --output HDMI1 --mode FullHD --rotate normal --pos 0x0
xrandr --output HDMI2 --mode FullHD --rotate normal --pos 0x1080
2 portrait screens side by side
#!/bin/bash
xrandr --newmode "DoubleFullHD" 354.80 2160 2328 2568 2976 1920 1921 1924 1987 -HSync +Vsync
xrandr --newmode "FullHD" 138.5 1920 1968 2000 2080 1080 1083 1088 1111 +HSync -VSync
xrandr --addmode VIRTUAL1 "DoubleFullHD"
xrandr --addmode HDMI1 "FullHD"
xrandr --addmode HDMI2 "FullHD"
xrandr --output VIRTUAL1 --primary --mode DoubleFullHD --pos 0x0
xrandr --output HDMI1 --mode FullHD --rotate left --pos 0x0
xrandr --output HDMI2 --mode FullHD --rotate left --pos 1080x0
3 landscape screens side by side
#!/bin/bash
xrandr --newmode "Combo" 519.25 5760 6128 6744 7728 1080 1083 1093 1120 -hsync +vsync
xrandr --newmode "FullHD" 138.5 1920 1968 2000 2080 1080 1083 1088 1111 +HSync -VSync
xrandr --addmode VIRTUAL1 "Combo"
xrandr --addmode HDMI1 "FullHD"
xrandr --addmode HDMI2 "FullHD"
xrandr --addmode HDMI3 "FullHD"
xrandr --output VIRTUAL1 --mode Combo --rotate normal --pos 0x0 –primary
xrandr --output HDMI1 --mode FullHD --rotate normal --pos 0x0
xrandr --output HDMI2 --mode FullHD --rotate normal --pos 1920x0
xrandr --output HDMI3 --mode FullHD --rotate normal --pos 3840x0
8.3.2 Configuring obconf for videowalls
- Open obconf by running obconf command in the terminal.
- Select Windows.
- Set “Prefer to place windows on” to “The primary monitor”.
- Set “Primary monitor” to “Active monitor”.
9 Setting ntp servers
Debian uses ntp server addresses starting with debian.pool.ntp.org (for example 2.debian.pool.ntp.org).
- Open terminal (ctrl+alt+t) type sudo gedit /etc/systemd/timesyncd.conf and press enter.
- Remove # character from the start of line #NTP= and #FallbackNTP=.
- Add ntp servers and press save.
- Close gedit and reboot.
10 Services
10.1 Managing services
- Stopping a service: sudo systemctl stop <service_name>
- Starting a service: sudo systemctl start <service_name>
- Enabling service: sudo systemctl enable <service_name>
Enabling a service will result the service running on startup. - Disabling service: sudo systemctl disable <service_name>
Disabling a service will prevent the service from running on startup.
10.2. Keepalive
Files: /etc/systemd/system/keepalive.service, /usr/bin/keepalive-service.sh
Functionality: Checks that iDiD process is running every 15 seconds and restarts it when necessary.
Do not disable this service.
10.3 Updater
Files: /etc/systemd/system/updater.service, /usr/bin/updater-service.sh
Functionality: Updates iDiD package every 3 hours and restarts it if the package was updated.
10.4 Screensettings
Files: /etc/systemd/system/screensettings.service, /usr/bin/screensettings-service.sh
Functionality: Runs screensettings in the user's home directory as the user on DISPLAY=:0.
10.5 Teamviewer keepalive
Files: /etc/systemd/system/teamviewer-keepalive.service, /usr/bin/teamviewer-keepalive-service.sh
Functionality: Checks if teamviewer service is enabled and running every 2 minutes. If teamviewer is not enabled the service will not automatically restart teamviewer service.
This service is only installed when Teamviewer installation is enabled.
10.6 Network check
Files: /etc/systemd/system/network-check.service, /usr/bin/network-check-service.sh
Functionality: Check if network is present on boot and every 2 hours. iDiD is restarted when network connection is active. NetworkManager service is restarted if there has not been a connection in the last 2 hours.
10.7 Unattended upgrades
/etc/systemd/system/apt-daily.timer.d/override.conf
[Timer]
OnCalendar=*-*-* 6:00
RandomizedDelaySec=1h
/etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";
/etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
Unattended-Upgrade::MinimalSteps "true";
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
10.8 Wifi reconnect
Files: /etc/systemd/system/wifi-reconnect.service, /usr/bin/wifi-reconnect-service.sh
Functionality: Reconnects to wifi networks. Needed for hidden ssids for now since nm-connection-editor doesn't automatically connect to hidden networks.
11 Firewall
11.1 Allow incoming traffic from port
sudo ufw allow <port>
For example, sudo ufw allow 22
11.2 Deny incoming traffic from port
sudo ufw deny <port>
For example, sudo ufw deny 22
11.3 Remove rule
sudo ufw delete <rule> <port>
For example, sudo ufw delete allow 22 or sudo ufw delete deny 22
12 Touch settings
Run
xinput
Example output:
⎡ Virtual core pointer id=2[master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4[slave pointer (2)]
⎜ ↳ Logitech USB Optical Mouse id=10[slave pointer (2)]
⎣ Virtual core keyboard id=3[master keyboard (2)]
↳ Virtual core XTEST keyboard id=5[slave keyboard (3)]
↳ Power Button id=6[slave keyboard (3)]
↳ Power Button id=7[slave keyboard (3)]
↳ USB Wired Keyboard id=8[slave keyboard (3)]
↳ USB Wired Keyboard id=9[slave keyboard (3)]
Edit file ~/touchsettings. The script doesn't do anything by default. To use it remove # character from the start of xinput line and add the name of the device after "pointer:" inside of ' characters.
# Touch rotate left
# xinput set-prop 'pointer:' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1 &
# Touch rotate right (ELO standard)
# xinput set-prop 'pointer:' 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1 &
The following example rotates Logitech USB Optical Mouse input to the left.
# Touch rotate left
xinput set-prop 'pointer:Logitech USB Optical Mouse' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1 &
# Touch rotate right (ELO standard)
# xinput set-prop 'pointer:' 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1 &
Document created 28.12.2020 (ER)
Document updated 2.5.2022 (JAA)
Document updated 25.5.2022 (ER)
Document updated 07.06.2022 (ER)