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: 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" />
14 <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
21 <h3>Entries tagged "kodi".
</h3>
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>
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>
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>
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
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>
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>.
63 <div class=
"padding"></div>
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>
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
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>
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.
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.
109 curl --silent --header 'Content-Type: application/json' \
110 --data-binary "{ \"id\":
1, \"jsonrpc\": \"
2.0\", \"method\": \"$cmd\", \"params\": $params }" \
111 "http://$host/jsonrpc"
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
120 if [ "$gstpid" ] && kill -
0 "$gstpid"
>/dev/null
2>&1; then
124 trap cleanup EXIT INT
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. \
149 # Give stream a second to get going
152 # Ask kodi to start streaming using its JSON-RPC API
153 kodicmd "$kodihost" Player.Open \
154 "{\"item\": { \"file\": \"udp://@$mcast:$mcastport\" } }"
> /dev/null
156 # wait for gst to end
160 <p>I hope you find the approach useful. I know I do.
</p>
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>
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>.
175 <div class=
"padding"></div>
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>
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>
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>
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>
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>
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>
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>
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}'
227 <p>I ssh-ed into my Kodi box and created a file like this with the
231 echo rtsp://
192.168.11.4:
8080/test.sdp \
232 > /storage/videos/screenstream.m3u
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
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
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
260 cvlc screen:// --sout \
261 '#transcode{vcodec=mp4v,acodec=mpga,vb=
800,ab=
128}:rtp{sdp=rtsp://:
8080/}'
264 <p>and this on the Kodi end
<p>
267 echo rtsp://
192.168.11.4:
8080/ \
268 > /storage/videos/screenstream.m3u
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
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:
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.
297 <p>and this on the Kodi end
<p>
300 echo udp://@
239.255.0.1:
1234 \
301 > /storage/videos/screenstream.m3u
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>
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>
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}'
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>
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>.
334 <div class=
"padding"></div>
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>
347 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/01/">January (
1)
</a></li>
349 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/02/">February (
5)
</a></li>
351 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/03/">March (
5)
</a></li>
353 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/04/">April (
3)
</a></li>
355 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/06/">June (
2)
</a></li>
357 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/07/">July (
5)
</a></li>
359 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/08/">August (
3)
</a></li>
361 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/09/">September (
1)
</a></li>
368 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/01/">January (
4)
</a></li>
370 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/02/">February (
3)
</a></li>
372 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/03/">March (
5)
</a></li>
374 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/04/">April (
2)
</a></li>
376 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/06/">June (
5)
</a></li>
378 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/07/">July (
1)
</a></li>
380 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/08/">August (
1)
</a></li>
382 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/09/">September (
3)
</a></li>
384 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/10/">October (
5)
</a></li>
386 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/11/">November (
3)
</a></li>
388 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/12/">December (
4)
</a></li>
395 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/01/">January (
3)
</a></li>
397 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/02/">February (
2)
</a></li>
399 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/03/">March (
3)
</a></li>
401 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/04/">April (
8)
</a></li>
403 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/05/">May (
8)
</a></li>
405 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/06/">June (
2)
</a></li>
407 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/07/">July (
2)
</a></li>
409 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/08/">August (
5)
</a></li>
411 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/09/">September (
2)
</a></li>
413 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/10/">October (
3)
</a></li>
415 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/11/">November (
8)
</a></li>
417 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/12/">December (
5)
</a></li>
424 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/01/">January (
7)
</a></li>
426 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/02/">February (
6)
</a></li>
428 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/03/">March (
1)
</a></li>
430 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/04/">April (
4)
</a></li>
432 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/05/">May (
3)
</a></li>
434 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/06/">June (
4)
</a></li>
436 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/07/">July (
6)
</a></li>
438 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/08/">August (
2)
</a></li>
440 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/09/">September (
2)
</a></li>
442 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/10/">October (
9)
</a></li>
444 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/11/">November (
6)
</a></li>
446 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/12/">December (
3)
</a></li>
453 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/01/">January (
2)
</a></li>
455 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/02/">February (
3)
</a></li>
457 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/03/">March (
8)
</a></li>
459 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/04/">April (
7)
</a></li>
461 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/05/">May (
1)
</a></li>
463 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/06/">June (
2)
</a></li>
465 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/07/">July (
2)
</a></li>
467 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/08/">August (
2)
</a></li>
469 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/09/">September (
5)
</a></li>
471 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/10/">October (
6)
</a></li>
473 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/11/">November (
3)
</a></li>
475 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/12/">December (
5)
</a></li>
482 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/01/">January (
11)
</a></li>
484 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/02/">February (
9)
</a></li>
486 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/03/">March (
9)
</a></li>
488 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/04/">April (
6)
</a></li>
490 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/05/">May (
9)
</a></li>
492 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/06/">June (
10)
</a></li>
494 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/07/">July (
7)
</a></li>
496 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/08/">August (
3)
</a></li>
498 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/09/">September (
5)
</a></li>
500 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/10/">October (
7)
</a></li>
502 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/11/">November (
9)
</a></li>
504 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/12/">December (
3)
</a></li>
511 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/01/">January (
7)
</a></li>
513 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/02/">February (
10)
</a></li>
515 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/03/">March (
17)
</a></li>
517 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/04/">April (
12)
</a></li>
519 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/05/">May (
12)
</a></li>
521 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/06/">June (
20)
</a></li>
523 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/07/">July (
17)
</a></li>
525 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/08/">August (
6)
</a></li>
527 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/09/">September (
9)
</a></li>
529 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/10/">October (
17)
</a></li>
531 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/11/">November (
10)
</a></li>
533 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/12/">December (
7)
</a></li>
540 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/01/">January (
16)
</a></li>
542 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/02/">February (
6)
</a></li>
544 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/03/">March (
6)
</a></li>
546 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/04/">April (
7)
</a></li>
548 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/05/">May (
3)
</a></li>
550 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/06/">June (
2)
</a></li>
552 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/07/">July (
7)
</a></li>
554 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/08/">August (
6)
</a></li>
556 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/09/">September (
4)
</a></li>
558 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/10/">October (
2)
</a></li>
560 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/11/">November (
3)
</a></li>
562 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/12/">December (
1)
</a></li>
569 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/01/">January (
2)
</a></li>
571 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/02/">February (
1)
</a></li>
573 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/03/">March (
3)
</a></li>
575 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/04/">April (
3)
</a></li>
577 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/05/">May (
9)
</a></li>
579 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/06/">June (
14)
</a></li>
581 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/07/">July (
12)
</a></li>
583 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/08/">August (
13)
</a></li>
585 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/09/">September (
7)
</a></li>
587 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/10/">October (
9)
</a></li>
589 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/11/">November (
13)
</a></li>
591 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/12/">December (
12)
</a></li>
598 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/01/">January (
8)
</a></li>
600 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/02/">February (
8)
</a></li>
602 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/03/">March (
12)
</a></li>
604 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/04/">April (
10)
</a></li>
606 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/05/">May (
9)
</a></li>
608 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/06/">June (
3)
</a></li>
610 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/07/">July (
4)
</a></li>
612 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/08/">August (
3)
</a></li>
614 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/09/">September (
1)
</a></li>
616 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/10/">October (
2)
</a></li>
618 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/11/">November (
3)
</a></li>
620 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/12/">December (
3)
</a></li>
627 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/11/">November (
5)
</a></li>
629 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/12/">December (
7)
</a></li>
640 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (
16)
</a></li>
642 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/amiga">amiga (
1)
</a></li>
644 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/aros">aros (
1)
</a></li>
646 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bankid">bankid (
4)
</a></li>
648 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (
9)
</a></li>
650 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (
17)
</a></li>
652 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bsa">bsa (
2)
</a></li>
654 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (
2)
</a></li>
656 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian (
162)
</a></li>
658 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (
158)
</a></li>
660 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (
4)
</a></li>
662 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/digistan">digistan (
10)
</a></li>
664 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/dld">dld (
17)
</a></li>
666 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/docbook">docbook (
25)
</a></li>
668 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
670 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/english">english (
383)
</a></li>
672 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (
23)
</a></li>
674 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (
13)
</a></li>
676 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (
32)
</a></li>
678 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (
9)
</a></li>
680 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (
18)
</a></li>
682 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/h264">h264 (
20)
</a></li>
684 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/intervju">intervju (
42)
</a></li>
686 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (
16)
</a></li>
688 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart (
20)
</a></li>
690 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kodi">kodi (
3)
</a></li>
692 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ldap">ldap (
9)
</a></li>
694 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lego">lego (
4)
</a></li>
696 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lenker">lenker (
8)
</a></li>
698 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (
2)
</a></li>
700 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (
1)
</a></li>
702 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (
8)
</a></li>
704 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (
41)
</a></li>
706 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (
10)
</a></li>
708 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk (
299)
</a></li>
710 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug (
190)
</a></li>
712 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (
33)
</a></li>
714 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/open311">open311 (
2)
</a></li>
716 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (
72)
</a></li>
718 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern (
107)
</a></li>
720 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/raid">raid (
2)
</a></li>
722 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reactos">reactos (
1)
</a></li>
724 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reprap">reprap (
11)
</a></li>
726 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rfid">rfid (
3)
</a></li>
728 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/robot">robot (
10)
</a></li>
730 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rss">rss (
1)
</a></li>
732 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ruter">ruter (
6)
</a></li>
734 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
736 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (
54)
</a></li>
738 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
740 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (
5)
</a></li>
742 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard (
55)
</a></li>
744 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (
6)
</a></li>
746 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (
12)
</a></li>
748 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (
55)
</a></li>
750 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (
4)
</a></li>
752 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/usenix">usenix (
2)
</a></li>
754 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/valg">valg (
9)
</a></li>
756 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (
11)
</a></li>
758 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/video">video (
67)
</a></li>
760 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
762 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/web">web (
41)
</a></li>
768 <p style=
"text-align: right">
769 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>