OpenBSD kasutamine töökohaarvutis
Sissejuhatus
TODO
Tööpõhimõte
Väited
- Kasutusel on OpenBSD v. 6.5 (amd64 platvorm, multiprotsessor cpu toega kernel, xfce4 aknahaldur)
- Töökohaarvuti on Proxmox v. 5.4 keskkonnas käivitatud virtuaalne UEFI toega arvuti
- OpenBSD on paigaldamisest alates esitama serial konsoolile väljundit
Riistvara
Selleks, et arvuti oleks hästi kasutatav, tuleb OpenBSD riistavara hoolge valida.
- Füüsiline amd videokaart sobib pigem vanemat tüüpi, 'man amdgpu' võiks midagi uut toetada, aga nt RX 550 (Polari 12 ei tööta).
- amdgpu tugi tuleb firmware.openbsd.org pealt nö binary blob kaudu fw_update utiliidiga
- Uuemad videokaardid töötavad üldiselt efifb režiimis, aga jõudlus on vilets (koormab protsessorit ja pilt on kohmakas, nt akende liigutanine ja suuruse muutmine)
- tundub, et OpenBSD ei toeta üldse nö loomulikul viisil uuemate nvidia videokaartide kasutamist (ka mitte fw_update abil)
Igal reboodil
- genereeritakse uus kernel järgmiseks korraks
- relingitakse libc, ld ja libcrypto teegid selleks korraks
Proxmox virtuaalne arvuti
Proxmox virtuaalse arvuti seadistused
root@pm-moraal-4-v52:~# cat /etc/pve/qemu-server/127.conf bios: ovmf boot: cdn bootdisk: sata0 cores: 2 efidisk0: sn_zfs_ssd_id:vm-127-disk-0,size=128K hostpci0: 0a:00,x-vga=on ide2: local:iso/srcd522.iso,media=cdrom,size=558600K machine: q35 memory: 8192 name: openbsd-moraal net0: virtio=22:53:68:AB:1F:31,bridge=vmbr1,firewall=1,tag=110 numa: 0 ostype: l26 sata0: sn_zfs_ssd_id:vm-127-disk-1,size=32G sata1: sn_zfs_ssd_id:vm-127-disk-2,size=8G scsihw: virtio-scsi-pci serial0: socket smbios1: uuid=6a5a54bb-9b08-40ad-8b64-254d9eafd875 sockets: 4 usb0: host=5-1,usb3=1 usb1: host=5-2,usb3=1 vga: none vmgenid: c6e904bc-aa60-450e-b3f4-b7bab23c9ed2
kus
- vga: none - nö tavaline video on välja lülitatud (vastasel korral OpenBSD näitab pilti seal)
- cores: 2 - OpenBSD puhul on single- ja multicpu tuumad erinevad failid/kataloogid/jne st tõenäoliselt on parem algusest peale hakata kasutama multicpu tuuma (see töötab ka füüsiliselt ühe tuumases arvutis; tundub, et ühe cpu toega tuumalt on tülikas minna üle mitme cpu toega tuumale)
- virtuaalne arvuti töötab efi režiimis, vastasel korral proxmox poolelt video kaardi passthru ei töötaks; ning openbsd poolelt efifb (wsfb) ei oleks kasutada
Operatsioonisüsteemi paigaldamine
Paigaldamine
- virtuaalsel arvutil on kaks sata plokkseadet, teisele on kopeeritud dd abil install65.fs (kuna kasutusel on zfs siis ehk on lihtsam kopida bootides arvuti korra nt system rescue cd pealt üles)
imre@imreo-lap:~$ dd if=/var/tmp/install65-20190708.fs bs=1M | ssh root@192.168.210.136 'dd of=/dev/vdb bs=1M'
- arvuti käivitatakse teiselt seadmelt
- süsteem paigaldatakse esimesele plokkseadmele (efi, gpt)
- proxmox hostil pöördutakse openbsd serial konsooli poole
# qm terminal 127
Tarkvara uuendamine
- süsteemse osa uuendamine
# syspatch
Operatsioonisüsteemi seadistamine
- paketihaldusest rakenduste paigaldamine
# pkg_add joe # pkg_add xfce xfce-extras # pkg_add slim slim-themes # pkg_add chromium firefox iridium # pkg_add synergy remmina x2goclient pftop pkglocatedb ssvnc-viewer keepassxc
X.org nvidia quadro M2000 videokaart
Tundub, et OpenBSD ei toeta nö uusi nVidia videokaarte ja üks võimalus neid siiski kasutada on nn efifb režiimis
dmesg
moraal# dmesg | grep efi efifb0 at mainbus0: 3840x2160, 32bpp wsdisplay0 at efifb0 mux 1
Seadistusfail
# cat /etc/X11/xorg.conf Section "Device" Identifier "Device0" Driver "wsfb" EndSection
X.org - AMD radeon 550 videokaart
Tundub, et OpenBSD fw_update kaudu toetab AMD uusi videokaarte. Sellist riistvara sisaldava süsteemi puhul paigaldatakse süsteemi käivitamisel automaatselt vajalikud draiverid jms
# dmesg ... "ATI Polaris 12" rev 0xc7 at pci6 dev 16 function 0 not configured
Jama puhul saab kaardi välja lülitada
boot> boot -c UKC> disable amdgpu UKC> boot
X.org - Intel videokaart
Tavaliselt Intel videokaardid on integreeritud protsessoriga (eriti laptop arvutites). Vaikimisi kasutatakse modesetting draiverit, aga on võimalik spetsiifiliselt öelda kasutada intel draiverit, nt
$ cat /usr/X11R6/share/X11/xorg.conf.d/10-intel.conf Section "Device" Identifier "drm" Driver "intel" EndSection
xfce4
$ cat /home/imre/.xinitrc exec startxfce4 --with-ck-launch
# cat /etc/rc.conf.local # xenodm_flags= dbus_enable pkg_scripts=dbus_daemon avahi_daemon messagebus slim
# rcctl enable slim
Lokaat
# cat /usr/X11R6/share/X11/xorg.conf.d/60-keyboards.conf Section "InputClass" Identifier "Multiple keyboard layouts" MatchIsKeyboard "on" Option "XkbLayout" "ee,us" Option "XkbOptions" "grp:alt_shift_toggle" EndSection
Selleks, et ei saaks nö liiga vara teateid 'TODO' sobib kasutada
# cat /usr/X11R6/share/X11/xorg.conf.d/99-maxclients.conf Section "ServerFlags" Option "MaxClients" "2048" EndSection
Parasjagu kasutusel olevate klientide arvu saab küsida
$ xwininfo -root -children | nl
XFCE4 keelevaliku viguri paneelile saamniseks sobib öelda
# pkg_add xfce4-xkb
Barrier
TODO
Synergy
Synergy serveri seadistusfail
minuarm$ cat etc/synergy.conf section: screens moraal.sise.moraal.ee: imreo-lap: end section: links moraal.sise.moraal.ee: right = imreo-lap imreo-lap: left = moraal.sise.moraal.ee end section: options switchDelay = 500 end
Lokaat
Selleks, et lokaat toimiks sobib öelda
moraal# grep =ee /etc/wsconsctl.conf keyboard.encoding=ee # use different keyboard encoding
ning XFCE Settings -> Keyboard juures näidata ainukese layout valikuna Estonian.
x2go
x2go kliendi suhtlemine nt Ubuntu 18.04 süsteemiga ja Debian v. 9 süsteemidega toimib.
tuum
# shared memory limits (chrome needs a ton) kern.shminfo.shmall=3145728 kern.shminfo.shmmax=2147483647 kern.shminfo.shmmni=1024 # semaphores kern.shminfo.shmseg=1024 kern.seminfo.semmns=4096 kern.seminfo.semmni=1024 kern.maxproc=32768 kern.maxfiles=65535 kern.bufcachepercent=90 kern.maxvnodes=262144 kern.somaxconn=2048
OpenBSD 6.5 versiooni puhul toimib nö teatud juhtudel tuuma relinkimine, st tuuma moodustavad elemendid ühendatakse unikaalsel viisil kokku
/usr/share/relink
vnc klient
# pkg_add ssvnc-viewer
Kasutaja settingute kostümiseerimine
$ cat .profile ... export HISTSIZE=1024 export HISTFILE=~/.ksh_history
Heli
TODO
# sysctl kern.audio.record=1 # mixerctl record.volume.mute=off
ja kasutades Firefoxi saab mikrofoni kasutada (ja kuuleb ka).
Probleemid
- füüsilise nvidia videokaardi draiveri puudumine ja efifb kasutamine annab natuke tunda, akende liigutamine ja suuruse muutmine on uimased
- usb seadmed tulevad ja lähevad
moraal# tail -n 40 /var/log/messages Jul 6 23:01:37 moraal /bsd: uhid0 at uhidev1 reportid 144: input=2, output=0, feature=0 Jul 6 23:01:37 moraal /bsd: uhid1 at uhidev1 reportid 154: input=1, output=0, feature=0 Jul 6 23:01:37 moraal /bsd: uhidev2 at uhub2 port 6 configuration 1 interface 1 "Apple Inc. Magic Keyboard with Numeric Keypad" rev 2.00/8.32 addr 2 Jul 6 23:01:37 moraal /bsd: uhidev2: iclass 3/1, 63 report ids Jul 6 23:01:37 moraal /bsd: ukbd0 at uhidev2 reportid 1: 8 variable keys, 6 key codes, country code 13 Jul 6 23:01:37 moraal /bsd: wskbd1 at ukbd0 mux 1 Jul 6 23:01:37 moraal /bsd: wskbd1: connecting to wsdisplay0 Jul 6 23:01:37 moraal /bsd: uhid2 at uhidev2 reportid 9: input=0, output=0, feature=3 Jul 6 23:01:37 moraal /bsd: uhid3 at uhidev2 reportid 63: input=64, output=0, feature=0 Jul 6 23:02:38 moraal /bsd: wsmouse2 detached Jul 6 23:02:38 moraal /bsd: ums1 detached Jul 6 23:02:38 moraal /bsd: uhidev3 detached Jul 6 23:02:40 moraal /bsd: uhidev3 at uhub2 port 5 configuration 1 interface 0 "Logitech USB Optical Mouse" rev 2.00/72.00 addr 3 Jul 6 23:02:40 moraal /bsd: uhidev3: iclass 3/1 Jul 6 23:02:40 moraal /bsd: ums1 at uhidev3: 3 buttons, Z dir Jul 6 23:02:40 moraal /bsd: wsmouse2 at ums1 mux 0 Jul 6 23:02:40 moraal /bsd: uhid0 detached Jul 6 23:02:40 moraal /bsd: uhid1 detached Jul 6 23:02:40 moraal /bsd: uhidev1 detached Jul 6 23:02:40 moraal /bsd: wskbd1: disconnecting from wsdisplay0 Jul 6 23:02:40 moraal /bsd: wskbd1 detached Jul 6 23:02:40 moraal /bsd: ukbd0 detached Jul 6 23:02:40 moraal /bsd: uhid2 detached Jul 6 23:02:40 moraal /bsd: uhid3 detached Jul 6 23:02:40 moraal /bsd: uhidev2 detached
- ei suuda XFCE paneelile lisada keelevaliku nuppu (tavaliselt see võimelikus tuleb xfce4-goodies paketist Linuxiga, aga paketinimed on pisut erinevad OpenBSD peal)
- kui süsteem paigaldada single-processor tuumaga, siis multi-processor tuumale üleminek paistab raskendatud, nt relinkig ei tööta
# ftp http://ftp.eenet.ee/pub/OpenBSD/6.5/amd64/bsd.mp # mv /bsd /bsd-enne # mv /bsd.booted /bsd.booted-enne # mv /bsd.mp /bsd
ja rebootimisel öeldakse /usr/share/relink/kernel/GENERIC.MP/relink.log faili igasuguseid vigu
- browserid annavad dmesg'i kasutamisel vigu, kusjuures chrome ja firefox hanguvad mingil hetkel, tundub, et iridium töötab kõige paremini
chrome[12096]: pledge "", syscall 289 firefox[25583]: pledge "", syscall 289 iridium[29284]: pledge "", syscall 289 iridium[56177]: pledge "", syscall 289 iridium[47378]: pledge "", syscall 289 iridium[68760]: pledge "rpath", syscall 5 iridium[6937]: pledge "rpath", syscall 5
2021 kevade tähelepanekud
OpenBSD v. 6.9 ja Proxmox 6.4 (kernel v. 5.4) puhul amdgpu passthru vähemalt mingil määral töötab, virtuaalne arvuti käivitub
Jun 12 23:10:10 openbsd69-tookoht /bsd: [drm] dce110_link_encoder_construct: Failed to get encoder_cap_info from VBIOS with error code 4! Jun 12 23:10:10 openbsd69-tookoht /bsd: [drm] dce110_link_encoder_construct: Failed to get encoder_cap_info from VBIOS with error code 4! Jun 12 23:10:10 openbsd69-tookoht /bsd: amdgpu0: POLARIS12 8 CU rev 0x00 Jun 12 23:10:10 openbsd69-tookoht /bsd: amdgpu0: 3840x2160, 32bpp
kuigi nii 20 min kasutamise järel jääb seisma, OpenBSD logis on sarnased veateated
Jun 12 23:24:25 openbsd69-tookoht /bsd: [drm] *ERROR* Waiting for fences timed out! Jun 12 23:24:30 openbsd69-tookoht /bsd: [drm] *ERROR* ring sdma0 timeout, signaled seq=10597, emitted seq=10597 Jun 12 23:24:30 openbsd69-tookoht /bsd: [drm] *ERROR* Process information: process pid 0 thread pid 0
Proxmox juures kasutatakse selliseid seadistusi
TODO
Iseloomulik on, et üks kord videokaart käivitub korraliumalt, st Proxmox logis on teated
Jun 12 14:54:41 pm60-plms pve-guests[1938]: start VM 108: UPID:pm60-plms:00000792:00001DA3:60C4A081:qmstart:108:root@pam: .. Jun 12 14:54:42 pm60-plms ovs-vsctl: ovs|00001|vsctl|INFO|Called as /usr/bin/ovs-vsctl -- add-port vmbr1 tap108i0 tag=110 Jun 12 14:54:42 pm60-plms kernel: [ 77.758058] vfio-pci 0000:06:00.0: enabling device (0002 -> 0003) Jun 12 14:54:42 pm60-plms kernel: [ 77.758555] vfio-pci 0000:06:00.0: vfio_ecap_init: hiding ecap 0x19@0x270 Jun 12 14:54:42 pm60-plms kernel: [ 77.758567] vfio-pci 0000:06:00.0: vfio_ecap_init: hiding ecap 0x1b@0x2d0 Jun 12 14:54:42 pm60-plms kernel: [ 77.758576] vfio-pci 0000:06:00.0: vfio_ecap_init: hiding ecap 0x1e@0x370 Jun 12 14:54:42 pm60-plms kernel: [ 77.778866] vfio-pci 0000:06:00.1: enabling device (0000 -> 0002) ...
Järgmistel käivitamistel, vahel on kõrvalnähuks kogu füüsilise arvuti krahh
.. Jun 12 12:17:32 pm60-plms pvedaemon[25622]: start VM 108: UPID:pm60-plms:00006416:000E01A0:60C47BAC:qmstart:108:root@pam: Jun 12 12:17:33 pm60-plms kernel: [ 9179.363456] pcieport 0000:00:1c.4: DPC: containment event, status:0x1f11 source:0x0000 Jun 12 12:17:33 pm60-plms kernel: [ 9179.363460] pcieport 0000:00:1c.4: DPC: unmasked uncorrectable error detected Jun 12 12:17:33 pm60-plms kernel: [ 9179.363467] pcieport 0000:00:1c.4: AER: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, (Requester ID) Jun 12 12:17:33 pm60-plms kernel: [ 9179.363469] pcieport 0000:00:1c.4: AER: device [8086:a33c] error status/mask=00100000/00010000 Jun 12 12:17:33 pm60-plms kernel: [ 9179.363471] pcieport 0000:00:1c.4: AER: [20] UnsupReq (First) Jun 12 12:17:33 pm60-plms kernel: [ 9179.363473] pcieport 0000:00:1c.4: AER: TLP Header: 34000000 06000010 00000000 80008000 Jun 12 12:17:33 pm60-plms kernel: [ 9179.385371] vfio-pci 0000:06:00.0: Refused to change power state, currently in D3 Jun 12 12:17:33 pm60-plms kernel: [ 9180.137389] vfio-pci 0000:06:00.0: timed out waiting for pending transaction; performing function level reset anyway Jun 12 12:17:35 pm60-plms kernel: [ 9181.385359] vfio-pci 0000:06:00.0: not ready 1023ms after FLR; waiting Jun 12 12:17:36 pm60-plms kernel: [ 9182.441408] vfio-pci 0000:06:00.0: not ready 2047ms after FLR; waiting Jun 12 12:17:38 pm60-plms kernel: [ 9184.745435] vfio-pci 0000:06:00.0: not ready 4095ms after FLR; waiting Jun 12 12:17:42 pm60-plms kernel: [ 9189.097547] vfio-pci 0000:06:00.0: not ready 8191ms after FLR; waiting Jun 12 12:17:51 pm60-plms kernel: [ 9197.549561] vfio-pci 0000:06:00.0: not ready 16383ms after FLR; waiting Jun 12 12:17:51 pm60-plms kernel: [ 9197.549561] vfio-pci 0000:06:00.0: not ready 16383ms after FLR; waiting Jun 12 12:18:08 pm60-plms kernel: [ 9215.209807] vfio-pci 0000:06:00.0: not ready 32767ms after FLR; waiting Jun 12 12:18:43 pm60-plms kernel: [ 9250.026207] vfio-pci 0000:06:00.0: not ready 65535ms after FLR; giving up Jun 12 12:18:43 pm60-plms pvedaemon[1791]: <root@pam> end task UPID:pm60-plms:00006416:000E01A0:60C47BAC:qmstart:108:root@pam: unable to read tail (got 0 bytes) Jun 12 12:18:43 pm60-plms kernel: [ 9250.182264] pcieport 0000:00:1c.4: AER: Device recovery successful ...
2022 sügise tähelepanekud
Väited
- OpenBSD peal nö korralikult NVidia videokaarte ei saa kasutada
- AMD videokaardid töötavad enam-vähem hästi
- Intel protsessoritesse integreeritud Intel videokaardid laptop arvutitel töötavad väga hästi
OpenBSD v. 7.2 ja Proxmox v. 7.3 (opt-in kernel v. 5.19; qemu 7.1) puhul amdgpu passthru annab sarnaseid teateid, aga praktiliselt paistab töötavat.
openbsd# dmesg .. [drm] dce110_link_encoder_construct: Failed to get encoder_cap_info from VBIOS with error code 4! [drm] dce110_link_encoder_construct: Failed to get encoder_cap_info from VBIOS with error code 4! amdgpu0: POLARIS12 8 CU rev 0x00 amdgpu0: 3840x2160, 32bpp wsdisplay0 at amdgpu0 mux 1 pckbd_enable: command error wskbd1: connecting to wsdisplay0 wskbd2: connecting to wsdisplay0 wsdisplay0: screen 0-5 added (std, vt100 emulation) pckbd_enable: command error ...
Ubuntu 22.04 ja OpenBSD v. 7.2 vahel barrier kasutamiseks sobib kopeerida Ubuntu 20.04 pealt kolm faili ja kasutada sedasi (põhjusel, et Ubuntu 22.04 sisaldab Barrier v. 2.4.0 ja OpenBSD 7.2 Barrier v. 2.3.4; ja need versioonid ei ole omavahel ühilduvad)
imre@moraal:~$ LD_PRELOAD="/home/imre/libssl.so.1.1 /home/imre/libcrypto.so.1.1" ./barriers -f -c synergy.conf-deb11-ja-obsd72
Mõnel korral võib saada sellise teate, nt chrome käivitamisel
openbsd-tk$ chrome amdgpu: os_same_file_description couldn't determine if two DRM fds reference the same file description. If they do, bad things may happen!
OpenBSD snapshot kasutamine töökohaarvuti kasutusjuhul
Olgu lähtepunkt tavaline OpenBSD v. 7.2. Süsteemi teisendamiseks OpenBSD-current peale sobib öelda
# sysupgrade -s
ning seejärel (peale paari rebooti mis toimuvad automaatselt) öelda pakettide uuendamiseks
# pkg_add -Uu
Tulemusena on kasutada OpenBSD-current süsteem
openbsd-tk$ dmesg | grep -- -current OpenBSD 7.2-current (RAMDISK_CD) #841: Tue Dec 13 13:21:43 MST 2022 OpenBSD 7.2-current (GENERIC.MP) #885: Tue Dec 13 13:16:41 MST 2022 OpenBSD 7.2-current (GENERIC.MP) #885: Tue Dec 13 13:16:41 MST 2022
UTF-8
xenodm ja xfce4 kasutamisel kasutaja .xsession failis kasutada nt
openbsd-tk$ cat .xsession export LC_CTYPE="en_US.UTF-8" # echo "olen xsession" >> /tmp/xession.log exec startxfce4
ning Terminal programmi enda seadistustes kasutada UTF-8
- Preferences -> Advanced -> Encoding -> Default character encoding - Default (UTF-8)
Tulemusena
- Terminal programmis avatud promptis saab kasutada õäöü jms tähti
- Terminal programmis avatud joe editoris saab kasutada õäöü jms tähti
- failid on utf-8 formaadis (tõsi, OpenBSD file programm ei ütle, et nad on)
Kasulikud lisamaterjalid
- https://www.openbsd.org/faq/current.html
- https://lecorbeausvault.wordpress.com/2022/02/09/using-openbsd-current-is-easy-should-you/
- https://www.nicksherlock.com/2020/11/working-around-the-amd-gpu-reset-bug-on-proxmox/
Kasulikud lisamaterjalid
- https://medium.com/@005/openbsd-6-4-installing-a-seriously-underrated-os-in-a-virtual-machine-f5848ee5a25a
- https://sohcahtoa.org.uk/openbsd.html
- https://sogubsys.com/openbsd-is-now-my-workstation-operating-system/
- https://www.c0ffee.net/blog/openbsd-on-a-laptop/
- https://karchnu.fr/posts/2019-06-14-openbsd-workstation.html