]> pere.pagekite.me Git - homepage.git/blob - blog/Which_module_is_loaded_for_a_given_PCI_and_USB_device_.html
Generated.
[homepage.git] / blog / Which_module_is_loaded_for_a_given_PCI_and_USB_device_.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: Which module is loaded for a given PCI and USB device?</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 </head>
10 <body>
11 <div class="title">
12 <h1>
13 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
14
15 </h1>
16
17 </div>
18
19
20 <div class="entry">
21 <div class="title">Which module is loaded for a given PCI and USB device?</div>
22 <div class="date">23rd January 2011</div>
23 <div class="body"><p>In the
24 <a href="http://packages.qa.debian.org/discover-data">discover-data</a>
25 package in Debian, there is a script to report useful information
26 about the running hardware for use when people report missing
27 information. One part of this script that I find very useful when
28 debugging hardware problems, is the part mapping loaded kernel module
29 to the PCI device it claims. It allow me to quickly see if the kernel
30 module I expect is driving the hardware I am struggling with. To see
31 the output, make sure discover-data is installed and run
32 <tt>/usr/share/bug/discover-data 3>&1</tt>. The relevant output on
33 one of my machines like this:</p>
34
35 <pre>
36 loaded modules:
37 10de:03eb i2c_nforce2
38 10de:03f1 ohci_hcd
39 10de:03f2 ehci_hcd
40 10de:03f0 snd_hda_intel
41 10de:03ec pata_amd
42 10de:03f6 sata_nv
43 1022:1103 k8temp
44 109e:036e bttv
45 109e:0878 snd_bt87x
46 11ab:4364 sky2
47 </pre>
48
49 <p>The code in question look like this, slightly modified for
50 readability and to drop the output to file descriptor 3:</p>
51
52 <pre>
53 if [ -d /sys/bus/pci/devices/ ] ; then
54 echo loaded pci modules:
55 (
56 cd /sys/bus/pci/devices/
57 for address in * ; do
58 if [ -d "$address/driver/module" ] ; then
59 module=`cd $address/driver/module ; pwd -P | xargs basename`
60 if grep -q "^$module " /proc/modules ; then
61 address=$(echo $address |sed s/0000://)
62 id=`lspci -n -s $address | tail -n 1 | awk '{print $3}'`
63 echo "$id $module"
64 fi
65 fi
66 done
67 )
68 echo
69 fi
70 </pre>
71
72 <p>Similar code could be used to extract USB device module
73 mappings:</p>
74
75 <pre>
76 if [ -d /sys/bus/usb/devices/ ] ; then
77 echo loaded usb modules:
78 (
79 cd /sys/bus/usb/devices/
80 for address in * ; do
81 if [ -d "$address/driver/module" ] ; then
82 module=`cd $address/driver/module ; pwd -P | xargs basename`
83 if grep -q "^$module " /proc/modules ; then
84 address=$(echo $address |sed s/0000://)
85 id=$(lsusb -s $address | tail -n 1 | awk '{print $6}')
86 if [ "$id" ] ; then
87 echo "$id $module"
88 fi
89 fi
90 fi
91 done
92 )
93 echo
94 fi
95 </pre>
96
97 <p>This might perhaps be something to include in other tools as
98 well.</p>
99 </div>
100
101 <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>.</div>
102
103
104 </div>
105
106
107
108
109 <div id="sidebar">
110
111
112
113 <h2>Archive</h2>
114 <ul>
115
116 <li>2012
117 <ul>
118
119 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
120
121 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
122
123 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
124
125 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
126
127 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
128
129 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
130
131 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
132
133 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
134
135 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
136
137 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (16)</a></li>
138
139 </ul></li>
140
141 <li>2011
142 <ul>
143
144 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
145
146 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
147
148 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
149
150 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
151
152 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
153
154 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
155
156 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
157
158 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
159
160 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
161
162 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
163
164 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
165
166 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
167
168 </ul></li>
169
170 <li>2010
171 <ul>
172
173 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
174
175 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
176
177 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
178
179 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
180
181 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
182
183 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
184
185 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
186
187 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
188
189 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
190
191 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
192
193 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
194
195 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
196
197 </ul></li>
198
199 <li>2009
200 <ul>
201
202 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
203
204 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
205
206 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
207
208 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
209
210 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
211
212 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
213
214 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
215
216 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
217
218 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
219
220 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
221
222 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
223
224 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
225
226 </ul></li>
227
228 <li>2008
229 <ul>
230
231 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
232
233 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
234
235 </ul></li>
236
237 </ul>
238
239
240
241 <h2>Tags</h2>
242 <ul>
243
244 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
245
246 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
247
248 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
249
250 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (2)</a></li>
251
252 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (12)</a></li>
253
254 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
255
256 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (57)</a></li>
257
258 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (115)</a></li>
259
260 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (9)</a></li>
261
262 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (7)</a></li>
263
264 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
265
266 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (156)</a></li>
267
268 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (19)</a></li>
269
270 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
271
272 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (8)</a></li>
273
274 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (8)</a></li>
275
276 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (31)</a></li>
277
278 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (17)</a></li>
279
280 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
281
282 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (4)</a></li>
283
284 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
285
286 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (25)</a></li>
287
288 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (209)</a></li>
289
290 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (145)</a></li>
291
292 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (6)</a></li>
293
294 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
295
296 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (37)</a></li>
297
298 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (54)</a></li>
299
300 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
301
302 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
303
304 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
305
306 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (4)</a></li>
307
308 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
309
310 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
311
312 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
313
314 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (24)</a></li>
315
316 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
317
318 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
319
320 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (38)</a></li>
321
322 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
323
324 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (5)</a></li>
325
326 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (11)</a></li>
327
328 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (7)</a></li>
329
330 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (35)</a></li>
331
332 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
333
334 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (26)</a></li>
335
336 </ul>
337
338
339 </div>
340 <p style="text-align: right">
341 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.4</a>
342 </p>
343
344 </body>
345 </html>