meta data for this page

Debian neu aufsetzen

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-Disc brennen

Für Debian-Installation spielt bei 64-Bit-Systemen der Unterschied zwischen Intel und AMD keine Rolle. Für beides ist “amd64” richtig.

  • Für stable gibt es einen Link zu einem ISO-Image auf der Seite http://www.debian.org/distrib/netinst
  • Für testing empfiehlt Debian den Download mit jigdo-lite. Und das ist im Paket jigdo-file: aptitude install 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
jigdo-lite ./debian-testing-amd64-netinst.jigdo

Einen Install-USB-Stick bauen

Ein Iso-Image des Debian-Installers, das fast alles aus dem Netz saugt. Für Jessie: http://cdimage.debian.org/debian-cd/8.6.0/amd64/iso-cd/debian-8.6.0-amd64-netinst.iso

Für Buster mit XFCE, nonfree-Treibern und Live-System (2.6 GB): https://cdimage.debian.org/images/unofficial/non-free/images-including-firmware/current-live/amd64/iso-hybrid/debian-live-10.1.0-amd64-xfce+nonfree.iso

Übersichtsseite bei Debian für Images mit non-free-Treibern: https://cdimage.debian.org/images/unofficial/non-free/images-including-firmware/

Dieses Iso-Image wird auf den nicht gemounteten Stick geschrieben: :

sudo cp firmware-9.7.0-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

  • Zum Root-Account wechseln: su root
  • vim installieren → apt install vim

- In /root/.bashrc die für root wesentliche Pfade ergänzen: :

export PATH=$PATH:/sbin:/usr/sbin:.
(bei der Gelegenheit 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
# /etc/apt/sources.list von XXXXXXX
# aufgesetzt am XXXXXXXXX durch XXXXXXXX

### oldstable 
deb http://ftp.uni-hannover.de/debian/debian/ oldstable main non-free contrib
deb-src http://ftp.uni-hannover.de/debian/debian/ oldstable main non-free contrib

### stable 
deb http://ftp.uni-hannover.de/debian/debian/ stable main non-free contrib
deb-src http://ftp.uni-hannover.de/debian/debian/ stable main non-free contrib

deb http://security.debian.org/debian-security stable/updates main contrib non-free
deb-src http://security.debian.org/debian-security stable/updates main contrib non-free

deb http://ftp.uni-hannover.de/debian/debian/ stable-updates main contrib non-free
deb-src http://ftp.uni-hannover.de/debian/debian/ stable-updates main contrib non-free

### testing
deb http://ftp.uni-hannover.de/debian/debian/ testing main contrib non-free
deb-src http://ftp.uni-hannover.de/debian/debian/ testing main contrib non-free

### unstable
#deb http://ftp.uni-hannover.de/debian/debian/ unstable main contrib non-free
#deb-src http://ftp.uni-hannover.de/debian/debian/ unstable main contrib non-free

### experimental
#deb http://ftp.uni-hannover.de/debian/debian/ experimental main contrib non-free
#deb-src http://ftp.uni-hannover.de/debian/debian/ experimental main contrib non-free
$ 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.

  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:
[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:connectafs:start

  1. apt install openafs-client openafs-modules-dkms openafs-krb5 krb5-user
  2. openafs neu starten: systemctl restart openafs-client

AFS testen

  1. kinit [name] # Ein Kerberos-Ticket anlegen

  2. aklog # Ein AFS-Token beschaffen

  3. klist # Token anzeigen

  4. ls -l /afs/iqo.uni-hannover.de# sollte ein paar Ordner anzeigen

Home aus dem AFS beziehen

Nicht sinnvoll, wenn die User-Daten lokal vorgehalten werden sollen. Lokale Daten funktionieren nur mit Usern, die in LDAP /home/NAME eingetragen haben.

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

Login mit LDAP und PAM

# Anleitung in: https://iqwiki.iqo.uni-hannover.de/doku.php?id=it:configuration_stuff:configureldap:start - apt install winbind # fragt nach, ob von DHCP übergebene Zusatz-Info genutzt werden soll → j a - apt install samba # wird gebraucht, damit winbd nach dem Boot zur richtigen Zeit startet - Christians Einrichtescript aufrufen: - /afs/iqo.uni-hannover.de/system/sbin/domain_join

  1. 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
  1. Diese beiden Punkte auswählen:
    • ☑ 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 ;      # weil aptitude manchmal noch weiterkommt, wo apt sich verheddert.
aptitude update ;
aptitude install sudo ;
aptitude install firmware-linux-free firmware-linux-nonfree;
                                        # Texteditoren
aptitude install vim ;                  # vernünftiger vi
aptitude install pluma ;                # fork von gedit
aptitude install mousepad ;             # spartanisch
aptitude install medit ;                # mittel
aptitude install bluefish ;             # luxus
aptitude install emacs elpa-org;        # nerdy
aptitude install retext ;               # Editor für Markdown
aptitude install gpm ;                  # Maus für die Textkonsole
aptitude install htop ;                 # eine nette Alternative zu top

# mit GTK3 kompatible Widget-Themes
aptitude install gtk3-engines-xfce ;
aptitude install clearlooks-phenix-theme ; 
aptitude install murrine-themes ; 

# Einige Icon-Themes
aptitude install gnome-colors ;             # einige Standard-Themes von Gnome
aptitude install numix-icon-theme ;         # flaches Icon-Theme
aptitude install papirus-icon-theme ;       # sehr flaches Icon Theme
aptitude install suru-icon-theme ;          # Icon-Theme von Ubuntu-Touch
aptitude install lxde-icon-theme ;          # Default Icon-Theme von lxde

## nicht mehr in buster ## aptitude install xfwm4-themes ; # Mehr Themes für XFCE  
aptitude install sakura  ;              # Terminal ohne Schnörkel
aptitude install meld ;                 # GUI für diff
aptitude install ding ;                 # offline-Wörterbuch deutsch-englisch
aptitude install zim  ;                 # UI für Notizen
aptitude install gir1.2-gtksource-4 ;   # wird vom Source-Plugin von zim gebraucht
aptitude install cairo-dock cairo-dock-gnome-integration-plug-in ;  # desktop UI similar to apple
## nicht mehr in buster ##   aptitude install brightside ;  # sensitive desktop corners
aptitude install qt4-qtconfig ;                             # to make qt applications happy
aptitude install krb5-auth-dialog ;                         # button for the kerrberos tickets
aptitude install zsh zsh-doc fish;                          # shells for nerds
aptitude install arj rar unace unrar rpm lhasa ;            # diverse zusätzliche Pack-Utensilien
aptitude install galculator apcalc wcalc ;                  # "Taschenrechner"
aptitude install gnuplot gnuplot-qt feedgnuplot labplot ;   # graphische Darstellung von Daten
aptitude install git git-cola git-gui thunar-vcs-plugin ;   # Versionskontrolle mit git
aptitude install git-lfs                                    # große Dateien mit git
aptitude install firefox-esr chromium;                      # www-Browser
aptitude install myspell-de-de ;                            # deutsche Rechtschreibung für firefox
aptitude install gftp ;                                     # FTP-Client
aptitude install inkscape xfig psutils pstoedit ;           # Vektorgrafik
aptitude install gimp imagemagick ;                         # Pixelgrafik
aptitude install gpick ;                                    # Color-Picker
aptitude install eom ristretto geeqie;  # Image-Viewer
aptitude install okular atril evince ;  # PDF-Viewer
aptitude install pdftk ;                # um einzelne Seiten aus einem PDF-Dokument zu extrahieren
aptitude install poster  posterazor;    # um PDF-Dokumente zu skalieren und/oder auf mehrere Seiten zu verteilen
aptitude install pdfgrep ;              # um mit der Komandozeile in PDF-Dokumenten suchen zu können
aptitude install poppler-utils ;        # viele Utilities für PDFs
aptitude install flpsed ;               # um PDFs mit Anmerkungen versehen zu können
aptitude install texlive texlive-science texlive-generic-extra texlive-latex-recommended texlive-latex-extra ; # LaTeX
aptitude install texlive-fonts-recommended texlive-fonts-extra;     # mehr LaTeX
aptitude install preview-latex-style texlive-lang-english texlive-lang-german texlive-lang-french texlive-lang-european ; # Sprach-Pakete für LaTeX
aptitude install texlive-publishers ;   # LaTeX-Dokumentstile von diversen großen Verlagen
aptitude install lyx fonts-lyx ;        # graphisches Frontend für LaTeX
aptitude install biber ;                # Latex-Literaturverwaltung
## nicht mehr in buster ##  zotero-standalone  xul-ext-zotero xul-ext-lyz libreoffice-zotero-integration ;
aptitude install build-essential autotools-dev cmake ;          # Um Anwendungen lokal zu bauen
aptitude install ddd devhelp anjuta anjuta-extras codeblocks codelite codelite-plugins geany ;  # IDEs
aptitude install python3-numpy python3-scipy python3-pandas python3-matplotlib  # Häufiger gebrauchte Python-Pakete
aptitude install libreoffice ;                                  # Office-Anwendungen
aptitude install libreoffice-l10n-de libreoffice-l10n-en-gb ;   # englisches und deutsches Sprachpaket für Libreoffice
aptitude install libreoffice-gtk3 ;                             # damit Libreoffice sich an die Style-Vorgaben des XFCE-Desktops hält
aptitude install hyphen-de hyphen-en ;                          # Worttrennungen für Libreoffice
aptitude install mythes-de ;                                    # deutscher Thesaurus für Libreoffice
aptitude install openclipart ;                                  # Bildchen und Icons zum Einbinden in libreoffice
aptitude install pandoc ;                                       # konvertiert unter anderem libreoffice nach latex
aptitude install scribus ;                                      # Desktop-Publishing
aptitude install finger epstool coreutils tree;                 # nützliche Commandline Tools
aptitude install hardinfo lshw-gtk hwinfo screenfetch;          # zeigt erkannte Hardware an
aptitude install gparted ;                                      # Partitionierung und Formatierung von USB-Sticks, SSDs und Festplatten
aptitude install playonlinux ;                                  # wine-Umgebung mit funktionaler Multiarch-Konfigration 
aptitude install winetricks mono-complete ;                     # unterstützende Pakete für wine
aptitude install glabels printer-driver-dymo ;                  # um Dymo-Schilder ausdrucken zu können
aptitude install geda geda-gattrib geda-gsymcheck pcb gerbv ;   # Elektronik-Anwendungen: geda
aptitude install kicad kicad-footprints kicad-libraries ;       # Elektronik-anwendungen: kicad
aptitude install kicad-doc-en kicad-doc-de kicad-demos ;
aptitude install kicad-packages3d kicad-symbols kicad-templates ;
aptitude install freehdl ;                                      # Elektronikanwendungen: freehdl
aptitude install sigrok pulseview ;                             # Frontend für Fernabfrage von Rigol-Multimeter und Spectrumanalyzer
aptitude install freecad freecad-python2 freecad-python3 ;      # ein Projekt mit dem langfristigen Ziel, solidworks, oder inventor zu ersetzen
aptitude install librecad ;                                     # 2D-CAD-Programm mit DXF als Speicherformat
## nicht mehr in buster ## aptitude install python-vte  gir1.2-vte ;    # wird für das GTK-GUI von reportbug gebraucht
aptitude install synaptic apt-xapian-index ;                    # damit synaptic eine Suche eingebaut hat
aptitude install apt-show-versions ;                            # zeigt die Version installierter Pakete an.
aptitude install apt-file apt ;                                 # sucht auch in nicht installierten Paketen nach Dateien
apt-file update  ;                                              # den Index von apt-file erzeugen
aptitude install mlocate ;                                      # indizierte Suche für Dateinamen über die ganze Festplatte
aptitude install command-not-found  ;                           # macht auf der Kommandozeile Vorschläge, wenn etwas fehlt
update-command-not-found ;                                      # den Index von command-not-found  erzeugen
aptitude install gvfs-bin ;                                     # Tools für die Default-Anwendungen mit MIME
aptitude install systemsettings qt5ct ;                         # Einstellungen von KDE-Anwendungen
# aptitude install usbmount ;                                   # damit USB-Sticks automagisch gemountet werden
aptitude install claws-mail claws-mail-themes claws-mail-plugins claws-mail-extra-plugins clawsker claws-mail-tools ; # Email
aptitude install s-nail ;                           # verbesserte Alternative zu mail -- wird von der Auto-Logout-Mechanik benutzt
aptitude install ldap-utils ;                       # enthält unter anderem ldapsearch
aptitude install filelight ;                        # graphische Anzeige, wo der Speicherplatz verteilt ist
aptitude install krusader ;                         # File-Manager von KDE. Alternative zu thunar
aptitude install krename kompare kget ;             # wird von krusader benutzt
aptitude install memtest86+ ;                       # Speichertest — wird in grub eingebunden
aptitude install x2goclient x2goserver cups-x2go ;  # Auf die Grafik-Session von anderen Linuxrechnern zugreifen (lassen)
aptitude install gvncviewer gino xtightvncviewer;   # Auf die Grafik-session von anderen Windows-Rechnern zugreifen

aptitude install korganizer ;                   # Kalender-Anwendung die mit dem Institutskalender synchronisieren kann
aptitude install kleopatra seahorse ;           # Verwaltung von Schlüsseln und Zertifikaten

aptitude install `apt-cache  search --names-only -q icon-theme |awk '{ print $1 }'` ;   # Alle desktop-icon-themes, die Debian anbietet

aptitude install audacious ;                    # sound und audio
aptitude install streamtuner2 ;                 # Webradio
aptitude install beep ;                         # Piiep

aptitude remove xscreensaver ;                  # den im XFCE enthaltenen Screensaver entfernen (nicht mehr nötig in buster)
aptitude install xautolock zenity mailutils;    # wird für den automatischen Log-out nach Inaktivität gebraucht (siehe unten)
# aptitude remove xtrlock light-locker ;        # mehr als ein Lock-Programm kann zu Verwirrungen führen (FIXME: muss das sein?)

aptitude install texinfo ;                      # für die Doku von geda-gaf

aptitude install fonts-go ;                             # Schrift für Dymo-Schilder
aptitude install fonts-rufscript fonts-taml-tscu ;      # Schreibschriftschriften rufscript, tscu-comic
aptitude install fonts-tomsontalks;                     # Comic-Smallcaps tomsontalks
aptitude install ttf-xfree86-nonfree t1-xfree86-nonfree ;   # Schriften für eagle-AEI
aptitude install ttf-mscorefonts-installer  ;           # andale, arial, comic sans, courier, georgia, trebuchet, verdana, webdings
aptitude install gwaterfall ;                           # Viewer für Schriften
aptitude install fonts-powerline ;                      # für den Prompt auf den Servern web, afs1, afs2, ...   

aptitude install python3-numpy python3-serial ipython3  python3-pip ;   # python
aptitude install esptool ;                              # Python-Infrastruktur

aptitude install arduino arduino-mk flashrom ;          # für Arduino-Projekte
aptitude install avrdude avrdude-doc ;                  # für Arduino-Projekte
aptitude install screen ;                               # Terminal-Emulator für Arduino und Co.

aptitude install sddm ;                                 # sddm statt lightdm
aptitude install kde-config-sddm sddm-theme-elarun      # Das Default-Theme von ssdm taugt nicht wirklich gut für 200 User
aptitude remove lightdm ;

Alternatives setzen

update-alternatives --install /usr/bin/edit editor /usr/bin/medit 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/medit 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, keine User-Liste anzeigen: :

[base]
session=/usr/bin/startxfce4
...
[display]
lang=0
...
[userlist]
disable=1

sddm konfigurieren

in /etc/sddm.conf : :

[Autologin]
Relogin=false
Session=
User=

[General]
HaltCommand=
RebootCommand=

[Theme]
Current=elarun
CursorTheme=Adwaita

[Users]
MaximumUid=60000
MinimumUid=1000
RememberLastUser=false
RememberLastSession=false

[X11]
ServerArguments=

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 Dektop. 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 Commandozeile: :

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

Cairo-Dock bepuscheln

Cairo-Dock sollte vor dem Start ein wenig warten: /usr/local/bin/cairo-dock-wrapper.sh :

#!/bin/sh
sleep 3s

XFCE-Fenster mit breitem Rand

Bei den von Debian mitgelieferten Themes statten die Fenster fast alle einen 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

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

  • Nur in jessie, nicht in stretch, nicht in buster
  • 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:
aptitude install multiarch-support ; 
dpkg --add-architecture i386 ; 
aptitude update ;
aptitude install eagle:i386 ;
aptitude 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

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:

cp -r afs/iqo.uni-hannover.de/products/eagle/5.7_eagle-AEI usr/local/eagle-AEI ;

ltspiceIV

# 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.
aptitude 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: :

wine /usr/local/share/LTspiceIV.exe ;   
# wine64 scheitert, weil das Binary von LT für win32 compiliert wurde

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

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.18-2 von 2014.

Versuch, v0.0.20 selbst zu compilieren: :

sudo apt install build-essential
sudo apt install libqt4-dev libqt4-qt3support
sudo apt install automake libtool libtool-bin gperf flex bison
sudo apt install doxygen octave latex2html 
sudo apt install texlive texlive-font-utils texlive-math-extra texlive-science-doc texlive-science
sudo apt install fig2dev gnuplot graphviz ps2eps texlive-pictures python-tk

sudo apt install libgd-perl libxml-libxml-perl libxml2 libxml2-dev


cd /usr/local/src
sudo mkdir qucs
sudo chmod g+w qucs
sudo chgrp iqo qucs
cd qucs
# adms installieren
git clone https://github.com/Qucs/ADMS.git
cd ADMS
sh bootstrap.sh
./configure --enable-maintainer-mode
make -j4
sudo make install

git clone git://github.com/Qucs/qucs.git
cd qucs
./bootstrap
./configure
make -j4
sudo make install

→ scheitert leider an:
g++ -DHAVE_CONFIG_H -I. -I../..  -I../../src -I../../src -I../../src/math   -O2 -pipe -fno-exceptions -fno-check-new -ldl -rdynamic -MT scan_spice.o -MD -MP -MF .deps/scan_spice.Tpo -c -o scan_spice.o scan_spice.cpp
scan_spice.lpp:51:10: fatal error: parse_spice.hpp: No such file or directory
   51 | #include "parse_spice.hpp"
      |          ^~~~~~~~~~~~~~~~~

Datei-Vervollständigung vervollständigen -> nicht mehr nötig

In /etc/bash.bashrc die entsprechenden Zeilen entkommentieren.

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 :

ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes
GSSAPIKeyExchange yes
GSSAPITrustDNS 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, 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 erlauben

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 udisk

udisk

</code>aptitude install udisks2

Die Konfig-Datei ''%%/etc/polkit-1/localauthority/50-local.d/udisks.pkla%%'' anlegen mit dem Inhalt
<code>
[udisks] Identity=unix-user:* 
Action=org.freedesktop.udisks* 
ResultAny=yes 

Nach ausloggen und wieder einloggen sollten USB-Sticks automagisch eingehängt werden.

usbmount

(nicht in buster oder stretch) Mit dem Paket usbmount werden USB-Sticks erfolgreich automatisch gemountet. Leider nur als root. Um auch als normaler User zu lesen und schreiben, kann man die Masken so setzen, dass alle alles dürfen. In /etc/usbmount/usbmount.conf :

MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime,dmask=0000,fmask=0000,users"

Etwas unschön an dieser Lösung ist, dass “Unmount” und “Eject” im Desktop weiterhin in einer Fehlermeldung scheitern. Wegen der sync-Option sind sie aber auch nicht nötig.

MIME für Default-Anwendungen

# Der Inhalt der Datei /usr/share/applications/mimeapps.list bestimmt die Reihenfolge,
# in der Anwendungen an den Start kommen:
echo \
"[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/
     ">  /usr/share/applications/mimeapps.list

Den lokalen User entfernen

userdel NAME

Alle Macht dem Sudo!

echo \
"
         kmk     ALL = NOPASSWD:ALL
"> /etc/sudoers.d/kmk
chmod 440 /etc/sudoers.d/kmk

CapsLock loswerden

  • In /etc/default/keyboard XKBOPTIONS="caps:none"

Geräusche

Ein GUI für Pulseaudio: pavucontrol → wird seit buster automatisch installiert

Spontane Lautstärkernveränderungen verhindern: in /etc/pulse/daemon.conf - flat-volumes = yes → ist seit buster der Default

Druck machen

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

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

PDF-Drucker

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

echo "
Default prn-1101-003-d323-1 Duplex=None
" >> /etc/cups/lpoptions

Alternativ das Gleiche auf User-Ebene in der Datei ~/.cups/lpoptions

Keinen Default-Ordner-Automatismus im $HOME

XFCE und andere Desktopumgebungen legen recht hartnäckig diverse Ordner an, die wir hier nicht wiurklich brauchen (Music, Videos, Pictures,…). Das kann man abschalten in /etc/xdg/user-dirs.conf mit der Zeile: :

enabled=False

Doku dazu: https://freedesktop.org/wiki/Software/xdg-user-dirs/

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 in /etc/apt/apt.conf.d hält apt davon ab, die Halde überhaupt anzulegen:

echo "
// After installation, do not keep downloaded packages in /var/cache/apt/archive/
DSelect 
{
  Clean "always";   // always|auto|prompt|never
}; >> /etc/apt/apt.conf.d/30clean

Das GUI synaptic muss man getrennt überzeugen:

  • Settings → Preferences → Files → “Delete downloaded packages after installation”

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 2018, buster/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 dem /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: :

sudo cat /var/log/exim4/mainlog
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 brqaucht man den Treiber nicht selber zu kompilieren.

Dymo-Treiber selber kompilieren

# Fürs compilieren des Treibers notwendige Pakete installieren: aptitude 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 # auspacken tar -xzf dymo-cups-drivers-1.4.0.tar.gz ; cd dymo-cups-drivers-1.4.0.5 ; # konfigurieren, installieren ./configure; make; make install ;

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 ü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 wiederholt werden.

glabels-qt

In der nächsten Version von glabels ist derart viel anders, dass sie unter einem neuen Namen läuft: glabels-qt Diese Version ist noch nicht bei Debian angekommen, aber schon mehr als brauchbar. Lokaler install von github: :

sudo apt install qtbase5-dev libqt5svg5-dev qttools5-dev zlib1g-dev
sudo apt install pkgconf libqrencode-dev
sudo apt install zint libzint-dev barcode
cd /usr/local/src
sudo git clone https://github.com/jimevins/glabels-qt.git
sudo chown -R kmk glabels-qt
cd glabels-qt
mkdir build
cd build
cmake ..
make
sudo make install
# Unsere Dymo-Vorlagen im AFS verlinken
sudo ln -s /afs/iqo.uni-hannover.de/system/i386_linux26/products/glabels/dymo-D1-templates.xml /usr/local/share/glabels-qt/templates/dymo-D1-templates.xml
sudo mv /usr/local/share/glabels-qt/templates/categories.xml /usr/local/share/glabels-qt/categories.xml_orig
sudo ln -s /afs/iqo.uni-hannover.de/system/i386_linux26/products/glabels/categories.xml /usr/local/share/glabels-qt/templates/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-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-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

Bilder und Icons

Die LUH-Hausschrift Agfa Rotis Sans

Für Linux gibt es 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

Zeitzone korrigieren
# Falls die Zeitzone für den Rechner nicht richtig eingestellt is, kann man das korrigieren mit:
sudo dpkg-reconfigure tzdata
Varicad in Gang bringen

sudo dpkg -i /afs/iqo.uni-hannover.de/user/kmk/Software/varicad2011-en_1.10_amd64.deb

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.

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

Die Einstellung landet in ~/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml Alternativ kann man die Option von Hand setzen mit dem xfce4-settings-editor

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

echo "
# 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"
" >> /lib/udev/rules.d/10-local.rules

Treiber für Arduino-Clones

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

Automatischer Logout

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: aptitude install xautolock zenity mailutils;

Autostart-Script

The desktop script started on login /etc/xdg/autostart/elektroniq-autologout.desktop is a symbolic link to /afs/iqo.uni-hannover.de/system/sbin/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

#!/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