Skip to main content

Installing a Debian Machine

Bootstrapping a Debian Machine Protecting GRUB with a Password

Installation

sudo apt install cage chromium kanshi
sudo useradd  -d "/var/lib/chromium" --create-home --groups input,render,video --shell /usr/sbin/nologin --system chromium
sudo tee "/etc/systemd/system/wl-chromium.service" >/dev/null <<'EOF'
[Unit]
Description=Wayland Kiosk (Chromium)
Conflicts=getty@tty1.service
After=getty@tty1.service

[Service]
Type=simple
User=chromium
Group=chromium
PAMName=login
TTYPath=/dev/tty1
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes
StandardInput=tty
StandardOutput=journal
StandardError=journal
UtmpIdentifier=tty1
UtmpMode=user

EnvironmentFile=/etc/default/chromium
Environment=XDG_SESSION_TYPE=wayland

ExecStart=/usr/bin/cage -- /usr/bin/chromium $CHROMIUM_OPTS

Restart=always
RestartSec=2

[Install]
WantedBy=graphical.target
EOF
sudo tee "/etc/default/chromium" >/dev/null <<'EOF'
CHROMIUM_OPTS="--ozone-platform=wayland --no-first-run --noerrdialogs --kiosk --disable-session-crashed-bubble --disable-infobars --overscroll-history-navigation=0 --disable-pinch http://127.0.0.1/"
EOF
sudo tee "/etc/systemd/system/kanshi.service" >/dev/null <<'EOF'
[Unit]
Description=Wayland Output Management
After=wl-chromium.service
Requires=wl-chromium.service
PartOf=wl-chromium.service

[Service]
Type=simple
User=chromium
Group=chromium
PAMName=login

#Environment=XDG_RUNTIME_DIR=/run/user/999

ExecStartPre=/bin/sleep 2
ExecStart=/usr/bin/kanshi

Restart=on-failure
RestartSec=2

[Install]
WantedBy=graphical.target
EOF
sudo systemctl daemon-reload
sudo systemctl disable --now getty@tty1.service
sudo systemctl enable --now wl-chromium.service
sudo systemctl enable --now kanshi.service

Configuration

Minimize System Verbosity

GRUB_TIMEOUT=1
GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3 consoleblank=0 loglevel=3"0"
sudo update-grub

Troubleshooting

Video Playback is Not Working

sudo apt install intel-media-va-driver vainfo

Debugging

sudo apt install evtest libinput-tools python3-evdev