-
Notifications
You must be signed in to change notification settings - Fork 0
3.2.1 Cubes Setup
(Author: Patrick Pogscheba, date: 12/2023)
Install ... https://ostechnix.com/install-fedora/
user: pc
pw: 1234 # or use a better one ?
sudo dnf update
gsettings set org.gnome.desktop.screensaver lock-enabled false
in UI:
Energy settings: disable display lock, turn on never shutdown
enable dark theme
sudo vi /etc/gdm/custom.conf
######## CONTENT
[daemon]
# Uncomment the line below to force the login screen to use Xorg
#WaylandEnable=false
AutomaticLoginEnable=true
AutomaticLogin=pc
gsettings set org.gnome.desktop.remote-desktop.rdp enable true
in UI -> settings -> Sharing: set PW to 1234
sudo dnf install --assumeyes cockpit
sudo systemctl enable --now cockpit.socket
access on port 9090
sudo dnf -y install --assumeyes dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install --assumeyes docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER
sudo vi /etc/docker/daemon.json
add
{ "insecure-registries" : [ "192.168.111.1:5001" ] }
in .bashrc
alias docker-compose='docker compose'
-
SSH-Ordner anlegen:
mkdir ~/.ssh chmod 700 ~/.ssh -R -
SSH-Public-Key einfügen
vi ~/.ssh/authorized_keys -
activate SSH (UI -> Remote access)
UI -> Settings-> Remote access-> screen sharing: on
set PW: 1234
edit /etc/udev/rules.d/10-qtpy.rules:
sudo vi /etc/udev/rules.d/10-qtpy.rules
ACTION=="add", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="8111", SYMLINK+="qtpy"
sudo usermod -a -G dialout $USER
https://theselfhostingblog.com/posts/how-to-set-up-a-headless-syncthing-network/
https://discussion.fedoraproject.org/t/how-to-set-up-syncthing/74101
sudo dnf install --assumeyes syncthing
sudo systemctl enable syncthing@pc.service
sudo systemctl restart syncthing@pc.service
# change ui access to 0.0.0.0 in ~/.config/syncthing/config.xml
sudo systemctl restart syncthing@pc.service
Einstellungen: Autoaccept, Folder, etc
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
sudo -u gdm dbus-run-session gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0
sudo -u gdm dbus-run-session gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 0
sudo dnf install screen
screen /dev/qtpy 115200
https://extensions.gnome.org/extension/4099/no-overview/
installieren
Gnome-Extensions installieren (UI)
-> aktivieren
sudo dnf install socat
sudo socat UDP:127.0.0.1:5001,bind=127.0.0.1:5000 \
PTY,link=/dev/qtpy,raw,echo=0,waitslave
in /home/pc/.config/pipewire/pipewire.conf.d/mono-playback-device.conf
context.modules = [
{ name = libpipewire-module-loopback
args = {
node.description = "Mono Playback Device"
capture.props = {
node.name = "mono_output"
media.class = "Audio/Sink"
audio.position = [ MONO ]
}
playback.props = {
node.name = "playback.mono_output"
audio.position = [ MONO ]
node.passive = true
}
}
}
]
dann
systemctl --user restart pipewire{,-pulse}.{service,socket}
init.sh
#!/bin/bash
CUBE_ID="${1:-cube-tmpl}"
echo "Initializing cube '$CUBE_ID'"
hostnamectl hostname $CUBE_ID
echo "Setting default volume"
wpctl set-volume 48 70%
echo "Starting syncthing"
sudo systemctl start syncthing@pc
sudo systemctl enable syncthing@pc
echo "@User: go to server syncthing and add cube and folders to sync"
# Waiting for sync to finish
until [ -f /opt/puzzlecubes/client/docker-compose.yaml ]
do
sleep 5
done
echo "Creating ignore file for client-sync"
cat >/opt/puzzlecubes/client/.stignore << EOL
.env
platformio
EOL
# echo "Client Service found.. Starting Docker-Composition"
echo "HOSTNAME=${CUBE_ID}" > /opt/puzzlecubes/client/.env
# install sensorboard ... could last very long
docker compose -f /opt/puzzlecubes/client/sensorboard/docker-compose.yaml up
docker compose -f /opt/puzzlecubes/client/docker-compose.yaml up -d
prepare.sh
#!/bin/bash
rm ~/.config/syncthing/key.pem
rm ~/.config/syncthing/cert.pem
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
sudo -u gdm dbus-run-session gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0
sudo -u gdm dbus-run-session gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 0
gsettings set org.gnome.desktop.notifications show-banners false
gsettings set org.gnome.software allow-updates false
wpctl set-volume 48 70%
https://github.com/ReimuNotMoe/ydotool/issues/47
ydotools
- move and click
sudo dnf install ydotool
sudo systemctl enable ydotoolsd
Links
ln -s /opt/puzzlecubes ~/puzzlecubes
Everything described here is already done and proovided in a OS image which can be deployed with clonezilla on each cube for further setup (e.g. setting cubeID) described under workflows.
Important: the init.sh script described here is a new version which is not on the image right now... use the guide under workflows...
sudo vi /etc/udev/rules.d/10-qtpy.rules
#INSERT
ACTION=="add", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="8111", SYMLINK+="qtpy"