1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml" dir=
"ltr">
5 <meta http-equiv=
"Content-Type" content=
"text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen
</title>
7 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel=
"alternate" title=
"RSS Feed" href=
"http://people.skolelinux.org/pere/blog/index.rss" type=
"application/rss+xml" />
14 <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
23 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Running_TP_Link_MR3040_as_a_batman_adv_mesh_node_using_openwrt.html">Running TP-Link MR3040 as a batman-adv mesh node using openwrt
</a></div>
24 <div class=
"date">10th November
2013</div>
25 <div class=
"body"><p>Continuing my research into mesh networking, I was recommended to
26 use TP-Link
3040 and
3600 access points as mesh nodes, and the pair I
27 bought arrived on Friday. Here are my notes on how to set up the
28 MR3040 as a mesh node using
29 <a href=
"http://www.openwrt.org/">OpenWrt
</a>.
</p>
31 <p>I started by following the instructions on the OpenWRT wiki for
32 <a href=
"http://wiki.openwrt.org/toh/tp-link/tl-mr3040">TL-MR3040
</a>,
34 <a href=
"http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-mr3040-v2-squashfs-factory.bin">the
35 recommended firmware image
</a>
36 (openwrt-ar71xx-generic-tl-mr3040-v2-squashfs-factory.bin) and
37 uploaded it into the original web interface. The flashing went fine,
38 and the machine was available via telnet on the ethernet port. After
39 logging in and setting the root password, ssh was available and I
40 could start to set it up as a batman-adv mesh node.
</p>
42 <p>I started off by reading the instructions from
43 <a href=
"http://wirelessafrica.meraka.org.za/wiki/index.php?title=Antoine's_Research">Wireless
44 Africa
</a>, which had quite a lot of useful information, but
45 eventually I followed the recipe from the Open Mesh wiki for
46 <a href=
"http://www.open-mesh.org/projects/batman-adv/wiki/Batman-adv-openwrt-config">using
47 batman-adv on OpenWrt
</a>. A small snag was the fact that the
48 <tt>opkg install kmod-batman-adv
</tt> command did not work as it
49 should. The batman-adv kernel module would fail to load because its
50 dependency crc16 was not already loaded. I
51 <a href=
"https://dev.openwrt.org/ticket/14452">reported the bug
</a> to
52 the openwrt project and hope it will be fixed soon. But the problem
53 only seem to affect initial testing of batman-adv, as configuration
54 seem to work when booting from scratch.
</p>
56 <p>The setup is done using files in /etc/config/. I did not bridge
57 the Ethernet and mesh interfaces this time, to be able to hook up the
58 box on my local network and log into it for configuration updates.
59 The following files were changed and look like this after modifying
62 <p><tt>/etc/config/network
</tt></p>
66 config interface 'loopback'
69 option ipaddr '
127.0.0.1'
70 option netmask '
255.0.0.0'
72 config globals 'globals'
73 option ula_prefix 'fdbf:
4c12:
3fed::/
48'
75 config interface 'lan'
79 option ipaddr '
192.168.1.1'
80 option netmask '
255.255.255.0'
81 option hostname 'tl-mr3040'
84 config interface 'mesh'
85 option ifname 'adhoc0'
91 <p><tt>/etc/config/wireless
</tt></p>
94 config wifi-device 'radio0'
95 option type 'mac80211'
98 option path 'platform/ar933x_wmac'
100 list ht_capab 'SHORT-GI-
20'
101 list ht_capab 'SHORT-GI-
40'
102 list ht_capab 'RX-STBC1'
103 list ht_capab 'DSSS_CCK-
40'
106 config wifi-iface 'wmesh'
107 option device 'radio0'
108 option ifname 'adhoc0'
109 option network 'mesh'
110 option encryption 'none'
112 option bssid '
02:BA:
00:
00:
00:
01'
113 option ssid 'meshfx@hackeriet'
115 <p><tt>/etc/config/batman-adv
</tt></p>
119 option interfaces 'adhoc0'
120 option 'aggregated_ogms'
121 option 'ap_isolation'
123 option 'fragmentation'
124 option 'gw_bandwidth'
126 option 'gw_sel_class'
128 option 'orig_interval'
130 option 'bridge_loop_avoidance'
131 option 'distributed_arp_table'
132 option 'network_coding'
135 # yet another batX instance
136 # config 'mesh' 'bat5'
137 # option 'interfaces' 'second_mesh'
140 <p>The mesh node is now operational. I have yet to test its range,
141 but I hope it is good. I have not yet tested the TP-Link
3600 box
142 still wrapped up in plastic.
</p>
147 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>.
152 <div class=
"padding"></div>
155 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Debian_init_d_boot_script_example_for_rsyslog.html">Debian init.d boot script example for rsyslog
</a></div>
156 <div class=
"date"> 2nd November
2013</div>
157 <div class=
"body"><p>If one of the points of switching to a new init system in Debian is
158 <a href=
"http://thomas.goirand.fr/blog/?p=147">to get rid of huge
159 init.d scripts
</a>, I doubt we need to switch away from sysvinit and
160 init.d scripts at all. Here is an example init.d script, ie a rewrite
161 of /etc/init.d/rsyslog:
</p>
164 #!/lib/init/init-d-script
167 # Required-Start: $remote_fs $time
168 # Required-Stop: umountnfs $time
169 # X-Stop-After: sendsigs
170 # Default-Start:
2 3 4 5
171 # Default-Stop:
0 1 6
172 # Short-Description: enhanced syslogd
173 # Description: Rsyslog is an enhanced multi-threaded syslogd.
174 # It is quite compatible to stock sysklogd and can be
175 # used as a drop-in replacement.
177 DESC="enhanced syslogd"
178 DAEMON=/usr/sbin/rsyslogd
181 <p>Pretty minimalistic to me... For the record, the original sysv-rc
182 script was
137 lines, and the above is just
15 lines, most of it meta
185 <p>How to do this, you ask? Well, one create a new script
186 /lib/init/init-d-script looking something like this:
191 # Define LSB log_* functions.
192 # Depend on lsb-base (
>=
3.2-
14) to ensure that this file is present
193 # and status_of_proc is working.
194 . /lib/lsb/init-functions
197 # Function that starts the daemon/service
203 #
0 if daemon has been started
204 #
1 if daemon was already running
205 #
2 if daemon could not be started
206 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test
> /dev/null \
208 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
211 # Add code here, if necessary, that waits for the process to be ready
212 # to handle requests from services started subsequently which depend
213 # on this one. As a last resort, sleep for some time.
217 # Function that stops the daemon/service
222 #
0 if daemon has been stopped
223 #
1 if daemon was already stopped
224 #
2 if daemon could not be stopped
225 # other if a failure occurred
226 start-stop-daemon --stop --quiet --retry=TERM/
30/KILL/
5 --pidfile $PIDFILE --name $NAME
228 [ "$RETVAL" =
2 ] && return
2
229 # Wait for children to finish too if this is a daemon that forks
230 # and if the daemon is only ever run from this initscript.
231 # If the above conditions are not satisfied then add some other code
232 # that waits for the process to drop all resources that could be
233 # needed by services started subsequently. A last resort is to
234 # sleep for some time.
235 start-stop-daemon --stop --quiet --oknodo --retry=
0/
30/KILL/
5 --exec $DAEMON
236 [ "$?" =
2 ] && return
2
237 # Many daemons don't delete their pidfiles when they exit.
243 # Function that sends a SIGHUP to the daemon/service
247 # If the daemon can reload its configuration without
248 # restarting (for example, when it is sent a SIGHUP),
249 # then implement that here.
251 start-stop-daemon --stop --signal
1 --quiet --pidfile $PIDFILE --name $NAME
256 scriptbasename="$(basename $
1)"
257 echo "SN: $scriptbasename"
258 if [ "$scriptbasename" != "init-d-library" ] ; then
266 NAME=$(basename $DAEMON)
267 PIDFILE=/var/run/$NAME.pid
269 # Exit if the package is not installed
270 #[ -x "$DAEMON" ] || exit
0
272 # Read configuration variable file if it is present
273 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
275 # Load the VERBOSE setting and other rcS variables
280 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
283 0|
1) [ "$VERBOSE" != no ] && log_end_msg
0 ;;
284 2) [ "$VERBOSE" != no ] && log_end_msg
1 ;;
288 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
291 0|
1) [ "$VERBOSE" != no ] && log_end_msg
0 ;;
292 2) [ "$VERBOSE" != no ] && log_end_msg
1 ;;
296 status_of_proc "$DAEMON" "$NAME" && exit
0 || exit $?
298 #reload|force-reload)
300 # If do_reload() is not implemented then leave this commented out
301 # and leave 'force-reload' as an alias for 'restart'.
303 #log_daemon_msg "Reloading $DESC" "$NAME"
307 restart|force-reload)
309 # If the "reload" option is implemented then remove the
310 # 'force-reload' alias
312 log_daemon_msg "Restarting $DESC" "$NAME"
319 1) log_end_msg
1 ;; # Old process is still running
320 *) log_end_msg
1 ;; # Failed to start
330 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}"
>&
2
338 <p>It is based on /etc/init.d/skeleton, and could be improved quite a
339 lot. I did not really polish the approach, so it might not always
340 work out of the box, but you get the idea. I did not try very hard to
341 optimize it nor make it more robust either.
</p>
343 <p>A better argument for switching init system in Debian than reducing
344 the size of init scripts (which is a good thing to do anyway), is to
345 get boot system that is able to handle the kernel events sensibly and
346 robustly, and do not depend on the boot to run sequentially. The boot
347 and the kernel have not behaved sequentially in years.
</p>
352 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>.
357 <div class=
"padding"></div>
360 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Browser_plugin_for_SPICE__spice_xpi__uploaded_to_Debian.html">Browser plugin for SPICE (spice-xpi) uploaded to Debian
</a></div>
361 <div class=
"date"> 1st November
2013</div>
362 <div class=
"body"><p><a href=
"http://www.spice-space.org/">The SPICE protocol
</a> for
363 remote display access is the preferred solution with oVirt and RedHat
364 Enterprise Virtualization, and I was sad to discover the other day
365 that the browser plugin needed to use these systems seamlessly was
366 missing in Debian. The
<a href=
"http://bugs.debian.org/668284">request
367 for a package
</a> was from
2012-
04-
10 with no progress since
368 2013-
04-
01, so I decided to wrap up a package based on the great work
369 from Cajus Pollmeier and put it in a collab-maint maintained git
370 repository to get a package I could use. I would very much like
371 others to help me maintain the package (or just take over, I do not
372 mind), but as no-one had volunteered so far, I just uploaded it to
373 NEW. I hope it will be available in Debian in a few days.
</p>
375 <p>The source is now available from
376 <a href=
"http://anonscm.debian.org/gitweb/?p=collab-maint/spice-xpi.git;a=summary">http://anonscm.debian.org/gitweb/?p=collab-maint/spice-xpi.git;a=summary
</a>.
</p>
381 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>.
386 <div class=
"padding"></div>
389 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Teaching_vmdebootstrap_to_create_Raspberry_Pi_SD_card_images.html">Teaching vmdebootstrap to create Raspberry Pi SD card images
</a></div>
390 <div class=
"date">27th October
2013</div>
391 <div class=
"body"><p>The
392 <a href=
"http://packages.qa.debian.org/v/vmdebootstrap.html">vmdebootstrap
</a>
393 program is a a very nice system to create virtual machine images. It
394 create a image file, add a partition table, mount it and run
395 debootstrap in the mounted directory to create a Debian system on a
396 stick. Yesterday, I decided to try to teach it how to make images for
397 <a href=
"https://wiki.debian.org/RaspberryPi">Raspberry Pi
</a>, as part
398 of a plan to simplify the build system for
399 <a href=
"https://wiki.debian.org/FreedomBox">the FreedomBox
400 project
</a>. The FreedomBox project already uses vmdebootstrap for
401 the virtualbox images, but its current build system made multistrap
402 based system for Dreamplug images, and it is lacking support for
405 <p>Armed with the knowledge on how to build "foreign" (aka non-native
406 architecture) chroots for Raspberry Pi, I dived into the vmdebootstrap
407 code and adjusted it to be able to build armel images on my amd64
408 Debian laptop. I ended up giving vmdebootstrap five new options,
409 allowing me to replicate the image creation process I use to make
410 <a href=
"http://people.skolelinux.org/pere/blog/A_Raspberry_Pi_based_batman_adv_Mesh_network_node.html">Debian
411 Jessie based mesh node images for the Raspberry Pi
</a>. First, the
412 <tt>--foreign /path/to/binfm_handler
</tt> option tell vmdebootstrap to
413 call debootstrap with --foreign and to copy the handler into the
414 generated chroot before running the second stage. This allow
415 vmdebootstrap to create armel images on an amd64 host. Next I added
416 two new options
<tt>--bootsize size
</tt> and
<tt>--boottype
417 fstype
</tt> to teach it to create a separate /boot/ partition with the
418 given file system type, allowing me to create an image with a vfat
419 partition for the /boot/ stuff. I also added a
<tt>--variant
420 variant
</tt> option to allow me to create smaller images without the
421 Debian base system packages installed. Finally, I added an option
422 <tt>--no-extlinux
</tt> to tell vmdebootstrap to not install extlinux
423 as a boot loader. It is not needed on the Raspberry Pi and probably
424 most other non-x86 architectures. The changes were accepted by the
425 upstream author of vmdebootstrap yesterday and today, and is now
427 <a href=
"http://git.liw.fi/cgi-bin/cgit/cgit.cgi/vmdebootstrap/">the
428 upstream project page
</a>.
</p>
430 <p>To use it to build a Raspberry Pi image using Debian Jessie, first
431 create a small script (the customize script) to add the non-free
432 binary blob needed to boot the Raspberry Pi and the APT source
437 set -e # Exit on first error
440 cat
<<EOF
> etc/apt/sources.list
441 deb http://http.debian.net/debian/ jessie main contrib non-free
443 # Install non-free binary blob needed to boot Raspberry Pi. This
444 # install a kernel somewhere too.
445 wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update \
446 -O $rootdir/usr/bin/rpi-update
447 chmod a+x $rootdir/usr/bin/rpi-update
448 mkdir -p $rootdir/lib/modules
449 touch $rootdir/boot/start.elf
450 chroot $rootdir rpi-update
453 <p>Next, fetch the latest vmdebootstrap script and call it like this
454 to build the image:
</p>
457 sudo ./vmdebootstrap \
460 --distribution jessie \
461 --mirror http://http.debian.net/debian \
470 --root-password raspberry \
471 --hostname raspberrypi \
472 --foreign /usr/bin/qemu-arm-static \
473 --customize `pwd`/customize \
477 --package ca-certificates \
482 <p>The list of packages being installed are the ones needed by
483 rpi-update to make the image bootable on the Raspberry Pi, with the
484 exception of netbase, which is needed by debootstrap to find
485 /etc/hosts with the minbase variant. I really wish there was a way to
486 set up an Raspberry Pi using only packages in the Debian archive, but
487 that is not possible as far as I know, because it boots from the GPU
488 using a non-free binary blob.
</p>
490 <p>The build host need debootstrap, kpartx and qemu-user-static and
491 probably a few others installed. I have not checked the complete
492 build dependency list.
</p>
494 <p>The resulting image will not use the hardware floating point unit
495 on the Raspberry PI, because the armel architecture in Debian is not
496 optimized for that use. So the images created will be a bit slower
497 than
<a href=
"http://www.raspbian.org/">Raspbian
</a> based images.
</p>
502 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network
</a>.
507 <div class=
"padding"></div>
510 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Det_er_jo_makta_som_er_mest_s_rbar_ved_massiv_overv_kning_av_Internett.html">Det er jo makta som er mest sårbar ved massiv overvåkning av Internett
</a></div>
511 <div class=
"date">26th October
2013</div>
512 <div class=
"body"><p>De siste måneders eksponering av
513 <a href=
"http://www.aftenposten.no/nyheter/uriks/Her-er-Edvard-Snowdens-mest-omtalte-avsloringer-7351734.html">den
514 totale overvåkningen som foregår i den vestlige verden dokumenterer
515 hvor sårbare vi er
</a>. Men det slår meg at de som er mest sårbare
516 for dette, myndighetspersoner på alle nivåer, neppe har innsett at de
517 selv er de mest interessante personene å lage profiler på, for å kunne
520 <p>For å ta et lite eksempel: Stortingets nettsted,
521 <a href=
"http://www.stortinget.no/">www.stortinget.no
</a> (og
523 <a href=
"http://data.stortinget.no/">data.stortinget.no
</a>),
524 inneholder informasjon om det som foregår på Stortinget, og jeg antar
525 de største brukerne av informasjonen der er representanter og
526 rådgivere på Stortinget. Intet overraskende med det. Det som derimot
527 er mer skjult er at Stortingets nettsted bruker
528 <a href=
"http://en.wikipedia.org/wiki/Google_Analytics">Google
529 Analytics
</a>, hvilket gjør at enhver som besøker nettsidene der også
530 rapporterer om besøket via Internett-linjer som passerer Sverige,
531 England og videre til USA. Det betyr at informasjon om ethvert besøk
532 på stortingets nettsider kan snappes opp av svensk, britisk og USAs
533 etterretningsvesen. De kan dermed holde et øye med hvilke
534 Stortingssaker stortingsrepresentantene synes er interessante å sjekke
535 ut, og hvilke sider rådgivere og andre på stortinget synes er
536 interessant å besøke, når de gjør det og hvilke andre representanter
537 som sjekker de samme sidene omtrent samtidig. Stortingets bruk av
538 Google Analytics gjør det dermed enkelt for utenlands etteretning å
539 spore representantenes aktivitet og interesse. Hvis noen av
540 representantene bruker Google Mail eller noen andre tjenestene som
541 krever innlogging, så vil det være enda enklere å finne ut nøyaktig
542 hvilke personer som bruker hvilke nettlesere og dermed knytte
543 informasjonen opp til enkeltpersoner på Stortinget.
</p>
545 <p>Og jo flere nettsteder som bruker Google Analytics, jo bedre
546 oversikt over stortingsrepresentantenes lesevaner og interesse blir
547 tilgjengelig for svensk, britisk og USAs etterretning. Hva de kan
548 bruke den informasjonen til overlater jeg til leseren å undres
554 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance
</a>.
559 <div class=
"padding"></div>
562 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/A_Raspberry_Pi_based_batman_adv_Mesh_network_node.html">A Raspberry Pi based batman-adv Mesh network node
</a></div>
563 <div class=
"date">21st October
2013</div>
564 <div class=
"body"><p>The last few days I have been experimenting with
565 <a href=
"http://www.open-mesh.org/projects/batman-adv/wiki">the
566 batman-adv mesh technology
</a>. I want to gain some experience to see
567 if it will fit
<a href=
"https://wiki.debian.org/FreedomBox">the
568 Freedombox project
</a>, and together with my neighbors try to build a
569 mesh network around the park where I live. Batman-adv is a layer
2
570 mesh system ("ethernet" in other words), where the mesh network appear
571 as if all the mesh clients are connected to the same switch.
</p>
573 <p>My hardware of choice was the Linksys WRT54GL routers I had lying
574 around, but I've been unable to get them working with batman-adv. So
575 instead, I started playing with a
576 <a href=
"http://www.raspberrypi.org/">Raspberry Pi
</a>, and tried to
577 get it working as a mesh node. My idea is to use it to create a mesh
578 node which function as a switch port, where everything connected to
579 the Raspberry Pi ethernet plug is connected (bridged) to the mesh
580 network. This allow me to hook a wifi base station like the Linksys
581 WRT54GL to the mesh by plugging it into a Raspberry Pi, and allow
582 non-mesh clients to hook up to the mesh. This in turn is useful for
583 Android phones using
<a href=
"http://servalproject.org/">the Serval
584 Project
</a> voip client, allowing every one around the playground to
585 phone and message each other for free. The reason is that Android
586 phones do not see ad-hoc wifi networks (they are filtered away from
587 the GUI view), and can not join the mesh without being rooted. But if
588 they are connected using a normal wifi base station, they can talk to
589 every client on the local network.
</p>
591 <p>To get this working, I've created a debian package
592 <a href=
"https://github.com/petterreinholdtsen/meshfx-node">meshfx-node
</a>
594 <a href=
"https://github.com/petterreinholdtsen/meshfx-node/blob/master/build-rpi-mesh-node">build-rpi-mesh-node
</a>
595 to create the Raspberry Pi boot image. I'm using Debian Jessie (and
596 not Raspbian), to get more control over the packages available.
597 Unfortunately a huge binary blob need to be inserted into the boot
598 image to get it booting, but I'll ignore that for now. Also, as
599 Debian lack support for the CPU features available in the Raspberry
600 Pi, the system do not use the hardware floating point unit. I hope
601 the routing performance isn't affected by the lack of hardware FPU
604 <p>To create an image, run the following with a sudo enabled user
605 after inserting the target SD card into the build machine:
</p>
608 % wget -O build-rpi-mesh-node \
609 https://raw.github.com/petterreinholdtsen/meshfx-node/master/build-rpi-mesh-node
610 % sudo bash -x ./build-rpi-mesh-node
> build.log
2>&
1
611 % dd if=/root/rpi/rpi_basic_jessie_$(date +%Y%m%d).img of=/dev/mmcblk0 bs=
1M
615 <p>Booting with the resulting SD card on a Raspberry PI with a USB
616 wifi card inserted should give you a mesh node. At least it does for
617 me with a the wifi card I am using. The default mesh settings are the
618 ones used by the Oslo mesh project at Hackeriet, as I mentioned in
619 <a href=
"http://people.skolelinux.org/pere/blog/Oslo_community_mesh_network___with_NUUG_and_Hackeriet_at_Hausmania.html">an
620 earlier blog post about this mesh testing
</a>.
</p>
622 <p>The mesh node was not horribly expensive either. I bought
623 everything over the counter in shops nearby. If I had ordered online
624 from the lowest bidder, the price should be significantly lower:
</p>
628 <tr><th>Supplier
</th><th>Model
</th><th>NOK
</th></tr>
629 <tr><td>Teknikkmagasinet
</td><td>Raspberry Pi model B
</td><td>349.90</td></tr>
630 <tr><td>Teknikkmagasinet
</td><td>Raspberry Pi type B case
</td><td>99.90</td></tr>
631 <tr><td>Lefdal
</td><td>Jensen Air:Link
25150</td><td>295.-
</td></tr>
632 <tr><td>Clas Ohlson
</td><td>Kingston
16 GB SD card
</td><td>199.-
</td></tr>
633 <tr><td>Total cost
</td><td></td><td>943.80</td></tr>
637 <p>Now my mesh network at home consist of one laptop in the basement
638 connected to my production network, one Raspberry Pi node on the
1th
639 floor that can be seen by my neighbor across the park, and one
640 play-node I use to develop the image building script. And some times
641 I hook up my work horse laptop to the mesh to test it. I look forward
642 to figuring out what kind of latency the batman-adv setup will give,
643 and how much packet loss we will experience around the park. :)
</p>
648 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>.
653 <div class=
"padding"></div>
656 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Perl_library_to_control_the_Spykee_robot_moved_to_github.html">Perl library to control the Spykee robot moved to github
</a></div>
657 <div class=
"date">19th October
2013</div>
658 <div class=
"body"><p>Back in
2010, I created a Perl library to talk to
659 <a href=
"http://en.wikipedia.org/wiki/Spykee">the Spykee robot
</a>
660 (with two belts, wifi, USB and Linux) and made it available from my
661 web page. Today I concluded that it should move to a site that is
662 easier to use to cooperate with others, and moved it to github. If
663 you got a Spykee robot, you might want to check out
664 <a href=
"https://github.com/petterreinholdtsen/libspykee-perl">the
665 libspykee-perl github repository
</a>.
</p>
670 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/robot">robot
</a>.
675 <div class=
"padding"></div>
678 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Good_causes__Debian_Outreach_Program_for_Women__EFF_documenting_the_spying_and_Open_access_in_Norway.html">Good causes: Debian Outreach Program for Women, EFF documenting the spying and Open access in Norway
</a></div>
679 <div class=
"date">15th October
2013</div>
680 <div class=
"body"><p>The last few days I came across a few good causes that should get
681 wider attention. I recommend signing and donating to each one of
684 <p>Via
<a href=
"http://www.debian.org/News/weekly/2013/18/">Debian
685 Project News for
2013-
10-
14</a> I came across the Outreach Program for
686 Women program which is a Google Summer of Code like initiative to get
687 more women involved in free software. One debian sponsor has offered
688 to match
<a href=
"http://debian.ch/opw2013">any donation done to Debian
689 earmarked
</a> for this initiative. I donated a few minutes ago, and
690 hope you will to. :)
</p>
692 <p>And the Electronic Frontier Foundation just announced plans to
693 create
<a href=
"https://supporters.eff.org/donate/nsa-videos">video
694 documentaries about the excessive spying
</a> on every Internet user that
695 take place these days, and their need to fund the work. I've already
696 donated. Are you next?
</p>
698 <p>For my Norwegian audience, the organisation Studentenes og
699 Akademikernes Internasjonale Hjelpefond is collecting signatures for a
700 statement under the heading
701 <a href=
"http://saih.no/Bloggers_United/">Bloggers United for Open
702 Access
</a> for those of us asking for more focus on open access in the
703 Norwegian government. So far
499 signatures. I hope you will sign it
709 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance
</a>.
714 <div class=
"padding"></div>
717 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Oslo_community_mesh_network___with_NUUG_and_Hackeriet_at_Hausmania.html">Oslo community mesh network - with NUUG and Hackeriet at Hausmania
</a></div>
718 <div class=
"date">11th October
2013</div>
719 <div class=
"body"><p>Wireless mesh networks are self organising and self healing
720 networks that can be used to connect computers across small and large
721 areas, depending on the radio technology used. Normal wifi equipment
722 can be used to create home made radio networks, and there are several
723 successful examples like
724 <a href=
"http://www.freifunk.net/">Freifunk
</a> and
725 <a href=
"http://www.awmn.net/">Athens Wireless Metropolitan Network
</a>
727 <a href=
"http://en.wikipedia.org/wiki/List_of_wireless_community_networks_by_region#Greece">wikipedia
728 for a large list
</a>) around the globe. To give you an idea how it
729 work, check out the nice overview of the Kiel Freifunk community which
730 can be seen from their
731 <a href=
"http://freifunk.in-kiel.de/ffmap/nodes.html">dynamically
732 updated node graph and map
</a>, where one can see how the mesh nodes
733 automatically handle routing and recover from nodes disappearing.
734 There is also a small community mesh network group in Oslo, Norway,
735 and that is the main topic of this blog post.
</p>
737 <p>I've wanted to check out mesh networks for a while now, and hoped
738 to do it as part of my involvement with the
<a
739 href=
"http://www.nuug.no/">NUUG member organisation
</a> community, and
740 my recent involvement in
741 <a href=
"https://wiki.debian.org/FreedomBox">the Freedombox project
</a>
742 finally lead me to give mesh networks some priority, as I suspect a
743 Freedombox should use mesh networks to connect neighbours and family
744 when possible, given that most communication between people are
745 between those nearby (as shown for example by research on Facebook
746 communication patterns). It also allow people to communicate without
747 any central hub to tap into for those that want to listen in on the
748 private communication of citizens, which have become more and more
749 important over the years.
</p>
751 <p>So far I have only been able to find one group of people in Oslo
752 working on community mesh networks, over at the hack space
753 <a href=
"http://hackeriet.no/">Hackeriet
</a> at Husmania. They seem to
754 have started with some Freifunk based effort using OLSR, called
755 <a href=
"http://oslo.freifunk.net/index.php?title=Main_Page">the Oslo
756 Freifunk project
</a>, but that effort is now dead and the people
757 behind it have moved on to a batman-adv based system called
758 <a href=
"http://meshfx.org/trac">meshfx
</a>. Unfortunately the wiki
759 site for the Oslo Freifunk project is no longer possible to update to
760 reflect this fact, so the old project page can't be updated to point to
761 the new project. A while back, the people at Hackeriet invited people
762 from the Freifunk community to Oslo to talk about mesh networks. I
763 came across this video where Hans Jørgen Lysglimt interview the
764 speakers about this talk (from
765 <a href=
"https://www.youtube.com/watch?v=N2Kd7CLkhSY">youtube
</a>):
</p>
767 <p><iframe width=
"420" height=
"315" src=
"https://www.youtube.com/embed/N2Kd7CLkhSY" frameborder=
"0" allowfullscreen
></iframe></p>
769 <p>I mentioned OLSR and batman-adv, which are mesh routing protocols.
770 There are heaps of different protocols, and I am still struggling to
771 figure out which one would be "best" for some definitions of best, but
772 given that the community mesh group in Oslo is so small, I believe it
773 is best to hook up with the existing one instead of trying to create a
774 completely different setup, and thus I have decided to focus on
775 batman-adv for now. It sure help me to know that the very cool
776 <a href=
"http://www.servalproject.org/">Serval project in Australia
</a>
777 is using batman-adv as their meshing technology when it create a self
778 organizing and self healing telephony system for disaster areas and
779 less industrialized communities. Check out this cool video presenting
781 <a href=
"https://www.youtube.com/watch?v=30qNfzJCQOA">youtube
</a>):
</p>
783 <p><iframe width=
"560" height=
"315" src=
"https://www.youtube.com/embed/30qNfzJCQOA" frameborder=
"0" allowfullscreen
></iframe></p>
785 <p>According to the wikipedia page on
786 <a href=
"http://en.wikipedia.org/wiki/Wireless_mesh_network">Wireless
787 mesh network
</a> there are around
70 competing schemes for routing
788 packets across mesh networks, and OLSR, B.A.T.M.A.N. and
789 B.A.T.M.A.N. advanced are protocols used by several free software
790 based community mesh networks.
</p>
792 <p>The batman-adv protocol is a bit special, as it provide layer
2
793 (as in ethernet ) routing, allowing ipv4 and ipv6 to work on the same
794 network. One way to think about it is that it provide a mesh based
795 vlan you can bridge to or handle like any other vlan connected to your
796 computer. The required drivers are already in the Linux kernel at
797 least since Debian Wheezy, and it is fairly easy to set up. A
798 <a href=
"http://www.open-mesh.org/projects/batman-adv/wiki/Quick-start-guide">good
799 introduction
</a> is available from the Open Mesh project. These are
800 the key settings needed to join the Oslo meshfx network:
</p>
803 <tr><th>Setting
</th><th>Value
</th></tr>
804 <tr><td>Protocol / kernel module
</td><td>batman-adv
</td></tr>
805 <tr><td>ESSID
</td><td>meshfx@hackeriet
</td></tr>
806 <td>Channel / Frequency
</td><td>11 /
2462</td></tr>
807 <td>Cell ID
</td><td>02:BA:
00:
00:
00:
01</td>
810 <p>The reason for setting ad-hoc wifi Cell ID is to work around bugs
811 in firmware used in wifi card and wifi drivers. (See a nice post from
813 "
<a href=
"http://tiebing.blogspot.no/2009/12/ad-hoc-cell-splitting-re-post-original.html">Information
814 about cell-id splitting, stuck beacons, and failed IBSS merges!
</a>
815 for details.) When these settings are activated and you have some
816 other mesh node nearby, your computer will be connected to the mesh
817 network and can communicate with any mesh node that is connected to
818 any of the nodes in your network of nodes. :)
</p>
820 <p>My initial plan was to reuse my old Linksys WRT54GL as a mesh node,
821 but that seem to be very hard, as I have not been able to locate a
822 firmware supporting batman-adv. If anyone know how to use that old
823 wifi access point with batman-adv these days, please let me know.
</p>
825 <p>If you find this project interesting and want to join, please join
826 us on IRC, either channel
827 <a href=
"irc://irc.freenode.net/#oslohackerspace">#oslohackerspace
</a>
828 or
<a href=
"irc://irc.freenode.net/#nuug">#nuug
</a> on
829 irc.freenode.net.
</p>
831 <p>While investigating mesh networks in Oslo, I came across an old
832 research paper from the university of Stavanger and Telenor Research
833 and Innovation called
834 <a href=
"http://folk.uio.no/paalee/publications/netrel-egeland-iswcs-2008.pdf">The
835 reliability of wireless backhaul mesh networks
</a> and elsewhere
836 learned that Telenor have been experimenting with mesh networks at
837 Grünerløkka in Oslo. So mesh networks are also interesting for
838 commercial companies, even though Telenor discovered that it was hard
839 to figure out a good business plan for mesh networking and as far as I
840 know have closed down the experiment. Perhaps Telenor or others would
841 be interested in a cooperation?
</p>
843 <p><strong>Update
2013-
10-
12</strong>: I was just
844 <a href=
"http://lists.alioth.debian.org/pipermail/freedombox-discuss/2013-October/005900.html">told
845 by the Serval project developers
</a> that they no longer use
846 batman-adv (but are compatible with it), but their own crypto based
852 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>.
857 <div class=
"padding"></div>
860 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Skolelinux___Debian_Edu_7_1_install_and_overview_video_from_Marcelo_Salvador.html">Skolelinux / Debian Edu
7.1 install and overview video from Marcelo Salvador
</a></div>
861 <div class=
"date"> 8th October
2013</div>
862 <div class=
"body"><p>The other day I was pleased and surprised to discover that Marcelo
863 Salvador had published a
864 <a href=
"https://www.youtube.com/watch?v=w-GgpdqgLFc">video on
865 Youtube
</a> showing how to install the standalone Debian Edu /
866 Skolelinux profile. This is the profile intended for use at home or
867 on laptops that should not be integrated into the provided network
868 services (no central home directory, no Kerberos / LDAP directory etc,
869 in other word a single user machine). The result is
11 minutes long,
870 and show some user applications (seem to be rather randomly picked).
871 Missed a few of my favorites like celestia, planets and chromium
872 showing the
<a href=
"http://www.zygotebody.com/">Zygote Body
3D model
873 of the human body
</a>, but I guess he did not know about those or find
874 other programs more interesting. :) And the video do not show the
875 advantages I believe is one of the most valuable featuers in Debian
876 Edu, its central school server making it possible to run hundreds of
877 computers without hard drives by installing one central
878 <a href=
"http://www.ltsp.org/">LTSP server
</a>.
</p>
880 <p>Anyway, check out the video, embedded below and linked to above:
</p>
882 <iframe width=
"420" height=
"315" src=
"http://www.youtube.com/embed/w-GgpdqgLFc" frameborder=
"0" allowfullscreen
></iframe>
884 <p>Are there other nice videos demonstrating Skolelinux? Please let
890 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/video">video
</a>.
895 <div class=
"padding"></div>
897 <p style=
"text-align: right;"><a href=
"index.rss"><img src=
"http://people.skolelinux.org/pere/blog/xml.gif" alt=
"RSS feed" width=
"36" height=
"14" /></a></p>
908 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/01/">January (
11)
</a></li>
910 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/02/">February (
9)
</a></li>
912 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/03/">March (
9)
</a></li>
914 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/04/">April (
6)
</a></li>
916 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/05/">May (
9)
</a></li>
918 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/06/">June (
10)
</a></li>
920 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/07/">July (
7)
</a></li>
922 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/08/">August (
3)
</a></li>
924 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/09/">September (
5)
</a></li>
926 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/10/">October (
7)
</a></li>
928 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/11/">November (
3)
</a></li>
935 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/01/">January (
7)
</a></li>
937 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/02/">February (
10)
</a></li>
939 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/03/">March (
17)
</a></li>
941 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/04/">April (
12)
</a></li>
943 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/05/">May (
12)
</a></li>
945 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/06/">June (
20)
</a></li>
947 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/07/">July (
17)
</a></li>
949 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/08/">August (
6)
</a></li>
951 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/09/">September (
9)
</a></li>
953 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/10/">October (
17)
</a></li>
955 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/11/">November (
10)
</a></li>
957 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/12/">December (
7)
</a></li>
964 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/01/">January (
16)
</a></li>
966 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/02/">February (
6)
</a></li>
968 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/03/">March (
6)
</a></li>
970 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/04/">April (
7)
</a></li>
972 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/05/">May (
3)
</a></li>
974 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/06/">June (
2)
</a></li>
976 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/07/">July (
7)
</a></li>
978 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/08/">August (
6)
</a></li>
980 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/09/">September (
4)
</a></li>
982 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/10/">October (
2)
</a></li>
984 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/11/">November (
3)
</a></li>
986 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/12/">December (
1)
</a></li>
993 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/01/">January (
2)
</a></li>
995 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/02/">February (
1)
</a></li>
997 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/03/">March (
3)
</a></li>
999 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/04/">April (
3)
</a></li>
1001 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/05/">May (
9)
</a></li>
1003 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/06/">June (
14)
</a></li>
1005 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/07/">July (
12)
</a></li>
1007 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/08/">August (
13)
</a></li>
1009 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/09/">September (
7)
</a></li>
1011 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/10/">October (
9)
</a></li>
1013 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/11/">November (
13)
</a></li>
1015 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/12/">December (
12)
</a></li>
1022 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/01/">January (
8)
</a></li>
1024 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/02/">February (
8)
</a></li>
1026 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/03/">March (
12)
</a></li>
1028 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/04/">April (
10)
</a></li>
1030 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/05/">May (
9)
</a></li>
1032 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/06/">June (
3)
</a></li>
1034 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/07/">July (
4)
</a></li>
1036 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/08/">August (
3)
</a></li>
1038 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/09/">September (
1)
</a></li>
1040 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/10/">October (
2)
</a></li>
1042 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/11/">November (
3)
</a></li>
1044 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/12/">December (
3)
</a></li>
1051 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/11/">November (
5)
</a></li>
1053 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/12/">December (
7)
</a></li>
1064 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (
13)
</a></li>
1066 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/amiga">amiga (
1)
</a></li>
1068 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/aros">aros (
1)
</a></li>
1070 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bankid">bankid (
4)
</a></li>
1072 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (
7)
</a></li>
1074 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (
13)
</a></li>
1076 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bsa">bsa (
2)
</a></li>
1078 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian (
90)
</a></li>
1080 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (
142)
</a></li>
1082 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/digistan">digistan (
10)
</a></li>
1084 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/docbook">docbook (
10)
</a></li>
1086 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
1088 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/english">english (
226)
</a></li>
1090 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (
21)
</a></li>
1092 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (
12)
</a></li>
1094 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (
12)
</a></li>
1096 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (
5)
</a></li>
1098 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (
11)
</a></li>
1100 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/intervju">intervju (
37)
</a></li>
1102 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (
7)
</a></li>
1104 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart (
18)
</a></li>
1106 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ldap">ldap (
8)
</a></li>
1108 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lenker">lenker (
6)
</a></li>
1110 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (
1)
</a></li>
1112 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (
4)
</a></li>
1114 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (
25)
</a></li>
1116 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk (
236)
</a></li>
1118 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug (
157)
</a></li>
1120 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (
8)
</a></li>
1122 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/open311">open311 (
2)
</a></li>
1124 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (
45)
</a></li>
1126 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern (
67)
</a></li>
1128 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/raid">raid (
1)
</a></li>
1130 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reprap">reprap (
11)
</a></li>
1132 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rfid">rfid (
2)
</a></li>
1134 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/robot">robot (
8)
</a></li>
1136 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rss">rss (
1)
</a></li>
1138 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ruter">ruter (
4)
</a></li>
1140 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
1142 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (
32)
</a></li>
1144 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
1146 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (
4)
</a></li>
1148 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard (
43)
</a></li>
1150 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (
3)
</a></li>
1152 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (
9)
</a></li>
1154 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (
20)
</a></li>
1156 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (
1)
</a></li>
1158 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/valg">valg (
8)
</a></li>
1160 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/video">video (
39)
</a></li>
1162 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
1164 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/web">web (
28)
</a></li>
1170 <p style=
"text-align: right">
1171 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>