Ik blijf vergeten waar in de GUI de downloadknop voor templates te vinden is.
Ga in het linker menu naar local storage van je node, vervolgens naar CT Templates, en dan de ‘Templates’ knop

Mostly notes about how I (tried to) solve local IT issues
Ik blijf vergeten waar in de GUI de downloadknop voor templates te vinden is.
Ga in het linker menu naar local storage van je node, vervolgens naar CT Templates, en dan de ‘Templates’ knop
Standaard mag een Yunohost-gebruiker geen mails versturen met als from: een mail alias van een groep waar die gebruiker lid van is.
Om dat wel toe te staan, is een aanvulling op de Postfix-configuratie /etc/postfix/main.cf
nodig.
Bij de migratie van Yunohost 11 naar Yunohost 12 (Debian Bullseye naar Bookworm) werd Postfix’s main.cf
aangeduidt als “handmatig aangepast en mogelijk overschreven tijdens de upgrade”
Hieronder een diff
van de aangepaste main.cf en de default van Yunohost.
# Virtual Domains Control
virtual_mailbox_domains = ldap:/etc/postfix/ldap-domains.cf
-virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cf
+virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cf,hash:/etc/postfix/app_senders_login_maps
virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf,ldap:/etc/postfix/ldap-groups.cf
-smtpd_sender_login_maps=
+smtpd_sender_login_maps = unionmap:{
# Regular Yunohost accounts
ldap:/etc/postfix/ldap-accounts.cf,
- # test: groups toevoegen, om groep-alias werkend te krijgen
- ldap:/etc/postfix/ldap-groups.cf,
# Extra maps for app system users who need to send emails
- hash:/etc/postfix/app_senders_login_maps
-
+ hash:/etc/postfix/app_senders_login_maps }
De toevoeging komt uit /etc/postfix/ldap-groups.cf
; daarin zitten:
# cat /etc/postfix/ldap-groups.cf
server_host = localhost
server_port = 389
search_base = dc=yunohost,dc=org
query_filter = (&(objectClass=groupOfNamesYnh)(mail=%s))
scope = sub
result_attribute = memberUid, mail
terminal_result_attribute = memberUid
Kort stappenplan:
De node is nu bereikbaar onder de domeinnaam, zonder een beveiligingsuitzondering in je browser te maken.
Nextcloud upgrades verlopen meestal zonder problemen, maar niet elke keer. Krap vier jaar terug had ik problemen met de upgrade van NC18 naar NC19: de database was gegroeid tot 440 GB, wat moeite gaf (timeout) bij de backup. In dat geval bleek het gros van de database te bestaan uit cache van externe bestanden; na truncate (truncate oc_filecache;
) van de tabel verliep de upgrade zonder problemen.
Nu een aantal versies later: de upgrade van Nextcloud 27 naar Nextcloud 28 wil niet. Aan het begin van het jaar heb ik het eens geprobeerd, zonder succes, en een rollback gedaan naar het snapshot van juist daarvoor.
Ondertussen is Nextcloud 29 al een tijdje beschikbaar en raakt NC27 ‘unsupported’. In de hoop dat mogelijke bugs gevonden zijn, heb ik opnieuw een upgrade gestart. Helaas weer zonder succes.
Deze stappen heb ik genomen:
apt upgrade && apt update -y
Anders dan de ‘unsupported app’-melding heb ik de specifieke fout niet kunnen herleiden; door de restore van het snapshot is de logging niet meer beschikbaar.
Nadat het snapshot teruggezet is:
yunohost app upgrade nextcloud
Info: WARNING - chown: cannot access '/home/yunohost.app/nextcloud/data/appdata_ocjk9xv5jzs5/preview/f/8/6/8/e/8': Structure needs cleaning
Omdat de restore mislukt, is er geen Nexctloud beschikbaar. Het is aantrekkelijk om het snapshot van voor de mislukte upgrade terug te zetten, maar daarmee vervallen tussentijdse wijzigingen: conceptversies van deze blogpost bijvoorbeeld, of tussentijds binnengekomen emails.
In willekeurige volgorde valt op in de logging, om verder uit te zoeken:
DEBUG - An unhandled exception has been thrown:
DEBUG - Error: Undefined constant OCA\Keeweb\Migration\RegisterMimeType::CUSTOM_MIMETYPEALIASES in /var/www/nextcloud/apps/keeweb/lib/Migration/RegisterMimeType.php:25
DEBUG - Checking smb.conf with testparm
WARNING - Load smb config files from /etc/samba/smb.conf
WARNING - Loaded services file OK.
WARNING - Weak crypto is allowed
WARNING - Server role: ROLE_STANDALONE
WARNING - chown: cannot access '/home/yunohost.app/nextcloud/data/appdata_ocjk9xv5jzs5/preview/1/d/c/6/2': Structure needs cleaning
Gezien het beperkte aantal emails en m’n offline kopie van deze tekst, is restore van het snapshot de snelste weg naar een nieuwe poging. Ik verwijder daarvoor eerst de Keeweb-app. De Keeweb-app heeft nooit gewerkt, maar ook nooit in de weg gezeten; het is de enige foutmelding in het upgrade-log.
Er zou een werkende versie van de app moeten zijn, hoewel er nu bij de app vermeld staat dat er upstream, bij Keeweb zelf, geen updates zijn sinds 2021. Na disable+remove van Keeweb sla ik het concept op en maak ik een nieuw snapshot, klaar voor een vierde poging.
De vierde poging komt verder; de upgrade naar Nextcloud 28 (meer specifiek: 28.0.8 blijkt uit het log) lijkt voltooid: er wordt gemeld dat de upgrade naar Nextcloud 29.0.5 start.
Die upgrade slaagt niet; het log meldt:
InvalidArgumentException: Index name "sa" for table "oc_social_3_stream_act" collides with the constraint on table "oc_social_stream_act".
Update failed
Maintenance mode is kept active
Resetting log level
Ik wacht de restore van de backup niet af; ik controleer of er mail ontvangen is gedurende de update en ga meteen door met een rollback van het snapshot.
Er zijn een paar aanwijzingen te vinden op ’t Net: op de Nextcloud-fora en op de Gitub-pagina van Nextcloud. De oc_social_3_*
-tabellen zijn in de loop van de tijd hernoemd naar oc_social_*
, zonder “3” in de naam. De social app was al disabled wegens niet compatibel na een eerdere upgrade; ik heb de tabellen meteen verwijderd zoals gesuggereerd in een van de threads:
drop table oc_social_3_action; drop table oc_social_3_actor; drop table oc_social_3_cache_actor; drop table oc_social_3_cache_doc; drop table oc_social_3_client; drop table oc_social_3_follow; drop table oc_social_3_hashtag; drop table oc_social_3_instance; drop table oc_social_3_req_queue; drop table oc_social_3_stream; drop table oc_social_3_stream_act ; drop table oc_social_3_stream_dest; drop table oc_social_3_stream_queue; drop table oc_social_3_stream_tag;
Concept opslaan, snapshot maken en nog eens proberen.
Geslaagd! De upgrade van NC27 via NC28 naar NC29 besloeg een kwartier, waarvan het grootste deel voor rekening van de backup van de database kwam.
Er is een niet-fatale waarschuwing,
Warning: File /var/www/nextcloud/config/config.php has been manually modified since the installation or last upgrade. So it has been duplicated in /var/cache/yunohost/appconfbackup//var/www/nextcloud/config/config.php.backup.20240917.184213
Ik meen dat ik de configuratie als read-only gemarkeerd heb; voor de rest moet ik de verschillen erop naslaan.
Bij het oproepen van de site en bij het inloggen heeft Nextcloud geen vervelende verrassingen. Een nieuw jasje en onder de motorkap vast veel gewijzigd, maar aan de buitenkant ‘gewoon’ de bestanden die er altijd al stonden. Fijn.
HP301 weegt met onbekende hoeveelheid inkt 39 gram.
Op het moment stokt magenta, als troubleshoot:
De 2 ml gemengde inkt heb ik in de zwarte cartridge gespoten. Die bleek bij aanvang slechts 33 gram te wegen, en bij primen van de kop kwam er geen inkt uit. Daarom meer bijgevuld; met 44 gram stroomde de cartridge nog niet over.
Nadat de cartridges weer in de printer zitten, is zwart weer zwart (het ging een beetje tegen grijsgroen), maar magenta laat niets van zich weten.
Ik heb nog wat geemmerd met navullen en leegtrekken:
… maar dat heeft enkel tot gevolg gehad dat er magenta in geel en cyaan kwam (die werden immers vacuum gezogen, en trokken de beschikbare magenta weer naar binnen).
Bij opnieuw testen kwamen er bruin en paars uit de gele- en cyaankanalen; magenta deed niets. Het kan zijn dat de kop volledig stuk is, maar het zou ook kunnen dat het sponsje er zo slecht aan toe was, dat het wel ruimte maar geen inkt opnam.
Conclusie: deze cartridge vervangen. Het was al een cartridge van een refill-merk, in een printer die ik tien jaar terug gekregen heb en met enige regelmaat bijgevuld heb. Toevalligerwijs heb ik nog een refill-merk cartridge van Kringloop liggen die ik meteen kan wegen voor het ‘nieuw’-gewicht, en een continuous ink system van AliExpress wat ik al eens wilde uitproberen.
Dit jaar Normandie, verdeeld over drie locaties en een vierde enkele overnachting op de terugweg.
De eerste etappe gaat van Zwolle naar Duclair. Foto’s van het huisje op booking.com
Het is ongeveer 600 kilometer, we laden een keer voordat we Belgie binnenrijden, en daarna weer in Frankrijk.
Het ligt aan de (schone…) Seine (…lang leve de Olympische spelen…), in de buurt van Rouen en op afzienbare afstand van zee.
We blijven daar vier nachten.
De tweede stop is Agy, op ongeveer 150 kilometer van Duclair. We zitten daar dichter bij zee. Op weg naar de zee komen we door Bayeux, van de tapijten.
Agy ligt ongeveer 30 kilometer ten westen van Caen.
We blijven hier het langste, een hele week.
De laatste locatie is maar een kleinstukje (~60 km) naar het Zuid-Westen.
Vanaf daar is het ongeveer een uur naar Mont-Saint-Michel.
We blijven daar vier nachten.
Terug naar Zwolle is in een dag te doen, maar met 800 kilometer wel een een wat lange zit zonder uitstapjes. Verspreid over twee dagen kunnen we nog wat bekijken onderweg.
We beginnen met 450 kilometer naar het Noord-Oosten en overnachten in “Novetel Lens“, met zwembad en ontbijt.
De volgende dag is het dan nog ruim 350 kilometer naar Zwolle.
In de uitverkoop na Sinterklaas heb ik een paar dozen ‘kruidnotenmix’ gekocht. Die stonden maar te staan.
Nu ik speculaas wilde bakken, leek het wel handig die dozen kruidnotenmix te gebruiken. De online-speculaasrecepten hebben meestal twee delen meel tegen een deel boter en een deel suiker. Volgens de voedingswaarde op de doosjes volgen ze dat met enige vrijheid voor de pepernoten; tussen de 18% en 33% suiker, een kleine 20% vet. Vast geen roomboter, hopelijk RSPO.
In totaal had ik 1300 gram aan bakmix. Volgens de gebruiksaanwijzing zou daar, in totaal, zo’n 140 ml water aan toegevoegd moeten worden voor heerlijke pepernoten. Ik heb er aan toegevoegd:
Bereidingswijze:
De zelfbedachte toevoegingen in de opgesomde volgorde in de mengkom en mengen met een ‘halve garde’: eerst de suiker en de boter door elkaar zodat de boter niet een klont wordt, daarna de zemelen er rustig bijgegoten en gemengd; als het een beetje door elkaar zit, de kleine dingetjes er bij en ten slotte het ei.
Daarna de bakmixen; na de eerste twee heb ik 100 ml water toegevoegd, en twee zakken mix later nog een keer aangekeken en er een paar druppeltjes bijgedaan. In totaal ~110 ml water en een ei van ongeveer 65 gram aan vocht, voor een indrukwekkende bal deeg van ongeveer 2 kilo.
De oven is al bezet, dat komt goed uit anders was ik in de verleiding gekomen meteen te gaan bakken. Nu moet ik uit nood het deeg de aanbevolen nacht in de ijskast laten liggen.
Plan voor morgen:
Door omstandigheden is het de afgelopen jaren drie keer keer nodig geweest mijn workstation in te richten. De eerste keer ging het enkel om uitwisselen van opslagruimte, zoals eerder beschreven.
De al wat oudere C7SIM-Q met eerste generatie i3 voldeed in vrijwel alle opzichten, alleen het maximum geheugen van 16 GB zat zo nu en dan in de weg. Ik heb het bord kunnen vervangen door een X11SSH-LN4F. Ook met i3, maar wel 6e generatie, en 32 GB RAM met uitbreidingsmogelijkheid tot 64 GB. Bovendien is het nu DDR4 ECC geheugen, waar het eerst DDR3 zonder ECC was.
Toen ik het moederbord verving zat er in een van de bestaande volumes iets scheef (ze het eerdere verhaal); de kortste weg naar een werkend systeem was een nieuwe installatie – met UEFI.
Installeren op UEFI geeft me vaak problemen bij het inrichten van de UEFI-partitie, meestal kom ik niet weg zonder installatie naar ‘removable storage’, maar het werkt uiteindelijk wel. Bij dit moederbord niet. Daarbij komt dat het moederbord, met remote management, wat geavanceerder is. Nadeel is dat boot voorbij ‘BIOS’ een stuk langer duurt; troubleshoot kost heel veel tijd.
Uiteindelijk heb ik Debian volledig automatisch laten installeren, met alle opties op default en minimale ingreep in het partitioneren. Daarmee werkte het eindelijk, maar ik had voor een kleine /var-partitie gekozen, waar vrij veel optionele pakketten in terechtkwamen. Zoveel, dat er voor Apt geen ruimte was om nieuwe programma’s te downloaden. Bovendien stond alles op defaultwaarden, met voeten in Fahrenheit en een Amerikaanse tijdzone. Daarnaast stond alles op een SSD die ik niet voor het systeem in gedachten had.
Snel was het wel! Door tien jaar upgrades over te slaan, merk je bij een upgrade veel meer van de vooruitgang. Niet alleen ruim voldoende geheugen (de 16 GB was niet dagelijks een bottleneck), maar vooral sneller geheugen. De CPU heeft geen veel hogere kloksnelheid, maar kan wel sneller schakelen en heeft geavanceerdere functies waardoor bestanden uitpakken bijvoorbeeld veel sneller gaat. Het systeem draaide nu niet op SSD-cached LVM-volumes, maar op LVM-volumes rechtstreeks op een (ouder model, SATA2) SSD.
Het nieuwe moederbord heeft plaats voor een NVMe-reepje. In tegenstelling tot mijn eerste ingeving, 2e-hands een zo klein en goedkoop mogelijk reepje aanschaffen, heb ik er een nieuwe ingeprikt: in veel gevallen zijn de 2e-hands exemplaren duurder dan een nieuwe. Met een paar euro extra bovenop de laagst geprijsde SSD heb ik me verwend met een ouder model Samsung. Met krap 2 TB aan 3-bits TLC NAND is er voldoende ruimte voor systeempartities, home partities, databasepartities en partities voor caching van datavolumes.
Met minimale moeite is de installatie, met UEFI, in een keer geslaagd. Daar zit je dan, in een mum van tijd met een kale installatie. Want snel dat ging het wel! Een flink deel van het TLC NAND wordt als SLC NAND ingezet, om snel de gigabyte aan DDR-geheugen te vereeuwigen. Waarschijnlijk haal ik het maximum er niet uit: de SSD heeft een 4xPCIe3 interface, terwijl de aansluiting op het moederbord er slechts 2 kanalen biedt.
Todo’s: er zijn wat instellingen te doen en aanvullende packages te downloaden. Installeer eerst de programma’s, anders kun je ze niet inrichten natuurlijk.
Packages installeren:
apt update
apt upgrade
apt install openssh-server screen tmux links htop powertop dstat sysstat nicstat curl sshfs gpm # altijd handig
apt install lvm2 thin-provisioning-tools # systeem-onderdelen
apt install speedometer iftop nethogs bmon tcptrack # bandbreedte-utils
apt install firefox dolphin dolphin-nextcloud nextcloud-desktop nextcloud-desktop-cmd kdeconnect konsole vlc subtitlecomposer # in grafische omgeving (ook NC-cmd!)
apt install growlight # diskmanagement, onderweg tegengekomen
Niet alle software is beschikbaar via Apt, of is de AppImage-versie net wat nieuwer dan de versie in Apt.
token
en vind identity.sync.tokenserver.uri
, zet die op https://ffs.osba.nl/ffsync/token/1.0/sync/1.5
services.sync.prefs.sync.general.autoScroll
op false
about:sync-log
, er is ook een sync
-extension die daarna info weergeeft op about:sync
accounts.google.com/gsi/*
Met de sync-client op Android gaat het nog makkelijker: in plaats van handmatig de gegevens invullen en overnemen: maak het app password aan, klik op ‘Show QR code for mobile apps’ en scan de code met je telefoon.
dolphin-nextcloud
geeft een contextmenu waarin Nextcloud-bewerkingen vrijgegeven worden.Met de Nextcloud Desktop client wordt synchronisatie geregeld, maar geen integratie. Installeer dolphin-nextcloud
om vanuit Dolphin bestanden via Nextcloud te delen.
Voeg onder het Remote-kopje in de “Places” zijbalk een link naar Nextcloud toe via WebDAV en SSHFS. SSHFS geeft snellere toegang en betere integratie aan deze kant van de verbinding, maar wijzigingen worden niet door Nextcloud opgemerkt. WebDAV wordt aan deze kant echt als remote gezien, wat soms voor caching of vertraging zorgt, maar loopt via de Nextcloud-logica. Wijzigingen, verwijderingen en toevoegingen zijn meteen in Nextcloud beschikbaar.
De WebDAV link geeft Nextcloud via de web-interface, bij het kopje met settings linksonderin bij bestanden: https://online.osba.nl/nextcloud/remote.php/dav/files/wbk
Pas de link aan naar webdavs://online.osba.nl/nextcloud/remote.php/dav/files/wbk om hem in Dolphin te gebruiken. Meteen plakken in de adresbalk, en dan de locatie opslaan werkt het eenvoudigst; het werkt ook via Knetattach (de knop rechtsbovenin het scherm als je in Dolphin op Network klikt, onder remote).
Op welke manier dan ook: soms werkt het in ene keer, soms werkt het totaal niet. Deze keer is het een “totaal niet”-geval. Troubleshoot gaat erg moeizaam; Dolphin noch Knetattach geven enige feedback naast “The file or folder … does not exist” (Dolphin) of “Unable to connect to server. Please check your settings and try again.”
Een enkele keer lijkt het proces een stap verder te komen: dan volgt er een vraag of ik zeker weet dat ik wil inloggen op Nextcloud, om vervolgens alsnog te vertellen dat de file or folder does not exist.
De “bookmark” in Dolphin’s places-balk heb ik uit de settings van de oude installatie gehaald (~/.local/share/user-places.xbel
)
Mogelijk zit de KWallet-entry voor Nextcloud-Desktop in de weg. Die client logt in met een app-password, maar in KWallet lijkt het een reguliere user/pass combinatie. Misschien geeft KWallet onder water het verkeerde wachtwoord (of het goede wachtwoord, maar via het verkeerde mechanisme) aan Dolphin en Knetattach door, zonder daar feedback over te geven. Na sluiten van zowel de wallet als de NC-client lukt het echter nog steeds niet. Wordt vervolgd.
Vervolg op een nieuwe laptop: inloggen op Nextcloud via Dolphin werkt op bovenstaande wijze meteen, althans, als ik het adres rechtstreeks invoer in de locatiebalk van Dolphin. Deze keer heb ik voor Nextcloud Desktop (expres) geen app-password gebruikt.
Toevoegen als “Network” entry via knetattach
loopt nu op een andere manier stukt: het proces hangt een kleine minuut (popup “examining”), geeft dan “Failed, application closed unexpectedly”. Als ik knetattach
uitvoer in een konsole venster, zie ik fouten en waarschuwingen voorbijkomen. Die specifieke meldingen zijn misschien geen probleem, maar er zijn wel eerder bugs gemeld op bugs.kde.org die spelen in mijn versie. Met Debian stable zit ik niet direct op de bleeding edge wat betreft KDE-ontwikkelingen, ik laat een bugmelding achterwege.
De genoemde workaround werkt echter ook voor WebDAV! Dus:
webdavs://user@domain
-notatieVoorheen waren datapartities zoals voor foto’s en video’s rechtstreeks in m’n home-directory gemount. Ik mount ze nu in een gebruiker-agnostische directory, en bind-mount ze lokaal.
De eerder o-zo-mooi ingerichte LVM is goed over te dragen, ware het niet dat:
vgchange -ay data
had LVM klachten:root@fractal:~# vgchange -ay data
/usr/sbin/cache_check: execvp failed: No such file or directory
WARNING: Check is skipped, please install recommended missing binary /usr/sbin/cache_check!
/usr/sbin/thin_check: execvp failed: No such file or directory
WARNING: Check is skipped, please install recommended missing binary /usr/sbin/thin_check!
14 logical volume(s) in volume group "data" now active
Het ontbrekende pakket blijkt thin-provisioning-tools
(Eenmalige todo’s: boeken en bieb naar data, geenmuziek naar home)
Ctrl+Alt+Backspace om X de nek om te draaien: advanced keyboard tab in KDE settings:
Alternatief: Alt+SysRq+k
Twee NIC’s samen laten werken als bond0. Met het vernietigen van de root-directory is de configuratie in /etc/network/interfaces
helaas verloren gegaan. Er staat nog een todo op het lijstje, “/etc in git onderbrengen”, maar dat helpt nu niet.
De nieuwerwetse huidige installatie heeft autoconfig voor netwerk, waarschijnlijk via networkmanager. nmcli
kan bonding interfaces aanmaken. De man
-pages van nmcli zijn erg uitgebreid maar daar kan ik niet eenvoudig de bond-syntax terugvinden. Er is onder andere documentatie te vinden bij Red Hat en bij Gnome; die bij Red Hat heeft meer diepgang, die bij Gnome geeft passende voorbeelden.
# nmcli connection add type bond con-name bond0 mode 6
Connection 'bond0' (cf29cf16-692b-4925-95fd-0102aa758cc0) successfully added.
# nmcli device status
DEVICE TYPE STATE CONNECTION
eno2 ethernet connected Wired connection 1
eno1 ethernet disconnected --
eno3 ethernet unavailable --
eno4 ethernet unavailable --
lo loopback unmanaged --
# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname eno1 master bond0
Connection 'bond0-port1' (1a8cdccb-1363-40f5-b9aa-072936ca1544) successfully added.
# nmcli device status
DEVICE TYPE STATE CONNECTION
eno2 ethernet connected Wired connection 1
nm-bond bond connected bond0
eno1 ethernet connected bond0-port1
eno3 ethernet unavailable --
eno4 ethernet unavailable --
lo loopback unmanaged --
Aanmaken van een bonded interface ondersteund de networkmanager-GUI (nog?) niet, maar onderhoud/beheer ervan wel. Nadat eno1 aan bond0 gehangen was hierboven, maakte nm
de verbinding actief. In de GUI heb ik ‘Wired connection 1’ verwijderd om geen verrassingen te krijgen bij het koppelen van eno2 aan bond0:
# nmcli device status
DEVICE TYPE STATE CONNECTION
nm-bond bond connected bond0
eno1 ethernet connected bond0-port1
eno2 ethernet disconnected --
eno3 ethernet unavailable --
eno4 ethernet unavailable --
lo loopback unmanaged --
# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname eno2 master bond0
Warning: There is another connection with the name 'bond0-port1'. Reference the connection by its uuid '67af71f7-f7b5-4f50-a02e-0fcfa4910960'
Connection 'bond0-port1' (67af71f7-f7b5-4f50-a02e-0fcfa4910960) successfully added.
# nmcli device status
DEVICE TYPE STATE CONNECTION
nm-bond bond connected bond0
eno1 ethernet connected bond0-port1
eno2 ethernet connected bond0-port1
eno3 ethernet unavailable --
eno4 ethernet unavailable --
lo loopback unmanaged --
Oepsie… opdracht hergebruikt, maar slechts deels aangepast (Warning: there is another connection with the name 'bond0-port1'
). Bij de eerste poging om de poort uit bond0
te trekken, heb ik de volledige bond verwijderd. Na opnieuw toevoegen is de status nu:
# nmcli device status
DEVICE TYPE STATE CONNECTION
nm-bond bond connected bond0
eno1 ethernet connected bond0-port1
eno2 ethernet connected bond0-port2
eno3 ethernet unavailable --
eno4 ethernet unavailable --
lo loopback unmanaged --
Deze printer wordt herkend als een "POS Label Printer", van "STMicroelectronics":
Dec 3 15:53:08 fractal kernel: [21588.019430] usb 1-2: new full-speed USB device number 13 using xhci_hcd
Dec 3 15:53:08 fractal kernel: [21588.409078] usb 1-2: New USB device found, idVendor=0416, idProduct=5011, bcdDevice= 2.00
Dec 3 15:53:08 fractal kernel: [21588.409087] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Dec 3 15:53:08 fractal kernel: [21588.409092] usb 1-2: Product: POS Label Printer
Dec 3 15:53:08 fractal kernel: [21588.409097] usb 1-2: Manufacturer: STMicroelectronics
Dec 3 15:53:08 fractal kernel: [21588.414492] usblp 1-2:1.0: usblp1: USB Bidirectional printer dev 13 if 0 alt 0 proto 2 vid 0x041
De USB-poort is aangesloten op een seriele poort, volgens lsusb:
# lsusb|grep 0416
Bus 001 Device 013: ID 0416:5011 Winbond Electronics Corp. Virtual Com Port
# lsusb|grep 5011
Bus 001 Device 013: ID 0416:5011 Winbond Electronics Corp. Virtual Com Port
Op de sites van “Star” is het model niet te vinden; de supportpagina geeft een hint hoe je het modelnummer kunt vinden maar de productstickers lijken totaal niet op die van mijn goedkope imitatieprinter. Op de productpagina een van de labelprinters zijn CUPS-drivers (met beperkende licentie) te vinden, maar daarmee wordt de printer nog niet herkend op mijn systeem.
Volgens de zelfgeprinte specificatiepagina (“FEED” ingedrukt houden bij het inschakelen tot er een piepje klinkt, dan loslaten) spreekt de printer TSPL.
Voor TSPL zijn meerdere mensen druk geweest een werkende driver te publiceren. De eenvoudigste is een klein Python programma’tje van abrasive op Github. Het heet pdf2tspl, en bestaat, als je via CUPS wil printen, uit twee delen:
/pdf2tspl.py
(met file_to_print.pdf /dev/usb/lp1
)appsocket_print_server.py /dev/
usb/lp1Zie de readme voor details.
Voeg jezelf aan de lp-groep toe om het niet telkens als root uit te hoeven voeren:
usermod -a -G lp username
De printer komt bij de page feed telkens een halve centimeter te kort. De paginahoogte staat (correct) ingesteld op 150 mm, maar ik zie geen variabele voor de ruimte (5 mm…) tussen de labels op mijn rol. Als ik even tijd heb, test ik het met 155 mm als paginahoogte.
Na het eerste artikeltje en een tweede versie, nu een deel drie.
Controleer of er voldoende ruimte is op het physieke volume:
# pvs /dev/sdd1 -a -o+vg_name,vg_size,vg_free,lv_name,origin,pool_lv,data_lv
PV Fmt Attr PSize PFree VG VSize VFree LV Origin Pool Data
/dev/sdd1 lvm2 a-- <2.00t 985.57g data 7.31t <1.38t [datatlvpool_tdata]
/dev/sdd1 lvm2 a-- <2.00t 985.57g data 7.31t <1.38t
Er is nog 986 GB vrij op sdd1; vergroot de thin pool door toewijzing van ruimte specifiek op deze partitie:
# lvextend -L+500G data/datatlvpool /dev/sdd1
Indien nodig een thin volume groter maken; vanwege verschillende eigenschappen van de onderliggende media, vergroten op specifieke PV:
# lvextend -r -L+200G data/fotosRW /dev/sdd1
fsck from util-linux 2.36.1
foto: Inode 974452 extent tree (at level 1) could be shorter. IGNORED.
foto: 297302/3427840 files (37.7% non-contiguous), 829469850/877497344 blocks
WARNING: Sum of all thin volume sizes (5.06 TiB) exceeds the size of thin pool data/datatlvpool and the amount of free space in volume group (<911.36 GiB).
Size of logical volume data/fotosRW changed from <3.27 TiB (856931 extents) to 3.46 TiB (908131 extents).
Logical volume data/fotosRW successfully resized.
resize2fs 1.46.2 (28-Feb-2021)
Resizing the filesystem on /dev/mapper/data-fotosRW to 929926144 (4k) blocks.
The filesystem on /dev/mapper/data-fotosRW is now 929926144 (4k) blocks long.
De grootte van het beschrijfbare deel van de pool is nu 1,5 TB. In de onderstaande ‘snapshots’ zie je de grootte toenemen (van LV datatlvpool) van 798 TB via “<1.04t” naar de huidige “<1.53t”.
root@fractal:~# lvs -a data -o+thin_count,thin_id,devices
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert #Thins ThId Devices
archief data -wi-a----- 800.00g /dev/sda9(0)
[cache_fotos] data Cwi---C--- 48.00g 99.99 9.16 0.00 cache_fotos_cdata(0)
[cache_fotos_cdata] data Cwi-ao---- 48.00g /dev/sdd4(0)
[cache_fotos_cmeta] data ewi-ao---- 100.00m /dev/sdb4(0)
datatlvpool data twi-aot--- 798.21g 92.02 47.56 5 datatlvpool_tdata(0)
[datatlvpool_tdata] data Twi-ao---- 798.21g /dev/sde1(0)
[datatlvpool_tmeta] data ewi-ao---- 400.00m /dev/sdb4(10265)
fotosRO data ori-a-C--- 2.68t [cache_fotos] [fotosRO_corig] 99.99 9.16 0.00 fotosRO_corig(0)
[fotosRO_corig] data owi-aoC--- 2.68t /dev/sda1(1)
fotosRW data Vwi-aot--- <3.27t datatlvpool fotosRO 15.21 5
geluidRO data ori-a----- 16.56g /dev/sda1(703333)
geluidRW data Vwi-aot--- 16.56g datatlvpool geluidRO 5.19 1
[lvol0_pmspare] data ewi------- 400.00m /dev/sda1(707573)
muziekRO data ori-a----- 150.00g /dev/sda2(1)
muziekRW data Vwi-aot--- 150.00g datatlvpool muziekRO 26.97 2
pubNR data ori-a----- 8.00g /dev/sda2(323587)
pubRW data Vwi-aot--- 8.00g datatlvpool pubNR 0.01 3
romRO data -wi-ao---- 90.00g /dev/sda3(1)
ssdata data -wi-ao---- 40.00g /dev/sdb4(25)
videoRO data ori-a----- <1.09t /dev/sda2(38402)
videoRW data Vwi-aot--- 1.23t datatlvpool videoRO 14.56 4
root@fractal:~# lvs -a data -o+thin_count,thin_id,devices
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert #Thins ThId Devices
archief data -wi-a----- 800.00g /dev/sde9(0)
[cache_fotos] data Cwi---C--- 48.00g 99.99 9.18 0.00 cache_fotos_cdata(0)
[cache_fotos_cdata] data Cwi-ao---- 48.00g /dev/sda4(0)
[cache_fotos_cmeta] data ewi-ao---- 100.00m /dev/sdb4(0)
datatlvpool data twi-aot--- <1.04t 89.09 45.29 5 datatlvpool_tdata(0)
[datatlvpool_tdata] data Twi-ao---- <1.04t /dev/sdd1(0)
[datatlvpool_tmeta] data ewi-ao---- 532.00m /dev/sdb4(10265)
fotosRO data ori-a-C--- 2.68t [cache_fotos] [fotosRO_corig] 99.99 9.18 0.00 fotosRO_corig(0)
[fotosRO_corig] data owi-aoC--- 2.68t /dev/sde1(1)
fotosRW data Vwi-aot--- <3.27t datatlvpool fotosRO 17.55 5
geluidRO data ori-a----- 16.56g /dev/sde1(703333)
geluidRW data Vwi-aot--- 16.56g datatlvpool geluidRO 1.08 1
[lvol0_pmspare] data ewi------- 532.00m /dev/sde1(707573)
muziekRO data ori-a----- 150.00g /dev/sde2(1)
muziekRW data Vwi-aot--- 150.00g datatlvpool muziekRO 33.59 2
pubNR data ori-a----- 8.00g /dev/sde2(323587)
pubRW data Vwi-aot--- 8.00g datatlvpool pubNR 0.01 3
romRO data -wi-ao---- 90.00g /dev/sde3(1)
ssdata data -wi-ao---- 40.00g /dev/sdb4(25)
videoRO data ori-a----- <1.09t /dev/sde2(38402)
videoRW data Vwi-aot--- <1.43t datatlvpool videoRO 21.08 4
root@fractal:~# lvs -a data -o+thin_count,thin_id,devices
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert #Thins ThId Devices
archief data -wi-a----- 800.00g /dev/sde9(0)
[cache_fotos] data Cwi---C--- 48.00g 99.99 9.18 0.00 cache_fotos_cdata(0)
[cache_fotos_cdata] data Cwi-ao---- 48.00g /dev/sda4(0)
[cache_fotos_cmeta] data ewi-ao---- 100.00m /dev/sdb4(0)
datatlvpool data twi-aot--- <1.53t 60.58 45.47 5 datatlvpool_tdata(0)
[datatlvpool_tdata] data Twi-ao---- <1.53t /dev/sdd1(0)
[datatlvpool_tmeta] data ewi-ao---- 532.00m /dev/sdb4(10265)
fotosRO data ori-a-C--- 2.68t [cache_fotos] [fotosRO_corig] 99.99 9.18 0.00 fotosRO_corig(0)
[fotosRO_corig] data owi-aoC--- 2.68t /dev/sde1(1)
fotosRW data Vwi-aot--- <3.27t datatlvpool fotosRO 17.55 5
geluidRO data ori-a----- 16.56g /dev/sde1(703333)
geluidRW data Vwi-aot--- 16.56g datatlvpool geluidRO 1.08 1
[lvol0_pmspare] data ewi------- 532.00m /dev/sde1(707573)
muziekRO data ori-a----- 150.00g /dev/sde2(1)
muziekRW data Vwi-aot--- 150.00g datatlvpool muziekRO 33.59 2
pubNR data ori-a----- 8.00g /dev/sde2(323587)
pubRW data Vwi-aot--- 8.00g datatlvpool pubNR 0.01 3
romRO data -wi-ao---- 90.00g /dev/sde3(1)
ssdata data -wi-ao---- 40.00g /dev/sdb4(25)
videoRO data ori-a----- <1.09t /dev/sde2(38402)
videoRW data Vwi-aot--- <1.43t datatlvpool videoRO 21.08 4
Op LV-niveau kun je een totaal-vrije-ruimte krijgen voor de VG waartoe ze behoren, maar niet zien hoe de toewijzing van LV-extends over de verschillende PV’s is en (dus) ook niet waar je nieuwe groei van de LV wil laten plaatsvinden:
lvs data -o+vg_free
Zolang de VG bestaat uit identieke PV’s maakt dat niet uit. Als de onderliggende PV’s verschillende eigenschappen hebben, maakt het wel uit en moet je op onderzoek aan welke PV je specifieke LV’s wil toewijzen.
Om van de betreffende VG te zien uit welke PV’s het bestaat, en hoeveel ruimte er nog beschikbaar is per PV om de VG uit te breiden:
vgs data -o+pv_name,pv_free
Daarna gebruik je pvs
om van PV’s een redelijk smalle weergave met wat extra informatie te krijgen:
pvs -a -o+vg_free,lv_name,data_lv