]> pere.pagekite.me Git - homepage.git/blob - blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html
Generated.
[homepage.git] / blog / First_prototype_ready_making_hardware_easier_to_use_in_Debian.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: First prototype ready making hardware easier to use in Debian</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
10
11 </head>
12 <body>
13 <div class="title">
14 <h1>
15 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
16
17 </h1>
18
19 </div>
20
21
22 <div class="entry">
23 <div class="title">First prototype ready making hardware easier to use in Debian</div>
24 <div class="date">21st January 2013</div>
25 <div class="body"><p>Early this month I set out to try to
26 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">improve
27 the Debian support for pluggable hardware devices</a>. Now my
28 prototype is working, and it is ready for a larger audience. To test
29 it, fetch the
30 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">source
31 from the Debian Edu subversion repository</a>, build and install the
32 package. You might have to log out and in again activate the
33 autostart script.</p>
34
35 <p>The design is simple:</p>
36
37 <ul>
38
39 <li>Add desktop entry in /usr/share/autostart/ causing a program
40 hw-support-handlerd to start when the user log in.</li>
41
42 <li>This program listen for kernel events about new hardware (directly
43 from the kernel like udev does), not using HAL dbus events as I
44 initially did.</li>
45
46 <li>When new hardware is inserted, look up the hardware modalias in
47 the APT database, a database
48 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=markup">available
49 via HTTP</a> and a database available as part of the package.</li>
50
51 <li>If a package is mapped to the hardware in question, the package
52 isn't installed yet and this is the first time the hardware was
53 plugged in, show a desktop notification suggesting to install the
54 package or packages.</li>
55
56 <li>If the user click on the 'install package now' button, ask
57 aptdaemon via the PackageKit API to install the requrired package.</li>
58
59 <li>aptdaemon ask for root password or sudo password, and install the
60 package while showing progress information in a window.</li>
61
62 </ul>
63
64 <p>I still need to come up with a better name for the system. Here
65 are some screen shots showing the prototype in action. First the
66 notification, then the password request, and finally the request to
67 approve all the dependencies. Sorry for the Norwegian Bokmål GUI.</p>
68
69 <p><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-1-notification.png">
70 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-2-password.png">
71 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-3-dependencies.png">
72 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-4-installing.png">
73 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-5-installing-details.png" width="70%"></p>
74
75 <p>The prototype still need to be improved with longer timeouts, but
76 is already useful. The database of hardware to package mappings also
77 need more work. It is currently compatible with the Ubuntu way of
78 storing such information in the package control file, but could be
79 changed to use other formats instead or in addition to the current
80 method. I've dropped the use of discover for this mapping, as the
81 modalias approach is more flexible and easier to use on Linux as long
82 as the Linux kernel expose its modalias strings directly.</p>
83
84 <p><strong>Update 2013-01-21 16:50</strong>: Due to popular demand,
85 here is the command required to check out and build the source: Use
86 '<tt>svn checkout
87 svn://svn.debian.org/debian-edu/trunk/src/hw-support-handler/; cd
88 hw-support-handler; debuild</tt>'. If you lack debuild, install the
89 devscripts package.</p>
90
91 <p><strong>Update 2013-01-23 12:00</strong>: The project is now
92 renamed to Isenkram and the source moved from the Debian Edu
93 subversion repository to a Debian collab-maint git repository. See
94 <a href="http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html">build
95 instructions</a> for details.</p>
96 </div>
97
98 <div class="tags">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/isenkram">isenkram</a>.</div>
99
100
101 </div>
102
103
104
105
106 <div id="sidebar">
107
108
109
110 <h2>Archive</h2>
111 <ul>
112
113 <li>2013
114 <ul>
115
116 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
117
118 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
119
120 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (6)</a></li>
121
122 </ul></li>
123
124 <li>2012
125 <ul>
126
127 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
128
129 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
130
131 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
132
133 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
134
135 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
136
137 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
138
139 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
140
141 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
142
143 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
144
145 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
146
147 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
148
149 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
150
151 </ul></li>
152
153 <li>2011
154 <ul>
155
156 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
157
158 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
159
160 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
161
162 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
163
164 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
165
166 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
167
168 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
169
170 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
171
172 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
173
174 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
175
176 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
177
178 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
179
180 </ul></li>
181
182 <li>2010
183 <ul>
184
185 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
186
187 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
188
189 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
190
191 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
192
193 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
194
195 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
196
197 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
198
199 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
200
201 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
202
203 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
204
205 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
206
207 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
208
209 </ul></li>
210
211 <li>2009
212 <ul>
213
214 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
215
216 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
217
218 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
219
220 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
221
222 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
223
224 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
225
226 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
227
228 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
229
230 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
231
232 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
233
234 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
235
236 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
237
238 </ul></li>
239
240 <li>2008
241 <ul>
242
243 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
244
245 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
246
247 </ul></li>
248
249 </ul>
250
251
252
253 <h2>Tags</h2>
254 <ul>
255
256 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
257
258 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
259
260 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
261
262 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
263
264 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (6)</a></li>
265
266 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (12)</a></li>
267
268 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
269
270 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (70)</a></li>
271
272 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (121)</a></li>
273
274 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
275
276 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (7)</a></li>
277
278 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
279
280 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (183)</a></li>
281
282 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
283
284 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
285
286 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (10)</a></li>
287
288 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (11)</a></li>
289
290 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (33)</a></li>
291
292 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (5)</a></li>
293
294 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (18)</a></li>
295
296 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
297
298 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (6)</a></li>
299
300 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
301
302 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (25)</a></li>
303
304 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (226)</a></li>
305
306 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (151)</a></li>
307
308 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (7)</a></li>
309
310 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
311
312 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (42)</a></li>
313
314 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (65)</a></li>
315
316 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
317
318 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
319
320 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
321
322 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (6)</a></li>
323
324 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
325
326 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
327
328 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
329
330 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (29)</a></li>
331
332 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
333
334 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
335
336 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (41)</a></li>
337
338 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
339
340 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (6)</a></li>
341
342 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (15)</a></li>
343
344 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>
345
346 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (7)</a></li>
347
348 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (38)</a></li>
349
350 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
351
352 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (26)</a></li>
353
354 </ul>
355
356
357 </div>
358 <p style="text-align: right">
359 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
360 </p>
361
362 </body>
363 </html>