]> pere.pagekite.me Git - homepage.git/blob - blog/index.rss
New post.
[homepage.git] / blog / index.rss
1 <?xml version="1.0" encoding="utf-8"?>
2 <rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom="http://www.w3.org/2005/Atom">
3 <channel>
4 <title>Petter Reinholdtsen</title>
5 <description></description>
6 <link>http://people.skolelinux.org/pere/blog/</link>
7 <atom:link href="http://people.skolelinux.org/pere/blog/index.rss" rel="self" type="application/rss+xml" />
8
9 <item>
10 <title>First Jessie based Debian Edu released (alpha0)</title>
11 <link>http://people.skolelinux.org/pere/blog/First_Jessie_based_Debian_Edu_released__alpha0_.html</link>
12 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/First_Jessie_based_Debian_Edu_released__alpha0_.html</guid>
13 <pubDate>Mon, 27 Oct 2014 20:40:00 +0100</pubDate>
14 <description>&lt;p&gt;I am happy to report that I on behalf of the Debian Edu team just
15 sent out
16 &lt;a href=&quot;https://lists.debian.org/debian-edu-announce/2014/10/msg00000.html&quot;&gt;this
17 announcement&lt;/a&gt;:&lt;/p&gt;
18
19 &lt;pre&gt;
20 The Debian Edu Team is pleased to announce the release of Debian Edu
21 Jessie 8.0+edu0~alpha0
22
23 Debian Edu is a complete operating system for schools. Through its
24 various installation profiles you can install servers, workstations
25 and laptops which will work together on the school network. With
26 Debian Edu, the teachers themselves or their technical support can
27 roll out a complete multi-user multi-machine study environment within
28 hours or a few days. Debian Edu comes with hundreds of applications
29 pre-installed, but you can always add more packages from Debian.
30
31 For those who want to give Debian Edu Jessie a try, download and
32 installation instructions are available, including detailed
33 instructions in the manual[1] explaining the first steps, such as
34 setting up a network or adding users. Please note that the password
35 for the user your prompted for during installation must have a length
36 of at least 5 characters!
37
38 [1] &amp;lt;URL: &lt;a href=&quot;https://wiki.debian.org/DebianEdu/Documentation/Jessie&quot;&gt;https://wiki.debian.org/DebianEdu/Documentation/Jessie&lt;/a&gt; &amp;gt;
39
40 Would you like to give your school&#39;s computer a longer life? Are you
41 tired of sneaker administration, running from computer to computer
42 reinstalling the operating system? Would you like to administrate all
43 the computers in your school using only a couple of hours every week?
44 Check out Debian Edu Jessie!
45
46 Skolelinux is used by at least two hundred schools all over the world,
47 mostly in Germany and Norway.
48
49 About Debian Edu and Skolelinux
50 ===============================
51
52 Debian Edu, also known as Skolelinux[2], is a Linux distribution based
53 on Debian providing an out-of-the box environment of a completely
54 configured school network. Immediately after installation a school
55 server running all services needed for a school network is set up just
56 waiting for users and machines being added via GOsa², a comfortable
57 Web-UI. A netbooting environment is prepared using PXE, so after
58 initial installation of the main server from CD or USB stick all other
59 machines can be installed via the network. The provided school server
60 provides LDAP database and Kerberos authentication service,
61 centralized home directories, DHCP server, web proxy and many other
62 services. The desktop contains more than 60 educational software
63 packages[3] and more are available from the Debian archive, and
64 schools can choose between KDE, Gnome, LXDE, Xfce and MATE desktop
65 environment.
66
67 [2] &amp;lt;URL: &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;http://www.skolelinux.org/&lt;/a&gt; &amp;gt;
68 [3] &amp;lt;URL: &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html&quot;&gt;http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html&lt;/a&gt; &amp;gt;
69
70 Full release notes and manual
71 =============================
72
73 Below the download URLs there is a list of some of the new features
74 and bugfixes of Debian Edu 8.0+edu0~alpha0 Codename Jessie. The full
75 list is part of the manual. (See the feature list in the manual[4] for
76 the English version.) For some languages manual translations are
77 available, see the manual translation overview[5].
78
79 [4] &amp;lt;URL: &lt;a href=&quot;https://wiki.debian.org/DebianEdu/Documentation/Jessie/Features&quot;&gt;https://wiki.debian.org/DebianEdu/Documentation/Jessie/Features&lt;/a&gt; &amp;gt;
80 [5] &amp;lt;URL: &lt;a href=&quot;http://maintainer.skolelinux.org/debian-edu-doc/&quot;&gt;http://maintainer.skolelinux.org/debian-edu-doc/&lt;/a&gt; &amp;gt;
81
82 Where to get it
83 ---------------
84
85 To download the multiarch netinstall CD release (624 MiB) you can use
86
87 * &lt;a href=&quot;ftp://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso&quot;&gt;ftp://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso&lt;/a&gt;
88 * &lt;a href=&quot;http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso&quot;&gt;http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso&lt;/a&gt;
89 * rsync -avzP ftp.skolelinux.org::skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso .
90
91 The SHA1SUM of this image is: 361188818e036ce67280a572f757de82ebfeb095
92
93 New features for Debian Edu 8.0+edu0~alpha0 Codename Jessie released 2014-10-27
94 ===============================================================================
95
96
97 Installation changes
98 --------------------
99
100 * PXE installation now installs firmware automatically for the hardware present.
101
102 Software updates
103 ----------------
104
105 Everything which is new in Debian Jessie 8.0, eg:
106
107 * Linux kernel 3.16.x
108 * Desktop environments KDE &quot;Plasma&quot; 4.11.12, GNOME 3.14, Xfce 4.10,
109 LXDE 0.5.6 and MATE 1.8 (KDE &quot;Plasma&quot; is installed by default; to
110 choose one of the others see manual.)
111 * the browsers Iceweasel 31 ESR and Chromium 38
112 * !LibreOffice 4.3.3
113 * GOsa 2.7.4
114 * LTSP 5.5.4
115 * CUPS print system 1.7.5
116 * new boot framework: systemd
117 * Educational toolbox GCompris 14.07
118 * Music creator Rosegarden 14.02
119 * Image editor Gimp 2.8.14
120 * Virtual stargazer Stellarium 0.13.0
121 * golearn 0.9
122 * tuxpaint 0.9.22
123 * New version of debian-installer from Debian Jessie.
124 * Debian Jessie includes about 42000 packages available for
125 installation.
126 * More information about Debian Jessie 8.0 is provided in the release
127 notes[6] and the installation manual[7].
128
129 [6] &amp;lt;URL: &lt;a href=&quot;http://www.debian.org/releases/jessie/releasenotes&quot;&gt;http://www.debian.org/releases/jessie/releasenotes&lt;/a&gt; &amp;gt;
130 [7] &amp;lt;URL: &lt;a href=&quot;http://www.debian.org/releases/jessie/installmanual&quot;&gt;http://www.debian.org/releases/jessie/installmanual&lt;/a&gt; &amp;gt;
131
132 Fixed bugs
133 ----------
134
135 * Inserting incorrect DNS information in Gosa will no longer break
136 DNS completely, but instead stop DNS updates until the incorrect
137 information is corrected (Debian bug #710362)
138 * and many others.
139
140 Documentation and translation updates
141 -------------------------------------
142
143 * The Debian Edu Jessie Manual is fully translated to German, French,
144 Italian, Danish and Dutch. Partly translated versions exist for
145 Norwegian Bokmal and Spanish.
146
147 Other changes
148 -------------
149
150 * Due to new Squid settings, powering off or rebooting the main
151 server takes more time.
152 * To manage printers localhost:631 has to be used, currently www:631
153 doesn&#39;t work.
154
155 Regressions / known problems
156 ----------------------------
157
158 * Installing LTSP chroot fails with a bug related to eatmydata about
159 exim4-config failing to run its postinst (see Debian bug #765694
160 and Debian bug #762103).
161 * Munin collection is not properly configured on clients (Debian bug
162 #764594). The fix is available in a newer version of munin-node.
163 * PXE setup for Main Server and Thin Client Server setup does not
164 work when installing on a machine without direct Internet access.
165 Will be fixed when Debian bug #766960 is fixed in Jessie.
166
167 See the status page[8] for the complete list.
168
169 [8] &amp;lt;URL: &lt;a href=&quot;https://wiki.debian.org/DebianEdu/Status/Jessie&quot;&gt;https://wiki.debian.org/DebianEdu/Status/Jessie&lt;/a&gt; &amp;gt;
170
171 How to report bugs
172 ------------------
173
174 &amp;lt;URL: &lt;a href=&quot;http://wiki.debian.org/DebianEdu/HowTo/ReportBugs&quot;&gt;http://wiki.debian.org/DebianEdu/HowTo/ReportBugs&lt;/a&gt; &amp;gt;
175
176 About Debian
177 ============
178
179 The Debian Project was founded in 1993 by Ian Murdock to be a truly
180 free community project. Since then the project has grown to be one of
181 the largest and most influential open source projects. Thousands of
182 volunteers from all over the world work together to create and
183 maintain Debian software. Available in 70 languages, and supporting a
184 huge range of computer types, Debian calls itself the universal
185 operating system.
186
187 Contact Information
188 For further information, please visit the Debian web pages[9] or send
189 mail to press@debian.org.
190
191 [9] &amp;lt;URL: &lt;a href=&quot;http://www.debian.org/&quot;&gt;http://www.debian.org/&lt;/a&gt; &amp;gt;
192 &lt;/pre&gt;
193 </description>
194 </item>
195
196 <item>
197 <title>I spent last weekend recording MakerCon Nordic</title>
198 <link>http://people.skolelinux.org/pere/blog/I_spent_last_weekend_recording_MakerCon_Nordic.html</link>
199 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/I_spent_last_weekend_recording_MakerCon_Nordic.html</guid>
200 <pubDate>Thu, 23 Oct 2014 23:00:00 +0200</pubDate>
201 <description>&lt;p&gt;I spent last weekend at &lt;a href=&quot;http://www.makercon.no/&quot;&gt;Makercon
202 Nordic&lt;/a&gt;, a great conference and workshop for makers in Norway and
203 the surrounding countries. I had volunteered on behalf of the
204 Norwegian Unix Users Group (NUUG) to video record the talks, and we
205 had a great and exhausting time recording the entire day, two days in
206 a row. There were only two of us, Hans-Petter and me, and we used the
207 regular video equipment for NUUG, with a
208 &lt;a href=&quot;http://dvswitch.alioth.debian.org/wiki/&quot;&gt;dvswitch&lt;/a&gt;, a
209 camera and a VGA to DV convert box, and mixed video and slides
210 live.&lt;/p&gt;
211
212 &lt;p&gt;Hans-Petter did the post-processing, consisting of uploading the
213 around 180 GiB of raw video to Youtube, and the result is
214 &lt;a href=&quot;https://www.youtube.com/user/MakerConNordic/&quot;&gt;now becoming
215 public&lt;/a&gt; on the MakerConNordic account. The videos have the license
216 NUUG always use on our recordings, which is
217 &lt;a href=&quot;http://creativecommons.org/licenses/by-sa/3.0/no/&quot;&gt;Creative
218 Commons Navngivelse-Del på samme vilkår 3.0 Norge&lt;/a&gt;. Many great
219 talks available. Check it out! :)&lt;/p&gt;
220 </description>
221 </item>
222
223 <item>
224 <title>listadmin, the quick way to moderate mailman lists - nice free software</title>
225 <link>http://people.skolelinux.org/pere/blog/listadmin__the_quick_way_to_moderate_mailman_lists___nice_free_software.html</link>
226 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/listadmin__the_quick_way_to_moderate_mailman_lists___nice_free_software.html</guid>
227 <pubDate>Wed, 22 Oct 2014 20:00:00 +0200</pubDate>
228 <description>&lt;p&gt;If you ever had to moderate a mailman list, like the ones on
229 alioth.debian.org, you know the web interface is fairly slow to
230 operate. First you visit one web page, enter the moderation password
231 and get a new page shown with a list of all the messages to moderate
232 and various options for each email address. This take a while for
233 every list you moderate, and you need to do it regularly to do a good
234 job as a list moderator. But there is a quick alternative,
235 &lt;a href=&quot;http://heim.ifi.uio.no/kjetilho/hacks/#listadmin&quot;&gt;the
236 listadmin program&lt;/a&gt;. It allow you to check lists for new messages
237 to moderate in a fraction of a second. Here is a test run on two
238 lists I recently took over:&lt;/p&gt;
239
240 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
241 % time listadmin xiph
242 fetching data for pkg-xiph-commits@lists.alioth.debian.org ... nothing in queue
243 fetching data for pkg-xiph-maint@lists.alioth.debian.org ... nothing in queue
244
245 real 0m1.709s
246 user 0m0.232s
247 sys 0m0.012s
248 %
249 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
250
251 &lt;p&gt;In 1.7 seconds I had checked two mailing lists and confirmed that
252 there are no message in the moderation queue. Every morning I
253 currently moderate 68 mailman lists, and it normally take around two
254 minutes. When I took over the two pkg-xiph lists above a few days
255 ago, there were 400 emails waiting in the moderator queue. It took me
256 less than 15 minutes to process them all using the listadmin
257 program.&lt;/p&gt;
258
259 &lt;p&gt;If you install
260 &lt;a href=&quot;https://tracker.debian.org/pkg/listadmin&quot;&gt;the listadmin
261 package&lt;/a&gt; from Debian and create a file &lt;tt&gt;~/.listadmin.ini&lt;/tt&gt;
262 with content like this, the moderation task is a breeze:&lt;/p&gt;
263
264 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
265 username username@example.org
266 spamlevel 23
267 default discard
268 discard_if_reason &quot;Posting restricted to members only. Remove us from your mail list.&quot;
269
270 password secret
271 adminurl https://{domain}/mailman/admindb/{list}
272 mailman-list@lists.example.com
273
274 password hidden
275 other-list@otherserver.example.org
276 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
277
278 &lt;p&gt;There are other options to set as well. Check the manual page to
279 learn the details.&lt;/p&gt;
280
281 &lt;p&gt;If you are forced to moderate lists on a mailman installation where
282 the SSL certificate is self signed or not properly signed by a
283 generally accepted signing authority, you can set a environment
284 variable when calling listadmin to disable SSL verification:&lt;/p&gt;
285
286 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
287 PERL_LWP_SSL_VERIFY_HOSTNAME=0 listadmin
288 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
289
290 &lt;p&gt;If you want to moderate a subset of the lists you take care of, you
291 can provide an argument to the listadmin script like I do in the
292 initial screen dump (the xiph argument). Using an argument, only
293 lists matching the argument string will be processed. This make it
294 quick to accept messages if you notice the moderation request in your
295 email.&lt;/p&gt;
296
297 &lt;p&gt;Without the listadmin program, I would never be the moderator of 68
298 mailing lists, as I simply do not have time to spend on that if the
299 process was any slower. The listadmin program have saved me hours of
300 time I could spend elsewhere over the years. It truly is nice free
301 software.&lt;/p&gt;
302
303 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
304 activities, please send Bitcoin donations to my address
305 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&amp;label=PetterReinholdtsenBlog&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
306
307 &lt;p&gt;Update 2014-10-27: Added missing &#39;username&#39; statement in
308 configuration example. Also, I&#39;ve been told that the
309 PERL_LWP_SSL_VERIFY_HOSTNAME=0 setting do not work for everyone. Not
310 sure why.&lt;/p&gt;
311 </description>
312 </item>
313
314 <item>
315 <title>Debian Jessie, PXE and automatic firmware installation</title>
316 <link>http://people.skolelinux.org/pere/blog/Debian_Jessie__PXE_and_automatic_firmware_installation.html</link>
317 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_Jessie__PXE_and_automatic_firmware_installation.html</guid>
318 <pubDate>Fri, 17 Oct 2014 14:10:00 +0200</pubDate>
319 <description>&lt;p&gt;When PXE installing laptops with Debian, I often run into the
320 problem that the WiFi card require some firmware to work properly.
321 And it has been a pain to fix this using preseeding in Debian.
322 Normally something more is needed. But thanks to
323 &lt;a href=&quot;https://packages.qa.debian.org/i/isenkram.html&quot;&gt;my isenkram
324 package&lt;/a&gt; and its recent tasksel extension, it has now become easy
325 to do this using simple preseeding.&lt;/p&gt;
326
327 &lt;p&gt;The isenkram-cli package provide tasksel tasks which will install
328 firmware for the hardware found in the machine (actually, requested by
329 the kernel modules for the hardware). (It can also install user space
330 programs supporting the hardware detected, but that is not the focus
331 of this story.)&lt;/p&gt;
332
333 &lt;p&gt;To get this working in the default installation, two preeseding
334 values are needed. First, the isenkram-cli package must be installed
335 into the target chroot (aka the hard drive) before tasksel is executed
336 in the pkgsel step of the debian-installer system. This is done by
337 preseeding the base-installer/includes debconf value to include the
338 isenkram-cli package. The package name is next passed to debootstrap
339 for installation. With the isenkram-cli package in place, tasksel
340 will automatically use the isenkram tasks to detect hardware specific
341 packages for the machine being installed and install them, because
342 isenkram-cli contain tasksel tasks.&lt;/p&gt;
343
344 &lt;p&gt;Second, one need to enable the non-free APT repository, because
345 most firmware unfortunately is non-free. This is done by preseeding
346 the apt-mirror-setup step. This is unfortunate, but for a lot of
347 hardware it is the only option in Debian.&lt;/p&gt;
348
349 &lt;p&gt;The end result is two lines needed in your preseeding file to get
350 firmware installed automatically by the installer:&lt;/p&gt;
351
352 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
353 base-installer base-installer/includes string isenkram-cli
354 apt-mirror-setup apt-setup/non-free boolean true
355 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
356
357 &lt;p&gt;The current version of isenkram-cli in testing/jessie will install
358 both firmware and user space packages when using this method. It also
359 do not work well, so use version 0.15 or later. Installing both
360 firmware and user space packages might give you a bit more than you
361 want, so I decided to split the tasksel task in two, one for firmware
362 and one for user space programs. The firmware task is enabled by
363 default, while the one for user space programs is not. This split is
364 implemented in the package currently in unstable.&lt;/p&gt;
365
366 &lt;p&gt;If you decide to give this a go, please let me know (via email) how
367 this recipe work for you. :)&lt;/p&gt;
368
369 &lt;p&gt;So, I bet you are wondering, how can this work. First and
370 foremost, it work because tasksel is modular, and driven by whatever
371 files it find in /usr/lib/tasksel/ and /usr/share/tasksel/. So the
372 isenkram-cli package place two files for tasksel to find. First there
373 is the task description file (/usr/share/tasksel/descs/isenkram.desc):&lt;/p&gt;
374
375 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
376 Task: isenkram-packages
377 Section: hardware
378 Description: Hardware specific packages (autodetected by isenkram)
379 Based on the detected hardware various hardware specific packages are
380 proposed.
381 Test-new-install: show show
382 Relevance: 8
383 Packages: for-current-hardware
384
385 Task: isenkram-firmware
386 Section: hardware
387 Description: Hardware specific firmware packages (autodetected by isenkram)
388 Based on the detected hardware various hardware specific firmware
389 packages are proposed.
390 Test-new-install: mark show
391 Relevance: 8
392 Packages: for-current-hardware-firmware
393 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
394
395 &lt;p&gt;The key parts are Test-new-install which indicate how the task
396 should be handled and the Packages line referencing to a script in
397 /usr/lib/tasksel/packages/. The scripts use other scripts to get a
398 list of packages to install. The for-current-hardware-firmware script
399 look like this to list relevant firmware for the machine:
400
401 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
402 #!/bin/sh
403 #
404 PATH=/usr/sbin:$PATH
405 export PATH
406 isenkram-autoinstall-firmware -l
407 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
408
409 &lt;p&gt;With those two pieces in place, the firmware is installed by
410 tasksel during the normal d-i run. :)&lt;/p&gt;
411
412 &lt;p&gt;If you want to test what tasksel will install when isenkram-cli is
413 installed, run &lt;tt&gt;DEBIAN_PRIORITY=critical tasksel --test
414 --new-install&lt;/tt&gt; to get the list of packages that tasksel would
415 install.&lt;/p&gt;
416
417 &lt;p&gt;&lt;a href=&quot;https://wiki.debian.org/DebianEdu/&quot;&gt;Debian Edu&lt;/a&gt; will be
418 pilots in testing this feature, as isenkram is used there now to
419 install firmware, replacing the earlier scripts.&lt;/p&gt;
420 </description>
421 </item>
422
423 <item>
424 <title>Ubuntu used to show the bread prizes at ICA Storo</title>
425 <link>http://people.skolelinux.org/pere/blog/Ubuntu_used_to_show_the_bread_prizes_at_ICA_Storo.html</link>
426 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Ubuntu_used_to_show_the_bread_prizes_at_ICA_Storo.html</guid>
427 <pubDate>Sat, 4 Oct 2014 15:20:00 +0200</pubDate>
428 <description>&lt;p&gt;Today I came across an unexpected Ubuntu boot screen. Above the
429 bread shelf on the ICA shop at Storo in Oslo, the grub menu of Ubuntu
430 with Linux kernel 3.2.0-23 (ie probably version 12.04 LTS) was stuck
431 on a screen normally showing the bread types and prizes:&lt;/p&gt;
432
433 &lt;p align=&quot;center&quot;&gt;&lt;img width=&quot;70%&quot; src=&quot;http://people.skolelinux.org/pere/blog/images/2014-10-04-ubuntu-ica-storo-crop.jpeg&quot;&gt;&lt;/p&gt;
434
435 &lt;p&gt;If it had booted as it was supposed to, I would never had known
436 about this hidden Linux installation. It is interesting what
437 &lt;a href=&quot;http://revealingerrors.com/&quot;&gt;errors can reveal&lt;/a&gt;.&lt;/p&gt;
438 </description>
439 </item>
440
441 <item>
442 <title>New lsdvd release version 0.17 is ready</title>
443 <link>http://people.skolelinux.org/pere/blog/New_lsdvd_release_version_0_17_is_ready.html</link>
444 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/New_lsdvd_release_version_0_17_is_ready.html</guid>
445 <pubDate>Sat, 4 Oct 2014 08:40:00 +0200</pubDate>
446 <description>&lt;p&gt;The &lt;a href=&quot;https://sourceforge.net/p/lsdvd/&quot;&gt;lsdvd project&lt;/a&gt;
447 got a new set of developers a few weeks ago, after the original
448 developer decided to step down and pass the project to fresh blood.
449 This project is now maintained by Petter Reinholdtsen and Steve
450 Dibb.&lt;/p&gt;
451
452 &lt;p&gt;I just wrapped up
453 &lt;a href=&quot;https://sourceforge.net/p/lsdvd/mailman/message/32896061/&quot;&gt;a
454 new lsdvd release&lt;/a&gt;, available in git or from
455 &lt;a href=&quot;https://sourceforge.net/projects/lsdvd/files/lsdvd/&quot;&gt;the
456 download page&lt;/a&gt;. This is the changelog dated 2014-10-03 for version
457 0.17.&lt;/p&gt;
458
459 &lt;ul&gt;
460
461 &lt;li&gt;Ignore &#39;phantom&#39; audio, subtitle tracks&lt;/li&gt;
462 &lt;li&gt;Check for garbage in the program chains, which indicate that a track is
463 non-existant, to work around additional copy protection&lt;/li&gt;
464 &lt;li&gt;Fix displaying content type for audio tracks, subtitles&lt;/li&gt;
465 &lt;li&gt;Fix pallete display of first entry&lt;/li&gt;
466 &lt;li&gt;Fix include orders&lt;/li&gt;
467 &lt;li&gt;Ignore read errors in titles that would not be displayed anyway&lt;/li&gt;
468 &lt;li&gt;Fix the chapter count&lt;/li&gt;
469 &lt;li&gt;Make sure the array size and the array limit used when initialising
470 the palette size is the same.&lt;/li&gt;
471 &lt;li&gt;Fix array printing.&lt;/li&gt;
472 &lt;li&gt;Correct subsecond calculations.&lt;/li&gt;
473 &lt;li&gt;Add sector information to the output format.&lt;/li&gt;
474 &lt;li&gt;Clean up code to be closer to ANSI C and compile without warnings
475 with more GCC compiler warnings.&lt;/li&gt;
476
477 &lt;/ul&gt;
478
479 &lt;p&gt;This change bring together patches for lsdvd in use in various
480 Linux and Unix distributions, as well as patches submitted to the
481 project the last nine years. Please check it out. :)&lt;/p&gt;
482 </description>
483 </item>
484
485 <item>
486 <title>How to test Debian Edu Jessie despite some fatal problems with the installer</title>
487 <link>http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html</link>
488 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html</guid>
489 <pubDate>Fri, 26 Sep 2014 12:20:00 +0200</pubDate>
490 <description>&lt;p&gt;The &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux
491 project&lt;/a&gt; provide a Linux solution for schools, including a
492 powerful desktop with education software, a central server providing
493 web pages, user database, user home directories, central login and PXE
494 boot of both clients without disk and the installation to install Debian
495 Edu on machines with disk (and a few other services perhaps to small
496 to mention here). We in the Debian Edu team are currently working on
497 the Jessie based version, trying to get everything in shape before the
498 freeze, to avoid having to maintain our own package repository in the
499 future. The
500 &lt;a href=&quot;https://wiki.debian.org/DebianEdu/Status/Jessie&quot;&gt;current
501 status&lt;/a&gt; can be seen on the Debian wiki, and there is still heaps of
502 work left. Some fatal problems block testing, breaking the installer,
503 but it is possible to work around these to get anyway. Here is a
504 recipe on how to get the installation limping along.&lt;/p&gt;
505
506 &lt;p&gt;First, download the test ISO via
507 &lt;a href=&quot;ftp://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso&quot;&gt;ftp&lt;/a&gt;,
508 &lt;a href=&quot;http://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso&quot;&gt;http&lt;/a&gt;
509 or rsync (use
510 ftp.skolelinux.org::cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso).
511 The ISO build was broken on Tuesday, so we do not get a new ISO every
512 12 hours or so, but thankfully the ISO we already got we are able to
513 install with some tweaking.&lt;/p&gt;
514
515 &lt;p&gt;When you get to the Debian Edu profile question, go to tty2
516 (use Alt-Ctrl-F2), run&lt;/p&gt;
517
518 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
519 nano /usr/bin/edu-eatmydata-install
520 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
521
522 &lt;p&gt;and add &#39;exit 0&#39; as the second line, disabling the eatmydata
523 optimization. Return to the installation, select the profile you want
524 and continue. Without this change, exim4-config will fail to install
525 due to a known bug in eatmydata.&lt;/p&gt;
526
527 &lt;p&gt;When you get the grub question at the end, answer /dev/sda (or if
528 this do not work, figure out what your correct value would be. All my
529 test machines need /dev/sda, so I have no advice if it do not fit
530 your need.&lt;/p&gt;
531
532 &lt;p&gt;If you installed a profile including a graphical desktop, log in as
533 root after the initial boot from hard drive, and install the
534 education-desktop-XXX metapackage. XXX can be kde, gnome, lxde, xfce
535 or mate. If you want several desktop options, install more than one
536 metapackage. Once this is done, reboot and you should have a working
537 graphical login screen. This workaround should no longer be needed
538 once the education-tasks package version 1.801 enter testing in two
539 days.&lt;/p&gt;
540
541 &lt;p&gt;I believe the ISO build will start working on two days when the new
542 tasksel package enter testing and Steve McIntyre get a chance to
543 update the debian-cd git repository. The eatmydata, grub and desktop
544 issues are already fixed in unstable and testing, and should show up
545 on the ISO as soon as the ISO build start working again. Well the
546 eatmydata optimization is really just disabled. The proper fix
547 require an upload by the eatmydata maintainer applying the patch
548 provided in bug &lt;a href=&quot;https://bugs.debian.org/702711&quot;&gt;#702711&lt;/a&gt;.
549 The rest have proper fixes in unstable.&lt;/p&gt;
550
551 &lt;p&gt;I hope this get you going with the installation testing, as we are
552 quickly running out of time trying to get our Jessie based
553 installation ready before the distribution freeze in a month.&lt;/p&gt;
554 </description>
555 </item>
556
557 <item>
558 <title>Suddenly I am the new upstream of the lsdvd command line tool</title>
559 <link>http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html</link>
560 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html</guid>
561 <pubDate>Thu, 25 Sep 2014 11:20:00 +0200</pubDate>
562 <description>&lt;p&gt;I use the &lt;a href=&quot;https://sourceforge.net/p/lsdvd/&quot;&gt;lsdvd tool&lt;/a&gt;
563 to handle my fairly large DVD collection. It is a nice command line
564 tool to get details about a DVD, like title, tracks, track length,
565 etc, in XML, Perl or human readable format. But lsdvd have not seen
566 any new development since 2006 and had a few irritating bugs affecting
567 its use with some DVDs. Upstream seemed to be dead, and in January I
568 sent a small probe asking for a version control repository for the
569 project, without any reply. But I use it regularly and would like to
570 get &lt;a href=&quot;https://packages.qa.debian.org/lsdvd&quot;&gt;an updated version
571 into Debian&lt;/a&gt;. So two weeks ago I tried harder to get in touch with
572 the project admin, and after getting a reply from him explaining that
573 he was no longer interested in the project, I asked if I could take
574 over. And yesterday, I became project admin.&lt;/p&gt;
575
576 &lt;p&gt;I&#39;ve been in touch with a Gentoo developer and the Debian
577 maintainer interested in joining forces to maintain the upstream
578 project, and I hope we can get a new release out fairly quickly,
579 collecting the patches spread around on the internet into on place.
580 I&#39;ve added the relevant Debian patches to the freshly created git
581 repository, and expect the Gentoo patches to make it too. If you got
582 a DVD collection and care about command line tools, check out
583 &lt;a href=&quot;https://sourceforge.net/p/lsdvd/git/ci/master/tree/&quot;&gt;the git source&lt;/a&gt; and join
584 &lt;a href=&quot;https://sourceforge.net/p/lsdvd/mailman/&quot;&gt;the project mailing
585 list&lt;/a&gt;. :)&lt;/p&gt;
586 </description>
587 </item>
588
589 <item>
590 <title>Hva henger under skibrua over E16 på Sollihøgda?</title>
591 <link>http://people.skolelinux.org/pere/blog/Hva_henger_under_skibrua_over_E16_p__Sollih_gda_.html</link>
592 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Hva_henger_under_skibrua_over_E16_p__Sollih_gda_.html</guid>
593 <pubDate>Sun, 21 Sep 2014 09:50:00 +0200</pubDate>
594 <description>&lt;p&gt;Rundt omkring i Oslo og Østlandsområdet henger det bokser over
595 veiene som jeg har lurt på hva gjør. De har ut fra plassering og
596 vinkling sett ut som bokser som sniffer ut et eller annet fra
597 forbipasserende trafikk, men det har vært uklart for meg hva det er de
598 leser av. Her om dagen tok jeg bilde av en slik boks som henger under
599 &lt;a href=&quot;http://www.openstreetmap.no/?zoom=19&amp;mlat=59.96396&amp;mlon=10.34443&amp;layers=B00000&quot;&gt;ei
600 skibru på Sollihøgda&lt;/a&gt;:&lt;/p&gt;
601
602 &lt;p align=&quot;center&quot;&gt;&lt;img width=&quot;60%&quot; src=&quot;http://people.skolelinux.org/pere/blog/images/2014-09-13-kapsch-sollihogda-crop.jpeg&quot;&gt;&lt;/p&gt;
603
604 &lt;p&gt;Boksen er tydelig merket «Kapsch &gt;&gt;&gt;», logoen til
605 &lt;a href=&quot;http://www.kapsch.net/&quot;&gt;det sveitsiske selskapet Kapsch&lt;/a&gt; som
606 blant annet lager sensorsystemer for veitrafikk. Men de lager mye
607 forskjellig, og jeg kjente ikke igjen boksen på utseendet etter en
608 kjapp titt på produktlista til selskapet.&lt;/p&gt;
609
610 &lt;p&gt;I og med at boksen henger over veien E16, en riksvei vedlikeholdt
611 av Statens Vegvesen, så antok jeg at det burde være mulig å bruke
612 REST-API-et som gir tilgang til vegvesenets database over veier,
613 skilter og annet veirelatert til å finne ut hva i alle dager dette
614 kunne være. De har både
615 &lt;a href=&quot;https://www.vegvesen.no/nvdb/api/dokumentasjon/datakatalog&quot;&gt;en
616 datakatalog&lt;/a&gt; og
617 &lt;a href=&quot;https://www.vegvesen.no/nvdb/api/dokumentasjon/sok&quot;&gt;et
618 søk&lt;/a&gt;, der en kan søke etter ulike typer oppføringer innen for et
619 gitt geografisk område. Jeg laget et enkelt shell-script for å hente
620 ut antall av en gitt type innenfor området skibrua dekker, og listet
621 opp navnet på typene som ble funnet. Orket ikke slå opp hvordan
622 URL-koding av aktuelle strenger kunne gjøres mer generisk, og brukte
623 en stygg sed-linje i stedet.&lt;/p&gt;
624
625 &lt;blockquote&gt;&lt;pre&gt;
626 #!/bin/sh
627 urlmap() {
628 sed \
629 -e &#39;s/ / /g&#39; -e &#39;s/{/%7B/g&#39; \
630 -e &#39;s/}/%7D/g&#39; -e &#39;s/\[/%5B/g&#39; \
631 -e &#39;s/\]/%5D/g&#39; -e &#39;s/ /%20/g&#39; \
632 -e &#39;s/,/%2C/g&#39; -e &#39;s/\&quot;/%22/g&#39; \
633 -e &#39;s/:/%3A/g&#39;
634 }
635
636 lookup() {
637 url=&quot;$1&quot;
638 curl -s -H &#39;Accept: application/vnd.vegvesen.nvdb-v1+xml&#39; \
639 &quot;https://www.vegvesen.no/nvdb/api$url&quot; | xmllint --format -
640 }
641
642 for id in $(seq 1 874) ; do
643 search=&quot;{
644 lokasjon: {
645 bbox: \&quot;10.34425,59.96386,10.34458,59.96409\&quot;,
646 srid: \&quot;WGS84\&quot;
647 },
648 objektTyper: [{
649 id: $id, antall: 10
650 }]
651 }&quot;
652
653 query=/sok?kriterie=$(echo $search | urlmap)
654 if lookup &quot;$query&quot; |
655 grep -q &#39;&amp;lt;totaltAntallReturnert&gt;0&amp;lt;&#39;
656 then
657 :
658 else
659 echo $id
660 lookup &quot;/datakatalog/objekttyper/$id&quot; |grep &#39;^ &amp;lt;navn&gt;&#39;
661 fi
662 done
663
664 exit 0
665 &lt;/pre&gt;&lt;/blockquote&gt;
666
667 Aktuelt ID-område 1-874 var riktig i datakatalogen da jeg laget
668 scriptet. Det vil endre seg over tid. Skriptet listet så opp
669 aktuelle typer i og rundt skibrua:
670
671 &lt;blockquote&gt;&lt;pre&gt;
672 5
673 &amp;lt;navn&gt;Rekkverk&amp;lt;/navn&gt;
674 14
675 &amp;lt;navn&gt;Rekkverksende&amp;lt;/navn&gt;
676 47
677 &amp;lt;navn&gt;Trafikklomme&amp;lt;/navn&gt;
678 49
679 &amp;lt;navn&gt;Trafikkøy&amp;lt;/navn&gt;
680 60
681 &amp;lt;navn&gt;Bru&amp;lt;/navn&gt;
682 79
683 &amp;lt;navn&gt;Stikkrenne/Kulvert&amp;lt;/navn&gt;
684 80
685 &amp;lt;navn&gt;Grøft, åpen&amp;lt;/navn&gt;
686 86
687 &amp;lt;navn&gt;Belysningsstrekning&amp;lt;/navn&gt;
688 95
689 &amp;lt;navn&gt;Skiltpunkt&amp;lt;/navn&gt;
690 96
691 &amp;lt;navn&gt;Skiltplate&amp;lt;/navn&gt;
692 98
693 &amp;lt;navn&gt;Referansestolpe&amp;lt;/navn&gt;
694 99
695 &amp;lt;navn&gt;Vegoppmerking, langsgående&amp;lt;/navn&gt;
696 105
697 &amp;lt;navn&gt;Fartsgrense&amp;lt;/navn&gt;
698 106
699 &amp;lt;navn&gt;Vinterdriftsstrategi&amp;lt;/navn&gt;
700 172
701 &amp;lt;navn&gt;Trafikkdeler&amp;lt;/navn&gt;
702 241
703 &amp;lt;navn&gt;Vegdekke&amp;lt;/navn&gt;
704 293
705 &amp;lt;navn&gt;Breddemåling&amp;lt;/navn&gt;
706 301
707 &amp;lt;navn&gt;Kantklippareal&amp;lt;/navn&gt;
708 318
709 &amp;lt;navn&gt;Snø-/isrydding&amp;lt;/navn&gt;
710 445
711 &amp;lt;navn&gt;Skred&amp;lt;/navn&gt;
712 446
713 &amp;lt;navn&gt;Dokumentasjon&amp;lt;/navn&gt;
714 452
715 &amp;lt;navn&gt;Undergang&amp;lt;/navn&gt;
716 528
717 &amp;lt;navn&gt;Tverrprofil&amp;lt;/navn&gt;
718 532
719 &amp;lt;navn&gt;Vegreferanse&amp;lt;/navn&gt;
720 534
721 &amp;lt;navn&gt;Region&amp;lt;/navn&gt;
722 535
723 &amp;lt;navn&gt;Fylke&amp;lt;/navn&gt;
724 536
725 &amp;lt;navn&gt;Kommune&amp;lt;/navn&gt;
726 538
727 &amp;lt;navn&gt;Gate&amp;lt;/navn&gt;
728 539
729 &amp;lt;navn&gt;Transportlenke&amp;lt;/navn&gt;
730 540
731 &amp;lt;navn&gt;Trafikkmengde&amp;lt;/navn&gt;
732 570
733 &amp;lt;navn&gt;Trafikkulykke&amp;lt;/navn&gt;
734 571
735 &amp;lt;navn&gt;Ulykkesinvolvert enhet&amp;lt;/navn&gt;
736 572
737 &amp;lt;navn&gt;Ulykkesinvolvert person&amp;lt;/navn&gt;
738 579
739 &amp;lt;navn&gt;Politidistrikt&amp;lt;/navn&gt;
740 583
741 &amp;lt;navn&gt;Vegbredde&amp;lt;/navn&gt;
742 591
743 &amp;lt;navn&gt;Høydebegrensning&amp;lt;/navn&gt;
744 592
745 &amp;lt;navn&gt;Nedbøyningsmåling&amp;lt;/navn&gt;
746 597
747 &amp;lt;navn&gt;Støy-luft, Strekningsdata&amp;lt;/navn&gt;
748 601
749 &amp;lt;navn&gt;Oppgravingsdata&amp;lt;/navn&gt;
750 602
751 &amp;lt;navn&gt;Oppgravingslag&amp;lt;/navn&gt;
752 603
753 &amp;lt;navn&gt;PMS-parsell&amp;lt;/navn&gt;
754 604
755 &amp;lt;navn&gt;Vegnormalstrekning&amp;lt;/navn&gt;
756 605
757 &amp;lt;navn&gt;Værrelatert strekning&amp;lt;/navn&gt;
758 616
759 &amp;lt;navn&gt;Feltstrekning&amp;lt;/navn&gt;
760 617
761 &amp;lt;navn&gt;Adressepunkt&amp;lt;/navn&gt;
762 626
763 &amp;lt;navn&gt;Friksjonsmåleserie&amp;lt;/navn&gt;
764 629
765 &amp;lt;navn&gt;Vegdekke, flatelapping&amp;lt;/navn&gt;
766 639
767 &amp;lt;navn&gt;Kurvatur, horisontalelement&amp;lt;/navn&gt;
768 640
769 &amp;lt;navn&gt;Kurvatur, vertikalelement&amp;lt;/navn&gt;
770 642
771 &amp;lt;navn&gt;Kurvatur, vertikalpunkt&amp;lt;/navn&gt;
772 643
773 &amp;lt;navn&gt;Statistikk, trafikkmengde&amp;lt;/navn&gt;
774 647
775 &amp;lt;navn&gt;Statistikk, vegbredde&amp;lt;/navn&gt;
776 774
777 &amp;lt;navn&gt;Nedbøyningsmåleserie&amp;lt;/navn&gt;
778 775
779 &amp;lt;navn&gt;ATK, influensstrekning&amp;lt;/navn&gt;
780 794
781 &amp;lt;navn&gt;Systemobjekt&amp;lt;/navn&gt;
782 810
783 &amp;lt;navn&gt;Vinterdriftsklasse&amp;lt;/navn&gt;
784 821
785 &amp;lt;navn&gt;Funksjonell vegklasse&amp;lt;/navn&gt;
786 825
787 &amp;lt;navn&gt;Kurvatur, stigning&amp;lt;/navn&gt;
788 838
789 &amp;lt;navn&gt;Vegbredde, beregnet&amp;lt;/navn&gt;
790 862
791 &amp;lt;navn&gt;Reisetidsregistreringspunkt&amp;lt;/navn&gt;
792 871
793 &amp;lt;navn&gt;Bruksklasse&amp;lt;/navn&gt;
794 &lt;/pre&gt;&lt;/blockquote&gt;
795
796 &lt;p&gt;Av disse ser ID 775 og 862 mest relevant ut. ID 775 antar jeg
797 refererer til fotoboksen som står like ved brua, mens
798 «Reisetidsregistreringspunkt» kanskje kan være boksen som henger der.
799 Hvordan finner jeg så ut hva dette kan være for noe. En titt på
800 &lt;a href=&quot;http://labs.vegdata.no/nvdb-datakatalog/862-Reisetidsregistreringspunkt/&quot;&gt;datakatalogsiden
801 for ID 862/Reisetidsregistreringspunkt&lt;/a&gt; viser at det er finnes 53
802 slike målere i Norge, og hvor de er plassert, men gir ellers få
803 detaljer. Det er plassert 40 på østlandet og 13 i Trondheimsregionen.
804 Men siden nevner «AutoPASS», og hvis en slår opp oppføringen på
805 Sollihøgda nevner den «Ciber AS» som ID for eksternt system. (Kan det
806 være snakk om
807 &lt;a href=&quot;http://www.proff.no/selskap/ciber-norge-as/oslo/internettdesign-og-programmering/Z0I3KMF4/&quot;&gt;Ciber
808 Norge AS&lt;/a&gt;, et selskap eid av Ciber Europe Bv?) Et nettsøk på
809 «Ciber AS autopass» fører meg til en artikkel fra NRK Trøndelag i
810 2013 med tittel
811 «&lt;a href=&quot;http://www.nrk.no/trondelag/sjekk-dette-hvis-du-vil-unnga-ko-1.11327947&quot;&gt;Sjekk
812 dette hvis du vil unngå kø&lt;/a&gt;». Artikkelen henviser til vegvesenets
813 nettside
814 &lt;a href=&quot;http://www.reisetider.no/reisetid/forside.html&quot;&gt;reisetider.no&lt;/a&gt;
815 som har en
816 &lt;a href=&quot;http://www.reisetider.no/reisetid/omrade.html?omrade=5&quot;&gt;kartside
817 for Østlandet&lt;/a&gt; som viser at det måles mellom Sandvika og Sollihøgda.
818 Det kan dermed se ut til at jeg har funnet ut hva boksene gjør.&lt;/p&gt;
819
820 &lt;p&gt;Hvis det stemmer, så er dette bokser som leser av AutoPASS-ID-en
821 til alle passerende biler med AutoPASS-brikke, og dermed gjør det mulig
822 for de som kontrollerer boksene å holde rede på hvor en gitt bil er
823 når den passerte et slikt målepunkt. NRK-artikkelen forteller at
824 denne informasjonen i dag kun brukes til å koble to
825 AutoPASS-brikkepasseringer passeringer sammen for å beregne
826 reisetiden, og at bruken er godkjent av Datatilsynet. Det er desverre
827 ikke mulig for en sjåfør som passerer under en slik boks å kontrollere
828 at AutoPASS-ID-en kun brukes til dette i dag og i fremtiden.&lt;/p&gt;
829
830 &lt;p&gt;I tillegg til denne type AutoPASS-sniffere vet jeg at det også
831 finnes mange automatiske stasjoner som tar betalt pr. passering (aka
832 bomstasjoner), og der lagres informasjon om tid, sted og bilnummer i
833 10 år. Finnes det andre slike sniffere plassert ut på veiene?&lt;/p&gt;
834
835 &lt;p&gt;Personlig har jeg valgt å ikke bruke AutoPASS-brikke, for å gjøre
836 det vanskeligere og mer kostbart for de som vil invadere privatsfæren
837 og holde rede på hvor bilen min beveger seg til enhver tid. Jeg håper
838 flere vil gjøre det samme, selv om det gir litt høyere private
839 utgifter (dyrere bompassering). Vern om privatsfæren koster i disse
840 dager.&lt;/p&gt;
841
842 &lt;p&gt;Takk til Jan Kristian Jensen i Statens Vegvesen for tips om
843 dokumentasjon på vegvesenets REST-API.&lt;/p&gt;
844 </description>
845 </item>
846
847 <item>
848 <title>Speeding up the Debian installer using eatmydata and dpkg-divert</title>
849 <link>http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html</link>
850 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html</guid>
851 <pubDate>Tue, 16 Sep 2014 14:00:00 +0200</pubDate>
852 <description>&lt;p&gt;The &lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian&lt;/a&gt; installer could be
853 a lot quicker. When we install more than 2000 packages in
854 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Skolelinux / Debian Edu&lt;/a&gt; using
855 tasksel in the installer, unpacking the binary packages take forever.
856 A part of the slow I/O issue was discussed in
857 &lt;a href=&quot;https://bugs.debian.org/613428&quot;&gt;bug #613428&lt;/a&gt; about too
858 much file system sync-ing done by dpkg, which is the package
859 responsible for unpacking the binary packages. Other parts (like code
860 executed by postinst scripts) might also sync to disk during
861 installation. All this sync-ing to disk do not really make sense to
862 me. If the machine crash half-way through, I start over, I do not try
863 to salvage the half installed system. So the failure sync-ing is
864 supposed to protect against, hardware or system crash, is not really
865 relevant while the installer is running.&lt;/p&gt;
866
867 &lt;p&gt;A few days ago, I thought of a way to get rid of all the file
868 system sync()-ing in a fairly non-intrusive way, without the need to
869 change the code in several packages. The idea is not new, but I have
870 not heard anyone propose the approach using dpkg-divert before. It
871 depend on the small and clever package
872 &lt;a href=&quot;https://packages.qa.debian.org/eatmydata&quot;&gt;eatmydata&lt;/a&gt;, which
873 uses LD_PRELOAD to replace the system functions for syncing data to
874 disk with functions doing nothing, thus allowing programs to live
875 dangerous while speeding up disk I/O significantly. Instead of
876 modifying the implementation of dpkg, apt and tasksel (which are the
877 packages responsible for selecting, fetching and installing packages),
878 it occurred to me that we could just divert the programs away, replace
879 them with a simple shell wrapper calling
880 &quot;eatmydata&amp;nbsp;$program&amp;nbsp;$@&quot;, to get the same effect.
881 Two days ago I decided to test the idea, and wrapped up a simple
882 implementation for the Debian Edu udeb.&lt;/p&gt;
883
884 &lt;p&gt;The effect was stunning. In my first test it reduced the running
885 time of the pkgsel step (installing tasks) from 64 to less than 44
886 minutes (20 minutes shaved off the installation) on an old Dell
887 Latitude D505 machine. I am not quite sure what the optimised time
888 would have been, as I messed up the testing a bit, causing the debconf
889 priority to get low enough for two questions to pop up during
890 installation. As soon as I saw the questions I moved the installation
891 along, but do not know how long the question were holding up the
892 installation. I did some more measurements using Debian Edu Jessie,
893 and got these results. The time measured is the time stamp in
894 /var/log/syslog between the &quot;pkgsel: starting tasksel&quot; and the
895 &quot;pkgsel: finishing up&quot; lines, if you want to do the same measurement
896 yourself. In Debian Edu, the tasksel dialog do not show up, and the
897 timing thus do not depend on how quickly the user handle the tasksel
898 dialog.&lt;/p&gt;
899
900 &lt;p&gt;&lt;table&gt;
901
902 &lt;tr&gt;
903 &lt;th&gt;Machine/setup&lt;/th&gt;
904 &lt;th&gt;Original tasksel&lt;/th&gt;
905 &lt;th&gt;Optimised tasksel&lt;/th&gt;
906 &lt;th&gt;Reduction&lt;/th&gt;
907 &lt;/tr&gt;
908
909 &lt;tr&gt;
910 &lt;td&gt;Latitude D505 Main+LTSP LXDE&lt;/td&gt;
911 &lt;td&gt;64 min (07:46-08:50)&lt;/td&gt;
912 &lt;td&gt;&lt;44 min (11:27-12:11)&lt;/td&gt;
913 &lt;td&gt;&gt;20 min 18%&lt;/td&gt;
914 &lt;/tr&gt;
915
916 &lt;tr&gt;
917 &lt;td&gt;Latitude D505 Roaming LXDE&lt;/td&gt;
918 &lt;td&gt;57 min (08:48-09:45)&lt;/td&gt;
919 &lt;td&gt;34 min (07:43-08:17)&lt;/td&gt;
920 &lt;td&gt;23 min 40%&lt;/td&gt;
921 &lt;/tr&gt;
922
923 &lt;tr&gt;
924 &lt;td&gt;Latitude D505 Minimal&lt;/td&gt;
925 &lt;td&gt;22 min (10:37-10:59)&lt;/td&gt;
926 &lt;td&gt;11 min (11:16-11:27)&lt;/td&gt;
927 &lt;td&gt;11 min 50%&lt;/td&gt;
928 &lt;/tr&gt;
929
930 &lt;tr&gt;
931 &lt;td&gt;Thinkpad X200 Minimal&lt;/td&gt;
932 &lt;td&gt;6 min (08:19-08:25)&lt;/td&gt;
933 &lt;td&gt;4 min (08:04-08:08)&lt;/td&gt;
934 &lt;td&gt;2 min 33%&lt;/td&gt;
935 &lt;/tr&gt;
936
937 &lt;tr&gt;
938 &lt;td&gt;Thinkpad X200 Roaming KDE&lt;/td&gt;
939 &lt;td&gt;19 min (09:21-09:40)&lt;/td&gt;
940 &lt;td&gt;15 min (10:25-10:40)&lt;/td&gt;
941 &lt;td&gt;4 min 21%&lt;/td&gt;
942 &lt;/tr&gt;
943
944 &lt;/table&gt;&lt;/p&gt;
945
946 &lt;p&gt;The test is done using a netinst ISO on a USB stick, so some of the
947 time is spent downloading packages. The connection to the Internet
948 was 100Mbit/s during testing, so downloading should not be a
949 significant factor in the measurement. Download typically took a few
950 seconds to a few minutes, depending on the amount of packages being
951 installed.&lt;/p&gt;
952
953 &lt;p&gt;The speedup is implemented by using two hooks in
954 &lt;a href=&quot;https://www.debian.org/devel/debian-installer/&quot;&gt;Debian
955 Installer&lt;/a&gt;, the pre-pkgsel.d hook to set up the diverts, and the
956 finish-install.d hook to remove the divert at the end of the
957 installation. I picked the pre-pkgsel.d hook instead of the
958 post-base-installer.d hook because I test using an ISO without the
959 eatmydata package included, and the post-base-installer.d hook in
960 Debian Edu can only operate on packages included in the ISO. The
961 negative effect of this is that I am unable to activate this
962 optimization for the kernel installation step in d-i. If the code is
963 moved to the post-base-installer.d hook, the speedup would be larger
964 for the entire installation.&lt;/p&gt;
965
966 &lt;p&gt;I&#39;ve implemented this in the
967 &lt;a href=&quot;https://packages.qa.debian.org/debian-edu-install&quot;&gt;debian-edu-install&lt;/a&gt;
968 git repository, and plan to provide the optimization as part of the
969 Debian Edu installation. If you want to test this yourself, you can
970 create two files in the installer (or in an udeb). One shell script
971 need do go into /usr/lib/pre-pkgsel.d/, with content like this:&lt;/p&gt;
972
973 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
974 #!/bin/sh
975 set -e
976 . /usr/share/debconf/confmodule
977 info() {
978 logger -t my-pkgsel &quot;info: $*&quot;
979 }
980 error() {
981 logger -t my-pkgsel &quot;error: $*&quot;
982 }
983 override_install() {
984 apt-install eatmydata || true
985 if [ -x /target/usr/bin/eatmydata ] ; then
986 for bin in dpkg apt-get aptitude tasksel ; do
987 file=/usr/bin/$bin
988 # Test that the file exist and have not been diverted already.
989 if [ -f /target$file ] ; then
990 info &quot;diverting $file using eatmydata&quot;
991 printf &quot;#!/bin/sh\neatmydata $bin.distrib \&quot;\$@\&quot;\n&quot; \
992 &gt; /target$file.edu
993 chmod 755 /target$file.edu
994 in-target dpkg-divert --package debian-edu-config \
995 --rename --quiet --add $file
996 ln -sf ./$bin.edu /target$file
997 else
998 error &quot;unable to divert $file, as it is missing.&quot;
999 fi
1000 done
1001 else
1002 error &quot;unable to find /usr/bin/eatmydata after installing the eatmydata pacage&quot;
1003 fi
1004 }
1005
1006 override_install
1007 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
1008
1009 &lt;p&gt;To clean up, another shell script should go into
1010 /usr/lib/finish-install.d/ with code like this:
1011
1012 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
1013 #! /bin/sh -e
1014 . /usr/share/debconf/confmodule
1015 error() {
1016 logger -t my-finish-install &quot;error: $@&quot;
1017 }
1018 remove_install_override() {
1019 for bin in dpkg apt-get aptitude tasksel ; do
1020 file=/usr/bin/$bin
1021 if [ -x /target$file.edu ] ; then
1022 rm /target$file
1023 in-target dpkg-divert --package debian-edu-config \
1024 --rename --quiet --remove $file
1025 rm /target$file.edu
1026 else
1027 error &quot;Missing divert for $file.&quot;
1028 fi
1029 done
1030 sync # Flush file buffers before continuing
1031 }
1032
1033 remove_install_override
1034 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
1035
1036 &lt;p&gt;In Debian Edu, I placed both code fragments in a separate script
1037 edu-eatmydata-install and call it from the pre-pkgsel.d and
1038 finish-install.d scripts.&lt;/p&gt;
1039
1040 &lt;p&gt;By now you might ask if this change should get into the normal
1041 Debian installer too? I suspect it should, but am not sure the
1042 current debian-installer coordinators find it useful enough. It also
1043 depend on the side effects of the change. I&#39;m not aware of any, but I
1044 guess we will see if the change is safe after some more testing.
1045 Perhaps there is some package in Debian depending on sync() and
1046 fsync() having effect? Perhaps it should go into its own udeb, to
1047 allow those of us wanting to enable it to do so without affecting
1048 everyone.&lt;/p&gt;
1049
1050 &lt;p&gt;Update 2014-09-24: Since a few days ago, enabling this optimization
1051 will break installation of all programs using gnutls because of
1052 &lt;a href=&quot;https://bugs.debian.org/702711&quot;&gt;bug #702711&lt;/a&gt;. An updated
1053 eatmydata package in Debian will solve it.&lt;/p&gt;
1054
1055 &lt;p&gt;Update 2014-10-17: The bug mentioned above is fixed in testing and
1056 the optimization work again. And I have discovered that the
1057 dpkg-divert trick is not really needed and implemented a slightly
1058 simpler approach as part of the debian-edu-install package. See
1059 tools/edu-eatmydata-install in the source package.&lt;/p&gt;
1060 </description>
1061 </item>
1062
1063 </channel>
1064 </rss>