Vakantie 2023 – Denemarken

Dag 1 (24) – Naar Hamburg met stop in Bremen

Het kan zijn dat we een milieusticker moeten halen om op het raam te plakken. Een sticker kunnen we krijgen bij een Dekra-, GTÜ- of TÜV-locatie. Het lijkt er in de eerste instantie op dat voor Bremen noch Hamburg een milieuzone geldt.

  • Naar Bremen:
    • Iets meer dan 200 km, maar vooral over kleinere wegen lijkt het; we zijn volgens de routeplanner krap 3 uur onderweg.
    • Route: vanaf Zwolle door de Hessenpoort over de N758 om Nieuwleusen heen dan N377 richting Dedemsvaart en Gramsbergen, daar de grens over richting Emlichheim en Meppen.
      We zijn dan halverwege Bremen. De enige plaats van meer dan drie huizen op de route is dan nog Werlte; vanaf daar achtereenvolgens Vrees, Garrel, Beverbruch, Huntlosen, Sandhatten, Kirchhatten, Dingstede en Delmenhorst. –> dat was dus ook de voetgangersplanning. De link geeft een autoplanning.
    • De batterij zal in Bremen op zo’n 25% zitten; met 50% hebben we al ruim voldoende voor Hamburg. Als we wat laden terwijl we wat eten/drinken en rondkijken in Bremen is de batterij bijna vol.
  • Naar Hamburg:
    • Vanuit Bremen in noordoostelijke richting, het eerste plaatsje op de kaart is Lilienthal. Daarna Tarmstedt en Zeven. Hamburg zal al lang op de borden staan voor we door Buxthude rijden aan de Zuidkant van de Elbe … Ik had de routeplanner op voetganger staan.
    • In Oostelijke richting over de A1, vlak onder Hamburg een paar kilometer de A261 die overgaat in de A7. Over de Elbe afslag 29, Hamburg-Othmarschen, daar rechts de Behringstrasse afrijden. Na twee kilometer onder het station door, dan niet direct na de tunnel maar de volgende rechtsaf naar de Goetheallee.
  • Overnachting: Meiningen Hamburg ; hostel-met-familie-kamers. Redelijk betaalbaar, goed geslapen met z’n viertjes op een kamer. Niet zo prettig: het raam konden we niet openzetten vanwege rokers buiten op de stoep voor het gebouw. Het probleem is bekend, maar er is nog geen oplossing voor. Opladen mochten we op 230V in de parkeergarage doen.
  • Eten: bij Burger Heroes aan de Reeperbaan. Hamburgers zijn niet mijn ding, maar we hebben best lekker gegeten. Als toetje bubbelthee bij Vietnamees restaurant Mekong

Dag 2 (25) – naar Vikaer strand camping aan zee bij Haderslev

Het is ongeveer 200 km van Hamburg naar de camping. Haderslev ligt nog een 20 kilometer verder naar het noorden.

  • Vanuit de Goetheallee eerst in omgekeerde richting onder het spoor door, na de bocht in de weg bij de eerste grote kruising rechtsaf naar het Noorden, die weg met enkele kronkelingen blijven volgen tot de A7 richting Quickborn/Kaltenkirchen.
  • De A7 heeft na 70 km een afslag naar Kiel, die nemen we niet: gewoon de A7 blijven volgen.
  • De grens is bij Flensburg. Nog steeds A7 blijven volgen, het wordt even later in Denemarken de E45
  • Afslag 70 bij Rodekro er van af, bij de rotonde onder de snelweg door, rotonde na het viaduct de eerste niet-snelweg afslag naar het Noorden, richting Lojt Kirkeby en daarna Genner.
  • Dan naar de kust, voor Sonderballe landinwaarts buigen. Aan de andere kant van de landtong is Vikaer strand camping.

We waren al op tijd op de camping, tegen het eind van de middagpauze van de receptie. In het halve uurtje tot de receptie weer openging hebben we de camping en een stuk van het strand bewandeld. Toen we het huisje eenmaal in konden, constateerden we al snel dat er in Denemarken voor geaarde stekkers een stopcontact gebruikt wordt dat niet compatibel is met de EU.

Er leek in de buurt een doe-het-zelf zaak te zitten, in Lojt Kirkeby onderweg naar Aabenraa. Aabenraa leek groot genoeg om een paar laadpalen en een eetgelegenheid en misschien ook nog iets te zien of te doen te hebben, daarmee hadden we voldoende vulling voor de rest van de dag.

De doe-het-zelf-zaak bleek een loods op een bouwterrein in een woonwijk te zijn; de eigenaren lang genoeg op vakantie om spinnenwebben achter de kleine stoffige raampjes te hebben.

Het idee was daarna om de auto aan een lader te hangen en dan ergens wat te eten. Aabenraa bleek Deens voor ‘Wijhe’. De beloftes waarin Denemarken als het vakantieland met een electrische auto bestemeld wordt ten spijt, viel het tegen met de laadpalen in Aabenraa: een verkeersbord met een grote stekker en een pijl richting een parkeerplaats leverde niets op, de laadpaal bij Lidl was defect, de laadpalen bij de ene autodealer waren vergrendeld (en bleken na een beetje prutsen met de vergrendeling onze pasjes niet te accepteren), terwijl bij een andere autodealer er een heeeleboel demo-modellen aangesloten waren in de zaak en de laders buiten niet werkten (noch met onze pas, noch met die van hen).

Bij de Lidl zat gelukkig een doe-het-zelf-zaak die wel open was. Het personeel begreep niet echt wat ik met een adapter voor een stekker met randaarde bedoelde (ik had een voorbeeld-EU-stekker meegenomen), is het toch gelukt een adapter en een losse stekker te kopen.

Toen dat probleem opgelost was, hebben we Oyishi gevonden om sushi te eten. Dat was in een keer geslaagd: we hebben lekker en redelijk betaalbaar gegeten.

Thuis bleek de electriciteit af te slaan zodra de auto begon te laden, en hebben we bij de receptie aangeklopt voor een oplossing. Die hadden ze in de vorm van een verloop-met-telwerk van een 3-polige buitenstekker naar Deens geaard, waardoor onze nieuwe verloopstekker toch nog van pas kwam.

Dag 3 (26) – strand en omgeving verkennen: Haderslev

Een dag kijken wat er in de buurt te zien en te doen is. Resultaat: Haderslev bezoeken en boodschappen doen. Haderslev is wat groter dan Aabenraa en behalve een werkende laadpaal was er is een vijver met een parkje er omheen.

Op de camping was voldoende kook-en-bakgelegenheid om eten klaar te maken.

Dag 4 (27) – Legoland, als het weer een beetje OK is

Legoland Billund ligt een kleine 100 kilometer ten Noorden van de camping, ruim een uur rijden. Het park is open van 10u tot 20u. Kaartjes kunnen we online bestellen via de Lego-site of met een paar euro korting via een Denemarken-site; voor de rest geen korting gevonden.

We zouden eventueel een 2-dagen ticket kunnen nemen, dan kun je binnen 6 dagen nog een keer naar binnen.

Het is een kaartje voor een enkele dag geworden. De zon scheen tussen de buien door, en de meeste buien hebben we gemist door een binnen-attractie te bezoeken. Het was leuk om een keer in Legoland te zijn geweest.

Voor het eten zijn we net voor het sluiten van de keuken bij Rafaels binnengerend en hebben we lekker gegeten.

Dag 5 (28) – nog in te vullen – stranddag

bijkomen en inpakken?

Wat een geluk: op onze bijkomdag scheen de zon, en was het best ondanks de wind te doen op het strand. Het water was wat fris om in te zwemmen, maar met boek/telefoon en iets te eten en te drinken zijn we de dag doorgekomen.

Voor het eten hebben we in Haderslev een tafel gereserveerd. We hadden daar de vorige keer, buiten openingstijden, een Chinees restaurant gezien met een Vietnamese naam, en dachten daar Vietnamees te eten. Toen we er aankwamen bleken er enkel Europese stijl Chinese gerechten geserveerd te worden. Na een tijdje dwalen zijn we bij iGourmet / Elisa terechtgekomen.

Dag 6 (29) – Wandeling met hunebedden

Om het natuurschoon niet ongezien aan ons voorbij te laten gaan en ook nog iets van een actieve vakantie te beleven, zijn we op zoek gegaan naar een wandelroute. Niet te ver van de camping was een route met een paar hunebedden te vinden: “Varnaes hoved og vig”.

De hunebedden vielen een beetje tegen. Een van de twee hebben we niet gezien, omdat het ergens in het natte bos zou moeten liggen. De andere was met een paadje vanaf de wandelroute te bereiken. Waar ik een bouwwerk van steen verwacht had, was het een bouwwerk van aarde, met een kring van keien er omheen. De rest van de route was afwisselend: in de drie uur die we er over deden, hebben we seizoenen (vooral herfst) en alle landschappen die Denemarken te bieden heeft voorbij zien komen. Er waren stukjes met bomen, stukjes met gras, stukjes braakliggend terrein, stukjes agrarisch landschap, stukjes langs struiken en stukjes langs de zee.

’s Avonds was het helder. We hebben een vos op de camping zien lopen en vaagjes de melkweg.

Dag 7 (30) – andere locatie – Aarhus

Nog te bedenken: eerst verder naar het Noorden, of direct richting Kopenhagen? Het is ‘verder naar het Noorden’ geworden: Aarhus.

Aarhus is ‘de tweede stad’ van Denemarken. We konden last-minute per SMS boeken bij ‘Bed and kitchen Rugbjergvej‘. Bij aankomst bleek de site niet up-to-date: de prijzen waren niet 700, maar 800 kronen per nacht. Het appartement op de verdieping onder die van de bewoners was niet het nieuwste en in de hoeken zat hier en daar een spinnenweb, maar het was schoon, ruim en comfortabel. Geen laadmogelijkheid voor de auto, maar die was er wel in Aarhus.

Op zoek naar ‘de’ laadpaal zijn we langs een Vietnamees restaurant gekomen, wat er deze keer wel echt uitzag alsof ze ook Vietnamese gerechten bereidden. Het heet Pho C&P, we hebben er erg lekker gegeten: voor herhaling vatbaar.

Dag 8 (31) – openluchtmuseum “Den gamle by”

Den Gamle By” is een openluchtmuseum miden in Aarhus. Het is opgezet als een klein stadje. Je komt binnen in het heden, en verder naar achteren staan steeds oudere gebouwen waardoor je in de tijd terug loopt. Het is niet verschrikkelijk groot, maar in een dag hebben we niet alles (uitgebreid) kunnen bekijken.

Onder een deel van het gebied zit een ondergrondse uitbreiding, als regulier museum ingericht. Daar begin je met de eerste nederzetting in Aarhus en vanaf daar in chronologische volgorde naar het heden.

In veel van de grotere huizen/gebouwen zijn afzonderlijke exposities ingericht.

Al met al een interessante en goed gevulde dag. Na afloop hebben we bij verschillende standjes van “Aarhus street food” gegeten. De gerechten waren best betaalbaar en goed te eten. Om zonder al te veel risico van de lokale keuken te genieten, heb ik bij de tent met Deense specialiteiten iets uitgezocht. Bloemkoolstampot heb ik op een volle maag niet meer geprobeerd, maar “tarteletter” leek er nog wel in te kunnen. De tarteletter bleek een bladerdeeg bakje met kip/aspergeragout.

De auto hadden we bij de universiteit geparkeerd, redelijk in de buurt van den Gamle By, maar wel een eindje wandelen bij de haven vandaan. Parallel aan den Gamle By, tot aan de universiteit, is de botanische tuin. Het was jammer dat het al wat later was, want het was een mooie tuin om in te wandelen in plaats van enkel via de kortste route er doorheen te lopen.

Dag 9 (1) – Museum Moesgaard

Toen we zondag dingen te doen in de buurt van Aarhus zochten, kwamen we er achter dat net dat weekeind de “Moesgaard Vikingedage” geweest waren. Het was jammer dat we dat niet eerder gezien hadden en daardoor gemist hebben, maar het museum zelf was ook mooi.

Na afloop hadden we bij “Seacrets” willen eten, maar doordat er bij de betaalde parkeerplaats alleen met een Deens telefoonnummer geparkeerd kon worden, is daar niet van gekomen. We zijn voor de tweede keer bij Aarhus street food gaan eten, deze keer bij een paar andere eetgelegenheden.

Dag 10 (2) – Salling in Aarhus, naar Praesto

Woensdag was het weer een verhuisdag. We hadden naar Kopenhagen willen verkassen, maar van de paar betaalbare (en leefbare, meer dan een schuur met een kampvuur) overnachtingslocaties heeft er eentje afgezegd en de andere niet geregeerd. Een laatste hebben we zelf afgezegd toen we een huis in Praesto gevonden hadden.

Daarmee zaten we een eind bij Kopenhagen vandaan, maar niet te ver om er met een uurtje te zijn. We hadden een heel huis ter beschikking, met parkeerplaats en laadmogelijkheid aan huis, voor bijna dezelfde prijs als het huisje op de camping.

’s Ochtends zijn we nog naar Aarhus geweest. Eerst, op aanbevelen van de verhuurder, naar Salling Rooftop: een parkje van hout en staal op het dak van een warenhuis in het midden van Aarhus. Het uitzicht is beter dan vanuit het regenboogpanorama op Museum Aros, zonder dat je een kaartje nodig hebt.

Na Salling Rooftop hebben we geluncht in Pho C*P, op de terugweg naar de auto kwamen we langs een mooie spelletjes-en-LARP-winkel waar we onze ogen uitkeken en werden doorverwezen naar hun andere pand om de hoek, meer op comics gericht. Nadat we daar geslaagd waren zijn we op pad gegaan naar Praesto.

Dag 11 (3) – Praesto verkennen

Praesto is een leuk dorpje aan een baai. De zee is net een meer, zo stil staat het. Omdat het brakke water zo zoet is, staat er riet langs de kant in plaats van zoutbestendige planten, wat de indruk van een zoetwaterplas nog versterkt.

De oude dorpskern ziet er aardig uit en is overzichtelijk voor een korte wandeling. Er is een straatje met een paar winkels en er zijn twee supermarkten op loopafstand van de haven.

Die dag hebben we thuis gegeten, en plannen gemaakt voor de volgende twee dagen.

Dag 12 (4) – Kopenhagen

Met een electrische auto mag je gratis parkeren in Kopenhagen (voorzover het parkeerplaatsen betreft die door de gemeente beheerd worden). Dat was, met prijzen van rond 5 euro per uur, erg prettig.

De hoofdreden om naar Denemarken te gaan, was een winkel in Kopenhagen. Ze verkopen schoolspullen, maar verzenden niet naar Nederland. Die winkel hebben we als eerste bezocht. De rest van de dag werd zodoende mentaal verlicht door de last die van schouders gevallen was.

De rest van de dag hebben we door Kopenhagen gezworven. We hebben over de 17e-eeuwse verdedigingswallen gewandeld, we zijn in Christiania geweest (waar we bij een Tibetaans eetstalletje geluncht hebben), we zijn door Nyhavn gewandeld, hebben een barnsteen-museum(pje) bezocht, een standje gekregen van de wachten op het slotplein van de Amalienborg, om en door Kastellet gelopen onderweg naar de kleine zeemeermin. We hadden graag de botanische tuin bezocht. Daar waren we ’s ochtends al langsgekomen, maar hadden geen ingang gezien. Het bleek dat alle ingangen op een na gesloten waren wegens werkzaamheden, en die ene ingang zat natuurlijk precies aan de verkeerde kant. Toen we het park binnenkwamen, hadden we nog krap een half uur. We zijn als eerste naar het Palmhuis gelopen, maar toen we daar aankwomen werden we aangesproken door een pensionaris in een park-pak. Het was tijd om naar de uitgang te lopen, het park ging sluiten.

Onderweg naar de uitgang zijn we even op een bankje gaan zitten om de diner-opties door te nemen. Op plaatsen 1-5 stond “Sticks’n’sushi”, met een ook nog een paar locaties rond de 10e plaats. Er bleek er ook nog een niet al te ver van de botanische tuin, op weg naar de auto, te zitten.

Daar aangekomen was er nog een tweepersoonstafeltje met vier stoelen beschikbaar op het terras, met risico op rokende buren. Het meisje dat de tafel aanwees, bood aan bij de dichtstbijzijnde locatie te informeren of ze ruimte voor vier personen hadden, wat het geval was. Het bleek anderhalve kilometer de verkeerde kant op te zijn, aan de andere kant van de botanische tuin. Daarna heeft ze gebeld (met succes) of er bij de locatie in de richting van onze parkeerplaats ook ruimte was, maar het bleek dat we daarmee verder moesten lopen voor het eten en daarna nog ruim twee kilometer van de auto zaten; terug naar het eerste alternatief. Na al het geregel en een wandeling zijn we goed aangekomen en hebben we niet goedkoop, maar wel lekker gegeten.

Dag 13 (5) – Mons Klint

Praesto ligt op hetzelfde eiland als Kopenhagen, Zeeland. Ten zuiden van Zeeland ligt Mon (Meun, met een streepje door de o, net als bij Praesteu). Aan de Oostkust van Mon zijn krijtrotsen: Mons Klint.

Mons Klint is een klein uur bij Praesto vandaan, maar omdat we niet zo vroeg vertrokken waren we er pas na de middag. Dat is wel jammer: aan de oostkant heb je natuurlijk ’s ochtends zon, nu liepen we veel in de schaduw. Desondanks was het de moeite waard.

In het krijt zijn fossielen te vinden. Daar hebben we nog wel een beetje naar gezocht, maar we hadden niet veel geluk.

Mon is naar mijn idee het mooiste stukje Denemarken waar we geweest zijn, maar van de drie restaurants was er eentje gesloten, eentje was een pizzeria (natuurlijk) en de andere sushi (wat we net gehad hadden). Onderweg naar huis hebben we gezocht welke opties Praesto bood. Het best beoordeelde restaurant van de vijf had geen plaats toen we belden, bij nummer twee kostte een gerecht net zoveel als een week bij andere restaurants eten en voor de rest hadden we geen zin in pizza.

De dichtstbijzijnde plaats met meer dan een pizzeria is Naestved. Daarmee is alles gezegd: de restaurants die we belden gaven niet thuis, dus of ze waren opgedoekt of het telefoonnummer op de websites was niet (meer) goed. We zijn uiteindelijk bij “Wok og Chopsticks” terechtgekomen. Het personeel was vriendelijk zoals in de reviews, maar voor het eten zouden we niet terugkomen.

Uiteindelijk waren we bijtijds weer thuis

Dag 14 (6) – Op weg terug, Praesto – Stemmen

We hadden de avond van tevoren gedacht in een dag terug te reizen, maar het bleek dat de 600-km-route met de veerboot over ging van Lolland naar Duitsland. Dat gaf veel uitzoekwerk, daarom besloten we in twee dagen terug te reizen via dezelfde route als we gekomen waren. Overnachten zouden we in “Hotel Landgut Stemmen“.

Om te voorkomen dat de veer-route genomen werd door de navigatie, gaf ik Odense in als tussenstop; later heb ik die verwijderd om omwegen te voorkomen. Dat moment heeft de navigatie meteen aangegrepen om een route via een andere veerboot te selecteren, waar we pas achter kwamen toen voorbij Bojden de weg ophield en er een boot voor ons in het water lag. Toen zijn we alsnog met de boot gegaan en hebben we wat uitgewaaid aan dek.

Bij Fynshav kwamen we weer aan land met nog 300 km te gaan. Het werd ongeveer tijd wat te eten, en na te denken over waar we zouden avondeten: Kiel, Hamburg, Hotel?

Al rijdende kwamen we daar niet uit; met een file in het vooruitzicht zijn we bij Schuby van de snelweg gegaan om de opties door te nemen. We hadden zeker voldoende batterij om Kiel te halen (als in, om er te komen, niet als activiteit); Hamburg net niet. Na een tijdje peinzen zijn we eerst maar naar een laadpaal gereden om in ieder geval niet door de batterij beperkt te zijn. Naast de laadpaal zagen we “Kaplan Doner”, een shoarmarestaurantje (zonder eigen website), waar we naartoe liepen met het idee niet op een lege maag na te hoeven denken.

De porties bleken groot zat, en het smaakte beter dan verwacht. Toen we onze bordjes leeg hadden, konden we er zeker tot het avondeten tegenaan en was de batterij vol genoeg om niet meer te hoeven stoppen.

Zonder touristische tussenstop kwamen we bovendien voor sluitingstijd van de keuken bij het hotel aan, dus hebben we daar gegeten. Het restaurant (“Schultens“) was erg betaalbaar, maar het eten niet om over naar huis te schrijven. Gelukkig was het hotel beter dan het restaurant, en het ontbijt was goed. Ook aan de auto was gedacht: het hotel had twee vrij snelle laadpalen, waardoor we de volgende ochtend niet alleen uitgerust en met een volle maag, maar ook met een volle batterij op pad konden.

Dag 15 (7) – Stemmen – Umleitung – thuis

Van Stemmen naar Zwolle is het ongeveer 300 kilometer; goed te doen zonder opladen als je niet te snel rijdt. Het eerste stuk was echter veel snelweg, wat snel in de reikwijdte vrat. Halverwege Bremen en de grens met Nederland kwamen daarbij nog omleidingen; daardoor kwam Nordhorn op een gegeven moment in zicht. Daar hebben we eerder gegeten en opgeladen; met een blik op de batterijmeter en de klok zijn we daar gaan lunchen. Wok. Het restaurant bleek na corona overgegaan in andere handen, maar de formule was nog hetzelfde: niet heel uitgebreid, slechte koffie en sushi met iets teveel azijn, maar verder OK. Op de koffie na beter dan bij de chopsticks in Naestved, en voor minder dan de helft van het geld.

Met alle omleidingen zijn we gaan eten voor het restaurant sloot, om daarna de auto te laden. Dat bleek niet nodig, dus we zijn meteen doorgereden. Tegen het eind van de middag was de vakantie afgelopen, en na het uitpakken van de koffers leek het halverwege de avond of we niet weggeweest waren.

Epiloog

Ik keek er niet bijzonder naar uit om in Denemarken op vakantie te gaan, met wat ik wist aan “onbekend, onbemind”: ik had geen idee wat ik er, naast Legoland, te zoeken of te vinden had.

Na de vakantie heb ik die leemte in ieder geval gevuld. Ik zou als voorproefje een week in Drenthe op vakantie gaan, bij voorkeur een week waarin het geen dag droog is. Als dat bevalt, kun je overwegen naar Denemarken te gaan: “meer” (als in: “weinig”) van hetzelfde, alleen duurder. Er zijn best mooie/aardige stukjes Denemarken, maar voor mooie/aardige stukjes <vul in> hoef je niet speciaal naar Denemarken.

Wat me bijblijft van Denemarken:

  • Alles is 20% duurder (of je krijgt 30% minder) dan in NL na inflatie; eten, restaurants, pretparken, overnachtingen. Prettige uitzondering: in veel musea hoeven enkel ouders te betalen; de musea die we bezocht hebben zijn mooi ingericht.
  • Huizen en gebouwen zijn ingestort, staan op instorten, zijn net voldoende opgelapt om niet in te storten of zijn na instorten net voldoende opgelapt om bewoonbaar te verklaren.
  • Het landschap is net Drenthe, behalve dat de glooing in het landschap het uitzicht in de weg zit. Er is vrij veel van niets, we hebben geen noemenswaardige bossen gezien (misschien zijn die allemaal gezonken als Vikingschip), er zijn geen indrukwekkende uitzichten (de heuvels zijn hoog genoeg om in de weg te staan, maar niet hoog genoeg om er overheen te kijken); er zijn geen uitgestrekte akkers of weiden, telkens enkele velden en dan wat stenen.
  • Het weer doet erg zijn best om Nederlanders zich thuis te laten voelen, maar door alle zee tussen de eilanden is er teveel wind om de regen lang vast te houden. We hebben in twee weken 1 dag zonder regen gehad, en maar een paar dagen helemaal zonder zon. Het gevolg was dat je iedere dag (behalve die drie, maar dat wisten we niet van tevoren) zowel een korte broek en paraplu (bij regen zonder wind) als een lange broek en trui (bij wind zonder regen), als een korte broek en een regenjas (bij regen met wind) als een korte broek en een t-shirt (als zowel wind als regen ontbraken) nodig had
  • Denemarken is toegankelijk voor toeristen (vrijwel overal is een omschrijving in het Engels beschikbaar, en als er geen Engelstalige menukaart is, dan spreekt de bediening Engels), maar het is niet ingesteld op gelegenheidstoeristen. Op korte termijn zijn er vrij weinig overnachtingsmogelijkheden beschikbaar.
  • Zonder inmenging van Google of Apple en zonder Deens telefoonnummer kun je op veel plaatsen niet betalen: de digitale ekonomie leunt zwaar op 1 app die enkel via commerciele downloadwinkels beschikbaar is, en waarvoor je een Deens telefoonnummer nodig hebt.

Adressen

MEININGER Hotel Hamburg City Center
Goetheallee 11
22765 Hamburg

Vikær Strand Camping
Dundelum 29
6100 Haderslev
74 57 54 64

Print this entry

IPv6 – nogmaals

Vorige week heb ik – eindelijk – een laadpaal geinstalleerd ter vervanging van de kabel die al ruim 6 jaar uit het zolderraam hing te bungelen. Voordat de stroom er af ging, heb ik alle apparatuur in het zicht netjes uitgeschakeld, maar de server staat niet in het zicht en kwam niet meer online toen er weer stroom was.

Zodra ik dat door had, kon ik met een handmatige ingrepen het gros weer draaiend krijgen, voor het moment, maar na een blikseminslag vandaag was de stroom er opnieuw vanaf met hetzelfde resultaat: website en webservices off-line.

Iets wat zowiezo nog niet goed werkte, en nu dus zeker niet, was het betrouwbaar uitdelen van IPv6-adressen in het netwerk. Daarbij kwam nu dat IPv4 niet goed terechtkwam.

In de logging van OPNsense viel me op dat er regelmatig no route to host gemeld werd:

<187>1 2023-07-09T20:39:33+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="5"] send_packet6: No route to host

Daar had ik eerder nog niet naar gezocht, of niet op de juiste zoekresultaten geklikt. Deze keer klikte ik een link naar het Netgate forum, waar met name een post er uitsprong. Het relevante deel:

I added to the bridge a link local IPv6 address … Soon after the DHCP log started indicating the DHCP response completed successfully

wallabybob

Ik controleerde de configuratie van de bridge op de router; er was wel een IPv6-adres aan toegekend, maar geen local link adres. Bovenstaand citaat is uit 2011, ruim 12 jaar geleden. Ik kon bijna niet geloven dat ik nu nog steeds tegen dat probleem aan kon lopen, maar na lezen (en leren) van de rest van de thread heb ik het toch geprobeerd:

# ifconfig bridge0 inet6 add fe80::5a9c:fcff:fe10:ff91/64

Geloof het of niet, maar direct daarna verdwenen de no route to host’s , en verschenen daarvoor in de plaats Reply NA‘s; zie de stukjes log, als eerste de fouten:

<190>1 2023-07-09T20:39:33+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="1"] Solicit message from fe80::dab6:b7ff:feb7:981a port 546, transaction ID 0x577C2900
<191>1 2023-07-09T20:39:33+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="2"] Picking pool address 2a10:3781:2d49:172:26:90:0:f525
<190>1 2023-07-09T20:39:33+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="3"] Advertise NA: address 2a10:3781:2d49:172:26:90:0:f525 to client with duid 00:03:00:01:d8:b6:b7:b7:98:1a iaid = -1212704742 valid for 7200 seconds
<190>1 2023-07-09T20:39:33+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="4"] Sending Advertise to fe80::dab6:b7ff:feb7:981a port 546
<187>1 2023-07-09T20:39:33+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="5"] send_packet6: No route to host
<187>1 2023-07-09T20:39:33+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="6"] dhcpv6: send_packet6() sent -1 of 104 bytes
<190>1 2023-07-09T20:39:44+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="7"] Solicit message from fe80::225:61ff:fee3:1ee0 port 546, transaction ID 0xFB62AD00
<191>1 2023-07-09T20:39:44+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="8"] Picking pool address 2a10:3781:2d49:172:26:90:0:f79c
<190>1 2023-07-09T20:39:44+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="9"] Advertise NA: address 2a10:3781:2d49:172:26:90:0:f79c to client with duid 00:03:00:01:00:25:61:e3:1e:e0 iaid = 2424874 valid for 7200 seconds
<190>1 2023-07-09T20:39:44+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="10"] Sending Advertise to fe80::225:61ff:fee3:1ee0 port 546
<187>1 2023-07-09T20:39:44+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="11"] send_packet6: No route to host
<187>1 2023-07-09T20:39:44+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="12"] dhcpv6: send_packet6() sent -1 of 100 bytes
<190>1 2023-07-09T20:39:46+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="13"] Information-request message from fe80::ec4:7aff:fec1:25e4 port 546, transaction ID 0x7A418D00
<190>1 2023-07-09T20:39:46+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="14"] Sending Reply to fe80::ec4:7aff:fec1:25e4 port 546
<187>1 2023-07-09T20:39:46+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="15"] send_packet6: No route to host
<187>1 2023-07-09T20:39:46+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="16"] dhcpv6: send_packet6() sent -1 of 73 bytes

… daarna de correcte verwerking:

<190>1 2023-07-09T21:55:09+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="19"] Solicit message from fe80::dab6:b7ff:feb7:981a port 546, transaction ID 0x577C2900
<191>1 2023-07-09T21:55:09+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="20"] Picking pool address 2a10:3781:2d49:172:26:90:0:f525
<190>1 2023-07-09T21:55:09+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="21"] Advertise NA: address 2a10:3781:2d49:172:26:90:0:f525 to client with duid 00:03:00:01:d8:b6:b7:b7:98:1a iaid = -1212704742 valid for 7200 seconds
<190>1 2023-07-09T21:55:09+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="22"] Sending Advertise to fe80::dab6:b7ff:feb7:981a port 546
<190>1 2023-07-09T21:57:08+02:00 vpoort.osba.nl dhcpd 54250 - [meta sequenceId="133"] Reply NA: address 2a10:3781:2d49:172:26:90:0:f525 to client with duid 00:03:00:01:d8:b6:b7:b7:98:1a iaid = -1212704742 valid for 7200 seconds

Ik ben er nog niet uit hoe het met de volgordelijkheid zit: eerder liepen de meta sequence id’s slechts tot ergens in de 20, nu ver voorbij 100. Nummers <190> en <191> lijken OK, de eerdere fouten vallen onder <187>.

Het resultaat is nu dat opeens heel veel apparaten een IPv6 toegewezen hebben gekregen. Waar ik er eerst met hangen en wuren twee of drie kreeg, instabiel (telkens andere IP’s, telkens andere apparaten), is er nu opeens een hele lijst.

Nog te doen: herkenbare statische leases aanmaken voor vaste apparatuur, en natuurlijk waar het om begon: zorgen dat de webserver een IP krijgt tijdens boot.

Print this entry

Printer troubleshoot: HP Photosmart 3310 all-in-one – 0x18a0206 (Inktsysteem-fout)

Deze printer heb ik een keer gekregen als ‘alleen om te scannen, printen werkt niet’. De printer lijkt dezelde als de photosmart C7180.

to clear a fault for the HP c8180, press both “Red Eye Removal” and “Print Photos,” and it will ask for a special key combo. Press “Red Eye Removal,” then “Print Photos,” then “Red Eye Removal” again and the menu will open. Use the right arrow on the menu to scroll to “System Configuration Menu” and click OK. Scroll to “Hardware failure status” and press “OK” to clear.

Er is geen ‘Rode ogen’- of ‘Red eye’-knop, of ‘Print foto`s’.

HP C5180 All-In-One Printer HARD RESET:Hold down HELP + OK button and unplug printer (…) Hold down HELP + OK button again as you plug the printer back in. Then power it on, if it doesn’t power on automatically. Be Safe: keep holding the buttons until the printer turns itself off. (It took mine less than a minute.)Now you can release the buttons and simply power it back on. After I clicked “OK” the printer was just fine and didn’t mind anymore. And now I can print.

Dit werkt niet bij deze fout op de Photosmart 3310

hp c6180 to fix error 0xc18a0101 : You can do deep power cycle by removing the power cord for 1 minute and then pressing and holding the power button and plugin in to the power at the same time.

Dit werkt niet bij deze fout op de Photosmart 3310

error 0xc18a0101 occurs typically in HP Photosmart printers when printer head is clogged, in particular it happened in my Photosmart 3310. The following action solved my problem: push simultaneously OK, Cancel, Black and Color buttons (i.e. these 4 buttons at once). This rest printer program and you can print again but, this action does not clean the printer head (you can see a little improvement, though), so after of this follow the any procedure about how to clean the printer head.

Deze optie was het! OK en Cancel samen met Zwart en Kleur. Ik weet niet zeker of ik het samen met inschakelen, uitschakelen, of op zich deed. In ieder geval niet met de stekker. De printer ging terug naar blanco instellingen, en vroeg als eerste om de gewenste taal.

Na basisinstellingen is de printer een kwartier bezig geweest met rommelen en inkt tanken. De inktsysteem-fout was weg!

Een andere tip, via Youtube, is om de power en cancel buttons tegelijk ingedrukt te houden terwijl de printer aan staat. Kan ik de volgende keer proberen, ik ben blij dat deze nu werkt en ga de (mogelijk fragiele) situatie niet resetten zonder dat het nodig is.

Na de testprint die volgt op een koppenspoelprogramma, deden enkel blauw en geel het, met een paar sporen zwart. Na een test met een zwart/wit kopie om de zwarte inkt verder uit te spuiten, gaf het papier-oppakmechanisme er de brui aan. Wat printen betreft wilde ik het daarbij laten, en eerst de film-scan-functie uitproberen.

Daarvan wilde ik een ‘contactafdruk’ op fotopapier maken, omdat fotopapier in een andere lade zit en misschien geen probleem met oppakken heeft. Toen ik daarmee eenmaal zover was dat ik een print kon maken, leek het initieel of de overige kleuren ook weer werkten: er zit in ieder geval veel rood in de foto.

Next: papier-roller schoonmaken. Bij het schoonmaken van de papier-roller kwam meteen het probleem aan het licht: een stuk play-dough, of opgedroogde inkt, had een stuk papier vastgeplakt aan de uitgang van de papierbak, net uit het zicht aan de voorkant, en onopvallend aan de achterkant. Na het verwijderen van dat vel was er geen probleem meer met de papiertoevoer.

Terug naar de print zelf. Cyaan, licht cyaan en geel komen er goed uit, zwart half. Magenta en licht magenta, in het statusrapport, totaal niet.

Na een A4’tje vol kleine lettertjes (negen willekeurige pagina’s uit een ebook, met 3×3 pagina’s per vel A4) komt zwart er perfect uit.

Ik weet niet hoe ik een epub in magenta kan printen, daarom copy/paste naar een teksteditor, in een 6-punts-lettergrootte en 100% magenta. Via formatting/columns op twee kolommen ingesteld, en find/replace met $ gebruikt om de ¶’s te vervangen omdat er elke anderhalve regel een harde newline in de tekst zat.

Tot mijn verbazing komt er met het eerste A4’tje leesbare tekst uit. Het lijkt niet volledig magenta, maar zeker niet geel, cyaan of groen. Dat was met de instelling ‘kleur, beste kwaliteit, op fotopapier’. Een tweede poging, nu met ‘kleur, fotokwaliteit, op fotopapier’ brengt aan het licht wat er gebeurt: cyaan en magenta worden gemengd. Magenta komt er wel door, maar met wat moeite. Na de eerste A4 lijkt het wat uitgeput, en de tweede A4 komt voor driekwart in volledig cyaan, om dan in een gradient over te gaan naar paarsig.

Een derde test, met gradienten wit –> magenta komt er ‘perfect’ uit: de tekst is weer paarsig, maar de gradienten gaan zonder witlijnen van wit naar lichtroze, magenta zou je zeggen.

Eerder had ik een alignment-print gedaan, die mislukte omdat, gok ik, zwart toen half werkte. Nu ik nogmaals een alignment-print maak, slaagt die wel. Het toont dat naast zwart, geel en (licht) cyaan, nu ook magenta volledig kleurt. Licht magenta blijft volledig leeg.

Nog een test: dezelfde pagina met de magenta gradienten, maar nu echt op fotopapier, uit de fotolade. De instellingen zijn ‘kleur, fotokwaliteit op fotopapier’. De tekst wordt cyaan geprint, magenta ontbreekt volledig. Misschien wordt voor fotokwaliteit licht magenta aangesproken, daarom dezelfde test nogmaals, maar dan met als instellingen ‘kleur, beste kwaliteit, op fotopapier’. Zelfde resultaat 🙁

Ik verwachtte oorspronkelijk, voor ik van het weekeind aan de slag ging en eerst de foutcode weg wilde krijgen, dat ik lucht uit de leidingen moest halen. “Prime” de printer. Dat bleek dus niet het geval, althans, ik denk dat de printer dat in het kwartier rommelen na de reset gedaan heeft.

Magenta en met name licht magenta waren misschien verder leeg / meer met lucht gevuld dan de rest. Magenta heeft het ‘soort van’ opgepakt: in ‘beste’ en ‘fotokwaliteit’ komt er kleur uit, maar in de stand die de printer gebruikt voor rapportages (normaal? concept?) blijven de magenta varianten blanco.

Op ’t Net zag ik een filmpje over het verwijderen van lucht uit een CISS-opstelling voor een cartridge met geintegreerde printkop: met een halfvolle injectiespuit de boel vacuum zuigen (lucht + inktresten uit de container). De restjes inkt en de lucht komen in de injectiespuit met inkt terecht; de lucht gaat naar boven. Laat de injectiespuit daarna rustig terugkomen in de startpositie: de inkt wordt naar binnen gezogen, de lucht blijft in de spuit.

Datzelfde heb ik toegepast op de licht magenta aansluiting; voor extra effect in plaats van inkt een milliliter mengsel van 2 delen spiritus en 1 deel ammoniaoplossing. Inktpatroon eruit genomen, spuit aangesloten op de inktpoort met een centimetertje flexibele slang. Eerst naar buiten trekken, luchtbellen naar boven laten borrelen, langzaam laten vieren, en dat een paar maal herhalen, telkens iets verder vacuum zuigen. Op die manier is er enkele milliliter lucht en evenveel inkt uit de leiding gekomen.

Terug om te testen: het is niet meteen optimaal, maar de eerste testfoto heeft al een flink magentazweem op de plaatsen waar dat zou moeten.

Een paars A4’tje verder komt er een overtuigende hoeveelheid (licht) magenta uit de printer – zolang ik maar op ‘beste’- of ‘foto’-kwaliteit print.

Aanvulling voor een volgende keer: de zogenaamde ‘Tap n’ codes/tests: power ingedrukt houden, en n maal op resume (1-increment) of cancel (10-increment) drukken, dan power loslaten.

Een ander document geeft op pagina 40 hints voor problemen photosmart printers.

Print this entry

Ardennen 2023

In 2023 gaan we naar de Ardennen! Meer specifiek, naar een “Camping SY“, in Sy (Wikipedia).

Hoe komen we er?

Het is ruim 300 kilometer, een beetje bergopwaarts, dus een keer laden zit er wel in. ABRP stelt voor om bij Nijmegen richting Venlo te rijden en een half uur te laden (van 25% naar 60%) rond Roermond. Daarna via Maastricht en Luik; na Luik is het nog krap een uur voor 50 kilometer.

Waar ligt Sy?

Sy (Openstreetmap) ligt tussen een paar meanders van de Ourthe, en de camping ligt tussen het station van Sy en de Ourthe.

Het is een beetje op de Noord-Westrand van de Ardennen.

Wat is er te doen?

Op de Ourthe kun je, als het meezit, kanovaren. Er zijn (zie kaartje hierboven) grotten in buurt, maar voor echte grotten moeten we 50 kilometer naar het Zuidwesten, naar de Grotten van Han. Die grotten liggen in een natuurpark waar je een combiticket voor kunt krijgen.

Stroomopwaarts aan de Ourthe ligt La Roche-en-Ardenne, in vallei met in het midden van het stadje een heuvel met een kasteel. Dichterbij, ook aan de Ourthe, ligt Durbuy. Durbuy is niet alleen een pittoresk stadje, er is ook een klimbos in de buurt.

Sites met touristeninfo

Print this entry

VPS-migratie

Een van de VPS’en zit vol. Uitbreiden van de opslagruimte is niet (goedkoop) mogelijk, maar omdat het er al een tijdje aan zat te komen, heb ik een ruimere VPS beschikbaar.

Bij een eerdere migratie, van thuis naar VPS, heb ik een howto op lowendspirit gevolgd waarmee het disk-image goed te versturen was. Ik had nu moeite hem weer terug te vinden, dus voor de volgende keer leg ik het hier ook vast.

Het idee is in grote lijnen:

  • Sluit de draaiende server af, om een statische situatie te hebben zodat het bestandssysteem consistent blijft.
  • Start een rescue-mode op de VPS-omgeving. In de rescue-mode zijn de diskpartities van de VPS beschikbaar.
  • Kopieer de partitie van de ene machine naar de andere machine met dd over SSH

In dit geval is het resultaat:

rescue # dd if=/dev/vda1 bs=32M status=progress | ssh -C root@185.193.158.65 "dd of=/dev/vda"
The authenticity of host '185.193.158.65 (185.193.158.65)' can't be established.
RSA key fingerprint is SHA256:+EhOiwW9GjD4wv2S/0eRveRdoxV8Mlf1x8sICc9JxUY.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '185.193.158.65' (RSA) to the list of known hosts.
root@185.193.158.65's password: 
973078528 bytes (973 MB, 928 MiB) copied, 35.8094 s, 27.2 MB/s

De partitie gaat van een datacenter in Frankfurt naar eentje in Amsterdam. De doorvoersnelheid stabiliseert zich op iets boven 33 MB/s, waarmee de partitie van 20 GB in ongeveer 10 minuten gekopieerd is.

De partitie is meteen al 40 GB, maar het bestandssysteem is nog 20 GB. Met resize2fs kan de grootte van het ext4-bestandssysteem aangepast worden:

# e2fsck -f /dev/vda
e2fsck 1.46.2 (28-Feb-2021)
Pass 1: Checking inodes, blocks, and sizes
....
# resize@fs /dev/vda
resize2fs 1.46.2 (28-Feb-2021)
Resizing the filesystem on /dev/vda to 10485760 (4k) blocks.
The filesystem on /dev/vda is now 10485760 (4k) blocks long. 
# 

Het enige probleem is dat het doelsysteem niet boot. Als ik de schijf boot in rescue-modus, staat alle data er op, inclusief de bootdirectory.

Wat blijkt? Bij het kopieren heb ik uit gewoonte de eerste partitie van de schijf (/dev/vda1) gepakt, terwijl er op de doelserver geen partitie is de schijf zit: het had /dev/vda1 ipv /dev/vda moeten zijn, of allebei /dev/vda.

Opgelost vanuit een system-rescue door:

  • Bestandssysteem krimpen tot minimum, de grootte van de bezette ruimte (resize2fis -M)
  • Nogmaals kopieren, nu van /dev/vda1 naar /dev/vda1
  • Bestandssysteem laten groeien tot partitiegrootte

Het systeem bootte toen wel, maar de netwerkconfiguratie was nog die van de oude server. Toen het eenmaal half-en-half werkte, vond ik de ‘reconfigure networking’ knop in de Solus-management-omgeving.

Daarmee werkte routing voor IPv6 weer; DNS was al gecorrigeerd.

Nu lijkt alles weer naar behoren te werken, met ruim het dubbele aan beschikbare ruimte.

Print this entry

Firefox sync server

Omdat de sync server afhankelijk is van Python 2, is het al een tijdje lastig de boel bij te werken. De syncserver op online.osba.nl houdt daarmee de volledige server in z’n grip, omdat daardoor Debian niet van 10 naar 11 geupgrade kan worden. Daarmee zijn recente PHP-versies niet goed beschikbaar, waardoor andere pakketten weer niet bijgewerkt kunnen worden.

De sync server krijgt daarom een eigen machine toegewezen. Het adres veranderd helaas een klein beetje, wat weer gevolgen heeft voor alle verbonden Firefox instanties. Op desktopversies is dat nog wel makkelijk aangepast via about:config, maar op Android is die pagina sinds een paar versies niet meer beschikbaar.

Er is een wat spijtige workaround voor Firefox op Android nodig:

  • ga naar settings –> about Firefox –> klik 5x op het Firefox-logo.
  • er volgt een popupje dat debug-settings beschikbaar zijn
  • in settings is nu onder het kopje ‘Account’ een menu-optie ‘Custom Sync Server’ beschikbaar gekomen.
    • Zolang er een reeds verbonden Firefox-account actief is, is de optie uitgegrijsd
  • vul als custom sync server in: https://ffs.osba.nl/ffsync/token/1.0/sync/1.5
  • Als je het veld leegmaakt, wordt de hele optie op nul gezet en moet je opnieuw op het logo kloppen.

Op dezelfde pagina is te lezen dat voor desktop-versies van Firefox de custom-synchronisatie-optie ook moeilijker gemaakt is, naast het invullen van de URL van de synchronisatieserver, was het ook nodig twee andere instellingen op nee te zetten:

  • identity.fxaccounts.useSessionTokensForOAuth = false
  • identity.sync.useOAuthForSyncToken = false
  • de tokenserver zelf nog steeds corrigeren naar de eigen server:
    • identity.sync.tokenserver.uri = https://ffs.osba.nl/ffsync/token/1.0/sync/1.5

Print this entry

Wireguard VPN

Met dank aan Nyr op lowendspirit.com makkelijk te installeren en configureren op een NAT-VPS.

Het script wordt onderhouden op github, de huidige kopie heb ik lokaal staan. Nieuwe versie ophalen met wget https://git.io/wireguard -O wireguard-install.sh

Edit eind 2023: ik heb een kopie in de lokale forge gemaakt. Die zal gaan achterlopen in geval van wijzigingen. Voor de lol: wget https://forge.osba.nl/wbk/wireguard-install/raw/branch/master/wireguard-install.sh

Gebruik:

  • De eerste keer is de daadwerkelijke installatie/configuratie:
    • geef het externe IP/hostname waarop de server bereikbaar is
    • geef een poort die Wireguard mag gebruiken
    • voor de eerste gebruiker:
      • geef de DNS-resolver die gebruikt moet worden
      • geef de gebruikersnaam
    • Wireguard wordt nu geinstalleerd
    • er wordt een QR-code getoond met de configuratie, direct te scannen met een Wireguard-programmaatje op je telefoon
  • De volgende keer uitvoeren kun je nieuwe gebruikers toevoegen

Klaar!

Print this entry

UEFI BIOS boot en GRUB

Voor de zoveelste keer tijdens een installatie: wat zijn ook alweer de benodigde partities sinds UEFI?

In ieder geval /boot , groot genoeg voor een stuk of drie Linux-images; met 50-70 MB per stuk is 200 MB ruim voldoende.

Dan is er de BIOS-boot-partitie, waar de UEFI-bestanden terechtkomen. Volgens specificaties tot zo’n 500 MB, maar mag ook minder zijn. Gok ook op 200 MB.

Uiteindelijk: een kleine partitie (1-2 MB is meer dan genoeg) voor de het deel van de bootloader wat voorheen in de loze ruimte in de partitietabel weggeschreven werd. In tegenstelling tot een DOS-partitieschema, heeft GPT geen loze ruimte.

Het is wel nodig om GRUB over te halen gebruik te maken van die loze ruimte, anders meldt grub-install dat use of blocklists ‘discouraged’ is:

# grub-install /dev/sda1 --force

… vooropgesteld natuurlijk dat de mini-partitie te vinden is op /dev/sda1.

Print this entry

reMarkable BRICK

Waarschuwingen, wat kun je er anders mee doen dan ze in de wind slaan? Even een alternatieve packagemanager proberen kan geen kwaad toch?

Dat ssh-copy-id niet het gewenste resultaat had, ach… Dan verander ik tijdelijk het wachtwoord naar iets wat ik zeker niet vergeet. Om dan ook nog een reservekopie te maken van je de configuratiebestanden en een backup van kladjes: daar ga ik nu toch niets mee doen. Alleen maar een paar programma’tjes proberen.

Alleen: de programmastarter is niet geintegreerd in het reguliere OS. Het is of stock reMarkable-OS, of iets anders. Jammer, niet het toppunt van handig. Ander programma proberen, mijn favoriete ereader: koreader.

Yep, dat is koreader. Fijn, volgende programmaatje proberen. SSH: timeout. Lichte paniek. WiFi? WiFi staat uit, gelukkig. Netwerk over USB dan; in een keer raak, ssh root@10.11.99.1, maar inloggen? Nee hoor: incorrect wachtwoord. Meer paniek.

Rust. Ik kan niet de eerste zijn die dit verprutst. Na wat zoeken blijken ook niet hele volksstammen er met open ogen ingerend te zijn, maar er zijn howto’s die – na een introductie over ‘bricking beyond repair’ – je weer op pad helpen.

Ik kwam uit bij remarkable-uuuflash. Ik zag er een beetje tegenop om de procedure uit te zoeken, tegen problemen aan te lopen en zonder resultaat de avond af te sluiten, maar die vrees was ongegrond: het werkt precies zoals voorgesteld.

Unbrick

Veel meer dan copy/paste van de bron-site is dit niet. Samengevat:

  • Sluit de reMarkable per USB op je PC; let op dat het een datakabel is, niet eentje die enkel kan opladen.
  • Schakel de reMarkable, mocht hij aanstaan. Dat is nodig om de USB poort van modus te kunnen laten switchen.
  • Houdt de middelste knop onderaan ingedrukt terwijl je de aan-/uitknop een seconde of 3-5 ingedrukt houdt. Op het scherm is niets te zien: het OS dat het scherm aanstuurt, wordt niet gestart.
  • Op je PC zie je met dmesg|tail onderaan de USB poort in flash modus genoemd worden, of met tail -f /var/log/messages komt hij voorbij:
    [111357.268334] hid-generic 0003:15A2:0063.0005: hiddev1,hidraw4: USB HID v1.10 Device [Freescale SemiConductor Inc  SE Blank MEGREZ] on usb-0000:00:1a.0-1.3/input0
  • Gebruik uuu (op je PC) om een recovery-image in RAM (van de reMarkable) te laden :
    # ./uuu recover.uuu
  • De reMarkable boot nu in het recovery-image; als tail -f /var/log/messages aan staat, zie je de seriele poort voorbij komen, anders lezen op de laatste regels van dmesg|tail. Het zal waarschijnlijk een /dev/ttyACMx-apparaat zijn.
  • Open nu een seriele verbinding vanaf je PC naar de reMarkable:
    # screen /dev/ttyACM1
  • Log in als root
  • Je zit nu in het recovery-image, er is dus nog niets beschikbaar van de flash opslag op de reMarkable. Die kun je wel aankoppelen:
    # mount /dev/mmcblk1p2 /mnt/
    # mount /dev/mmcblk1p7 /mnt/home
    # mount /dev/mmcblk1p1 /mnt/var/lib/uboot
  • chroot naar het aangekoppelde bestandssysteem:
    # chroot /mnt
  • Voer nu uit waar je voor gekomen was. In mijn geval: het wachtwoord van root verwijderen. passwd werkte niet, misschien dat dat ook in de chroot-omgeving het /etc/shadow-file buiten chroot probeert aan te passen, of misschien is er iets ingebouwd in het reMarkable-OS dat voorkomt dat het wachtwoord aangepast wordt (zou verklaren waarom ik er eerder niet inkwam). In plaats daarvan, maak ik het root-password leeg door in /etc/passwd de verwijzing naar /etc/shadow te verwijderen:
    # vi /etc/passwd
  • de ‘x’ achter root geeft aan dat het gehashte wachtwoord opgeslagen is in /etc/shadow: root:x:0:0:root:/home/root:/bin/sh wordt root::0:0:root:/home/root:/bin/sh, dus zonder de ‘x’ tussen de ::’s

Met een reboot-commando wordt de reMarkable herstart. screen blijft nog even hangen, met de toetsenserie enter-tilde-punt-enter wordt de verbinding verbroken als het je te lang duurt.

Terug in koreader…

… maar nu met werkende SSH-toegang. Eerst maar terug naar reMarkable-OS:
systemctl disable --now koreader && systemctl enable --now xochitl

Op zoek naar een oplossing kwam ik tegen dat er de middelste knop als switch van reMarkable-OS naar koreader in te richten is, en bovendien dat launchers het leven eenvoudiger kunnen maken.

… en weer terug in reMarkable-OS

Installatie van ddvk-hacks had een reboot nodig om de functionaliteit beschikbaar te maken in xochitl, de reMarkable-reader-app.

Na de reboot was het wachtwoord weer actief: niet het lege wachtwoord, niet mijn zelfgekozen wachtwoord, maar h04ytCFiD zoals in de help (waar ik nu weer bij kan).

Task switcher to the rescue

Er zijn nu drie launchers in het opkg-repository, draft, oxide en remux. Van die drie lijkt alleen remux een multitasking-launcher te zijn. Die heb ik nu bereikbaar via lang indrukken van de middelste knop met
# systemctl enable --now remux

Dat werkt best aardig. Mooi voor vanavond!

Print this entry

LVM thin pool extension, v2

Het verhaal van vorige keer dat een van de data-LV’s bijna vol zat is wat lang van tekst en niet volledig van uitleg, nu een poging voor een puntsgewijze howto.

Het gaat deze keer om de video-LV. Een DV-tapes neemt ongeveer 15 GB in beslag, en er was niet meer voldoende ruimte voor de eerste vakantie-tape.

Gebruikte commando’s

# df-h /home/wbk/movies 
# lvs -a data/videoRW -o+thin_count,thin_id,devices
# vgs data -o+pv_name,pv_free
# pvs /dev/sde1 -a -o-vg_name -o+vg_name,vg_size,vg_free,lv_name,origin,pool_lv,data_lv
# lvextend -r -L+200G data/videoRW /dev/sde1

Huidige status afleiden

Eerst df -h om de juiste LV bij de volle directory/partitie te vinden. De movies-directory heeft nog 13 MB vrij in LV data-videoRW :

df -h /home/wbk/movies
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/data-videoRW  1.3T  1.3T   13M 100% /home/wbk/movies

Daarna de LVM-status erbijzoeken; /dev/mapper/data-videoRW is een van de vijf thin LV’s onder datatlvpool, namelijk nummer 4 (onderaan). videoRW heeft zelf geen (hardware-) device, omdat het een logisch volume in een logisch volume is.

Het feitelijke (hardware-) device waarop de data terecht komt, kan gevonden worden via de thin pool, hier datatlvpool.

Omdat videoRW een thin LV is, kan de in df -h gerapporteerde vrije ruimte groter zijn dan de daadwerkelijke beschikbare ruimte op de onderliggende fysieke volumes. Dat is voor videoRW (nog) niet aan de orde: datatlvpool heeft nog 8% van 800 GB, ~64 GB, vrije ruimte.

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                     

De conclusie is wel: om de vakantietapes van dit jaar over te zetten op schijf, moet naast het videoRW-volume, ook het datatlvpool-volume groter gemaakt worden. Voor metadata is nog voldoende ruimte: datatlvpool_tmeta heeft nog maar 200 MB van 400 MB gebruikt.

Hoeveel ruimte is er om datatlvpool groter te maken? Dat hangt van de vrije ruimte in de volumegroep data af, en uiteindelijk van de vrije ruimte van de onderliggende fysieke volumes. De data van datatlvpool zit in het data-component van het volume, datatlvpool_tdata, met als onderliggend (handmatig toegewezen) fysiek volume /dev/sde1.

# vgs data -o+pv_name,pv_free
  VG   #PV #LV #SN Attr   VSize VFree  PV         PFree   
  data   7  14   0 wz--n- 7.31t <1.64t /dev/sda1    18.07g
  data   7  14   0 wz--n- 7.31t <1.64t /dev/sda2     9.80g
  data   7  14   0 wz--n- 7.31t <1.64t /dev/sda3   <60.00g
  data   7  14   0 wz--n- 7.31t <1.64t /dev/sdd4    <2.00g
  data   7  14   0 wz--n- 7.31t <1.64t /dev/sdb4    <7.51g
  data   7  14   0 wz--n- 7.31t <1.64t /dev/sda9  <328.67g
  data   7  14   0 wz--n- 7.31t <1.64t /dev/sde1     1.22t

Het rapport voor PV /dev/sde1 laat zien dat sde1 deel uitmaakt van VG data. Die VG heeft (in totaal) 1.6 TB vrije ruimte, de (enige) toegewezen LV is datatlvpool_tdata

# pvs /dev/sde1 -a -o-vg_name -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/sde1  lvm2 a--  <2.00t 1.22t data 7.31t <1.64t [datatlvpool_tdata]                 
  /dev/sde1  lvm2 a--  <2.00t 1.22t data 7.31t <1.64t                                     

De grootte van pool datatlvpool kan automatisch bijgewerkt worden door LVM, zie Automatically extend thin pool LV in man 7 lvmthin, maar voor de thin volumes zelf zie ik het niet 1-2-3. Die moet dus handmatig vergroot worden. Controle van de gemonitorde pool:

# lvs data/datatlvpool -o+seg_monitor
  LV          VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Monitor  
  datatlvpool data twi-aot--- 798.21g             92.02  47.56                            monitored

Extend thin volume videoRW

Automatische uitbreiding van de thin volumes kan ook aangezet worden, zie man 7 lvmthin , Automatic extend settings.

Waarschijnlijk heb ik het, bang voor ongemerkt volschrijven van de VG, uitgezet. De standaardsetting is dat de thinLV bij 70% uitgebreid wordt, met 20%. Dat kun je uitzetten door in /ect/lvm/lvm.conf de optie thin_pool_autoextend_threshold op 100 te zetten. Dat staat hij op het moment, en met dezelfde overweging laat ik hem daar op staan.

# lvextend -tvr -L+200G data/videoRW /dev/sde1
  TEST MODE: Metadata will NOT be updated and volumes will not be (de)activated.
    Executing: /sbin/fsadm --dry-run --verbose check /dev/data/videoRW
fsadm: "ext4" filesystem found on "/dev/mapper/data-videoRW".
fsadm: Filesystem has not been checked after the last mount, using fsck -f
fsadm: Dry execution fsck -f -p /dev/mapper/data-videoRW
    Test mode: Skipping archiving of volume group.
    Extending logical volume data/videoRW to <1.43 TiB
  WARNING: Sum of all thin volume sizes (<4.87 TiB) exceeds the size of thin pool data/datatlvpool and the amount of free space in volume group (<1.64 TiB).
  Size of logical volume data/videoRW changed from 1.23 TiB (323584 extents) to <1.43 TiB (374784 extents).
    Test mode: Skipping backup of volume group.
  Logical volume data/videoRW successfully resized.
    Executing: /sbin/fsadm --dry-run --verbose resize /dev/data/videoRW 1535115264K
fsadm: "ext4" filesystem found on "/dev/mapper/data-videoRW".
fsadm: Device "/dev/mapper/data-videoRW" size is 1357209665536 bytes
fsadm: Parsing tune2fs -l "/dev/mapper/data-videoRW"
fsadm: Resizing filesystem on device "/dev/mapper/data-videoRW" to 1571958030336 bytes (331350016 -> 383778816 blocks of 4096 bytes)
fsadm: Dry execution resize2fs /dev/mapper/data-videoRW 383778816

dsadm: Skipping filesystem check : Het bestandssysteem is aangekoppeld; fsck kan geen kwaad dus ik unmount het.
WARNING: Sum of thin volumes exceeds thin pool: Ik vermoed dat in de 4.77 TB ook de RO-origins opgenomen zijn, anders zit ik volgens mij nooit tegen de 5 TB aan mediabestanden. Alhoewel… fotosRW geeft aan 3.27 TB, waarvan 15.21% bezet is. Dat zou redelijk passen in een totaal van ~5 TB waarvan minder dan 1.5 TB bezet is.

Nu voor ’t echie:

# lvextend -r -L+200G data/videoRW /dev/sde1  
fsck from util-linux 2.36.1
...
filmNR: Inode 54001666 extent tree (at level 2) could be narrower.  IGNORED.
filmNR: Inode 55050243 extent tree (at level 1) could be shorter.  IGNORED.
...
filmNR: Inode 60030985 extent tree (at level 1) could be narrower.  IGNORED.
filmNR: 5000/82837504 files (23.6% non-contiguous), 328700572/331350016 blocks
  WARNING: Sum of all thin volume sizes (<4.87 TiB) exceeds the size of thin pool data/datatlvpool and the amount of free space in volume group (<1.64 TiB).
  Size of logical volume data/videoRW changed from 1.23 TiB (323584 extents) to <1.43 TiB (374784 extents).
  Logical volume data/videoRW successfully resized.
resize2fs 1.46.2 (28-Feb-2021)
Resizing the filesystem on /dev/mapper/data-videoRW to 383778816 (4k) blocks.
The filesystem on /dev/mapper/data-videoRW is now 383778816 (4k) blocks long.

De beschikbare ruimte in de volumegroup data is nog steeds 1.64 TB, er is immers enkel beschikbare ruimte toegewezen aan de thin LV videoRW, maar nog niets gebruikt.

Het resultaat

Er is nu voldoende ruimte voor zo’n 12 uur aan DV-video:

# df -h /home/wbk/movies/
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/data-videoRW  1.5T  1.3T  206G  86% /home/wbk/movies

Print this entry