====== Computer neu aufsetzen ======
Um Elektronik-Projekte vernünftig umsetzen zu können, sind Computer und Internet ein zentrale Werkzeuge. Dabei setzt die ElektronIQ soweit wie möglich auf [[wpde>Open_Source|Open Source]]. Das Betriebssystem der Computer an den Arbeitsplätzen ist Debian-Linux. Bei der Entwicklung von Elektronik kommen [[wpde>Kicad]], [[wpde>gEDA (Software)|Geda]] und [[wpde>Eagle (Software)|Eagle]] zum Einsatz.
Die Arbeitsplatz-Computer wurden nach dem folgenden Rezept aufgesetzt. Ein wesentlicher Teil ist dabei die [[computer_neu_aufsetzen:start#pakete_aus_dem_debian-repo|Liste der installierten Debian-Pakete]].
===== DHCP vorbereiten =====
Der DHCP-Server des Instituts bedient nur Maschinen mit bekannter MAC-Numer. Die MAC-Nummer ist ablesbar im Output von ip:
ip link
Dazu kann man ein Live-Linux von einem USB-Stick booten. Von Debian gibt es Live-Images, die gleich mit einem Installer kombiniert sind. Man findet sie unter [[https://www.debian.org/CD/live/]] .
Die Liste mit den im Institutsnetz erlaubten MAC-Adressen findet sich in: ''/afs/iqo.uni-hannover.de/system/dhcpd/input/*''\\
Sie kann nur von Admins mit Hilfe von [[https://vpn.iqo.uni-hannover.de/lam|lam]] bearbeitet werden.
===== Eine Install-Stick gravieren =====
Für Debian-Installation spielt bei 64-Bit-Systemen der Unterschied zwischen Intel und AMD keine Rolle. Für beides ist "amd64" richtig. In jedem Fall braucht man ein Iso-Image mit einem Debian-Installer
* Für stable gibt es einen Link zu einem ISO-Image auf der Seite http://www.debian.org/distrib/netinst
* Live-System vom aktuellen Stable mit XFCE und nonfree-Treibern (3.0 GB): http://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/
* Für testing gibt es auf dieser Seite ein Iso-Image: https://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-cd/
* Für testing empfiehlt Debian den Download mit jigdo-lite aus dem Paket jigdo-file.
Anleitung für jigdo: http://www.debian.org/CD/jigdo-cd/index.en.html
jigdo-lite http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-cd/debian-testing-amd64-netinst.jigdo
alternativ:
jigdo-lite ./debian-testing-amd64-netinst.jigdo
Das so beschaffte Iso-Image wird auf den nicht gemounteten Stick geschrieben((Empfehlungen, das mit dd zu tun sind obsolet. Seit etwa 2020 geht auch ein normales cp)):
sudo cp debian-IRGENDWAS-amd64-netinst.iso /dev/sdg
sudo sync
===== Base-Install =====
* vom USB-Stick booten ((Bei den Dell-Laptops führt F12 zum temporären Boot-Menü ))
* graphic-Install wählen
* die ganze Platte für das neue System verwenden. Dabei LVM einrichten lassen, damit die Partitionen später leichter geändert werden können.
* Bei den Mirror-Repositories "ftp.uni-hannover.de" auswählen
* Neustart
* lokal als Root einloggen
* ssh-Server installieren → tasksel → SSH-Server
* Von einem voll installierten Desktop-Rechner aus mit ssh als lokaler User einloggen
===== Wenn der Boot lange mit schwarzem Bildschirm hängt... =====
... dann versucht das System wahrscheinlich einen Systemzustand wiederherzustellen, den es nicht gibt. Nach einer halben Minute bricht es dann ab mit dieser Meldung in /var/log/boot.log: "Gave up waiting for suspend/resume device"
Mit einem zusätzlichen Boot-Parameter "noresume" in ''%%/etc/default/grub%%'' kann das vermieden werden: ''%%GRUB_CMDLINE_LINUX_DEFAULT="quiet noresume"%%''\\
Danach grub neu initialisieren lassen mit: ''%%update-grub%%''
===== Root netter benutzbar machen =====
su # zum Super-User mutieren
apt install vim # vi für Warmduscher
In ''/root/.bashrc'' die für root wesentliche Pfade ergänzen:
export PATH=$PATH:/sbin:/usr/sbin:.
(Bei der Gelegenheit in .bashrc die aliase entkommentieren und Farben aktivieren.)
===== ssh von anderen Rechnern erlauben =====
In [[file:///etc/ssh/sshd_config|/etc/ssh/sshd_config]] : :
PermitRootLogin yes
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
GSSAPIKeyExchange yes
UsePam yes
X11Forwarding yes
# Allen Usern ssh-Zugang erlauben, die zur Institutsgruppe iqo gehören
# (Muss ganz ans Ende der config-Datei)
Match group iqo
AllowUsers *
Die Services sshd und winbind neu starten, damit die Konfig auch gelesen wird :
systemctl restart sshd winbind
===== Paket-Sourcen festlegen =====
# /etc/apt/sources.list von XXXXXXX
# aufgesetzt am XXXXXXXXX durch XXXXXXXX
### oldstable
deb http://ftp.uni-hannover.de/debian/debian/ oldstable main non-free non-free-firmware contrib
deb-src http://ftp.uni-hannover.de/debian/debian/ oldstable main non-free non-free-firmware contrib
### stable
deb http://ftp.uni-hannover.de/debian/debian/ stable main non-free non-free-firmware contrib
deb-src http://ftp.uni-hannover.de/debian/debian/ stable main non-free non-free-firmware contrib
### urgent upgrades for stable
deb http://deb.debian.org/debian stable-updates main non-free non-free-firmware
deb-src http://deb.debian.org/debian stable-updates main non-free non-free-firmware
### security patches for stable
deb http://deb.debian.org/debian-security/ stable-security main non-free non-free-firmware
deb-src http://deb.debian.org/debian-security/ stable-security main non-free non-free-firmware
### testing
deb http://ftp.uni-hannover.de/debian/debian/ testing main contrib non-free non-free non-free-firmware
deb-src http://ftp.uni-hannover.de/debian/debian/ testing main contrib non-free non-free-firmware
### unstable
#deb http://ftp.uni-hannover.de/debian/debian/ unstable main contrib non-free non-free-firmware
#deb-src http://ftp.uni-hannover.de/debian/debian/ unstable main contrib non-free non-free-firmware
### experimental
#deb http://ftp.uni-hannover.de/debian/debian/ experimental main contrib non-free non-free-firmware
#deb-src http://ftp.uni-hannover.de/debian/debian/ experimental main contrib non-free non-free-firmware
Anschließend die Datenbank der Pakete erneuern:
$ apt update
$ apt upgrade
===== Englische und Deutsche Sprach-Einstellungen =====
dpkg-reconfigure locales
im Dialog diese beiden locales auswählen:
de_DE.UTF-8
en_GB.UTF-8
Keine der beiden als Default markieren (sonst nimmt lightwm das falsche Tastatur-Layout)
===== Locales und Zeitzone automatisiert einstellen =====
übernommen von [[http://serverfault.com/questions/362903/how-do-you-set-a-locale-non-interactively-on-debian-ubuntu]]
# Configure timezone and locale echo
"Europe/Berlin" > /etc/timezone && \
/usr/sbin/dpkg-reconfigure -f noninteractive tzdata && \
sed -i -e 's/# en_US.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen && \
sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen && \
echo 'LANG="de_DE.UTF-8"'>/etc/default/locale && \
/usr/sbin/dpkg-reconfigure --frontend=noninteractive locales
# update-locale LANG=de_DE.UTF-8
# Zeitzone überprüfen
timedatectl
===== Wenn Firmware fehlt =====
Wenn es Beschwerden über fehlende Firmware gibt, dann kann man sie möglicherweise händisch hinzufügen.
- Nur die Warnungen selbst anzeigen: ''sudo update-initramfs -u -''
- wget installieren: ''%%apt install wget%%''
- Download: ''%%wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/FOO/BAR%%''
- An die richtige Stelle kopieren: ''%%sudo cp BAR /lib/firmware/FOO/BAR%%''
- einbinden: ''%%sudo update-initramfs -u%%''
Anschließend sollte beim Boot die Firmware nicht mehr als fehlend bemeckert werden
===== Kerberos einrichten =====
(laut: [[https://iqwiki.iqo.uni-hannover.de/doku.php?id=it:configuration_stuff:configurekerberos:start]])
- Kerberos installieren: ''%%apt install krb5-user krb5-auth-dialog%%''
- ''%%/etc/krb5.conf%%'' durch den folgenden Inhalt ersetzen:
[libdefaults]
default_realm = IQO.UNI-HANNOVER.DE
dns_canonicalize_hostname = false
ticket_lifetime = 24h
forwardable = true
[realms]
IQO.UNI-HANNOVER.DE = {
kdc = kerberos.iqo.uni-hannover.de:88
admin_server = kerberos.iqo.uni-hannover.de:749
default_domain = iqo.uni-hannover.de
}
[appdefaults]
pam = {
debug = false
ticket_lifetime = 1d
renew_lifetime = 7d
forwardable = true
krb4_convert = false
krb4_convert_524 = false
krb4_use_as_req = false
null_afs = false
}
[domain_realm]
.iqo.uni-hannover.de = IQO.UNI-HANNOVER.DE
===== AFS einbinden =====
# Anleitung in: [[https://iqwiki.iqo.uni-hannover.de/doku.php?id=it:configuration_stuff:configurekerberos:start]]
- ''%%apt install openafs-client openafs-modules-dkms openafs-krb5 krb5-user%%''
- openafs neu starten: ''%%systemctl restart openafs-client%%''
==== AFS testen ====
kinit NAME # Ein Kerberos-Ticket anlegen (NAME erstzt durch einen Login-Namen)
aklog # Ein AFS-Token beschaffen
klist # Token anzeigen
ls -l /afs/iqo.uni-hannover.de # sollte ein paar Ordner anzeigen
==== Home aus dem AFS beziehen ====
Nur sinnvoll, wenn sämtliche User-Daten auf dem Server vorgehalten werden sollen. Lokale Daten funktionieren nur mit Usern, die in LDAP ''%%/home/NAME%%'' eingetragen haben.
- Das alte Home aus dem Weg schaffen: ''mv /home /home_local''
- Stattdessen einen Link ins AFS anlegen: ''ln -s /afs/iqo.uni-hannover.de/user/ /home''
===== Login mit LDAP und PAM =====
Anleitung [[https://iqwiki.iqo.uni-hannover.de/doku.php?id=it:configuration_stuff:configureldap:start|im IQwiki]]
- ''%%apt install winbind%%'' -- fragt nach, ob von DHCP übergebene Zusatz-Info genutzt werden soll → ja
- ''apt install samba'' -- wird gebraucht, damit winbd nach dem Boot zur richtigen Zeit startet
- ''%%/afs/iqo.uni-hannover.de/system/sbin/domain_join%%'' -- Christians Einrichtescript ausführen
- Das Debian-Script ''%%/usr/sbin/pam-auth-update%% '' ausführen. Im Menü die folgenden beiden Punkte abwählen
* ☐ Register user sessions in the systemd control group hierarchy
* ☐ Create home directory on update
- Diese beiden Punkte sollten ausgewählt sein:
* ☑ AFS session management
* ☑ Unix authentication
===== SASL-Test (was testet das?) =====
apt install sasl2-bin
testsaslauthd -u kaimartin -p PASSWORT
===== Mehr Software =====
==== Pakete aus dem Debian-Repo ====
apt install aptitude ; # aptitude kommt manchmal weiter, wo apt sich verheddert.
aptitude update ;
apt install sudo ;
apt install firmware-linux-free firmware-linux-nonfree;
# Texteditoren
apt install vim ; # vernünftiger vi
apt install pluma ; # fork von gedit
apt install mousepad ; # spartanisch
apt install bluefish ; # luxus
apt install emacs elpa-org ; # nerdy
apt install retext; # simpel für Markdown
apt install ghostwriter cmark hspell ; # luxus für Markdown
apt install libtext-multimarkdown-perl ;
# mit GTK3 kompatible Widget-Themes
apt install gtk3-engines-xfce ;
apt install clearlooks-phenix-theme ;
apt install murrine-themes ;
# Einige Icon-Themes
apt install gnome-colors ; # einige Standard-Themes von Gnome
apt install numix-icon-theme ; # flaches Icon-Theme
apt install papirus-icon-theme ; # sehr flaches Icon Theme
apt install suru-icon-theme ; # Icon-Theme von Ubuntu-Touch
apt install lxde-icon-theme ; # Default Icon-Theme von lxde
# Alle desktop-icon-themes, die Debian anbietet
#apt install `apt-cache search --names-only -q icon-theme |awk '{ print $1 }'` ;
apt install bibata-cursor-theme ; # Moderner Mauszeiger, der bis zu 96 Pixel groß werden kann
# Desktop-Werkzeuge
apt install ding ; # offline-Wörterbuch deutsch-englisch
apt install zim ; # UI für Notizen
apt install gir1.2-gtksource-4 ; # wird vom Source-Plugin von zim gebraucht
apt install galculator apcalc wcalc ; # "Taschenrechner"
apt install xfce4-clipman xfce4-clipman-plugin # Zugriff auf ältere Selections
apt install filelight baobab ; # graphische Anzeige, wo der Speicherplatz verteilt ist
apt install ranger w3m-img ; # File-Manager fürs Terminal
apt install krusader ; # File-Manager von KDE
apt install krename kompare kget ; # wird von krusader benutzt
apt install cairo-dock cairo-dock-gnome-integration-plug-in ; # desktop UI similar to apple
apt install qt4-qtconfig ; # to make qt applications happy
apt install krb5-auth-dialog ; # button for the kerberos tickets
apt install zsh zsh-doc fish; # shells for nerds
apt install arj rar unace unrar rpm lhasa ; # diverse zusätzliche Pack-Utensilien
apt install gnuplot gnuplot-qt feedgnuplot labplot; # graphische Darstellung von Daten
apt install git-lfs # große Dateien mit git
apt install firefox-esr chromium falkon konqueror; # Diverse WWW-Browser
apt install myspell-de-de ; # deutsche Rechtschreibung für firefox
apt install gftp ; # FTP-Client
apt install okular atril evince qpdfview ; # PDF-Viewer
apt install xournal ; # Anmerkungen, Korrekturen und so weiter in PDF
apt install pdftk ; # um einzelne Seiten aus einem PDF-Dokument zu extrahieren
apt install poster posterazor; # um PDF-Dokumente auf mehrere Seiten zu verteilen
apt install pdfgrep ; # um mit der Komandozeile in PDF-Dokumenten suchen zu können
apt install poppler-utils; # viele Utilities für PDFs
apt install flpsed; # um PDFs mit Anmerkungen versehen zu können
apt install libtiff-tools; # Werkzeuge für TIFF-Grafiken
apt install texlive texlive-science texlive-generic-extra texlive-latex-recommended texlive-latex-extra ; # LaTeX
apt install texlive-fonts-recommended texlive-fonts-extra; # mehr LaTeX
apt install preview-latex-style
apt install texlive-lang-english texlive-lang-german texlive-lang-french texlive-lang-european ; # Sprach-Pakete für LaTeX
apt install texlive-publishers ; # LaTeX-Dokumentstile von diversen großen Verlagen
apt install lyx fonts-lyx; # graphisches Frontend für LaTeX
apt install biber ; # Latex-Literaturverwaltung
apt install korganizer ; # Kalender-APP, die mit dem IQO-Kalender synchronisiert
apt install libreoffice ; # Office-Anwendungen
apt install libreoffice-l10n-de libreoffice-l10n-en-gb ; # englisches und deutsches Sprachpaket für Libreoffice
apt install libreoffice-gtk3 ; # damit Libreoffice sich an die Style-Vorgaben des XFCE-Desktops hält
apt install hyphen-de hyphen-en ; # Worttrennungen für Libreoffice
apt install mythes-de ; # deutscher Thesaurus für Libreoffice
apt install openclipart ; # Bildchen und Icons zum Einbinden in libreoffice
apt install pandoc ; # konvertiert unter anderem libreoffice nach latex
apt install scribus; # Desktop-Publishing
apt install finger epstool coreutils tree ; # nützliche Commandline Tools
apt install hardinfo lshw-gtk hwinfo screenfetch; # zeigt erkannte Hardware an
apt install gparted ; # Partitionierung und Formatierung von USB-Sticks, SSDs, etc.
apt install playonlinux ; # wine-Umgebung mit funktionaler Multiarch-Konfigration
apt install winetricks mono-complete ; # unterstützende Pakete für wine
apt install glabels printer-driver-dymo ; # um Dymo-Schilder ausdrucken zu können
## Bilder
apt install inkscape xfig psutils pstoedit ; # Vektorgrafik
apt install gimp imagemagick ; # Pixelgrafik
apt install gpick ; # Color-Picker
apt install eom ristretto geeqie; # Image-Viewer
apt install darktable ; # Fotos nachbearbeiten
apt install mtp-tools gvfs-fuse ; # Damit Smartphones und DSLRs über USB komunizieren
apt install gphoto2 ; # Bilder von Nikon, Canon oder Sony holen
# Elektronik
apt install geda geda-gattrib geda-gsymcheck ; # geda
apt install pcb ; # Layout-Editor (von geda)
apt install gerbv ; # gerber-Viewer
apt install texinfo ; # für die Doku von geda-gaf
apt install kicad ; # kicad...
apt install kicad-libraries ;
apt install kicad-footprints kicad-symbols ;
apt install kicad-packages3d kicad-templates ;
apt install kicad-doc-en kicad-doc-de kicad-demos ;
apt install sigrok pulseview ; # Fernabfrage von Multimeter, Spectrumanalyzer und Oszi
## FPGA
apt install electronics-fpga-dev ; # zieht die wichtigsten für FPGA gebrauchten Pakete
apt install yosys ;
apt install arachne-pnr nextpnr-ice40 ;
apt install fpga-icestorm ;
apt install gtkwave ;
apt install ghdl ;
apt install freehdl ;
apt install iverilog ;
apt install verilator ;
apt install dfu-util dfu-programmer ; # Um beim Orange-Crab den Bitstream über USB zu schicken
## Mechanik und 3D-Druck
apt install freecad freecad-python3 ; # 3D-CAD
apt install librecad ; # 2D-CAD-Programm mit DXF als Speicherformat
apt install prusa-slicer ; # Slicer für 3D-Druck
## Chemie
apt install avogadro ; # malt dreidimensionale Moleküle
## Debian Paket-Verwaltung
apt install synaptic apt-xapian-index ; # damit synaptic eine Suche eingebaut hat
apt install apt-show-versions ; # zeigt die Version installierter Pakete an.
apt install apt-file apt ; # sucht auch in nicht installierten Paketen nach Dateien
apt-file update ; # den Index von apt-file erzeugen
# Email und Chat
apt install claws-mail claws-mail-themes ;
apt install claws-mail-plugins claws-mail-extra-plugins ;
apt install clawsker claws-mail-tools ;
apt install sqlitebrowser ; # grafische Benutzerschnittstelle für Sqlite
apt install pgadmin3 ; # grafische Benutzerschnittstelle für Postgresql
apt install s-nail ; # verbesserte Alternative zu mail -- für die Auto-Logout-Mechanik
apt install kleopatra seahorse ; # Verwaltung von Schlüsseln und Zertifikaten
apt install nheko neochat ; # Clienten für Matrix-Chat
apt install gajim gajim-openpgp ; # Client für XMPP-Chat
# Sound und Audio
apt install audacious smplayer; # Player
apt install streamtuner2 ; # Webradio
apt install beep ; # Piiep
# Screenlock und Screensaver
#apt remove xscreensaver ; # den im XFCE enthaltenen Screensaver entfernen (nicht mehr nötig in buster)
#apt install xfce4-screensaver ; ### sollte einen automatischen Logout nach Inaktivität möglich machen → TODO: muss noch entsprechend konfiguriert werden
apt install xautolock zenity mailutils; # für den automatischen Log-out nach Inaktivität
# apt remove xtrlock light-locker ; # mehr als ein Lock-Programm kann zu Verwirrungen führen (FIXME: muss das sein?)
# Schriften
apt install fonts-go; # Schrift für Dymo-Schilder
apt install fonts-rufscript fonts-taml-tscu ; # Schreibschriftschriften rufscript, tscu-comic
apt install fonts-tomsontalks; # Comic-Smallcaps tomsontalks
apt install ttf-mscorefonts-installer ; # andale, arial, comic sans, courier, georgia, trebuchet, verdana, webdings
apt install fonts-fork-awsome ; # Icons im Stil von fonts-awsome
apt install gwaterfall ; # Viewer für Schriften
apt install fonts-powerline ; # für den Prompt auf den Servern web, afs1, afs2, ...
## Programmieren, Entwickeln
apt install build-essential autotools-dev cmake ; # Zieht Compiler und Co.
apt install ddd devhelp ; # Debugger
apt install anjuta anjuta-extras ; # IDE fürs Programmieren
apt install codelite codelite-plugins ; # noch ein IDE
apt install geany ; # umfangreicher Editor
apt install git git-cola git-gui; # Versionskontrolle mit git
apt install thunar-vcs-plugin ; # git im File-Manager
# Phython
apt install python3-numpy ;
apt install python3-serial ;
apt install python3-scipy ;
apt install python3-pandas ;
apt install python3-matplotlib ;
apt install ipython3 ;
apt install python3-pip ;
apt install esptool ;
apt install jupyter python-notebook-doc ;
# Arduino
apt install arduino arduino-mk flashrom ;
apt install avrdude avrdude-doc ;
apt install screen ;
# Login
apt install sddm ; # sddm statt lightdm
apt install kde-config-sddm sddm-theme-elarun # Das Default-Theme von ssdm taugt nicht wirklich gut für 200 User
apt remove lightdm ;
# Ansible
apt install ansible ;
apt install sshpass ;
# Braille
apt install brltty ;
apt install brltty-espeak ;
apt install brltty-flite ;
apt install brltty-x11 ;
apt install console-braille ;
apt install braillefont ;q
apt install orca ;
# Diverse Tools
apt install sakura ; # Terminal ohne Schnörkel
apt install meld ; # GUI für diff
apt install gpm ; # Maus für die Textkonsole
apt install htop ; # eine funktionalere Alternative zu top
apt install progress; # zeigt den Fortschritt von Kopier-Aktionen
apt install reptyr ; # einen Prozess in eine andere Textkonsole verpflanzen
apt install ldap-utils ; # enthält unter anderem ldapsearch
apt install memtest86+ ; # Speichertest — wird in grub eingebunden
apt install locate ; # indizierte Suche für Dateinamen über die ganze Festplatte
apt install command-not-found ; # macht auf der Kommandozeile Vorschläge, wenn etwas fehlt
update-command-not-found ; # den Index von command-not-found erzeugen
apt install gvfs-bin ; # Tools für die Default-Anwendungen mit MIME
apt install systemsettings qt5ct ; # Einstellungen von KDE-Anwendungen
apt install gtk3-nocsd ; # Richtige Fensterrahmen für GTK3-Anwendungen
apt install x2goclient x2goserver cups-x2go ; # Auf die Grafik-Session von anderen Linuxrechnern zugreifen (lassen)
apt install gvncviewer gino xtightvncviewer; # Auf die Grafiksession von anderen Windows-Rechnern zugreifen
apt install syncthing syncthingtray; # Spezielle Ordner mit anderen Rechnern abgleichen
==== Alternatives setzen ====
update-alternatives --install /usr/bin/edit editor /usr/bin/vim 100 ;
update-alternatives --install /usr/bin/edit editor /usr/bin/pluma 100 ;
update-alternatives --set editor /usr/bin/pluma ;
update-alternatives --install /usr/bin/gnome-text-editor gnome-text-editor /usr/bin/vim 100 ;
update-alternatives --install /usr/bin/gnome-text-editor gnome-text-editor /usr/bin/pluma 100 ;
update-alternatives --set gnome-text-editor /usr/bin/pluma ;
update-alternatives --set gnome-www-browser /usr/bin/firefox-esr ;
update-alternatives --set x-www-browser /usr/bin/firefox-esr ;
update-alternatives --install /usr/bin/www-browser www-browser /usr/bin/firefox-esr 100 ;
update-alternatives --set www-browser /usr/bin/firefox-esr ;
==== (lxdm konfigurieren) ====
Nicht nötig, wenn sddm verwendet wird.
In ''/etc/lxdm/lxdm.conf'' xfce4 als Default-Session setzen, keine Sprach-Auswahl und keine User-Liste anzeigen:
[base]
session=/usr/bin/startxfce4
...
[display]
lang=0
...
[userlist]
disable=1
==== sddm konfigurieren ====
[Autologin]
Relogin=false
Session=
User=
[Users]
MaximumUid=65000
MinimumUid=10000
RememberLastUser=false
RememberLastSession=false
[General]
HaltCommand=
RebootCommand=
EnableHiDPI=true
GreeterEnvironment=QT_SCREEN_SCALE_FACTORS=2,QT_FONT_DPI=192
[Theme]
Current=elarun
CursorTheme=Adwaita
[X11]
ServerArguments=
# eventuell auch: ServerArguments=-dpi 123
EnableHiDPI=true
[Wayland]
EnableHiDPI=true
''EnableHiDPI=true'' ist natürlich nur auf Systemen mit hochauflösendem Bildschirm sinnvoll.
Mit ''RememberLastUser=false'' und ''RememberLastSession=false'' nimmt sddm die alphabetisch erste Session falls man nicht aktiv eine andere Wahl trifft. Das wäre unerwünschterweise plasma statt xfce. Deswegen die desktop-Datei für die xfce-Session auf einen Namen kopieren, der weiter oben im Alphabet steht als Plasma:
sudo cp /usr/share/xsessions/xfce.desktop /usr/share/xsessions/elektroniq.desktop
==== (kein) Wayland ====
Wenn eine wayland-Session existiert, dann wird sie von sddm bevorzugt bedient. Im Moment gibt es zwar Plasma mit wayland, aber nicht XFCE4. Also wird doch wieder als Plasma als Default ausgewählt.
Als schmutziger Workaround kann das Paket plasma-workspace-wayland entfernt werden:
sudo apt purge plasma-workspace-wayland
==== KDE-Plasma mit Wayland ====
===== Inkompatibilitäten =====
Einige Anwendungen verhakeln sich in wayland. Freecad stürzt ab. Bei LyX sind die Menüs defekt. (Stand Sommer 2024)
Als schmutzige Umgehung kann X als Umgebung gesetzt werden:
XDG_SESSION_TYPE=X freecad # kann in wayland keine Projekte öffnen
XDG_SESSION_TYPE=X lyx # defekte Menüs
===== Desktop-Konfiguration exportieren =====
Mit konsave kann die Konfiguration eines KDE-Desktops gespeichert und wieder geladen werden.
Installation:
apt install pipx
pipx install konsave
pipx inject konsave setuptools
Das inject ist nötig, weil es ein kleineres Problem ab Python 3.12 gitbt. In der Version wurde das Paket distutils entfernt.
Konfiguration speichern:
konsave --save
konsave --list
konsave --export-profile -d -n
Konfiguration importieren:
konsave --import-profile
==== Kein Screenlock bei KDE ====
KDE enthält einen Screenlock-Mechanismus, der nach einer gewissen Zeit der Inaktivität ausgelöst wird. Dann kommt man nur mit dem Passwort des jeweiligen aktiven Users wieder in den grafischen Desktop. Das ist bei den Arbeitzplatzrechnern der ElektronIQ eher unerwünscht. Leider kann der Screen-Locker nicht einzeln entinstalliert werden. Als schmutzige Umgehungstaktik kann dem Lock-Programm das Execute-Bit weggenommen werden: ''%%sudo chmod a-x /usr/share/doc/libkscreenlocker5%%''
==== Kein KDEwallet ====
KDEwallet nervt mit Passwort-Anfragen selbst wenn man es nicht wirklich benutzt. Kann man nicht getrennt entinstallieren, aber wenigstens abschalten mit systemsettings → Account_Details → Wallet_Preferences → Apply
Alternativ mit der Kommandozeile:
kwriteconfig5 --file kwalletrc --group 'Wallet' --key 'Enabled' 'false'
kwriteconfig5 --file kwalletrc --group 'Wallet' --key 'First Use' 'false'
Mehr Vorschläge: [[https://superuser.com/questions/994551/disable-kwallet-popups-from-chrome|bei superuser]]
==== (Kein) Check des Dateisystems beim Boot ====
Mit dem Befehl ''tune2fs'' kann man beeinflussen, wann fsck das nächste Mal das Dateisystem auf Konsistenz prüft:
* Einen Check des Dateisystems beim nächsten Boot erzwingen: tune2fs -c 1 /dev/sda1
* Keinen automatisch beim Boot ausgelösten Check: tune2fs -c -1 /dev/sda1
==== Cairo-Dock bepuscheln ====
Cairo-Dock sollte vor dem Start ein wenig warten: [[file:///usr/local/bin/cairo-dock-wrapper.sh|/usr/local/bin/cairo-dock-wrapper.sh]] :
#!/bin/sh
sleep 3s
==== XFCE-Fenster mit breitem Rand ====
Die von Debian mitgelieferten Themes statten die Fenster fast alle mit einem sehr schmalen Rand aus. Das macht es etwas schwer, an den Rändern mit der Maus zu ziehen. Bei https://www.xfce-look.org gibt es einige für HiDPI gedachte Themes, die in diesem Aspekt besser sind. Die Themes in ''/usr/local/share/themes'' installieren:
sudo cp /afs/iqo.uni-hannover.de/user/kmk/tmp/themes/ /usr/local/share -r
==== Firefox ====
=== Globale Firefox-Konfig ===
In ''/etc/firefox/policies/policies.json'' kann man abschalten, dass Firefox sich in den Umgang mit Passwörtern einmischt. Außerdem kann dort der Single-Login mit SPNEGO aktiviert werden:
{
"policies": {
"BlockAboutConfig": true,
"DisablePasswordReveal": true,
"DisableMasterPasswordCreation": true,
"OfferToSaveLogins": false,
"OfferToSaveLoginsDefault": false,
"PasswordManagerEnabled": false,
"Authentication": {
"SPNEGO": [".iqo.uni-hannover.de"],
"Delegated": [".iqo.uni-hannover.de"]
}
}
}
=== Suchmaschine ===
* ... von Google auf duckduckgo umstellen
* Alternativ: https://kai-martin.de/searxng
=== Plugins ===
Empfehlenswerte Plugins, die leider nicht global für alle User installiert werden können:
* I still don't care about cookies
* ublock origin
* SponsorBlock
===== Non-Debian Software =====
==== geda ====
cd /usr/local/src ;
sudo mkdir geda ;
sudo chgrp iqo geda ;
sudo chmod g+w geda ;
cd geda ;
sudo apt install libgamin-dev ;
sudo apt-get build-dep geda-gschem ;
git clone git://git.geda-project.org/geda-gaf.git ;
cd geda-gaf ;
./autogen.sh ;
./configure ;
make -j8 ;
sudo make install ;
sudo ldconfig ;
cd .. ;
sudo apt-get build-dep pcb ;
git clone git://git.geda-project.org/pcb.git ;
cd pcb ;
./autogen.sh ;
./configure ;
make -j8 ;
sudo make install ;
# remove the default footprint libraries:
sudo rm -rf /usr/local/share/pcb/newlib /usr/local/share/pcb/pcblib-newlib /usr/local/share/pcb/m4 ;
sudo update-alternatives --install /usr/bin/pcb pcb /usr/local/bin/pcb 100 ;
sudo update-alternatives --set pcb /usr/local/bin/pcb ;
==== eagle ====
Eagle ist ganz aus Debian heraus gefallen. Ausweichlösung: Das Archiv von Ubuntu in ''/etc/apt/source.list'' ergänzen:
deb http://archive.ubuntu.com/ubuntu xenial main multiverse
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 40976EAF437D05B5
Eagle ist nur als i386-Binary verfügbar. Das heißt, man muss Multiarch aktivieren. wenn der Rechner ansonsten als mit Binaries für AMD64 läuft. Dazu:
apt install multiarch-support ;
dpkg --add-architecture i386 ;
apt update ;
apt install eagle ;
apt install libjpeg62:i386 ; # wird für eagle-AEI gebraucht
[[.:lizenz:start|Unsere Lizenz]] muss für jeden Nutzer einzeln beim ersten Start von eagle angegeben werden.
==== eagle-AEI ====
Nur dann sinnvoll, wenn intensiver mit AEI-Projekten gearbeitet wird.
Für die Dokumentation braucht eagle-AEI die Schriftart luximono. Die ist zwar umsonst, aber nicht frei. Deswegen ist dieser Klimmzug nötig:
cd [[file:///tmp|/tmp]] ;
sudo wget http://tug.org/fonts/getnonfreefonts/install-getnonfreefonts ;
sudo texlua install-getnonfreefonts ; sudo getnonfreefonts-sys luximono ;
Bei der Gelegenheit kann man auch die anderen semifreien Schriften installieren:
sudo getnonfreefonts-sys webomints garamond eurofont dayroman classico lettergothic arial-urw ;
In ''/usr/local/eagle-AEI'' installieren:
Scheitert mit aktuellem Eagle → Upgrade nötig
cp -r afs/iqo.uni-hannover.de/products/eagle/5.7_eagle-AEI usr/local/eagle-AEI ;
==== ltspiceIV ====
Nur dann sinnvoll, wenn ltspiceVII aus Gründen scheitert
ltspice braucht wine32, Mono und diverse Window-Bindings. Für wine32 muss i386 als weitere Architektur in Gang gebracht werden. Siehe die Einrichtung von eagle.
apt install wine wine32 mono-runtime mono-gac winbind ;
cd /usr/local/share ;
wget http://ltspice.linear.com/software/LTspiceIV.exe ;
Einmal pro Rechner ausführen (wine64 scheitert, weil das Binary nur für win32 compiliert wurde):
wine /usr/local/share/LTspiceIV.exe ;
==== ltspiceVII ====
Anleitung: https://www.pcsuggest.com/install-ltspice-linux/ Download des Installers von http://www.linear.com/designtools/software/#LTspice :
dpkg --add-architecture i386
apt-get update
apt-get install wine mono-runtime mono-vgac libwine-gecko-2.21
wine
$PATH-TO-LTSPICE-INSTALLER$/XVIIx64.exe
wine etwas angenehmer nutzbar machen:
winecfg
Applications → Windows_Version → Windows 10
Graphics → Screen resolution → 144 dpi
==== qucs ====
obsolet, seit kicad Simulation von Schaltungen mit ngspice vernünftig unterstützt.
Der Simulator qucs ist nicht in den Debian-Repositories. Man kann aber von Ubuntu ein Paket laden und installieren: :
cd /tmp ;
wget https://launchpad.net/~qucs/+archive/qucs/+files/qucs_0.0.18-2_amd64.deb ;
dpkg -i qucs_0.0.18-2_amd64.deb ;
Das Projekt auf Launchpad: https://launchpad.net/~qucs/+archive/ubuntu/qucs/+packages → Letzter Stand ist v0.0.20-2 von 2020.
===== System-Konfiguration anpasssen =====
==== X11-Anwendungen von anderen Rechnern erlauben ====
* Wenn lightdm genutzt wird, in /etc/lightdm/lightdm.conf : ''xserver-allow-tcp=true''
* Wenn lxdm genutzt wird, in /etc/lxdm/lxdm.conf : ''[server] tcp_listen=1''
* Wenn sddm genutzt wird, in /etc/sddm.conf :
[X11]
ServerArguments=
(Die Server-Arguments haben als Default ein ''-nolisten tcp''. Das verhindert, dass X11-Anwendungen von Remote-Rechnern dargestellt werden.)
In ''/etc/ssh/ssh_config'' X11 für Institutsrechner erlauben und dabei eine Ausnahme für git machen:
Host *.iqo.uni-hannover.de
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
Host git.iqo.uni-hannover.de
ForwardX11 no
ForwardX11Trusted no
User gitea
IdentityFile ~/.ssh/id_rsa
Um beim Aufruf von ssh die Option ''-X'' weglassen zu können, kann auf dem Clienten ''$HOME/.ssh/config'' passend konfiguriert werden:
###################
# all hosts in iqo
# (for this rule to match, ssh needs to be called with the complete name of the server)
###################
Host *.iqo.uni-hannover.de
ForwardX11 yes
ForwardX11Trusted yes
####################
# Specific hosts
####################
Match host "bibo,akka,schusch,hoots,orville"
ForwardX11 yes
ForwardX11Trusted yes
Wenn es haufenweise CSS-Fehler hagelt und Knöpfe und Menüs lieblos ohne Abstand nebeneinander gequetscht sind, dann gibt es ein Problem mit den GTK-Themes. Eventuell hilft es dann, auf dem Server die GTK3-Themes zu entfernen. Dann wird als Fallback GTK2 benutzt:
apt-get remove gtk3-engines-xfce
Auf lange Sicht ist das allerdings keine gute Lösung, weil GTK2 allgemein zu Gunsten von GTK3 abgelöst wird.
==== USB-Sticks ====
=== USB-Sticks im Dateimanager ===
Damit der Dateimanager von XFCE es mitbekommt, wenn ein USB-Stick eingesteckt wird, muss das Paket thunar-volman installiert sein.
=== USB-Sticks für alle ===
[[https://unix.stackexchange.com/questions/560358/how-do-i-automount-usb-drives-in-linux-debian?|Diskussion auf Stackexchange]]
Das normale Verfahren mit USB-Sticks bei XFCE setzt voraus, dass der jeweilge User in [[file:///etc/groups|/etc/groups]] zur Gruppe plugdev gehört. Das ist auf den Rechnern mit LDAP-Zugang nicht wirklich darstellbar. Als Folge kann ein User den USB-Stick nicht mounten. Und wenn er von Root gemountet ist, fehlen die passenden Lese- und Schreibrechte.
Um allen Usern die Benutzung von USB-Sticks zu erlauben, gibt es eine erstaunlich große Vielzahl an Werkzeugen. Zwei davon sind usbmount und udisk. Eine passende Konfiguration von usbmount hat lange Zeit in der ElektronIQ funktioniert. Leider ist das Paket etwa ebenso lange ohne Maintainer. Und so ist es irgendwann auf dem Weg von jessie zu stretch soweit zerbrochen, dass User unter XFCE nicht mehr an USB-Sticks heran kamen. Die moderne Alternative ist offenbar udisk2
=== udisk2 ===
apt install udisks2
Die Konfig-Datei ''/etc/polkit-1/localauthority/50-local.d/udisks.pkla'' anlegen:
[udisks]
Identity=unix-user:*
Action=org.freedesktop.udisks*
ResultAny=yes
Nach ausloggen und wieder einloggen sollten USB-Sticks automagisch eingehängt werden.
==== MIME für Default-Anwendungen ====
Der Inhalt der Datei ''/usr/share/applications/mimeapps.list'' bestimmt die Reihenfolge, in der Anwendungen an den Start kommen:
[Default Applications]
text/csv=pluma.desktop;libreoffice-calc.desktop;gnumeric.desktop
application/pdf=atril.desktop
application/x-pcb-layout=pcb.desktop
application/x-geda-schematic=geda-gschem.desktop;pluma.desktop
application/x-geda-symbol=geda-gschem.desktop;pluma.desktop
application/octet-stream=varicad.desktop
[Added Associations]
application/x-geda-schematic=geda-gschem.desktop;pluma.desktop
application/x-geda-symbol=geda-gschem.desktop;pluma.desktop
application/octet-stream=varicad.desktop;
Eventuell müssen die MIME-Daten neu gelesen werden:
sudo update-mime-database /usr/share/mime
sudo update-desktop-database /usr/share/applications/
==== Den lokalen User entfernen ====
userdel NAME
==== Alle Macht dem Sudo! ====
NAME = "kmk"
echo $NAME " ALL = NOPASSWD:ALL" > /etc/sudoers.d/$NAME
chmod 440 /etc/sudoers.d/$NAME
==== CapsLock dauerhaft loswerden ====
In ''/etc/default/keyboard'' diese Option setzen: ''XKBOPTIONS="caps:none"''
==== Druck machen ====
Im IQO gibt es einen Print-Server "printserv", der die Kommunikation mit den diversen Druckern übernimmt. Der lokale Service 'cups' vermittelt zwischen dem Druckserver und den Anwendungen. Zu cups gibt es unter der URL https://localhost.631 eine vom Browser erreichbare Benutzerschnittstelle. Man kann das Ganze aber auch über die Kommandozeile konfigurieren Und administrieren.
=== Print-Server des IQ ===
In ''/etc/cups/cups-browsed.conf'' einen Verweis auf unseren Server einfügen: :
# IQ specific:
BrowseAllow printserv.iqo.uni-hannover.de
BrowsePoll printserv.iqo.uni-hannover.de:631
BrowseRemoteProtocols dnssd
AutoClustering No
# Only show the publicly accessible printers
BrowseFilter name d323|d123|d230
Den Service neu starten: ''sudo systemctl restart cups-browsed''
Alle bekannten Drucker auflisten: ''lpstat -v''
=== Keine sonstigen Drucker-Angebote annehmen ===
cups versucht mit avahi, alle irgendwie erreichbaren Drucker in den Druckdialog zu spiegeln.
Das ist im IQO nicht wirklich sinnvoll. Hier ist allein unser Druckerserver printserv dafür zuständig. Alle anderen "geteilten Drucker" stören nur.
In /etc/cups/cupsd.conf die lokale Neugierigkeit abschalten:
''BrowseLocalProtocols none''
Den Avahi-Dämon knebeln:
''sudo systemctl mask avahi-daemon''
=== PDF-Drucker ===
apt install cups-pdf
Cups hat ein Problem damit, ins AFS zu schreiben. Daher in ''/etc/cups/cups-pdf.conf'' den Output nach ''/tmp'' umlenken:
Out /tmp/PDF-$(USER)
=== Default-Drucker setzen ===
Es gibt überraschend viele Möglichkeiten, den Default-Drucker zu setzen
* Systemweit: Eine Datei ''/etc/cups/lpoptions'' mit dieser Zeile anlegen:
Default DER-DEFAULT-DRUCKER
* Auf User-Ebene die gleiche Zeile in die Datei ''~/.cups/lpoptions''
* Die User-Zeile wird auch mit diesem Befehl geschrieben: ''lpoptions -d DER-DEFAULT-DRUCKER''
* Mit der Umgebungsvariablen ''Printer'' - zum Beispiel in ''~/.bashrc''
* Mit der Umgebungsvariablen ''LPDEST''
Die Priorität liegt bei den Umgebungsvariablen, dann ''$USER/.cups/lopptions'', dann ''/etc/cups/lpoptions''
Kontrolle, ob der default-Drucker korrekt gesetzt ist: ''lstat -d''
Von der Kommandozeile aus drucken, geht dann mit: ''lpr was.pdf''
==== LUH-Hausschrift Agfa Rotis Sans ====
* Beim Rechenzentrum gibt es eine Seite, auf der Downloads der Schrift Agfa Rotis Sans [[https://www.luis.uni-hannover.de/rotis.html|vorgehalten werden]]
Für Linux gibt es beim LUIS ein Debian-Paket:
wget https://www.luis.uni-hannover.de/fileadmin/arbeitsplatzpc/luh_intern/Rotis-Font/luh-fonts-rotissans_1.100-1_all.deb
sudo dpkg -i luh-fonts-rotissans_1.100-1_all.deb
sudo apt install libotf-bin gwaterfall
sudo fc-cache -f -v
Eventuell wird zusätzlich wird das Paket libotf-bin gebraucht.
Den Font-Cache erneuern: ''fc-cache -f -v''
Viewer für Schriften: waterfall oder gnome-font-viewer oder gnome-specimen
==== Keinen Default-Ordner-Automatismus in $HOME ====
XFCE und andere Desktopumgebungen legen recht hartnäckig diverse Ordner an, die wir hier nicht wirklich brauchen (Music, Videos, Pictures,...). Das kann man abschalten in [[file:///etc/xdg/user-dirs.conf|/etc/xdg/user-dirs.conf]] mit der Zeile:
enabled=False
[[https://freedesktop.org/wiki/Software/xdg-user-dirs/|Doku dazu]]
==== Debian-Pakete nicht archivieren ====
Debian ist von Haus aus so konfiguriert, dass die Pakete nach der Installation nicht gelöscht, sondern in [[file:///var/cache/apt/archives|/var/cache/apt/archives]] aufbewahrt werden. Gedacht ist das für den Fall, dass man große Teile des Systems neu installieren muss und nur ein langsames Internet hat. Dabei kommt im Laufe der Zeit einiges zusammen (~40 GB). Um diese Halde wieder loszuwerden, hilft der Befehl: ''sudo apt-get clean''
Eine Datei ''/etc/apt/apt.conf.d/30do_not_keep_archives'' hält apt davon ab, die Halde überhaupt anzulegen:
// After installation, do not keep downloaded packages in /var/cache/apt/archive/
DSelect
{
Clean "always"; // always|auto|prompt|never
}
Das GUI synaptic muss man getrennt überzeugen:
* Settings → Preferences → Files → "Delete downloaded packages after installation"
==== /var/log/journal schrumpfen ====
systemd legt recht umfangreiche logs in ''/var/log/journal'' an.
Bei Debian kann das defaultmäßig ohne Begrenzung wachsen, bis die Platte voll ist.
=== Schlankheitkur ===
sudo journalctl --disk-usage # Größe des logs ermitteln
sudo journalctl --rotate # archivieren, was im Moment aktiv ist
sudo journalctl --vacuum-time=2days # alles wegschmeißen, was älter als zwei Tage ist
=== Dauerhafte Diät ===
In /etc/systemd/journald.conf diese Zeile einfügen:
SystemMaxUse=200M
==== Email empfangen und verschicken ====
Emailverschicker der Debian-Wahl ist exim4. Exim4 als "smarthost" konfigurieren - entweder bei der konfiguration des Pakets, oder in der Konfig-Datei ''etc/exim4/update-exim4.conf.conf'': :
dc_eximconfig_configtype='smarthost'
dc_other_hostnames=''
dc_local_interfaces=''
dc_readhost='iqo.uni-hannover.de'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.uni-hannover.de::587'
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
==== Das Utility mail ====
Der Befehl /usr/bin/mail aus dem Paket mail-utils kann in Scripten zum Verschicken von Emails genutzt werden.
Debian benutzt etwas andere Dateien zur Konfiguration als in "info mail" suggeriert. Welche das sind, und ob sie erfolgreich gelesen wurden, erfährt man mit :
$ mail --config-verbose
Im Moment (Oktober 2023, trixie/testing) sind das /etc/mailutils.conf und $HOME/.mail .
In $HOME/.mail sollte mindestens der Email-Absender gesetzt werden: :
$ cat ~/.mail
address {
email-addr knaak@iqo.uni-hannover.de;
};
Mehr Konfigurationsmöglichkeiten erfährt man mit: ''mail --config-help''
==== exim gegenüber dem SMTP-Server des Rechenzentrums authentifizieren ====
Die Datei [[file:///etc/exim4/passwd.client|/etc/exim4/passwd.client]] kann ein Account/Passwort-Paar enthalten: :
smtp.uni-hannover.de:knaak@iqo.uni-hannover.de:PASSWORT
**FIXME**: Ein Passwort im Klartext ist natürlich keine so prickelnde Idee. Einziger Schutz sind hier die Unix-Rechte...
Die Config einlesen und exim neu starten:
sudo update-exim4.conf
sudo systemctl restart exim4
Test mit /usr/bin/mail:
mail -s "von mir an mich" knaak@iqo.uni-hannover.de < was.txt
Wenn die Test-mail nicht ankommt, kann das Log von exim hilfreich sein: ''/var/log/exim4/mainlog''
==== Zeitzone korrigieren ====
Falls die Zeitzone für den Rechner nicht richtig eingestellt ist, kann man das korrigieren mit: ''sudo dpkg-reconfigure tzdata''
===== Dymo =====
Obwohl Dymo es auf ihrer Web-Site verschweigen, lassen sich die LabelManager von Linux aus ansteuern. Sie werden in CUPS als normale USB-Drucker eingebunden. Es gibt seit 2014 sogar ein Treiber-Paket im Debian-Repo (printer-driver-dymo) Mit diesem Paket braucht man den Treiber nicht selber zu kompilieren.
==== Dymo-Treiber selber kompilieren ====
nicht nötig, wenn das dymo-Paket aus dem Debian-Repo installiert ist.
* Fürs compilieren des Treibers notwendige Pakete installieren: ''apt install libcups2-dev libcupsimage2-dev''
* Cups-Treiber von Dymo laden:
cd /usr/local/src
mkdir dymo
cd dymo
# http://www.dymo-label-printers.co.uk/news/download-dymo-sdk-for-linux.html
wget http://www.dymo-label-printers.co.uk/user/dymo-cups-drivers-1.4.0.tar.gz
tar -xzf dymo-cups-drivers-1.4.0.tar.gz
cd dymo-cups-drivers-1.4.0.5
configure
make
make install
==== Dymo-Treiberprobleme debuggen 2016(?) ====
poppler aktivieren: :
sudo lpadmin -p DYMO_LabelManager_PnP_an_kwak -o pdftops-renderer-default=pdftops
ghostscript aktivieren: :
sudo lpadmin -p DYMO_LabelManager_PnP_an_kwak -o pdftops-renderer-default=gs
rückgängig mit: :
lpadmin -p DYMO_LabelManager_PnP_an_kwak -R pdftops-renderer-default
==== Dymo-Drucker in CUPs anmelden ====
Der Drucker sollte beim Einstecken automagisch erkannt werden. Wenn nicht, kann man ihn als root entweder im www-Browser über http://localhost:631 → Printers → Add_Printers
oder mit ''system-config-printer'' anmelden. Ein sudo reicht nicht. In jedem Fall sollte der eine, oder andere Parameter angepasst werden:
* Media Size: 12 mm (1/2") Continuous
* Label alignment: Left Aligned
* Continuous Paper: enabled
* Orientation: Landscape (90°)
Mit diesen Voreinstellungen wird leerer Raum am Ende des Schilds nicht gedruckt. Das heißt, die Länge des Schilds passt sich automatisch an den Inhalt an. Wenn hinter dem letzten Buchstaben noch leerer Platz erwünscht ist, hilft ein einzelnes schwarzes Pixel. Die maximale Länge wird durch die Breite des Templates bestimmt.
=== glabels einrichten ===
Es gibt ein git-Projekt mit Vorlagen für Dymo-Drucker: https://git.iqo.uni-hannover.de/elektroniq/glabels.git
glabels3 sucht Schilder-Vorlagen in folgenden Pfaden:
- ''$HOME/.glabels''
- ''$HOME/.config/libglabels/templates/'' -- Die Dateien sollten die Endung "templates" haben.
- ''/usr/share/libglabels-3.0/templates/'' -- Die Dateien müssen die Endung "templates.xml" haben.
Es gibt für den LM-PNP einen Skalierungs-Irrtum, der dazu führt, dass der tatsächliche Ausdruck deutlich kleiner ausfällt als am Bildschirm vorgegeben. Zur Kompensation sollten Höhe und Breite in den Templates um den Faktor 1.7 zu groß gewählt werden.
# Eine Zusammenstellung mit Templates für Dymo-Schilder befindet sich im afs:
# /afs/iqo.uni-hannover.de/system/i386_linux26/products/glabels/dymo-D1-templates.xml
# Die Default-Templates aus dem Weg schaffen und stattdessen die Dymo-Sammlung des IQ verlinken:
sudo rm /usr/share/libglabels-3.0/templates/*templates.xml ;
sudo rm /usr/share/libglabels-3.0/templates/paper-sizes.xml ;
sudo ln -s /afs/iqo.uni-hannover.de/system/i386_linux26/products/glabels/dymo-D1-templates.xml /usr/share/libglabels-3.0/templates/ ;
sudo ln -s /afs/iqo.uni-hannover.de/system/i386_linux26/products/glabels/paper-sizes.xml /usr/share/libglabels-3.0/templates/ ;
Diese Ersetzung muss nach Upgrade wie
derholt werden.
=== glabels-qt ===
glabels-3 wird seit ein paar Jahren nicht mehr weiterentwickelt.
Stattdessen gibt es vom selben Autor den neu geschriebenen Nachfolger "glabels-qt".
Davon gibt es allerdings noch keinen Release (Frühling 2023) und der Hauptautor Jim Evins ist nicht mehr wirklich aktiv.
Seit November 2022 ist Jim Lieb mit einem "weichen" Fork eingesprungen. In seinem github-Repo gibt es einen Branch 'next' mit dem neusten Stand.
Also muss man selbst compilieren:
sudo apt install qtbase5-dev libqt5svg5-dev qttools5-dev zlib1g-dev pkgconf libqrencode-dev
cd /usr/local/src
# git clone https://github.com/jimevins/glabels-qt.git
git clone https://github.com/lieb/glabels-qt.git
cd glabels-qt
git checkout origin/next
mkdir build
cd build
cmake ..
make
sudo make install
=== Dymo-Vorlagen ===
Unsere eigenen Dymo-Vorlagen für glabels-qt befinden sich in einem __ __ BROKEN-LINK:[[https://git.iqo.uni-hannover.de/elektroniq/glabels|eigenenLINK-BROKEN__ git-Projekt]].
Die Vorlagen sollten nach ''/usr/local/share/glabels-qt/templates'' kopiert werden.
Ebenso die um label_rolls erweiterte Datei ''categories.xml''
==== Schriften ====
Die Auflösung der Dymoschilder ist ziemlich grob. Deswegen sehen bei kleinen Schriftgrößen nicht alle Schriften gut aus. Einigermaßen gut funktionieren:
* Nimbus Sans (für größere Schrift)
* Go Medium (mitteldick, gut bei etwa 12pt)
* Bitstream Vera Sans, fett (gut bei 8 pt)
* Mathjax Sans
* Impact (wenn es auffällig dick sein soll)
==== Dymo-Schilder mit lpr drucken ====
lpr -P DYMO_LabelManager_PnP3 -o natural-scaling='72' -o mediatype=12mm -o pagesize=Custom.12x125mm -o dymoprintchainmarksatdocend -o dymo-halftoning=errordiffusion -o page-right=0 M4-pinta.bmp
==== Testmuster auf 24mm-Band ====
lpr -P DYMO_LabelMANAGER_PC_II -o natural-scaling='100' -o ppi="180" -o pagesize=Custom.24x125mm -o dymoprintchainmarksatdocend=0 -o DymoContinuousPaper=0 ~/Beschriftung/Testmuster/fraktalplusgrau127.gif
lpr -P DYMO-LabelMANAGER-PnP_orville -o natural-scaling='100' -o ppi="180" -o pagesize=Custom.12x125mm -o dymoprintchainmarksatdocend=0 -o DymoContinuousPaper=0 ~/Beschriftung/Testmuster/fraktalplusgrau63.gif
==== Der ZEIT-Aufkleber ====
lpr -P DYMO_LabelMANAGER_PC_II -o natural-scaling='216' -o mediatype=24mm -o pagesize=Custom.24x125mm -o dymoprintchainmarksatdocend -o dymo-halftoning=errordiffusion -o page-right=0 diezeit-label.png
==== gimp-Dymo-Tipps ====
Der Kopf des Labelmanager_PC_II druckt 127 Pixelzeilen
* Gitter sichtbar machen: Preferences → Image_Windows → Show_Grid
* Gitter auf 1 Pixel setzen: Image → Configure_grid...
* Bei Text das Antialiasing abschalten
* Die lpr-Option "orientation-requested" funktioniert nicht richtig. Daher im Malprogramm vor dem Export um 90° drehen. Eventuell kann man auch mit convert drehen.
==== inkscape-Dymo-Tipps ====
* Das Schild muss von oben nach unten ausgerichtet sein. (Die Rotations-Optionen von lpr führen zu Verzerrungen,)
* Das Schild als PNG mit 127 Pixeln Breite exportieren.
* lpr -P DYMO_LabelMANAGER_PC_II -o natural-scaling='100' -o ppi="180" -o pagesize=Custom.24x225mm -o dymoprintchainmarksatdocend=0 -o DymoContinuousPaper=0 Kabel_fuer_Nat_Instr.png
==== Bitmap-Fonts installieren/aktivieren ====
Theoretisch sollten Bitmap-Schriften auf der niedrigen Auflösung der Dymo-Drucker vorteilhaft aussehen.
[[http://ptspts.blogspot.de/2010/06/how-to-enable-bitmap-fonts-on-ubuntu.html|Anleitung für Ubuntu]]
==== Bilder und Icons ====
Grafisches Rohmaterial für Aufkleber
* https://openclipart.org/
* Bohrer: https://openclipart.org/detail/103897/drill
* Schraubenantriebe: https://openclipart.org/detail/175981/keksschaf1ceb5ed2
===== Varicad =====
Software-Version von 2011 → Funktioniert das noch?
sudo dpkg -i [[file:///afs/iqo.uni-hannover.de/user/kmk/Software/varicad2011-en_1.10_amd64.deb|/afs/iqo.uni-hannover.de/user/kmk/Software/varicad2011-en_1.10_amd64.deb]]
==== Varicad-Config auf User-Ebene ====
mkdir Projekte
mkdir Konstruktion
cd Projekte/Konstruktion
git clone http://bibo/git/varicad-lib.git
[[.:lizenz:start|Unsere Lizenz]] muss für jeden Nutzer einzeln beim ersten Start von Varicad angegeben werden.
===== Speziell für die Arbeitsplatzrechner der ElektronIQ =====
==== Scripte in thunar ====
FIXME : Ist das auch in Buster noch korrekt? Oder haben die Entwickler nach User-Protest eingelenkt?
Seit Version 1.6.5 bietet thunar bei (bash-) Scripten nicht mehr an, sie auszuführen. Das kann man als "hidden setting" wieder aktivieren. (siehe https://bbs.archlinux.org/viewtopic.php?id=194464 )
Befehl, der die Settings dauerhaft setzt:
xfconf-query --channel thunar --property /misc-exec-shell-scripts-by-default --create --type bool --set true
Diese Einstellung landet in ''$HOME/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml''
Alternativ kann man die Option im xfce4-settings-editor setzen.
==== Allen Usern die USB-Schnittstellen erlauben ====
Normalerweise haben bei Debian nur Angehörige der Gruppe "dialout" Zugriff auf die seriellen Schnittstellen. Diese Sicherheitsschwelle stammt noch aus den Zeiten als man sich per Modem ins Internet einwählte. Sie verhindert aber auch, dass ein Arduino von einem "nur" über Kerberos authentifizierten User bedient werden kann. Für die Arbeitsplatzrechner in der ElektronIQ ist das eher hinderlich. Abhilfe schafft diese Regel für udev in ''/lib/udev/rules.d/10-local.rules'':
# This rule is specific to the desktops in ElektronIQ
# It is supposed to allow all users to access the serial port
KERNEL=="ACM0", MODE="0777"
KERNEL=="ACM1", MODE="0777"
KERNEL=="ACM2", MODE="0777"
KERNEL=="ACM3", MODE="0777"
KERNEL=="ACM4", MODE="0777"
KERNEL=="ACM5", MODE="0777"
KERNEL=="ACM6", MODE="0777"
KERNEL=="ACM7", MODE="0777"
KERNEL=="ACM8", MODE="0777"
KERNEL=="ACM9", MODE="0777"
==== Treiber für Arduino-Clones ====
FIXME:Wird das in Trixie noch gebraucht?
Die besonders preiswerten Arduino-Clones haben statt FTDI einen anderen Chip für die USB-Schnittstelle - meist CHP340g. Sie brauchen einen dafür passenden Treiber. Anleitung: http://sparks.gogo.co.nz/ch340.html
===== Auto-Logout für ssh =====
In [[file:///etc/profile|/etc/profile]] : :
# automatically log out after 200 minutes of inactivity -<)kmk(>-
TMOUT=12000
readonly TMOUT
export TMOUT
===== Auto-Logout für XFCE =====
Für die Einrichtung sollte es reichen, zwei symbolische Links zu Scripten auf unserem Server anzulegen:
ln -s /afs/iqo.uni-hannover.de/system/sbin/elektroniq-autologout.desktop /etc/xdg/autostart/elektroniq-autologout.desktop
ln -s /afs/iqo.uni-hannover.de/system/sbin/elektroniq-logout-countdown.sh /usr/local/bin/elektroniq-logout-countdown.sh
Das erste "elektroniq-autologout.desktop" wird automatische nach dem Login aufgerufen. Es startet "xautolock" so, dass es nach 30 Minuten Nichtstun aufwacht und das zweite Script startet. Dieses zweite Script bringt einen Dialog mit einem Countdown auf den Bildschirm. Wenn der Countdown abgelaufen ist, ohne dass sich der User gerührt hat, wird er (oder sie) automatisch ausgeloggt. Außerdem wird eine kurze Email an den User und an mich geschickt.
Damit das alles klappt, müssen diese drei Pakete installiert sein:
apt install xautolock zenity mailutils
==== Autostart-Script ====
The desktop script ''/etc/xdg/autostart/elektroniq-autologout.desktop'' should be a symbolic link to ''afs/iqo.uni-hannover.de/system/sbin/elektroniq-autologout.desktop''. Contents:
# This desktop entry is part of the automatic logout function of the computers in
# in the ElektronIQ. Clients link to this file. It starts xautolock in the background.
# When necessary, xautolock can be overridden locally. See the man page of xautolock.
###########################################-<)kmk(>-2016
[Desktop Entry]
Type=Application
Name=ElektronIQ auto log out
Comment=automatically log out user after a period of inactivity and a grace time
TryExec=xautolock -time 30 -locker "/usr/local/bin/elektroniq-logout-countdown.sh
Exec=xautolock -time 30 -locker "/usr/local/bin/elektroniq-logout-countdown.sh
Icon=utilities-system-monitor.svg
OnlyShowIn=XFCE;
Terminal=false
Hidden=true
==== Log-out script ====
The logout script executed by xautolock: ''/usr/local/bin/elektroniq-logout-countdown.sh'' is a symbolic link to ''/afs/iqo.uni-hannover.de/system/sbin/elektroniq-logout-countdown.sh''
#!/bin/sh
# Logout script for the computers at ElectronIQ
# * supposed to be launched by xautolock
# * presents a count-down progress bar with zenity
# * initiates a logout via the command xfce4-session-logout
# * on logout an email is sent to the user and to an admin
# * if the user presses "cancel" or closes the dialog the session continues
#
# This script is supposed to be called by xautolock:
# xautolock -time 60 -locker "elektronIQ-logout-countdown.sh"
#############################################-<)kmk(>-2016##################
GRACE=3600 # grace period in seconds
GRACEMINUTES=$(($GRACE / 60)) # grace period in minutes
(
SECONDS=$GRACE
while [ $SECONDS -ge 0 ]
do
PERCENT=$((100 * $SECONDS / $GRACE ))
if [ $PERCENT -lt 100 ] # do not report "100" because this
then # would make the progress bar close
echo $PERCENT # immediately.
fi
echo "# Automatic logout in "$(($SECONDS / 60))" minutes and "$(($SECONDS % 60))" seconds"
SECONDS=$(($SECONDS-1))
sleep 1
done
) | # pipe count-down to zenity
zenity --width=450 --progress \
--title="Auto-Logout" \
--text="Automatic logout..." \
--percentage=100 \
--auto-close
RESULT=$?
# timer got to zero --> RESULT = 0
# user pressed "cancel" --> RESULT = 1
# dialog was closed by user --> RESULT = 1
if [ $RESULT = "0" ]
then
echo "Timer expired --> terminate the XFCE session"
DATE=$(date +%F)
TIME=$(date +%R)
HOST=$(hostname)
EMAIL=$(ldapsearch -ZZ uid=$USER mail 2>/dev/null | awk -F ': ' '$1=="mail"{print $2}')
ADMIN="knaak@iqo.uni-hannover.de"
# Send an email to the user
mail -t <
{{indexmenu_n>200}} /* sort this page to the bottom of the index */