X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/1da635ee403815e4aa086d07712125ba60beb8f2..ba7c0d679f76b718672964dfa4c748f7167247cf:/blog/archive/2013/10/10.rss diff --git a/blog/archive/2013/10/10.rss b/blog/archive/2013/10/10.rss index 5b19c57219..472d8c7ce7 100644 --- a/blog/archive/2013/10/10.rss +++ b/blog/archive/2013/10/10.rss @@ -6,6 +6,167 @@ http://people.skolelinux.org/pere/blog/ + + Teaching vmdebootstrap to create Raspberry Pi SD card images + http://people.skolelinux.org/pere/blog/Teaching_vmdebootstrap_to_create_Raspberry_Pi_SD_card_images.html + http://people.skolelinux.org/pere/blog/Teaching_vmdebootstrap_to_create_Raspberry_Pi_SD_card_images.html + Sun, 27 Oct 2013 17:00:00 +0100 + <p>The +<a href="http://packages.qa.debian.org/v/vmdebootstrap.html">vmdebootstrap</a> +program is a a very nice system to create virtual machine images. It +create a image file, add a partition table, mount it and run +debootstrap in the mounted directory to create a Debian system on a +stick. Yesterday, I decided to try to teach it how to make images for +<a href="https://wiki.debian.org/RaspberryPi">Raspberry Pi</a>, as part +of a plan to simplify the build system for +<a href="https://wiki.debian.org/FreedomBox">the FreedomBox +project</a>. The FreedomBox project already uses vmdebootstrap for +the virtualbox images, but its current build system made multistrap +based system for Dreamplug images, and it is lacking support for +Raspberry Pi.</p> + +<p>Armed with the knowledge on how to build "foreign" (aka non-native +architecture) chroots for Raspberry Pi, I dived into the vmdebootstrap +code and adjusted it to be able to build armel images on my amd64 +Debian laptop. I ended up giving vmdebootstrap five new options, +allowing me to replicate the image creation process I use to make +<a href="http://people.skolelinux.org/pere/blog/A_Raspberry_Pi_based_batman_adv_Mesh_network_node.html">Debian +Jessie based mesh node images for the Raspberry Pi</a>. First, the +<tt>--foreign /path/to/binfm_handler</tt> option tell vmdebootstrap to +call debootstrap with --foreign and to copy the handler into the +generated chroot before running the second stage. This allow +vmdebootstrap to create armel images on an amd64 host. Next I added +two new options <tt>--bootsize size</tt> and <tt>--boottype +fstype</tt> to teach it to create a separate /boot/ partition with the +given file system type, allowing me to create an image with a vfat +partition for the /boot/ stuff. I also added a <tt>--variant +variant</tt> option to allow me to create smaller images without the +Debian base system packages installed. Finally, I added an option +<tt>--no-extlinux</tt> to tell vmdebootstrap to not install extlinux +as a boot loader. It is not needed on the Raspberry Pi and probably +most other non-x86 architectures. The changes were accepted by the +upstream author of vmdebootstrap yesterday and today, and is now +available from +<a href="http://git.liw.fi/cgi-bin/cgit/cgit.cgi/vmdebootstrap/">the +upstream project page</a>.</p> + +<p>To use it to build a Raspberry Pi image using Debian Jessie, first +create a small script (the customize script) to add the non-free +binary blob needed to boot the Raspberry Pi and the APT source +list:</p> + +<p><pre> +#!/bin/sh +set -e # Exit on first error +rootdir="$1" +cd "$rootdir" +cat &lt;&lt;EOF > etc/apt/sources.list +deb http://http.debian.net/debian/ jessie main contrib non-free +EOF +# Install non-free binary blob needed to boot Raspberry Pi. This +# install a kernel somewhere too. +wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update \ + -O $rootdir/usr/bin/rpi-update +chmod a+x $rootdir/usr/bin/rpi-update +mkdir -p $rootdir/lib/modules +touch $rootdir/boot/start.elf +chroot $rootdir rpi-update +</pre></p> + +<p>Next, fetch the latest vmdebootstrap script and call it like this +to build the image:</p> + +<pre> +sudo ./vmdebootstrap \ + --variant minbase \ + --arch armel \ + --distribution jessie \ + --mirror http://http.debian.net/debian \ + --image test.img \ + --size 600M \ + --bootsize 64M \ + --boottype vfat \ + --log-level debug \ + --verbose \ + --no-kernel \ + --no-extlinux \ + --root-password raspberry \ + --hostname raspberrypi \ + --foreign /usr/bin/qemu-arm-static \ + --customize `pwd`/customize \ + --package netbase \ + --package git-core \ + --package binutils \ + --package ca-certificates \ + --package wget \ + --package kmod +</pre></p> + +<p>The list of packages being installed are the ones needed by +rpi-update to make the image bootable on the Raspberry Pi, with the +exception of netbase, which is needed by debootstrap to find +/etc/hosts with the minbase variant. I really wish there was a way to +set up an Raspberry Pi using only packages in the Debian archive, but +that is not possible as far as I know, because it boots from the GPU +using a non-free binary blob.</p> + +<p>The build host need debootstrap, kpartx and qemu-user-static and +probably a few others installed. I have not checked the complete +build dependency list.</p> + +<p>The resulting image will not use the hardware floating point unit +on the Raspberry PI, because the armel architecture in Debian is not +optimized for that use. So the images created will be a bit slower +than <a href="http://www.raspbian.org/">Raspbian</a> based images.</p> + + + + + Det er jo makta som er mest sårbar ved massiv overvåkning av Internett + http://people.skolelinux.org/pere/blog/Det_er_jo_makta_som_er_mest_s_rbar_ved_massiv_overv_kning_av_Internett.html + http://people.skolelinux.org/pere/blog/Det_er_jo_makta_som_er_mest_s_rbar_ved_massiv_overv_kning_av_Internett.html + Sat, 26 Oct 2013 20:30:00 +0200 + <p>De siste måneders eksponering av +<a href="http://www.aftenposten.no/nyheter/uriks/Her-er-Edvard-Snowdens-mest-omtalte-avsloringer-7351734.html">den +totale overvåkningen som foregår i den vestlige verden dokumenterer +hvor sårbare vi er</a>. Men det slår meg at de som er mest sårbare +for dette, myndighetspersoner på alle nivåer, neppe har innsett at de +selv er de mest interessante personene å lage profiler på, for å kunne +påvirke dem.</p> + +<p>For å ta et lite eksempel: Stortingets nettsted, +<a href="http://www.stortinget.no/">www.stortinget.no</a> (og +forsåvidt også +<a href="http://data.stortinget.no/">data.stortinget.no</a>), +inneholder informasjon om det som foregår på Stortinget, og jeg antar +de største brukerne av informasjonen der er representanter og +rådgivere på Stortinget. Intet overraskende med det. Det som derimot +er mer skjult er at Stortingets nettsted bruker +<a href="http://en.wikipedia.org/wiki/Google_Analytics">Google +Analytics</a>, hvilket gjør at enhver som besøker nettsidene der også +rapporterer om besøket via Internett-linjer som passerer Sverige, +England og videre til USA. Det betyr at informasjon om ethvert besøk +på stortingets nettsider kan snappes opp av svensk, britisk og USAs +etterretningsvesen. De kan dermed holde et øye med hvilke +Stortingssaker stortingsrepresentantene synes er interessante å sjekke +ut, og hvilke sider rådgivere og andre på stortinget synes er +interessant å besøke, når de gjør det og hvilke andre representanter +som sjekker de samme sidene omtrent samtidig. Stortingets bruk av +Google Analytics gjør det dermed enkelt for utenlands etteretning å +spore representantenes aktivitet og interesse. Hvis noen av +representantene bruker Google Mail eller noen andre tjenestene som +krever innlogging, så vil det være enda enklere å finne ut nøyaktig +hvilke personer som bruker hvilke nettlesere og dermed knytte +informasjonen opp til enkeltpersoner på Stortinget.</p> + +<p>Og jo flere nettsteder som bruker Google Analytics, jo bedre +oversikt over stortingsrepresentantenes lesevaner og interesse blir +tilgjengelig for svensk, britisk og USAs etterretning. Hva de kan +bruke den informasjonen til overlater jeg til leseren å undres +over.</p> + + + A Raspberry Pi based batman-adv Mesh network node http://people.skolelinux.org/pere/blog/A_Raspberry_Pi_based_batman_adv_Mesh_network_node.html @@ -13,7 +174,7 @@ Mon, 21 Oct 2013 11:40:00 +0200 <p>The last few days I have been experimenting with <a href="http://www.open-mesh.org/projects/batman-adv/wiki">the -batman-adv mech technology</a>. I want to gain some experience to see +batman-adv mesh technology</a>. I want to gain some experience to see if it will fit <a href="https://wiki.debian.org/FreedomBox">the Freedombox project</a>, and together with my neighbors try to build a mesh network around the park where I live. Batman-adv is a layer 2