si3t.ch> cd /

Post-installation d'OpenBSD desktop

Notes personnelles pour profiter d'OpenBSD dans un usage "desktop".

Installation chiffrée

Voir la FAQ

S'il y a un bug à la fin de l'installation en cas d'UEFI, installer le chargeur de démarrage à la main avec installboot.

/tmp en ram

Je monte /tmp en ram, et j'attribue 1/10 de la RAM disponible pour ça.

On commente avant tout la ligne contenant déjà une entrée pour /tmp dans /etc/fstab.

# sed -i '/\/tmp /s/^/\#/' /etc/fstab
# printf "swap /tmp mfs rw,nodev,nosuid,-s=%sB 0 0\n" \
    $(dmesg |awk '/avail mem/ { print int($4 / 10)}') \
	>> /etc/fstab
# chmod 1777 /tmp

/home en 700

$ chmod 0700 $HOME

Autologin

Si on est le seul utilisateur de la machine et que l'ensemble est chiffré et qu'on éteint son ordi lorsqu'on ne l'utilise pas, alors on peut activer l'autologin pour xenodm :

echo 'DisplayManager._0.autoLogin: user' >> /etc/X11/xenodm/xenodm-config

Dans ce cas, je vous conseille de désactiver la possibilité de fermer la session graphique avec Ctrl-Shift-backspace. Sinon, n'importe qui peut prendre le contrôle de votre session même si vous l'avez verrouillée avec xlock (ou autre).

On en profite aussi pour retirer la possiblité d'accder à un tty avec Ctrl-Alt-F*.

cat << EOF >> /etc/X11/xorg.conf
     Section "ServerFlags"
             Option "DontZap"      "True"
             Option "DontVTSwitch" "True"
     EndSection
EOF

Utilisation d'imprimante

J'ai une imprimante USB, je ne souhaite pas qu'elle soit détectée comme "ulpt".

Donc :

echo "disable ulpt" >> /etc/bsd.re-config

Boot plus rapide

echo "set timeout 1" > /etc/boot.conf

Performance d'affichage : machdep.allowaperture

Puisque c'est suggéré dans mon fichier /var/log/Xorg.0.log, j'active ette option:

echo "machdep.allowaperture=1" >> /etc/sysctl.conf

doas

cat << EOF > /etc/doas.conf
permit persist :wheel
permit nopass  :wheel cmd /sbin/disklabel
permit nopass  :wheel cmd /sbin/umount
permit nopass  :wheel cmd /sbin/shutdown
permit nopass  :wheel cmd /sbin/reboot
permit nopass  :wheel cmd /sbin/mount
permit nopass  :wheel cmd /usr/sbin/zzz
permit nopass  :wheel cmd /usr/sbin/ZZZ
EOF

wsconsctl

cat << EOF > /etc/wsconsctl.conf

keyboard.bell.volume=0
display.brightness=80
EOF

rc.shutdown

echo "su prx -c '/usr/local/bin/mpd --kill' >> /etc/rc.shutdown
echo "su prx /home/prx/bin/prxsync push" >> /etc/rc.shutdown

Installation de quelques programmes

dwm

dwm

J'utilise une version de dwm avec quelques patches directement intégrés dans mon config.h :

À vrai dire, ces patches ne me sont que très rarement utiles...

J'y ajoute parfois le patche alpha

--- a/drw.c
+++ b/drw.c
@@ -202,6 +202,8 @@ drw_clr_create(Drw *drw, Clr *dest, const char *clrname)
 	                       DefaultColormap(drw->dpy, drw->screen),
 	                       clrname, dest))
 		die("error, cannot allocate color '%s'", clrname);
+
+	dest->pixel |= 0xff << 24;
 }
 
VER=6.4
cd /tmp
ftp https://dl.suckless.org/dwm/dwm-$VER.tar.gz
tar xvzf dwm*.tar.gz
cd dwm-$VER
ftp -o config.h https://si3t.ch/pub/dwm-config.h
vi config.mk # sed -i /^#FREETYPEIN/s/^#// config.mk
make
make install PREFIX=$HOME

dmenu avec quelques patches

dmenu

Patches utilisés :

VER=5.2
cd /tmp
ftp https://dl.suckless.org/tools/dmenu-$VER.tar.gz
tar xvzf dmenu*tar.gz
cd dmenu-$VER
ftp https://tools.suckless.org/dmenu/patches/mouse-support/dmenu-mousesupporthoverbgcol-5.0.diff
ftp https://tools.suckless.org/dmenu/patches/xyw/dmenu-xyw-5.0.diff
for i in *.diff; do patch -p1 < $i; done
vi config.mk # OpenBSD uncomment
ftp -o config.h https://si3t.ch/pub/dmenu-config.h
make
make install PREFIX=$HOME

st

Un terminal tout simple, donc rapide.

VER=0.9
cd /tmp
ftp https://dl.suckless.org/st/st-$VER.tar.gz
tar xvzf st-*.tar.gz
cd st-$VER
ftp -o config.h https://si3t.ch/pub/st-config.h
vi config.mk # edit OpenBSD config
make
make install PREFIX=$HOME

rover

Un excellent gestionnaire de fichiers rapide et simple: => https://lecram.github.io/p/rover/ rover

https://lecram.github.io/p/rover/

cd /tmp
git clone --depth=1 https://github.com/lecram/rover.git
cd rover
make
make install PREFIX=$HOME

Scripts

cd /tmp
ftp https://si3t.ch/code/prxbins.tgz
tar xvzf prxbins.tgz
mv prxbins $HOME/bin

Install dotfiles (fichiers de configuration)

cd /tmp
mkdir dotfiles && cd dotfiles
ftp https://si3t.ch/code/dotfiles.tgz
tar xvzf dotfiles.tgz
cd dotfiles
for i in *; do cp -r $i $HOME/.$i; done
mkdir -p $HOME/.config/gtk-3.0/
mv $HOME/.gtk-3.0-settings.ini $HOME/.config/gtk-3.0/settings.ini
mv $HOME/.nsxiv $HOME/.config/nsxiv

Résolveur DNS indépendant (unwind) + adblock

cat << EOF >> /etc/unwind.conf
block list "/var/db/unwind-block.txt" log

fdn1=80.67.169.12
fdn2=80.67.169.40
quad9=9.9.9.9

forwarder { $fdn1 DoT $fdn2 DoT $quad9 }

preference { recursor DoT oDoT-forwarder oDoT-autoconf stub }
EOF

rcctl enable unwind
rcctl start unwind
echo "nameserver 127.0.0.1" > /etc/resolv.conf
echo "lookup file bind" >> /etc/resolv.conf

cat << EOF >> /usr/local/sbin/unwindblock
#!/bin/sh
db=/var/db/unwind-block.txt
if [ -n "$(find $db -mtime +7)" ]; then
        # wait for internet access
        while true; do
                nc -zw1 si3t.ch 443 && break || sleep 60
        done
        ftp -o- https://si3t.ch/pub/evils/unwind-block.txt.gz |gzcat > $db
fi
EOF

# crontab -e 
@reboot /usr/local/sbin/unwindblock

# echo 'block list "/var/db/unwind-block.txt" log' > /etc/unwind.conf

https://si3t.ch/evils/

rc.local

cat << EOF >> /etc/rc.local
sleep 30 && syspatch
sleep 60 && find /home -name "*.core" -delete &
EOF

Gestion de l'énergie

Le système sera suspendu si la batterie descend en-dessous de 8%. Ça permet de brancher la machine sans perdre son travail.

rcctl enable apmd
rcctl set apmd flags -A -z 8

Et pour que l'écran soit verouillé après avoir suspendu la machine:

# cat /etc/apm/suspend
#!/bin/sh
pkill -USR1 xidle

Le script checkbatt permet d'avoir une alerte si la batterie a un niveau trop faible. Il s'appelle via un cron. :

*/5 * * * * /home/prx/bin/checkbatt >/dev/null 2>&1

ntpd

sed -i 's/www\.google\.com/www.openbsd.org/' /etc/ntpd.conf

firmwares

Si aucun accès à internet n'est disponible, récupérer les firmwares en ligne, les copier sur une clé USB, monter la clé puis lancer "fw_update" ainsi :

fw_update -p /chemin/vers/cle/usb/

http://firmware.openbsd.org/firmware/

réseau et WiFi

Sur un portable, on peut activer le WiFi et le filaire avec de préférence le filaire. En cas de déconnexion, l'autre carte réseau prend le relais.

Dans mon cas, sur un x250 :

# cat /etc/hostname.iwn0
join wifi1 wpakey blabla
join wifi2 wpakey pouet
join ""
up

# cat /etc/hostname.em0
up

# cat /etc/hostname.trunk0
trunkproto failover trunkport em0
trunkport iwm0
inet autoconf
inet6 autoconf

Montage de cdrom/DVD

$ doas mkdir /cdrom 
$ cat /etc/fstab
/dev/cd0a /cdrom cd9660 ro,noauto 0 0

Disque dur externe de musique

/etc/fstab :

/dev/sd2i /home/prx/mpd msdos rw,noatime,nodev,nosuid,noauto 0 0

login.conf et meilleures performances

On peut modifier le fichier /etc/login.conf pour profiter de toute la mémoire disponible sur le système et augmenter les limites :

# sed -i 's/datasize-cur=768M/datasize-cur=4096M/' /etc/login.conf
# sed -i 's/datasize-max=768M/datasize-max=4096M/' /etc/login.conf

Outils audio USB prioritaires

# rcctl set sndiod flags -f rsnd/0 -F rsnd/1
# rcctl restart sndiod

ports

Liste générée avec pkg_info -zm > obsdpkglist.txt.

ftp https://si3t.ch/pub/obsdpkglist.txt
pkg_add -vmzl obsdpkglist.txt

[XHTML 1.1 valid] [CSS < 256B] [] [http/Tor]