]> pere.pagekite.me Git - homepage.git/blob - blog/archive/2013/11/index.html
Generated.
[homepage.git] / blog / archive / 2013 / 11 / index.html
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">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: entries from November 2013</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="11.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <!-- XML FEED -->
13 <div class="title">
14 <h1>
15 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
16
17 </h1>
18
19 </div>
20
21
22 <h3>Entries from November 2013.</h3>
23
24 <div class="entry">
25 <div class="title">
26 <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>
27 </div>
28 <div class="date">
29 10th November 2013
30 </div>
31 <div class="body">
32 <p>Continuing my research into mesh networking, I was recommended to
33 use TP-Link 3040 and 3600 access points as mesh nodes, and the pair I
34 bought arrived on Friday. Here are my notes on how to set up the
35 MR3040 as a mesh node using
36 <a href="http://www.openwrt.org/">OpenWrt</a>.</p>
37
38 <p>I started by following the instructions on the OpenWRT wiki for
39 <a href="http://wiki.openwrt.org/toh/tp-link/tl-mr3040">TL-MR3040</a>,
40 and downloaded
41 <a href="http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-mr3040-v2-squashfs-factory.bin">the
42 recommended firmware image</a>
43 (openwrt-ar71xx-generic-tl-mr3040-v2-squashfs-factory.bin) and
44 uploaded it into the original web interface. The flashing went fine,
45 and the machine was available via telnet on the ethernet port. After
46 logging in and setting the root password, ssh was available and I
47 could start to set it up as a batman-adv mesh node.</p>
48
49 <p>I started off by reading the instructions from
50 <a href="http://wirelessafrica.meraka.org.za/wiki/index.php?title=Antoine's_Research">Wireless
51 Africa</a>, which had quite a lot of useful information, but
52 eventually I followed the recipe from the Open Mesh wiki for
53 <a href="http://www.open-mesh.org/projects/batman-adv/wiki/Batman-adv-openwrt-config">using
54 batman-adv on OpenWrt</a>. A small snag was the fact that the
55 <tt>opkg install kmod-batman-adv</tt> command did not work as it
56 should. The batman-adv kernel module would fail to load because its
57 dependency crc16 was not already loaded. I
58 <a href="https://dev.openwrt.org/ticket/14452">reported the bug</a> to
59 the openwrt project and hope it will be fixed soon. But the problem
60 only seem to affect initial testing of batman-adv, as configuration
61 seem to work when booting from scratch.</p>
62
63 <p>The setup is done using files in /etc/config/. I did not bridge
64 the Ethernet and mesh interfaces this time, to be able to hook up the
65 box on my local network and log into it for configuration updates.
66 The following files were changed and look like this after modifying
67 them:</p>
68
69 <p><tt>/etc/config/network</tt></p>
70
71 <pre>
72
73 config interface 'loopback'
74 option ifname 'lo'
75 option proto 'static'
76 option ipaddr '127.0.0.1'
77 option netmask '255.0.0.0'
78
79 config globals 'globals'
80 option ula_prefix 'fdbf:4c12:3fed::/48'
81
82 config interface 'lan'
83 option ifname 'eth0'
84 option type 'bridge'
85 option proto 'dhcp'
86 option ipaddr '192.168.1.1'
87 option netmask '255.255.255.0'
88 option hostname 'tl-mr3040'
89 option ip6assign '60'
90
91 config interface 'mesh'
92 option ifname 'adhoc0'
93 option mtu '1528'
94 option proto 'batadv'
95 option mesh 'bat0'
96 </pre>
97
98 <p><tt>/etc/config/wireless</tt></p>
99 <pre>
100
101 config wifi-device 'radio0'
102 option type 'mac80211'
103 option channel '11'
104 option hwmode '11ng'
105 option path 'platform/ar933x_wmac'
106 option htmode 'HT20'
107 list ht_capab 'SHORT-GI-20'
108 list ht_capab 'SHORT-GI-40'
109 list ht_capab 'RX-STBC1'
110 list ht_capab 'DSSS_CCK-40'
111 option disabled '0'
112
113 config wifi-iface 'wmesh'
114 option device 'radio0'
115 option ifname 'adhoc0'
116 option network 'mesh'
117 option encryption 'none'
118 option mode 'adhoc'
119 option bssid '02:BA:00:00:00:01'
120 option ssid 'meshfx@hackeriet'
121 </pre>
122 <p><tt>/etc/config/batman-adv</tt></p>
123 <pre>
124
125 config 'mesh' 'bat0'
126 option interfaces 'adhoc0'
127 option 'aggregated_ogms'
128 option 'ap_isolation'
129 option 'bonding'
130 option 'fragmentation'
131 option 'gw_bandwidth'
132 option 'gw_mode'
133 option 'gw_sel_class'
134 option 'log_level'
135 option 'orig_interval'
136 option 'vis_mode'
137 option 'bridge_loop_avoidance'
138 option 'distributed_arp_table'
139 option 'network_coding'
140 option 'hop_penalty'
141
142 # yet another batX instance
143 # config 'mesh' 'bat5'
144 # option 'interfaces' 'second_mesh'
145 </pre>
146
147 <p>The mesh node is now operational. I have yet to test its range,
148 but I hope it is good. I have not yet tested the TP-Link 3600 box
149 still wrapped up in plastic.</p>
150
151 </div>
152 <div class="tags">
153
154
155 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>.
156
157
158 </div>
159 </div>
160 <div class="padding"></div>
161
162 <div class="entry">
163 <div class="title">
164 <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>
165 </div>
166 <div class="date">
167 2nd November 2013
168 </div>
169 <div class="body">
170 <p>If one of the points of switching to a new init system in Debian is
171 <a href="http://thomas.goirand.fr/blog/?p=147">to get rid of huge
172 init.d scripts</a>, I doubt we need to switch away from sysvinit and
173 init.d scripts at all. Here is an example init.d script, ie a rewrite
174 of /etc/init.d/rsyslog:</p>
175
176 <p><pre>
177 #!/lib/init/init-d-script
178 ### BEGIN INIT INFO
179 # Provides: rsyslog
180 # Required-Start: $remote_fs $time
181 # Required-Stop: umountnfs $time
182 # X-Stop-After: sendsigs
183 # Default-Start: 2 3 4 5
184 # Default-Stop: 0 1 6
185 # Short-Description: enhanced syslogd
186 # Description: Rsyslog is an enhanced multi-threaded syslogd.
187 # It is quite compatible to stock sysklogd and can be
188 # used as a drop-in replacement.
189 ### END INIT INFO
190 DESC="enhanced syslogd"
191 DAEMON=/usr/sbin/rsyslogd
192 </pre></p>
193
194 <p>Pretty minimalistic to me... For the record, the original sysv-rc
195 script was 137 lines, and the above is just 15 lines, most of it meta
196 info/comments.</p>
197
198 <p>How to do this, you ask? Well, one create a new script
199 /lib/init/init-d-script looking something like this:
200
201 <p><pre>
202 #!/bin/sh
203
204 # Define LSB log_* functions.
205 # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
206 # and status_of_proc is working.
207 . /lib/lsb/init-functions
208
209 #
210 # Function that starts the daemon/service
211
212 #
213 do_start()
214 {
215 # Return
216 # 0 if daemon has been started
217 # 1 if daemon was already running
218 # 2 if daemon could not be started
219 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
220 || return 1
221 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
222 $DAEMON_ARGS \
223 || return 2
224 # Add code here, if necessary, that waits for the process to be ready
225 # to handle requests from services started subsequently which depend
226 # on this one. As a last resort, sleep for some time.
227 }
228
229 #
230 # Function that stops the daemon/service
231 #
232 do_stop()
233 {
234 # Return
235 # 0 if daemon has been stopped
236 # 1 if daemon was already stopped
237 # 2 if daemon could not be stopped
238 # other if a failure occurred
239 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
240 RETVAL="$?"
241 [ "$RETVAL" = 2 ] && return 2
242 # Wait for children to finish too if this is a daemon that forks
243 # and if the daemon is only ever run from this initscript.
244 # If the above conditions are not satisfied then add some other code
245 # that waits for the process to drop all resources that could be
246 # needed by services started subsequently. A last resort is to
247 # sleep for some time.
248 start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
249 [ "$?" = 2 ] && return 2
250 # Many daemons don't delete their pidfiles when they exit.
251 rm -f $PIDFILE
252 return "$RETVAL"
253 }
254
255 #
256 # Function that sends a SIGHUP to the daemon/service
257 #
258 do_reload() {
259 #
260 # If the daemon can reload its configuration without
261 # restarting (for example, when it is sent a SIGHUP),
262 # then implement that here.
263 #
264 start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
265 return 0
266 }
267
268 SCRIPTNAME=$1
269 scriptbasename="$(basename $1)"
270 echo "SN: $scriptbasename"
271 if [ "$scriptbasename" != "init-d-library" ] ; then
272 script="$1"
273 shift
274 . $script
275 else
276 exit 0
277 fi
278
279 NAME=$(basename $DAEMON)
280 PIDFILE=/var/run/$NAME.pid
281
282 # Exit if the package is not installed
283 #[ -x "$DAEMON" ] || exit 0
284
285 # Read configuration variable file if it is present
286 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
287
288 # Load the VERBOSE setting and other rcS variables
289 . /lib/init/vars.sh
290
291 case "$1" in
292 start)
293 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
294 do_start
295 case "$?" in
296 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
297 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
298 esac
299 ;;
300 stop)
301 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
302 do_stop
303 case "$?" in
304 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
305 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
306 esac
307 ;;
308 status)
309 status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
310 ;;
311 #reload|force-reload)
312 #
313 # If do_reload() is not implemented then leave this commented out
314 # and leave 'force-reload' as an alias for 'restart'.
315 #
316 #log_daemon_msg "Reloading $DESC" "$NAME"
317 #do_reload
318 #log_end_msg $?
319 #;;
320 restart|force-reload)
321 #
322 # If the "reload" option is implemented then remove the
323 # 'force-reload' alias
324 #
325 log_daemon_msg "Restarting $DESC" "$NAME"
326 do_stop
327 case "$?" in
328 0|1)
329 do_start
330 case "$?" in
331 0) log_end_msg 0 ;;
332 1) log_end_msg 1 ;; # Old process is still running
333 *) log_end_msg 1 ;; # Failed to start
334 esac
335 ;;
336 *)
337 # Failed to stop
338 log_end_msg 1
339 ;;
340 esac
341 ;;
342 *)
343 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
344 exit 3
345 ;;
346 esac
347
348 :
349 </pre></p>
350
351 <p>It is based on /etc/init.d/skeleton, and could be improved quite a
352 lot. I did not really polish the approach, so it might not always
353 work out of the box, but you get the idea. I did not try very hard to
354 optimize it nor make it more robust either.</p>
355
356 <p>A better argument for switching init system in Debian than reducing
357 the size of init scripts (which is a good thing to do anyway), is to
358 get boot system that is able to handle the kernel events sensibly and
359 robustly, and do not depend on the boot to run sequentially. The boot
360 and the kernel have not behaved sequentially in years.</p>
361
362 </div>
363 <div class="tags">
364
365
366 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>.
367
368
369 </div>
370 </div>
371 <div class="padding"></div>
372
373 <div class="entry">
374 <div class="title">
375 <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>
376 </div>
377 <div class="date">
378 1st November 2013
379 </div>
380 <div class="body">
381 <p><a href="http://www.spice-space.org/">The SPICE protocol</a> for
382 remote display access is the preferred solution with oVirt and RedHat
383 Enterprise Virtualization, and I was sad to discover the other day
384 that the browser plugin needed to use these systems seamlessly was
385 missing in Debian. The <a href="http://bugs.debian.org/668284">request
386 for a package</a> was from 2012-04-10 with no progress since
387 2013-04-01, so I decided to wrap up a package based on the great work
388 from Cajus Pollmeier and put it in a collab-maint maintained git
389 repository to get a package I could use. I would very much like
390 others to help me maintain the package (or just take over, I do not
391 mind), but as no-one had volunteered so far, I just uploaded it to
392 NEW. I hope it will be available in Debian in a few days.</p>
393
394 <p>The source is now available from
395 <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>
396
397 </div>
398 <div class="tags">
399
400
401 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>.
402
403
404 </div>
405 </div>
406 <div class="padding"></div>
407
408 <p style="text-align: right;"><a href="11.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS Feed" width="36" height="14" /></a></p>
409 <div id="sidebar">
410
411
412
413 <h2>Archive</h2>
414 <ul>
415
416 <li>2013
417 <ul>
418
419 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
420
421 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
422
423 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
424
425 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
426
427 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
428
429 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
430
431 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
432
433 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
434
435 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
436
437 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
438
439 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (3)</a></li>
440
441 </ul></li>
442
443 <li>2012
444 <ul>
445
446 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
447
448 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
449
450 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
451
452 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
453
454 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
455
456 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
457
458 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
459
460 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
461
462 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
463
464 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
465
466 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
467
468 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
469
470 </ul></li>
471
472 <li>2011
473 <ul>
474
475 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
476
477 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
478
479 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
480
481 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
482
483 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
484
485 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
486
487 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
488
489 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
490
491 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
492
493 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
494
495 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
496
497 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
498
499 </ul></li>
500
501 <li>2010
502 <ul>
503
504 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
505
506 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
507
508 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
509
510 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
511
512 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
513
514 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
515
516 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
517
518 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
519
520 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
521
522 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
523
524 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
525
526 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
527
528 </ul></li>
529
530 <li>2009
531 <ul>
532
533 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
534
535 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
536
537 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
538
539 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
540
541 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
542
543 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
544
545 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
546
547 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
548
549 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
550
551 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
552
553 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
554
555 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
556
557 </ul></li>
558
559 <li>2008
560 <ul>
561
562 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
563
564 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
565
566 </ul></li>
567
568 </ul>
569
570
571
572 <h2>Tags</h2>
573 <ul>
574
575 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
576
577 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
578
579 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
580
581 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
582
583 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (7)</a></li>
584
585 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (13)</a></li>
586
587 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
588
589 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (90)</a></li>
590
591 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (142)</a></li>
592
593 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
594
595 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (10)</a></li>
596
597 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
598
599 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (226)</a></li>
600
601 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
602
603 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
604
605 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (12)</a></li>
606
607 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (5)</a></li>
608
609 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (11)</a></li>
610
611 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (37)</a></li>
612
613 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (7)</a></li>
614
615 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (18)</a></li>
616
617 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
618
619 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (6)</a></li>
620
621 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
622
623 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (4)</a></li>
624
625 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (25)</a></li>
626
627 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (236)</a></li>
628
629 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (157)</a></li>
630
631 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (8)</a></li>
632
633 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
634
635 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (45)</a></li>
636
637 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (67)</a></li>
638
639 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
640
641 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
642
643 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
644
645 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (8)</a></li>
646
647 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
648
649 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
650
651 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
652
653 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (32)</a></li>
654
655 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
656
657 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
658
659 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (43)</a></li>
660
661 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
662
663 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (9)</a></li>
664
665 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (20)</a></li>
666
667 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>
668
669 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
670
671 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (39)</a></li>
672
673 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
674
675 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (28)</a></li>
676
677 </ul>
678
679
680 </div>
681 <p style="text-align: right">
682 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
683 </p>
684
685 </body>
686 </html>