meta data for this page

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 Open Source. Das Betriebssystem der Computer an den Arbeitsplätzen ist Debian-Linux. Zur Entwicklung von Elektronik kommen Kicad, Geda und Eagle zum Einsatz.

Die Arbeitsplatz-Computer wurden nach dem folgenden Rezept aufgesetzt. Ein zentraler Teil ist dabei die 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/*
(kann nur von Admins 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 brauch man ein Iso-Image mit einem Debian-Installer

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 geschrieben1):

sudo cp debian-irgendwas-amd64-netinst.iso /dev/sdg
sudo sync

Base-Install

  • vom USB-Stick booten
  • 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 /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

$ vi /etc/apt/sources.list
sources.list
# /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_locale_and_timezone.sh
# 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.

  1. Nur die Warnungen selbst anzeigen: sudo update-initramfs -u -
  2. wget installieren: apt install wget
  3. Download: wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/FOO/BAR
  4. An die richtige Stelle kopieren: sudo cp BAR /lib/firmware/FOO/BAR
  5. 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)

  1. Kerberos installieren: apt install krb5-user krb5-auth-dialog
  2. /etc/krb5.conf durch den folgenden Inhalt ersetzen:
krb5.conf
[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

  1. apt install openafs-client openafs-modules-dkms openafs-krb5 krb5-user
  2. 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.

  1. Das alte Home aus dem Weg schaffen: mv /home /home_local
  2. Stattdessen einen Link ins AFS anlegen: ln -s /afs/iqo.uni-hannover.de/user/ /home

Login mit LDAP und PAM

Anleitung im IQwiki

  1. apt install winbind – fragt nach, ob von DHCP übergebene Zusatz-Info genutzt werden soll → ja
  2. apt install samba – wird gebraucht, damit winbd nach dem Boot zur richtigen Zeit startet
  3. /afs/iqo.uni-hannover.de/system/sbin/domain_join – Christians Einrichtescript ausführen
  4. 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
  5. 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

install_packages.sh
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 libtext-multimarkdown-perl ;	# luxus für Markdown
 
# 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 ;		# 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 zu skalieren und/oder 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 ;				# Client 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
 
# Screensaver
#apt remove xscreensaver ;			# den im XFCE enthaltenen Screensaver entfernen (nicht mehr nötig in buster)
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
apt install codeblocks ;			# Noch ein IDE
apt install codelite codelite-plugins ;
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

alternatives.sh
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

in /etc/sddm.conf : :

sddm.conf
[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 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: 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: /usr/local/bin/cairo-dock-wrapper.sh :

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

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.json
{
"policies": {
"BlockAboutConfig": true,
"DisablePasswordReveal": true,
"DisableMasterPasswordCreation": true,
"OfferToSaveLogins": false,
"OfferToSaveLoginsDefault": false,
"PasswordManagerEnabled": false,
"Authentication": {
"SPNEGO": [".iqo.uni-hannover.de"],
"Delegated": [".iqo.uni-hannover.de"]
}
}
}

Non-Debian Software

geda

geda_install.sh
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

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.

Waterfox

Waterfox ist ein Fork von Firefox

Installationsanleitung (läuft auf die Einrichtung eines weiteren Repos in /etc/apt/sources.d hinaus)

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:

ssh_config
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:

$HOME/.ssh/config
###################
# 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

Das normale Verfahren mit USB-Sticks bei XFCE setzt voraus, dass der jeweilge User in /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

(Diskussion auf stackexchange)

udisk2

apt install udisks2

Die Konfig-Datei /etc/polkit-1/localauthority/50-local.d/udisks.pkla anlegen:

udisks.pkla
[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:

mimeapps.list
[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

In /etc/cups/cups-browsed.conf einen Verweis auf unseren Server einfügen: :

add-iqo-print-server.sh
echo "
# IQ specific:
BrowsePoll printserv.iqo.uni-hannover.de:631
CreateIPPPrinterQueues Yes
" >> /etc/cups/cups-browsed.conf ;

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

Systemweit: Eine Datei /etc/cups/lpoptions mit einer Duplex-Zeile anlegen:

lpoptions
Default RICOH_Aficio_MP_301_D323_printserv_iqo_uni_hannover_de Duplex=None

Alternativ die gleiche Zeile auf User-Ebene in der Datei ~/.cups/lpoptions

Oder mit dem Befehl lpoptions -d RICOH_Aficio_MP_301_D323_printserv_iqo_uni_hannover_de

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 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 /etc/xdg/user-dirs.conf mit der Zeile:

enabled=False

Doku dazu

Debian-Pakete nicht archivieren

Debian ist von Haus aus so konfiguriert, dass die Pakete nach der Installation nicht gelöscht, sondern in /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:

30do_not_keep_archives
// 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: :

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 /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:

  1. $HOME/.glabels
  2. $HOME/.config/libglabels/templates/ – Die Dateien sollten die Endung “templates” haben.
  3. /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 eigenen 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.

Anleitung für Ubuntu

Bilder und Icons

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

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:

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 /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:

elektroniq-autologout.desktop
# 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

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 <<EOF
TO: $EMAIL
FROM: root@$HOST.iqo.uni-hannover.de
Reply-To: $ADMIN
SUBJECT: automatic logout from $HOST
 
Hello $USER.
On $DATE, $TIME you have been automatically logged out from the computer $HOST
at the electronics workshop. Automatic logout is initiated after half an hour
of inactivity and $GRACEMINUTES minutes grace period.
You can drop $ADMIN an email if you need a longer grace period.
 
Greetings from the faithful logout script.
EOF
 
  # Send an email to the admin
  mail -t <<EOF
TO: $ADMIN
FROM: root@$HOST.iqo.uni-hannover.de
SUBJECT: automatic logout of $USER from $HOST
 
On $DATE, $TIME $USER was automatically logged out from $HOST.
 
Greetings from the faithful logout script.
EOF
 
  # do the actual logout
  xfce4-session-logout --logout
 fi
exit
1)
Empfehlungen, das mit dd zu tun sind obsolet. Seit etwa 2020 geht auch ein normales cp