]> pere.pagekite.me Git - homepage.git/blob - blog/tags/kodi/index.html
446f3767b64abac3239c3fe5209f6421ec1e686a
[homepage.git] / blog / tags / kodi / 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 Tagged kodi</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="kodi.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <div class="title">
13 <h1>
14 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
15
16 </h1>
17
18 </div>
19
20
21 <h3>Entries tagged "kodi".</h3>
22
23 <div class="entry">
24 <div class="title">
25 <a href="http://people.skolelinux.org/pere/blog/Using_the_Kodi_API_to_play_Youtube_videos.html">Using the Kodi API to play Youtube videos</a>
26 </div>
27 <div class="date">
28 2nd September 2018
29 </div>
30 <div class="body">
31 <p>I continue to explore my Kodi installation, and today I wanted to
32 tell it to play a youtube URL I received in a chat, without having to
33 insert search terms using the on-screen keyboard. After searching the
34 web for API access to the Youtube plugin and testing a bit, I managed
35 to find a recipe that worked. If you got a kodi instance with its API
36 available from http://kodihost/jsonrpc, you can try the following to
37 have check out a nice cover band.</p>
38
39 <p><blockquote><pre>curl --silent --header 'Content-Type: application/json' \
40 --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Player.Open",
41 "params": {"item": { "file":
42 "plugin://plugin.video.youtube/play/?video_id=LuRGVM9O0qg" } } }' \
43 http://projector.local/jsonrpc</pre></blockquote></p>
44
45 <p>I've extended kodi-stream program to take a video source as its
46 first argument. It can now handle direct video links, youtube links
47 and 'desktop' to stream my desktop to Kodi. It is almost like a
48 Chromecast. :)</p>
49
50 <p>As usual, if you use Bitcoin and want to show your support of my
51 activities, please send Bitcoin donations to my address
52 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
53
54 </div>
55 <div class="tags">
56
57
58 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/kodi">kodi</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
59
60
61 </div>
62 </div>
63 <div class="padding"></div>
64
65 <div class="entry">
66 <div class="title">
67 <a href="http://people.skolelinux.org/pere/blog/Simple_streaming_the_Linux_desktop_to_Kodi_using_GStreamer_and_RTP.html">Simple streaming the Linux desktop to Kodi using GStreamer and RTP</a>
68 </div>
69 <div class="date">
70 12th July 2018
71 </div>
72 <div class="body">
73 <p>Last night, I wrote
74 <a href="http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html">a
75 recipe to stream a Linux desktop using VLC to a instance of Kodi</a>.
76 During the day I received valuable feedback, and thanks to the
77 suggestions I have been able to rewrite the recipe into a much simpler
78 approach requiring no setup at all. It is a single script that take
79 care of it all.</p>
80
81 <p>This new script uses GStreamer instead of VLC to capture the
82 desktop and stream it to Kodi. This fixed the video quality issue I
83 saw initially. It further removes the need to add a m3u file on the
84 Kodi machine, as it instead connects to
85 <a href="https://kodi.wiki/view/JSON-RPC_API/v8">the JSON-RPC API in
86 Kodi</a> and simply ask Kodi to play from the stream created using
87 GStreamer. Streaming the desktop to Kodi now become trivial. Copy
88 the script below, run it with the DNS name or IP address of the kodi
89 server to stream to as the only argument, and watch your screen show
90 up on the Kodi screen. Note, it depend on multicast on the local
91 network, so if you need to stream outside the local network, the
92 script must be modified. Also note, I have no idea if audio work, as
93 I only care about the picture part.</p>
94
95 <blockquote><pre>
96 #!/bin/sh
97 #
98 # Stream the Linux desktop view to Kodi. See
99 # http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html
100 # for backgorund information.
101
102 # Make sure the stream is stopped in Kodi and the gstreamer process is
103 # killed if something go wrong (for example if curl is unable to find the
104 # kodi server). Do the same when interrupting this script.
105 kodicmd() {
106 host="$1"
107 cmd="$2"
108 params="$3"
109 curl --silent --header 'Content-Type: application/json' \
110 --data-binary "{ \"id\": 1, \"jsonrpc\": \"2.0\", \"method\": \"$cmd\", \"params\": $params }" \
111 "http://$host/jsonrpc"
112 }
113 cleanup() {
114 if [ -n "$kodihost" ] ; then
115 # Stop the playing when we end
116 playerid=$(kodicmd "$kodihost" Player.GetActivePlayers "{}" |
117 jq .result[].playerid)
118 kodicmd "$kodihost" Player.Stop "{ \"playerid\" : $playerid }" > /dev/null
119 fi
120 if [ "$gstpid" ] && kill -0 "$gstpid" >/dev/null 2>&1; then
121 kill "$gstpid"
122 fi
123 }
124 trap cleanup EXIT INT
125
126 if [ -n "$1" ]; then
127 kodihost=$1
128 shift
129 else
130 kodihost=kodi.local
131 fi
132
133 mcast=239.255.0.1
134 mcastport=1234
135 mcastttl=1
136
137 pasrc=$(pactl list | grep -A2 'Source #' | grep 'Name: .*\.monitor$' | \
138 cut -d" " -f2|head -1)
139 gst-launch-1.0 ximagesrc use-damage=0 ! video/x-raw,framerate=30/1 ! \
140 videoconvert ! queue2 ! \
141 x264enc bitrate=8000 speed-preset=superfast tune=zerolatency qp-min=30 \
142 key-int-max=15 bframes=2 ! video/x-h264,profile=high ! queue2 ! \
143 mpegtsmux alignment=7 name=mux ! rndbuffersize max=1316 min=1316 ! \
144 udpsink host=$mcast port=$mcastport ttl-mc=$mcastttl auto-multicast=1 sync=0 \
145 pulsesrc device=$pasrc ! audioconvert ! queue2 ! avenc_aac ! queue2 ! mux. \
146 > /dev/null 2>&1 &
147 gstpid=$!
148
149 # Give stream a second to get going
150 sleep 1
151
152 # Ask kodi to start streaming using its JSON-RPC API
153 kodicmd "$kodihost" Player.Open \
154 "{\"item\": { \"file\": \"udp://@$mcast:$mcastport\" } }" > /dev/null
155
156 # wait for gst to end
157 wait "$gstpid"
158 </pre></blockquote>
159
160 <p>I hope you find the approach useful. I know I do.</p>
161
162 <p>As usual, if you use Bitcoin and want to show your support of my
163 activities, please send Bitcoin donations to my address
164 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
165
166 </div>
167 <div class="tags">
168
169
170 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/kodi">kodi</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
171
172
173 </div>
174 </div>
175 <div class="padding"></div>
176
177 <div class="entry">
178 <div class="title">
179 <a href="http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html">Streaming the Linux desktop to Kodi using VLC and RTSP</a>
180 </div>
181 <div class="date">
182 12th July 2018
183 </div>
184 <div class="body">
185 <p>PS: See
186 <ahref="http://people.skolelinux.org/pere/blog/Simple_streaming_the_Linux_desktop_to_Kodi_using_GStreamer_and_RTP.html">the
187 followup post</a> for a even better approach.</p>
188
189 <p>A while back, I was asked by a friend how to stream the desktop to
190 my projector connected to Kodi. I sadly had to admit that I had no
191 idea, as it was a task I never had tried. Since then, I have been
192 looking for a way to do so, preferable without much extra software to
193 install on either side. Today I found a way that seem to kind of
194 work. Not great, but it is a start.</p>
195
196 <p>I had a look at several approaches, for example
197 <a href="https://github.com/mfoetsch/dlna_live_streaming">using uPnP
198 DLNA as described in 2011</a>, but it required a uPnP server, fuse and
199 local storage enough to store the stream locally. This is not going
200 to work well for me, lacking enough free space, and it would
201 impossible for my friend to get working.</p>
202
203 <p>Next, it occurred to me that perhaps I could use VLC to create a
204 video stream that Kodi could play. Preferably using
205 broadcast/multicast, to avoid having to change any setup on the Kodi
206 side when starting such stream. Unfortunately, the only recipe I
207 could find using multicast used the rtp protocol, and this protocol
208 seem to not be supported by Kodi.</p>
209
210 <p>On the other hand, the rtsp protocol is working! Unfortunately I
211 have to specify the IP address of the streaming machine in both the
212 sending command and the file on the Kodi server. But it is showing my
213 desktop, and thus allow us to have a shared look on the big screen at
214 the programs I work on.</p>
215
216 <p>I did not spend much time investigating codeces. I combined the
217 rtp and rtsp recipes from
218 <a href="https://wiki.videolan.org/Documentation:Streaming_HowTo/Command_Line_Examples/">the
219 VLC Streaming HowTo/Command Line Examples</a>, and was able to get
220 this working on the desktop/streaming end.</p>
221
222 <blockquote><pre>
223 vlc screen:// --sout \
224 '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{dst=projector.local,port=1234,sdp=rtsp://192.168.11.4:8080/test.sdp}'
225 </pre></blockquote>
226
227 <p>I ssh-ed into my Kodi box and created a file like this with the
228 same IP address:</p>
229
230 <blockquote><pre>
231 echo rtsp://192.168.11.4:8080/test.sdp \
232 > /storage/videos/screenstream.m3u
233 </pre></blockquote>
234
235 <p>Note the 192.168.11.4 IP address is my desktops IP address. As far
236 as I can tell the IP must be hardcoded for this to work. In other
237 words, if someone elses machine is going to do the steaming, you have
238 to update screenstream.m3u on the Kodi machine and adjust the vlc
239 recipe. To get started, locate the file in Kodi and select the m3u
240 file while the VLC stream is running. The desktop then show up in my
241 big screen. :)</p>
242
243 <p>When using the same technique to stream a video file with audio,
244 the audio quality is really bad. No idea if the problem is package
245 loss or bad parameters for the transcode. I do not know VLC nor Kodi
246 enough to tell.</p>
247
248 <p><strong>Update 2018-07-12</strong>: Johannes Schauer send me a few
249 succestions and reminded me about an important step. The "screen:"
250 input source is only available once the vlc-plugin-access-extra
251 package is installed on Debian. Without it, you will see this error
252 message: "VLC is unable to open the MRL 'screen://'. Check the log
253 for details." He further found that it is possible to drop some parts
254 of the VLC command line to reduce the amount of hardcoded information.
255 It is also useful to consider using cvlc to avoid having the VLC
256 window in the desktop view. In sum, this give us this command line on
257 the source end
258
259 <blockquote><pre>
260 cvlc screen:// --sout \
261 '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{sdp=rtsp://:8080/}'
262 </pre></blockquote>
263
264 <p>and this on the Kodi end<p>
265
266 <blockquote><pre>
267 echo rtsp://192.168.11.4:8080/ \
268 > /storage/videos/screenstream.m3u
269 </pre></blockquote>
270
271 <p>Still bad image quality, though. But I did discover that streaming
272 a DVD using dvdsimple:///dev/dvd as the source had excellent video and
273 audio quality, so I guess the issue is in the input or transcoding
274 parts, not the rtsp part. I've tried to change the vb and ab
275 parameters to use more bandwidth, but it did not make a
276 difference.</p>
277
278 <p>I further received a suggestion from Einar Haraldseid to try using
279 gstreamer instead of VLC, and this proved to work great! He also
280 provided me with the trick to get Kodi to use a multicast stream as
281 its source. By using this monstrous oneliner, I can stream my desktop
282 with good video quality in reasonable framerate to the 239.255.0.1
283 multicast address on port 1234:
284
285 <blockquote><pre>
286 gst-launch-1.0 ximagesrc use-damage=0 ! video/x-raw,framerate=30/1 ! \
287 videoconvert ! queue2 ! \
288 x264enc bitrate=8000 speed-preset=superfast tune=zerolatency qp-min=30 \
289 key-int-max=15 bframes=2 ! video/x-h264,profile=high ! queue2 ! \
290 mpegtsmux alignment=7 name=mux ! rndbuffersize max=1316 min=1316 ! \
291 udpsink host=239.255.0.1 port=1234 ttl-mc=1 auto-multicast=1 sync=0 \
292 pulsesrc device=$(pactl list | grep -A2 'Source #' | \
293 grep 'Name: .*\.monitor$' | cut -d" " -f2|head -1) ! \
294 audioconvert ! queue2 ! avenc_aac ! queue2 ! mux.
295 </pre></blockquote>
296
297 <p>and this on the Kodi end<p>
298
299 <blockquote><pre>
300 echo udp://@239.255.0.1:1234 \
301 > /storage/videos/screenstream.m3u
302 </pre></blockquote>
303
304 <p>Note the trick to pick a valid pulseaudio source. It might not
305 pick the one you need. This approach will of course lead to trouble
306 if more than one source uses the same multicast port and address.
307 Note the ttl-mc=1 setting, which limit the multicast packages to the
308 local network. If the value is increased, your screen will be
309 broadcasted further, one network "hop" for each increase (read up on
310 multicast to learn more. :)!</p>
311
312 <p>Having cracked how to get Kodi to receive multicast streams, I
313 could use this VLC command to stream to the same multicast address.
314 The image quality is way better than the rtsp approach, but gstreamer
315 seem to be doing a better job.</p>
316
317 <blockquote><pre>
318 cvlc screen:// --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{mux=ts,dst=239.255.0.1,port=1234,sdp=sap}'
319 </pre></blockquote>
320
321 <p>As usual, if you use Bitcoin and want to show your support of my
322 activities, please send Bitcoin donations to my address
323 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
324
325 </div>
326 <div class="tags">
327
328
329 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/kodi">kodi</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
330
331
332 </div>
333 </div>
334 <div class="padding"></div>
335
336 <p style="text-align: right;"><a href="kodi.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS Feed" width="36" height="14" /></a></p>
337 <div id="sidebar">
338
339
340
341 <h2>Archive</h2>
342 <ul>
343
344 <li>2018
345 <ul>
346
347 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/01/">January (1)</a></li>
348
349 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/02/">February (5)</a></li>
350
351 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/03/">March (5)</a></li>
352
353 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/04/">April (3)</a></li>
354
355 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
356
357 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/07/">July (5)</a></li>
358
359 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/08/">August (3)</a></li>
360
361 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/09/">September (1)</a></li>
362
363 </ul></li>
364
365 <li>2017
366 <ul>
367
368 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
369
370 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
371
372 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/03/">March (5)</a></li>
373
374 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/04/">April (2)</a></li>
375
376 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/06/">June (5)</a></li>
377
378 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/07/">July (1)</a></li>
379
380 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/08/">August (1)</a></li>
381
382 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/09/">September (3)</a></li>
383
384 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/10/">October (5)</a></li>
385
386 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
387
388 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/12/">December (4)</a></li>
389
390 </ul></li>
391
392 <li>2016
393 <ul>
394
395 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
396
397 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
398
399 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
400
401 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
402
403 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
404
405 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
406
407 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
408
409 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
410
411 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
412
413 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
414
415 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
416
417 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
418
419 </ul></li>
420
421 <li>2015
422 <ul>
423
424 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
425
426 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
427
428 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
429
430 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
431
432 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
433
434 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
435
436 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
437
438 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
439
440 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
441
442 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
443
444 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
445
446 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
447
448 </ul></li>
449
450 <li>2014
451 <ul>
452
453 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
454
455 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
456
457 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
458
459 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
460
461 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
462
463 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
464
465 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
466
467 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
468
469 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
470
471 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
472
473 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
474
475 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
476
477 </ul></li>
478
479 <li>2013
480 <ul>
481
482 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
483
484 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
485
486 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
487
488 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
489
490 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
491
492 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
493
494 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
495
496 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
497
498 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
499
500 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
501
502 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
503
504 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
505
506 </ul></li>
507
508 <li>2012
509 <ul>
510
511 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
512
513 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
514
515 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
516
517 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
518
519 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
520
521 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
522
523 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
524
525 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
526
527 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
528
529 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
530
531 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
532
533 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
534
535 </ul></li>
536
537 <li>2011
538 <ul>
539
540 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
541
542 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
543
544 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
545
546 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
547
548 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
549
550 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
551
552 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
553
554 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
555
556 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
557
558 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
559
560 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
561
562 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
563
564 </ul></li>
565
566 <li>2010
567 <ul>
568
569 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
570
571 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
572
573 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
574
575 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
576
577 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
578
579 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
580
581 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
582
583 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
584
585 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
586
587 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
588
589 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
590
591 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
592
593 </ul></li>
594
595 <li>2009
596 <ul>
597
598 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
599
600 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
601
602 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
603
604 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
605
606 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
607
608 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
609
610 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
611
612 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
613
614 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
615
616 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
617
618 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
619
620 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
621
622 </ul></li>
623
624 <li>2008
625 <ul>
626
627 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
628
629 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
630
631 </ul></li>
632
633 </ul>
634
635
636
637 <h2>Tags</h2>
638 <ul>
639
640 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (16)</a></li>
641
642 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
643
644 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
645
646 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
647
648 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (9)</a></li>
649
650 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (17)</a></li>
651
652 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
653
654 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
655
656 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (162)</a></li>
657
658 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
659
660 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (4)</a></li>
661
662 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
663
664 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (17)</a></li>
665
666 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (25)</a></li>
667
668 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
669
670 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (383)</a></li>
671
672 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
673
674 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (13)</a></li>
675
676 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (32)</a></li>
677
678 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
679
680 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (18)</a></li>
681
682 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
683
684 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
685
686 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (16)</a></li>
687
688 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (20)</a></li>
689
690 <li><a href="http://people.skolelinux.org/pere/blog/tags/kodi">kodi (3)</a></li>
691
692 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
693
694 <li><a href="http://people.skolelinux.org/pere/blog/tags/lego">lego (4)</a></li>
695
696 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
697
698 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
699
700 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
701
702 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
703
704 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (41)</a></li>
705
706 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (10)</a></li>
707
708 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (299)</a></li>
709
710 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (190)</a></li>
711
712 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (33)</a></li>
713
714 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
715
716 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (72)</a></li>
717
718 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (107)</a></li>
719
720 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (2)</a></li>
721
722 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
723
724 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
725
726 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
727
728 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (10)</a></li>
729
730 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
731
732 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (6)</a></li>
733
734 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
735
736 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (54)</a></li>
737
738 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
739
740 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
741
742 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (55)</a></li>
743
744 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (6)</a></li>
745
746 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (12)</a></li>
747
748 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (55)</a></li>
749
750 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (4)</a></li>
751
752 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
753
754 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
755
756 <li><a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (11)</a></li>
757
758 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (67)</a></li>
759
760 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
761
762 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (41)</a></li>
763
764 </ul>
765
766
767 </div>
768 <p style="text-align: right">
769 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
770 </p>
771
772 </body>
773 </html>