Door Koen Vervloesem

Freelanceredacteur

Ubuntu Core op een Raspberry Pi

Minimale Linux-distributie voor iot-toepassingen

16-09-2022 • 06:00

28

Singlepage-opmaak

Image bouwen en conclusie

Daarna onderteken je de modelassertion met een gpg-sleutel. Maak die als volgt aan:

$ snapcraft create-key my-models

Kies een wachtwoordzin om je sleutel mee te versleutelen. En koppel de sleutel dan aan je Ubuntu One-account:

$ snapcraft register-key my-models

Dan moet je nu nog één regel in de modelassertion aanpassen: de timestamp. Dat moet een tijdstip zijn na het aanmaken van je sleutel. Vraag het huidige tijdstip op:

$ date -Iseconds --utc

En vul dit in het json-bestand in.

Onderteken het bestand nu:

$ snap sign -k my-models < theengs-gateway-core22-pi-arm64.json > theengs-gateway-core22-pi-arm64.model

Image bouwen

Met de ondertekende modelassertion in theengs-gateway-core22-pi-arm64.model, een yaml-bestand, kun je nu je aangepaste image bouwen. Installeer daarvoor eerst het programma ubuntu-image:

$ snap install ubuntu-image --classic

En bouw het image met:

$ ubuntu-image snap theengs-gateway-core22-pi-arm64.model

Na enkele minuten is het resultaat te vinden in het bestand pi.img, dat in ons geval 3,5GB groot is. De exacte revisies van elke snap die erin is opgenomen, vind je in het bestand seed.manifest.

Je kunt nu het best het image nog comprimeren met xz:

xz pi.img

Raspberry Pi FoundationHet resultaat is een image van 288MB, dat je eenvoudig met Raspberry Pi Imager naar een microSD-kaart kunt schrijven om je Raspberry Pi van op te starten. Na de netwerkconfiguratie en de configuratie van Theengs Gateway heb je een BLE-naar-MQTT-gateway waarnaar je niet meer hoeft om te kijken. De volledige code voor het aangepaste Ubuntu Core-image met Theengs Gateway is te vinden in de GitHub-repository theengs/gateway-appliance. Met dit stappenplan kun je even eenvoudig een aangepaste versie van Ubuntu Core met andere voorgeïnstalleerde software bouwen.

Conclusie

We hebben hier getoond hoe je een aangepast image van Ubuntu Core met een service kunt aanmaken, maar op dezelfde manier kun je ook een image met een webkiosk bouwen. Dat is gebaseerd op Ubuntu Frame, een fullscreenshell die op Wayland draait.

Ubuntu Core is een besturingssysteem dat je heel wat beheer uit handen neemt. Snaps worden automatisch vier keer per dag bijgewerkt naar de nieuwste versie. Bovendien is het vrij eenvoudig om je eigen aangepaste Ubuntu Core-image te maken. Ook om thuis services op een Raspberry Pi te draaien, is Ubuntu Core een heel geschikt besturingssysteem.

Lees meer

Reacties (28)

28
28
22
1
0
3
Wijzig sortering
Om verder te gaan, dien je eerst een Ubuntu One-account te hebben. Indien je die nog niet hebt, maak je een nieuwe account aan op de website van Ubuntu One. Voer op de website je e-mailadres in, selecteer 'I don’t have an Ubuntu One account' en vul je naam en een wachtwoord in.

Je Ubuntu Core-installatie wordt gekoppeld aan je Ubuntu One-account. Op je apparaat inloggen, kan alleen via een ssh-sleutel die ook in je Ubuntu One-account is geïmporteerd. Klik daarvoor in de webinterface van je account links op 'SSH keys', plak de inhoud van je publieke ssh-sleutel, die staat doorgaans in het bestand id_rsa.pub, id_ecdsa.pub of id_ed25519.pub in de directory '.ssh' in je persoonlijke map, in het tekstveld onderaan en klik dan op 'Import SSH key'. Heb je nog geen ssh-sleutel, maak die dan op je computer aan met de opdracht ssh-keygen.
dit zou voor mij al een reden zijn om het niet te gebruiken, zeker niet voor interne IOT, niet zozeer vanwege de keys, maar wel omdat een externe partij een mapping krijgt van je interne hardware.

[Reactie gewijzigd door divvid op 22 juli 2024 20:34]

Met de public keys kan je inderdaad niet zoveel, maar wel leg je hietbij de beveiliging van je systeem ook bij een externe partij. Ubuntu kan dus ook gewoon keys toevoegen voor een achterdeurtje in je systeem.

Voor mij wil i iets als toegang altijd in eigen hand houden en ik gebruik dan ook nooit zo'n 'log in with google/facebook' enz. En daarom heb ik ook geen Homey genomen (ook dat kan geen lokale accounts aan, alles moet via hun site).

[Reactie gewijzigd door GekkePrutser op 22 juli 2024 20:34]

precies dit dus, zou nooit langs de security officer komen
Tja, het is ook gewoon een kwestie van vertouwen natuurlijk. Als Microsoft (of elke andere vendor) morgen besluit een backdoor te pushen via een (Windows) Update dan kunnen ze ook naar binnen glippen.

Als je Conanical niet vertrouwd dan zeker niet doen. Zo wel why not?
Dat vind ik dus ook. Ik kan er eigenlijk niet bij dat er helemaal geen optie is om alleen een lokaal account te maken. Zelfs bij Windows kan dat gewoon, al is dat bij Windows 11 alleen bij de Pro versie geloof ik.

Wel jammer, want het concept is erg interessant voor server-achtige toepassingen, een stabiel OS met up-to-date packages en lange ondersteuning en updates. Misschien kan een handige jongen/meisje Ubuntu Core even forken en dat alles eruit slopen. ;) Maar ja, dat zal wel niet zo makkelijk gaan.
Vraagje: ik ben niet zo van de verplichte cloud-accounts. Is er ook een alternatief hiervoor? Dus een OS voor stabiliteit en flexibiliteit, met lange support en weinig poespas, maar wel met een package repo die een beetje bij de tijd is. Een kale Debian is vanwege dat laatste misschien minder geschikt? Linux Mint misschien?
Een tijdje geleden een experiment gedaan op een Pi3 hoever ik kan gaan met containers. Omdat ik geen ervaring heb met OSTree (Fedora) maar wel met Mint, heb ik ervoor gekozen DietPi te gebruiken in combinatie met Docker. Vooraf nog wel gekeken naar Ubuntu Core maar kon niet echt achterhalen waarom Snaps op een server beter zouden zijn dan containers. En DietPi is Debian-based en aangepast o.a. om de SD kaart te ontzien (wat weer teniet wordt gedaan door influxdb).
Op dit moment draaien er ruim een maand 8 containers zonder problemen (HA, Adguard, Portainer, Mosquitto, influxdb, Grafana, telegraf en node-RED). Vooralsnog prima voor een iot oplossing thuis.
Raspberry OS is het meest laagdrempelig. Het is voor de Pi gemaakt en werkt gewoon. Goede documentatie en aangezien het op Debian gebaseerd is, kan je ook makkelijk uitwijken naar die documentatie. Dit alles zonder verplichte accounts etc..

Zelf gebruik ik Alpine als host OS. Heel klein en heel licht. Om het makkelijk te maken, heb ik er een image voor gemaakt/aangepast zodat ik het kan flashen en meteen via SSH kan benaderen. Geen scherm en toetsenbord nodig.
Voel je vrij het eens te proberen: https://github.com/dannybouwers/alpine-raspberry-pi
Ubuntu Core is dan ook bedoeld voor grootschaliger deployment zodat je niet credentials hoeft aan te maken en te verslepen.

Het voordeel van snaps ligt ook bij de producer, niet de consumer. Handig als je je product wil distribueren over je IOT clients en beheren, maar daar moet snap wel een meerwaarde bieden, ik vraag me af of die er is nu zoveel in Python wordt gebouwd.

Dus in die zin snap ik wel wat ze hier proberen te bieden en de meerwaarde ervan, als je de boel met 1 click wil installeren heb je info nodig en het is niet alsof Ubuntu kan inloggen.

Mijn probleem met Ubuntu Core is de hardware support, ik heb niet het idee dat ze zelf echt actief hiermee bezig zijn en het aantal certified devices is erg beperkt qua ARM socs.

edit: @divvid

[Reactie gewijzigd door Xander2 op 22 juli 2024 20:34]

Voor grootschalige deployments zijn er wel betere manieren om credentials in te stellen. Ook de beperkte ondersteuning is zorgelijk. Hoeveel 'waarde' hangt Ubuntu hier nou echt aan.
Wat kan ermee dat niet met een ander OS kan? Ik vind de functionaliteit nogal gezocht. Grootschalige deployment maar dan anders dan SD-kaarten beschrijven en updaten op afstand...
Beperkte ondersteuning, verplichte Canonical account, geen apt maar enkel snap, ...
Ik weet niet goed waarom je als particulier Ubuntu Core zou kiezen als OS voor je IoT devices.
Sowieso ben ik al een beetje allergisch aan alles wat een verplicht [cloud]account heeft.
De voordelen moeten dan wel opwegen tegen de nadelen...
Ik denk dat de auteur keurig heeft aangegeven waarom je Core zou kunnen willen gebruiken. Ben ook geen fan van het verplichte account. Ik ben wel fan van het niet omkijken naar updates (en `unattended-upgrades` gaat maar zo ver).
Het feit dat je een online account nodig hebt voor dit OS vind ik wel een tegenvaller. Ik snap de voordelen van dit OS, maar mijn ervaring is ook wel dat Raspberry Pi OS gewoon het prettigst werkt op een Raspberry Pi. Als je dan eens in de zoveel tijd handmatig eens een keer een update doet ben je daar ook mee klaar.
@koenvervloesem ik ben geïnteresseerd in een Nix artikel met dezelfde functionaliteit (zonder de cloud rommel) :)

ContainerOS kan ook interessant zijn (voor degenen die OCI willen gebruiken).
Een alternatief zou Fedora IoT kunnen zijn. https://getfedora.org/en/iot/
Weer een leuke Canonical advertorial over Snaps....

Een gepaste titel was dan ook geweest "Ubuntu Core op een Raspberry Pi met Snaps".

Leuk gepruts voor het komende weekeind volgende week over een maand volgend jaar of wanneer die raspberry's dan ook beschikbaar zullen zijn...

[Reactie gewijzigd door CybernDystopia op 22 juli 2024 20:34]

Het is inderdaad wel toevallig dat er pas ook al een artikel was over snaps. Ik begin me dit ook wel een beetje af te vragen. Er is canonical veel aan gelegen om ze een succes te maken en ik zou het ook kwalijk vinden als ze invloed hebben uitgeoefend op de redactie. Maar ik ga er maar vanuit dat dat niet is gebeurd want Tweakers is normaal wel open in dat soort dingen (dan staat er advertorial of "Tweakers Partners" bij).

[Reactie gewijzigd door GekkePrutser op 22 juli 2024 20:34]

Ze hebben vanaf dat ze zich formeel geen linux meer noemen last van imperialistische trekjes. Ubuntu-phone is mislukt omdat ze de sleutel niet kregen van telefoonfabrikanten want die waren bang voor alternatieve forks die helemaal open gaan en van een telefoon een PC maken. Ze waren onverwacht geen steek verder gekomen dan andere Linuxen op smartphones. Oneerllik voordeel zat er helaas niet in. Nu proberen ze het weer, de eindgebruiker inlijven in een overbodig gecentraliseerd identificatiesysteem. Moeten we afhankelijk worden van een sandboxing package-manager met een centraal beheer?

[Reactie gewijzigd door blorf op 22 juli 2024 20:34]

Mocht je helemaal geen GNU/Linux willen gebruiken zijn er - afhankelijk van de hardware waarop het mag draaien - alternatieven. Microsoft heeft een IoT versie van Windows 10, of een ander alternatief: BSD-variant.
Sinds kort gebruik ik NetBSD op een RPI0 voor prijslijst-displays. Dat was eerst FreeBSD maar die kan de interne wifi niet gebruiken omdat ze geen SDIO driver hebben. Gevolg is dat er een hele dure wifi-dongle in moet, of een goedkope waar je je vingers aan brandt.

Windows IoT heb ik een keer geprobeerd omdat ik dacht dat het een Windows-desktop was maar je kijkt tegen een zwart scherm aan. Kon ik ook wel nagaan. :+
Dat artikel over eigen snap packages maken was afgelopen woensdag, lijkt dus gewoon onderdeel te zijn van een serie aan artikelen. Wie weet was het de bedoeling dat dit artikel er kwam, en werd het te lang om daar óók nog in uit te leggen hoe je dan snap packages maakt, en werd het daarom gesplitst. Wie weet komt er nog wel een vervolg.

Lijkt mij dus gewoon de interesse vanuit de auteur die hij graag met mooie artikelen wilt delen. Ik vind het leuk en van mij mag dit soort content zeker vaker komen. Misschien komt er later wel een serie over een ander OS.
Fijn om te horen dat het artikel beviel :) Deze twee artikelen zijn inderdaad bewust kort na elkaar ingepland. Aangezien software op Ubuntu Core alleen middels Snaps te installeren zijn, wilden we vóór dit artikel een artikel over Snaps publiceren, zodat je als lezer weet wat Snaps zijn en hoe je ze zelf kan maken. Van invloed van Canonical over deze artikelen is uiteraard geen sprake, net als alle andere artikelen die de redactie van Tweakers schrijft.
Leuk gepruts voor het komende weekeind volgende week over een maand volgend jaar of wanneer die raspberry's dan ook beschikbaar zullen zijn...
Links en rechts zijn ze mondjesmaat weer te krijgen. Maar goedkoop zijn ze helaas niet.
Verplicht Canonical account. Jammer, hier haak ik dus al af. Rest van de uitleg is niet aan mij besteed.
Niet alleen dat, ook het verplicht automatisch updaten. Er zijn genoeg use cases waarbij je dat gewoon niet wilt. Ik snap echt niet waarom Snap de mogelijk niet heeft om ook te kiezen voor handmatige updates.
Waar vind je vandaag de dag nog een nieuwe RPi, niemand kan ze leveren!?

Op dit item kan niet meer gereageerd worden.