While looking into how to look up Debian packages based on hardware -information, to find the packages that support a given piece of -hardware, I refreshed my memory regarding modalias values, and decided -to document the details. Here are my findings so far, also available -in -the -Debian Edu subversion repository: - -
Modalias decoded
- -This document try to explain what the different types of modalias -values stands for. It is in part based on information from -<URL: https://wiki.archlinux.org/index.php/Modalias >, -<URL: http://unix.stackexchange.com/questions/26132/how-to-assign-usb-driver-to-device >, -<URL: http://code.metager.de/source/history/linux/stable/scripts/mod/file2alias.c > and -<URL: http://cvs.savannah.gnu.org/viewvc/dmidecode/dmidecode.c?root=dmidecode&view=markup >. - -
The modalias entries for a given Linux machine can be found using -this shell script:
- --cat $(find /sys -name modalias) | sort -u -- -
The supported modalias globs for a given kernel module can be found -using modinfo:
- --% /sbin/modinfo psmouse | grep alias: -alias: serio:ty05pr*id*ex* -alias: serio:ty01pr*id*ex* -% -- -
PCI subtype
- -A typical PCI entry can look like this. This is an Intel Host -Bridge memory controller:
- --pci:v00008086d00002770sv00001028sd000001ADbc06sc00i00 -- -
This represent these values:
- -- v 00008086 (vendor) - d 00002770 (device) - sv 00001028 (subvendor) - sd 000001AD (subdevice) - bc 06 (bus class) - sc 00 (bus subclass) - i 00 (interface) -- -
The vendor/device values are the same values outputted from 'lspci --n' as 8086:2770. The bus class/subclass is also shown by lspci as -0600. The 0600 class is a host bridge. Other useful bus values are -0300 (VGA compatible card) and 0200 (Ethernet controller).
- -Not sure how to figure out the interface value, nor what it -means.
- -USB subtype
- -Some typical USB entries can look like this. This is an internal -USB hub in a laptop:
- --usb:v1D6Bp0001d0206dc09dsc00dp00ic09isc00ip00 -- -
Here is the values included in this alias:
- -- v 1D6B (device vendor) - p 0001 (device product) - d 0206 (bcddevice) - dc 09 (device class) - dsc 00 (device subclass) - dp 00 (device protocol) - ic 09 (interface class) - isc 00 (interface subclass) - ip 00 (interface protocol) -+ +
The Debian Edu / Skolelinux +project is making great progress and made its second Wheezy based +release today. This is the release announcement:
+ +New features for Debian Edu 7.0.0 alpha1 released +2013-05-14
+ +This is the release notes for for Debian Edu / Skolelinux 7.0.0 edu +alpha1, based on Debian with codename "Wheezy".
+ +About Debian Edu and Skolelinux
+ +Debian Edu, also known as Skolelinux, is a Linux distribution based +on Debian providing an out-of-the box environment of a completely +configured school network. Immediatly after installation a school +server running all services needed for a school network is set up just +waiting for users and machines being added via GOsa², a comfortable +Web-UI. A netbooting environment is prepared using PXE, so after +initial installation of the main server from CD, DVD or USB stick all +other machines can be installed via the network.
+ +This is the first test release based on Wheezy (which currently is +not released yet). Basically this is an updated and slightly improved +version compared to the Squeeze release.
+ +Software updates
+-
+
- Install freemind (0.9.0) by default, and stop installing vym by + default. +
- Install chromium (26.0.1410.43) by default. +
- Install goplay (0.5-1.1) to make golearn available by default. +
- Updated support for Japanese input methods, now based on + ibus-anthy. +
The 0900 device class/subclass means hub. Some times the relevant -class is in the interface class section. For a simple USB web camera, -these alias entries show up:
+Other changes
+-
-
- Switched default file system from ext3 to ext4 for speed and + reliability improvements. +
- Got rid of unwanted winbind daemon and PAM setup activated because + of 706434. +
- Extended and improved the testsuite tests to detect more possible + problems. +
- Corrected proxy handling to not set http_proxy to a bogus + direct:// URL. +
- Corrected proxy setup for diskless workstations. +
- Corrected PXE setup to use our updated udebs during installation. +
- Made installation handling of low entropy level more robust. +
- Create larger partitions for Roaming workstations and Thin client + servers, to make room for all the software installed. +
- Fix bug in Roaming workstation PAM setup, making it impossible to + log in (706753). +
-usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc01ip00 -+
usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc02ip00 -
usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc01ip00 -
usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc02ip00 -
Interface class 0E01 is video control, 0E02 is video streaming (aka -camera), 0101 is audio control device and 0102 is audio streaming (aka -microphone). Thus this is a camera with microphone included.
+Known issues
+-
-
- IP resolution for the local hostname give useless IPv6 address + (705900). Only install + libnss-myhostname on roaming workstations until it is fixed. +
- DVD images are not yet ready. +
- No mass import of user account data in GOsa (ldif or csv) + available yet (698840). +
- Missing artwork for the KDE desktop (and probably a few others). +
- KDE Debian submenu lacks icons. +
- LXDE menu lacks entry for changing GOsa password + (website). Installing gosa-desktop will be an option. +
- Backup configuration via web interface is impossible due to + password submission problem + (700257). -
ACPI subtype
+The ACPI type is used for several non-PCI/USB stuff. This is an IR -receiver in a Thinkpad X40:
+-acpi:IBM0071:PNP0511: -+
Where to get it
-The values between the colons are IDs.
+To download the multiarch netinstall CD release you can use
+-
-
- ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu~7.0+edu0~a1-CD.iso +
- http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu~7.0+edu0~a1-CD.iso +
- rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu~7.0+edu0~a1-CD.iso debian-edu~7.0+edu0~a1-CD.iso -
DMI subtype
+The DMI table contain lots of information about the computer case -and model. This is an entry for a IBM Thinkpad X40, fetched from -/sys/devices/virtual/dmi/id/modalias:
+-dmi:bvnIBM:bvr1UETB6WW(1.66):bd06/15/2005:svnIBM:pn2371H4G:pvrThinkPadX40:rvnIBM:rn2371H4G:rvrNotAvailable:cvnIBM:ct10:cvrNotAvailable: -+
The MD5SUM of this image is: 685ed76c1aa8e44b12d3fde21faf450b
-The values present are
- -- bvn IBM (BIOS vendor) - bvr 1UETB6WW(1.66) (BIOS version) - bd 06/15/2005 (BIOS date) - svn IBM (system vendor) - pn 2371H4G (product name) - pvr ThinkPadX40 (product version) - rvn IBM (board vendor) - rn 2371H4G (board name) - rvr NotAvailable (board version) - cvn IBM (chassis vendor) - ct 10 (chassis type) - cvr NotAvailable (chassis version) -- -
The chassis type 10 is Notebook. Other interesting values can be -found in the dmidecode source:
- -- 3 Desktop - 4 Low Profile Desktop - 5 Pizza Box - 6 Mini Tower - 7 Tower - 8 Portable - 9 Laptop - 10 Notebook - 11 Hand Held - 12 Docking Station - 13 All In One - 14 Sub Notebook - 15 Space-saving - 16 Lunch Box - 17 Main Server Chassis - 18 Expansion Chassis - 19 Sub Chassis - 20 Bus Expansion Chassis - 21 Peripheral Chassis - 22 RAID Chassis - 23 Rack Mount Chassis - 24 Sealed-case PC - 25 Multi-system - 26 CompactPCI - 27 AdvancedTCA - 28 Blade - 29 Blade Enclosing -- -
The chassis type values are not always accurately set in the DMI -table. For example my home server is a tower, but the DMI modalias -claim it is a desktop.
- -SerIO subtype
- -This type is used for PS/2 mouse plugs. One example is from my -test machine:
+The SHA1SUM of this image is: 6c874de157024da13e115bab29c068080a11ec4c
--serio:ty01pr00id00ex00 -+
How to report bugs
-The values present are
- -- ty 01 (type) - pr 00 (prototype) - id 00 (id) - ex 00 (extra) -- -
This type is supported by the psmouse driver. I am not sure what -the valid values are.
- -Other subtypes
- -There are heaps of other modalias subtypes according to -file2alias.c. There is the rest of the list from that source: amba, -ap, bcma, ccw, css, eisa, hid, i2c, ieee1394, input, ipack, isapnp, -mdio, of, parisc, pcmcia, platform, scsi, sdio, spi, ssb, vio, virtio, -vmbus, x86cpu and zorro. I did not spend time documenting all of -these, as they do not seem relevant for my intended use with mapping -hardware to packages when new stuff is inserted during run time.
- -Looking up kernel modules using modalias values
- -To check which kernel modules provide support for a given modalias, -one can use the following shell script:
- -- for id in $(cat $(find /sys -name modalias)|sort -u); do \ - echo "$id" ; \ - /sbin/modprobe --show-depends "$id"|sed 's/^/ /' ; \ - done -- -
The output can look like this (only the first few entries as the -list is very long on my test machine):
- -- acpi:ACPI0003: - insmod /lib/modules/2.6.32-5-686/kernel/drivers/acpi/ac.ko - acpi:device: - FATAL: Module acpi:device: not found. - acpi:IBM0068: - insmod /lib/modules/2.6.32-5-686/kernel/drivers/char/nvram.ko - insmod /lib/modules/2.6.32-5-686/kernel/drivers/leds/led-class.ko - insmod /lib/modules/2.6.32-5-686/kernel/net/rfkill/rfkill.ko - insmod /lib/modules/2.6.32-5-686/kernel/drivers/platform/x86/thinkpad_acpi.ko - acpi:IBM0071:PNP0511: - insmod /lib/modules/2.6.32-5-686/kernel/lib/crc-ccitt.ko - insmod /lib/modules/2.6.32-5-686/kernel/net/irda/irda.ko - insmod /lib/modules/2.6.32-5-686/kernel/drivers/net/irda/nsc-ircc.ko - [...] -- -
If you want to help implementing a system to let us propose what -packages to install when new hardware is plugged into a Debian -machine, please send me an email or talk to me on -#debian-devel.
+As part of my investigation on how to improve the support in Debian -for hardware dongles, I dug up my old Mark and Spencer USB Rocket -Launcher and updated the Debian package -pymissile to make -sure udev will fix the device permissions when it is plugged in. I -also added a "Modaliases" header to test it in the Debian archive and -hopefully make the package be proposed by jockey in Ubuntu when a user -plug in his rocket launcher. In the process I moved the source to a -git repository under collab-maint, to make it easier for any DD to -contribute. Upstream -is not very active, but the software still work for me even after five -years of relative silence. The new git repository is not listed in -the uploaded package yet, because I want to test the other changes a -bit more before I upload the new version. If you want to check out -the new version with a .desktop file included, visit the -gitweb -view or use "git clone -git://anonscm.debian.org/collab-maint/pymissile.git".
+ +In January, +I +announced a new IRC +channel #debian-lego, for those of us in the Debian and Linux +community interested in LEGO, the +marvellous construction system from Denmark. We also created +a wiki page to have +a place to take notes and write down our plans and hopes. And several +people showed up to help. I was very happy to see the effect of my +call. Since the small start, we have a debtags tag +hardware::hobby:lego +tag for LEGO related packages, and now count 10 packages related to +LEGO and Mindstorms:
+ +brickos | alternative OS for LEGO Mindstorms RCX. Supports development in C/C++ |
leocad | virtual brick CAD software |
libnxt | utility library for talking to the LEGO Mindstorms NX |
lnpd | daemon for LNP communication with BrickOS |
nbc | compiler for LEGO Mindstorms NXT bricks |
nqc | Not Quite C compiler for LEGO Mindstorms RCX |
python-nxt | python driver/interface/wrapper for the Lego Mindstorms NXT robot |
python-nxt-filer | simple GUI to manage files on a LEGO Mindstorms NXT |
scratch | easy to use programming environment for ages 8 and up |
t2n | simple command-line tool for Lego NXT |
Some of these are available in Wheezy, and all but one are +currently available in Jessie/testing. leocad is so far only +available in experimental.
+ +If you care about LEGO in Debian, please join us on IRC and help +adding the rest of the great free software tools available on Linux +for LEGO designers.