chiark / gitweb /
11 years agoinput_id: Rewrite debug logging to use standard udev info()
Martin Pitt [Fri, 18 Mar 2011 15:18:17 +0000 (16:18 +0100)]
input_id: Rewrite debug logging to use standard udev info()

11 years agoinput_id: Cover key devices which only have KEY_* > 255
Martin Pitt [Fri, 18 Mar 2011 13:45:42 +0000 (14:45 +0100)]
input_id: Cover key devices which only have KEY_* > 255

We previously only tested the "key" capabilities for keys between 0 and 255 to
determine ID_INPUT_KEY. If there are none, also check for keys in the upper
block (KEY_OK/0x160 to KEY_TOUCHPAD_OFF/0x214).

11 years agoinput_id: Avoid memory overflow with too long capability masks
Martin Pitt [Fri, 18 Mar 2011 12:56:32 +0000 (13:56 +0100)]
input_id: Avoid memory overflow with too long capability masks

Joey Lee <> reported a problem on an MSI laptop which reports a
too long capabilities/key:

E: EV==3
E: KEY==180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

This is longer than KEY_MAX and thus caused a memory overflow. Guard against
this now and just ignore the excess blocks.

11 years agoinput_id: Add some debugging output
Martin Pitt [Fri, 18 Mar 2011 12:42:02 +0000 (13:42 +0100)]
input_id: Add some debugging output

If $DEBUG is set, output the capability bitmaps to stderr.

11 years agoinput_id: Consistently use tabs for indentation
Martin Pitt [Fri, 18 Mar 2011 12:32:55 +0000 (13:32 +0100)]
input_id: Consistently use tabs for indentation

11 years agoudev-acl/70-acl.rules: tag ID_REMOTE_CONTROL with acl
Harald Hoyer [Thu, 17 Mar 2011 19:36:20 +0000 (20:36 +0100)]
udev-acl/70-acl.rules: tag ID_REMOTE_CONTROL with acl

Used by "concordance" to access Logitech Harmony programmable remote

11 years agoNEWS: clarify /dev/.run/ requirements
Kay Sievers [Wed, 16 Mar 2011 17:58:03 +0000 (18:58 +0100)]
NEWS: clarify /dev/.run/ requirements

11 years agocdrom_id: Don't ignore profiles when there is no media available
David Zeuthen [Tue, 15 Mar 2011 16:05:00 +0000 (12:05 -0400)]
cdrom_id: Don't ignore profiles when there is no media available

Just because the GET CONFIGURATION MMC-2 command returns the current
profile as 0 does not mean that we can ignore the profiles describing
the capabilities of the drive - it only means that there currently is
no recognized media in the drive. Therefore, do process the returned
profiles even when cur_profile is 0.

This fixes a bug where only


was returned when there is no media in the drive instead of


as is returned now.

Signed-off-by: David Zeuthen <>
11 years agomove /dev/.udev/ to /dev/.run/udev/ and convert old udev database at udevd startup
Kay Sievers [Tue, 15 Mar 2011 16:26:08 +0000 (17:26 +0100)]
move /dev/.udev/ to /dev/.run/udev/ and convert old udev database at udevd startup

11 years agoRemap MSI Laptop touchpad on/off key to F22 and F23
Lee, Chun-Yi [Thu, 10 Mar 2011 02:17:12 +0000 (10:17 +0800)]
Remap MSI Laptop touchpad on/off key to F22 and F23

MSI Laptop driver will query the real touchpad state then emit

Currently, X has defined F22 for touchpad on and F23 for touchpad
off. This patch aligns MSI Laptop driver's key with F22 and F23.

Tested on MSI U160 netbook using msi-laptop driver.

Signed-off-by: Martin Pitt <>
11 years agoudevadm: info - make attribute array static and const
Thomas Egerer [Tue, 8 Mar 2011 08:57:17 +0000 (09:57 +0100)]
udevadm: info - make attribute array static and const

11 years agoudev-acl: move sg rule to optical drive rule
Kay Sievers [Mon, 7 Mar 2011 15:10:50 +0000 (16:10 +0100)]
udev-acl: move sg rule to optical drive rule

11 years agoudev-acl: add /dev/sgX nodes for CD-ROM
Andrey Borzenkov [Sun, 6 Mar 2011 09:01:22 +0000 (12:01 +0300)]
udev-acl: add /dev/sgX nodes for CD-ROM

Current wine is using /dev/sgX to access CD-ROM devices. Since
distributions switched to using ACL instead of group membership
to control device access, wine is not able to access them.

Add ACL to device nodes that already get GROUP="cdrom".


Signed-off-by: Andrey Borzenkov <>
11 years agolibudev: bump minor version
Kay Sievers [Sat, 5 Mar 2011 05:27:31 +0000 (06:27 +0100)]
libudev: bump minor version

11 years agolibudev: resolve ifindex in udev_device_new_from_id_filename()
Kay Sievers [Sat, 5 Mar 2011 05:26:39 +0000 (06:26 +0100)]
libudev: resolve ifindex in udev_device_new_from_id_filename()

11 years agolibudev: udev_device_get_sysattr_list_entry() update
Kay Sievers [Fri, 4 Mar 2011 22:00:52 +0000 (23:00 +0100)]
libudev: udev_device_get_sysattr_list_entry() update

11 years agotest-libudev: add short options
Kay Sievers [Fri, 4 Mar 2011 21:56:54 +0000 (22:56 +0100)]
test-libudev: add short options

11 years agolibudev: use sysfs attr ilist interface for attribute walk
Thomas Egerer [Fri, 4 Mar 2011 16:06:43 +0000 (17:06 +0100)]
libudev: use sysfs attr ilist interface for attribute walk

Signed-off-by: Thomas Egerer <>
11 years agolibudev: allow to get list of all available sysfs attrs for a device
Thomas Egerer [Fri, 4 Mar 2011 16:06:41 +0000 (17:06 +0100)]
libudev: allow to get list of all available sysfs attrs for a device

Signed-off-by: Thomas Egerer <>
11 years agoRemap Acer WMI touchpad toggle key to F21 used by X
Lee, Chun-Yi [Tue, 1 Mar 2011 11:16:45 +0000 (19:16 +0800)]
Remap Acer WMI touchpad toggle key to F21 used by X

Currently, Acer WMI driver generates KEY_F22 but this
will soon change to KEY_TOUCHPAD_TOOGLE.

X has defined F21 for the purpose of touchpad toggle and other
udev keymaps align with this meaning.  Patch aligns Acer WMI
hotkey drivers with F21.

Tested on Acer TravelMate 8572 notebook using acer-wmi driver.

Cc: Carlos Corbacho <>
Cc: Matthew Garrett <>
Cc: Dmitry Torokhov <>
Cc: Corentin Chary <>
Signed-off-by: Lee, Chun-Yi <>
Signed-off-by: Martin Pitt <>
11 years agocdrom_id: cd_media_toc() extend toc size to 65536
Harald Hoyer [Thu, 24 Feb 2011 15:57:05 +0000 (16:57 +0100)]
cdrom_id: cd_media_toc() extend toc size to 65536

Seems like an iDRAC reports a lot of toc entries.

"For cd_media_toc() will have to be modified to handle larger
tables right now it has an "unsigned char toc[2048]" but the toc
can be up to 65536 bytes long . I got a TOC length of 4610 bytes,
causing cd_media_toc() to fail."

Signed-off-by: Martin Pitt <>
11 years agokeymap: Fix Acer Aspire 5920G media key
Martin Pitt [Sun, 20 Feb 2011 16:58:55 +0000 (17:58 +0100)]
keymap: Fix Acer Aspire 5920G media key

From downstream bug: "In Windows this button launch Acer Arcade or Acer Arcade
Deluxe application - it's media center like XBMC."

11 years agoupdate some comments
Kay Sievers [Tue, 15 Feb 2011 21:27:33 +0000 (22:27 +0100)]
update some comments

11 years agoudevadm: enumerate - update prev pointer properly
Kei Tokunaga [Tue, 15 Feb 2011 09:59:24 +0000 (18:59 +0900)]
udevadm: enumerate - update prev pointer properly

When I tried to boot a system with 256 disks x 4 paths with
device-mapper, udevadm trigger (--type=devices) that was called
from start_udev ended up dumping a core due to a segmentation

In udev_enumerate_get_list_entry(), if it finds the devices that
should be delayed, it calls syspath_add().  If realloc() in
syspath_add() allocates the required memory at a different memory
address, referring prev->len afterward causes the segmentation

Signed-off-by: Kei Tokunaga <>
11 years agov4l_id: Drop videodev.h check again
Martin Pitt [Tue, 15 Feb 2011 16:33:05 +0000 (17:33 +0100)]
v4l_id: Drop videodev.h check again

It only uses v4l2 now.

11 years agov4l_id: remove left-over variable
Kay Sievers [Tue, 15 Feb 2011 16:27:29 +0000 (17:27 +0100)]
v4l_id: remove left-over variable

11 years agov4l_id: kill the v4l1 ioctl
Kay Sievers [Tue, 15 Feb 2011 16:24:32 +0000 (17:24 +0100)]
v4l_id: kill the v4l1 ioctl

Recent kernels do not have v4l1 anymore.

11 years agoMerge branch 'master' of git+ssh://
Kay Sievers [Tue, 15 Feb 2011 16:24:12 +0000 (17:24 +0100)]
Merge branch 'master' of git+ssh:///linux/hotplug/udev

11 years agoDo not build extras with --disable-extras
Martin Pitt [Tue, 15 Feb 2011 15:37:26 +0000 (16:37 +0100)]
Do not build extras with --disable-extras

11 years agoFix building with --disable-extras
Martin Pitt [Tue, 15 Feb 2011 15:31:49 +0000 (16:31 +0100)]
Fix building with --disable-extras

We always need to define automake conditionals, otherwise configure fails with

11 years ago60-persistent-input.rules: Do not create duplicate links
Martin Pitt [Tue, 15 Feb 2011 14:39:42 +0000 (15:39 +0100)]
60-persistent-input.rules: Do not create duplicate links

Commit 5e9eb156c added new symlinks for multi-interface USB input devices.
However, we do not actually need the one for interface number "00", as we
already have the symlink without the interface number.

11 years agoOnly build v4l_id if V4L1 header file is available
Martin Pitt [Tue, 15 Feb 2011 13:20:21 +0000 (14:20 +0100)]
Only build v4l_id if V4L1 header file is available

11 years ago60-persistent-input.rules: Support multiple interfaces
Martin Pitt [Tue, 15 Feb 2011 12:06:18 +0000 (13:06 +0100)]
60-persistent-input.rules: Support multiple interfaces

Create /dev/input/by-id symlinks containing the USB interface number so that
each interface in a multi-interface USB input device gets its own symlink.

Thanks to a7x <>!

11 years agoversion bump
Kay Sievers [Thu, 10 Feb 2011 08:23:45 +0000 (09:23 +0100)]
version bump

11 years agorelease 166
Kay Sievers [Thu, 10 Feb 2011 08:07:06 +0000 (09:07 +0100)]
release 166

11 years agokeymap: Remove wlan from Dell
Matthew Garrett [Wed, 9 Feb 2011 21:32:43 +0000 (16:32 -0500)]
keymap: Remove wlan from Dell

The Dell rfkill key is handled by hardware and the dell-laptop driver catches
the i8042 event in order to update the rfkill state. Sending wlan to userspace
will just result in userspace trying to revert the change the hardware has
just made.

Signed-off-by: Matthew Garrett <>
Signed-off-by: Martin Pitt <>
11 years agoupdate gitignore
Kay Sievers [Wed, 9 Feb 2011 11:55:14 +0000 (12:55 +0100)]
update gitignore

11 years agoata_id: do not print empty serial numbers to avoid unwanted trailing '_'
Kay Sievers [Wed, 9 Feb 2011 11:49:19 +0000 (12:49 +0100)]
ata_id: do not print empty serial numbers to avoid unwanted trailing '_'

11 years agokeymap: Add Acer Aspire 8930
Jürgen Kaiser [Wed, 9 Feb 2011 16:10:32 +0000 (17:10 +0100)]
keymap: Add Acer Aspire 8930

Signed-off-by: Martin Pitt <>
11 years agoextras: qemu - fix typo
Kay Sievers [Tue, 25 Jan 2011 20:46:12 +0000 (21:46 +0100)]
extras: qemu - fix typo

11 years agomake: fix qemu rules file name
Kay Sievers [Tue, 25 Jan 2011 15:12:44 +0000 (16:12 +0100)]
make: fix qemu rules file name

11 years agoextras: add rules for qemu guests
Gerd Hoffmann [Tue, 25 Jan 2011 14:51:07 +0000 (15:51 +0100)]
extras: add rules for qemu guests

These patches enable usb autosuspend for the qemu emulated HID devices.
This reduces the cpu load for idle guests with a hid device attached
because the linux kernel will suspend the usb bus then and qemu can stop
running a 1000 Hz to emulate the (active) UHCI controller.

Signed-off-by: Gerd Hoffmann <>
11 years agokeymap: Explain how to end the program
Martin Pitt [Sun, 16 Jan 2011 20:12:32 +0000 (21:12 +0100)]
keymap: Explain how to end the program

Pressing Escape will only actually work if keymap is currently examining the
primary keyboard. For other devices the user needs to press Control-C instead.

11 years agokeymap: More robust state machine
Martin Pitt [Sun, 16 Jan 2011 20:10:03 +0000 (21:10 +0100)]
keymap: More robust state machine

Some drivers, like thinkpad_acpi, do not send a scan code at all (for known
keys), and some send the key code first, then the scan code. Implement a better
state machine which acceps them in any order and wait until a SYN event. If the
driver does not send SYN events, keymap will also handle this and print out
that fact.

Thanks to Seth Forshee for pointing out how this really works!

11 years agokeymap: Move reading of event in separate function
Martin Pitt [Sun, 16 Jan 2011 18:25:04 +0000 (19:25 +0100)]
keymap: Move reading of event in separate function

11 years agokeymap: Add Lenovo ThinkPad X201 tablet
Martin Pitt [Thu, 13 Jan 2011 16:10:27 +0000 (10:10 -0600)]
keymap: Add Lenovo ThinkPad X201 tablet

11 years agokeymap: Update README.keymap.txt
Martin Pitt [Fri, 7 Jan 2011 11:12:57 +0000 (12:12 +0100)]
keymap: Update README.keymap.txt

Drop orig-map.txt requirement, we don't really use it in practice. Also ask for
sending stuff to the mailing list instead of Launchpad.

11 years agokeymap: Add Acer TravelMate C310
Martin Pitt [Fri, 7 Jan 2011 11:09:45 +0000 (12:09 +0100)]
keymap: Add Acer TravelMate C310

Thanks to Dieter Herrmann for the report!

11 years agoman: fix typo
Kay Sievers [Tue, 4 Jan 2011 17:32:07 +0000 (18:32 +0100)]
man: fix typo

Found by: Minh Ha-Duong.

11 years agoRemap Eee PC touchpad toggle key to F21 used by X
Chris Bagwell [Sat, 1 Jan 2011 21:44:38 +0000 (15:44 -0600)]
Remap Eee PC touchpad toggle key to F21 used by X

Currently, Eee PC have a hotkey that generates KEY_F13 but this
will soon change to KEY_TOUCHPAD_TOOGLE.  Both cases do not
work well with X.

X has defined F21 for the purpose of touchpad toggle and other
udev keymaps align with this meaning.  Patch aligns Eee PC
hotkey drivers with F21.

Tested on Eee PC 1005PE using both eeepc-wmi and eeepc-laptop driver
(with acpi_osi="!Windows 2009").

Signed-off-by: Chris Bagwell <>
Signed-off-by: Martin Pitt <>
11 years agoman: generate html pages for
Kay Sievers [Sun, 26 Dec 2010 15:01:13 +0000 (16:01 +0100)]
man: generate html pages for

11 years agoversion bump
Kay Sievers [Thu, 16 Dec 2010 12:37:45 +0000 (13:37 +0100)]
version bump

11 years agorelease 165
Kay Sievers [Thu, 16 Dec 2010 12:17:02 +0000 (13:17 +0100)]
release 165

11 years agoupdate NEWS
Kay Sievers [Thu, 16 Dec 2010 09:12:22 +0000 (10:12 +0100)]
update NEWS

11 years agogudev: Add Device.get_usec_since_initialized
David Zeuthen [Wed, 15 Dec 2010 15:46:34 +0000 (10:46 -0500)]
gudev: Add Device.get_usec_since_initialized

Signed-off-by: David Zeuthen <>
11 years agogudev: bump minor version
Kay Sievers [Wed, 15 Dec 2010 08:06:05 +0000 (09:06 +0100)]
gudev: bump minor version

11 years agolibudev: record and export "age" of device record
Kay Sievers [Wed, 15 Dec 2010 07:57:46 +0000 (08:57 +0100)]
libudev: record and export "age" of device record

11 years agolibudev: fix renamed device nodes detection logic
Kay Sievers [Tue, 14 Dec 2010 20:26:12 +0000 (21:26 +0100)]
libudev: fix renamed device nodes detection logic

11 years agoAdd g_udev_device_get_is_initialized() method
David Zeuthen [Tue, 14 Dec 2010 17:50:04 +0000 (12:50 -0500)]
Add g_udev_device_get_is_initialized() method

Also nuke the "Index of deprecated symbols" since we have no
deprecated symbols just yet.

Signed-off-by: David Zeuthen <>
11 years agoAdd GUdevEnumerator type and Device.get_tags() method
David Zeuthen [Tue, 14 Dec 2010 17:37:40 +0000 (12:37 -0500)]
Add GUdevEnumerator type and Device.get_tags() method

Also add JS example to check the added API works.

Signed-off-by: David Zeuthen <>
11 years agolibudev: enumerate - allow to filter-out not-already-initialized devices
Kay Sievers [Tue, 14 Dec 2010 13:18:32 +0000 (14:18 +0100)]
libudev: enumerate - allow to filter-out not-already-initialized devices

11 years agocheck ifindex > 0 instead of subsystem == "net"
Kay Sievers [Tue, 14 Dec 2010 10:27:02 +0000 (11:27 +0100)]
check ifindex > 0 instead of subsystem == "net"

11 years agoudevd: write full database file for (unsupported) renamed device nodes
Kay Sievers [Tue, 14 Dec 2010 01:30:36 +0000 (02:30 +0100)]
udevd: write full database file for (unsupported) renamed device nodes

11 years agoudevd: switch to common id_filename functions
Kay Sievers [Sun, 12 Dec 2010 19:07:15 +0000 (20:07 +0100)]
udevd: switch to common id_filename functions

11 years agoudevd: simplify udev database and fix DEVNAME handling
Kay Sievers [Sat, 11 Dec 2010 13:00:46 +0000 (14:00 +0100)]
udevd: simplify udev database and fix DEVNAME handling

11 years agoudevd: always create /dev/{char,block}/$major:$minor
Kay Sievers [Fri, 10 Dec 2010 12:27:03 +0000 (13:27 +0100)]
udevd: always create /dev/{char,block}/$major:$minor

11 years agoudevd: use dev_t or netif ifindex as database key
Kay Sievers [Fri, 10 Dec 2010 00:13:35 +0000 (01:13 +0100)]
udevd: use dev_t or netif ifindex as database key

We need to preserve the database of network interfaces while we
rename them. Use the kernel's numbers wherever possible, instead
of the device names.

Fix wrong database filenames which contain a '/', translated
from '!' in the kernel name.

Fix segfault for kobject pathes where the subsystem can not be
determined from sysfs.

11 years agoudevadm: info - honor --export, --export-prefix=
Kay Sievers [Thu, 9 Dec 2010 21:45:13 +0000 (22:45 +0100)]
udevadm: info - honor --export, --export-prefix=

11 years agoudevadm: info - honor --export and --export-prefix for property query
Kay Sievers [Thu, 9 Dec 2010 20:10:30 +0000 (21:10 +0100)]
udevadm: info - honor --export and --export-prefix for property query

The output will always be quoted:
  $ udevadm info --export --export-prefix=MY_ --query=property --name=sda

11 years agolibudev: do not overwrite path with readlink() call
Kay Sievers [Thu, 9 Dec 2010 20:08:19 +0000 (21:08 +0100)]
libudev: do not overwrite path with readlink() call

11 years agokeymap: Fix struck Touchpad key on Dell Precision M series
Martin Pitt [Wed, 8 Dec 2010 17:41:42 +0000 (18:41 +0100)]
keymap: Fix struck Touchpad key on Dell Precision M series

11 years agokeymap: Fix struck Touchpad key on Dell Latitude E series
Martin Pitt [Wed, 8 Dec 2010 15:21:02 +0000 (16:21 +0100)]
keymap: Fix struck Touchpad key on Dell Latitude E series

11 years agorules: revert bsg use until the event ordering problem is sorted out
Kay Sievers [Tue, 30 Nov 2010 10:48:08 +0000 (11:48 +0100)]
rules: revert bsg use until the event ordering problem is sorted out

The bsg devices node are created after the LUN, so we fail in the
hotplug case, but succeed at coldplug, and create inconsistent data
that way.

The bsg device event order will need to be sorted out, by changing the

11 years agorules: drop alsa jack-plug input devices
Kay Sievers [Mon, 29 Nov 2010 11:01:58 +0000 (12:01 +0100)]
rules: drop alsa jack-plug input devices

11 years agoAdd ACLs for FFADO supported sound cards
David Henningsson [Fri, 26 Nov 2010 14:31:42 +0000 (15:31 +0100)]
Add ACLs for FFADO supported sound cards

Signed-off-by: Martin Pitt <>
11 years agokeymap: Add release quirks for two Zepto Znote models and AMILO Xi 2428
Andy Whitcroft [Fri, 26 Nov 2010 13:08:28 +0000 (14:08 +0100)]
keymap: Add release quirks for two Zepto Znote models and AMILO Xi 2428

Signed-off-by: Martin Pitt <>
11 years agorules: drop OSS audio rule
Kay Sievers [Wed, 24 Nov 2010 11:05:21 +0000 (12:05 +0100)]
rules: drop OSS audio rule

11 years agorules: 78-sound-card - remove specific hardware matches, they do not belong here
Kay Sievers [Wed, 24 Nov 2010 11:00:31 +0000 (12:00 +0100)]
rules: 78-sound-card - remove specific hardware matches, they do not belong here

11 years agoudevd: create static nodes before /dev/null is needed
Michal Soltys [Mon, 22 Nov 2010 12:55:20 +0000 (13:55 +0100)]
udevd: create static nodes before /dev/null is needed

11 years agoAdd ACL for media player USB devices
Martin Pitt [Mon, 22 Nov 2010 09:49:12 +0000 (10:49 +0100)]
Add ACL for media player USB devices

Originally we added an ACL for some particular mobile phone product IDs to
enable users to run e. g. the Android SDK as non-root. This was removed in
232f180 as we don't want to maintain product/vendor ID lists in udev.

However, we already know from media-player-info that devices like this are
media players. There is little reason to deny user access to those, so add back
a generic rule which adds an ACL to media player raw USB devices.

11 years ago70-acl.rules: add ACLs for ID_PDA devices
Harald Hoyer [Fri, 12 Nov 2010 14:44:34 +0000 (15:44 +0100)]
70-acl.rules: add ACLs for ID_PDA devices

11 years agoudev-rules.c: change import property buffer to 16384 bytes
Harald Hoyer [Fri, 12 Nov 2010 13:39:14 +0000 (14:39 +0100)]
udev-rules.c: change import property buffer to 16384 bytes

import_program_into_properties() should have the same line length as

see also

11 years agoman: udev - workaraound -> workaround
Jakub Wilk [Wed, 10 Nov 2010 00:29:50 +0000 (01:29 +0100)]
man: udev - workaraound -> workaround

11 years agoextras/keymap: Make touchpad buttons consistent
Bastien Nocera [Thu, 4 Nov 2010 23:58:56 +0000 (23:58 +0000)]
extras/keymap: Make touchpad buttons consistent

We'll need to standardise on the Touchpad related keys in udev, kernel, and I selected F21 for XF86TouchpadToggle, F22 for XF86TouchpadOn and F23
for XF86TouchpadOff.


Signed-off-by: Martin Pitt <>
11 years agokeymap: Add force release for HP touchpad off
Bastien Nocera [Mon, 1 Nov 2010 16:29:09 +0000 (16:29 +0000)]
keymap: Add force release for HP touchpad off

Force the touchpad off/on keys getting released, as they usually
only send a "repeat".

Signed-off-by: Martin Pitt <>
11 years agoUse ata_id, not scsi_id, on ATAPI devices
David Zeuthen [Thu, 4 Nov 2010 12:55:58 +0000 (08:55 -0400)]
Use ata_id, not scsi_id, on ATAPI devices

The major benefit here, is that we get the ATAPI device serial
number. With SCSI ID we didn't get this since it's not part of the
SCSI INQUIRY command. Specifically this means that we get symlinks to
empty optical drives, e.g.


which we didn't get earlier. So this is a major win.

Also make ata_id work on CD-ROM devices when using /dev/bsg nodes so
this works on both the scsi_device as well as the block device. We do
this, basically, by issuing the ATA IDENTIFY PACKET DEVICE command
instead of the ATA IDENTIFY command. We also use 16-byte pass-through
ATA passthrough instead of 12-byte passthrough to avoid clashing with
the MMC BLANK command.

This means that we get this output

 # udevadm info -q all -p /sys/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0
 P: /devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0
 E: DEVPATH=/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0
 E: DEVTYPE=scsi_device
 E: MODALIAS=scsi:t-0x05
 E: ID_ATA=1
 E: ID_TYPE=cd
 E: ID_BUS=ata
 E: ID_MODEL_ENC=VBOX\x20CD-ROM\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x 20\x20\x20\x20\x20\x20\x20
 E: ID_SERIAL_SHORT=VB2-01700376

instead of just

 # udevadm info -q all -p /sys/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0
 P: /devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0
 E: DEVPATH=/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0
 E: DEVTYPE=scsi_device
 E: MODALIAS=scsi:t-0x05
 E: ID_VENDOR_ENC=VBOX\x20\x20\x20\x20
 E: ID_MODEL_ENC=CD-ROM\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
 E: ID_TYPE=cd

Signed-off-by: David Zeuthen <>
11 years agoRun scsi_id and ata_id on the scsi_device object
David Zeuthen [Sat, 30 Oct 2010 16:30:19 +0000 (12:30 -0400)]
Run scsi_id and ata_id on the scsi_device object

In a multi-initiator setup, the HBA may very well export a SCSI device
for a device that another initiator has already logged into. But since
another initiator has already logged in, the kernel will not create a
block device.

Note that this is also the case for some RAID HBAs - for example, the
LSI 1068 series cards will export a SCSI device for a disk that is in
use by the HBAs RAID engine (no block device will be created here).

Running scsi_id and ata_id on the actual SCSI device means that we can
inquire the capabilities of the device. For example, we can check
is set and, if so, periodically poll the SMART status of the
disk. Even when other initiators has claimed the disk and if the disk
is in use by the RAID engine of the HBA.

Note that we run scsi_id and ata_id on /dev/bsg/* nodes - this is safe
to do because the scsi core guarantees that the bsg device has been
created before the actual add uevent for the scsi_device is emitted.

Since the block device is a direct child of the scsi_device we can
avoid running scsi_id and ata_id again by simply importing the
resulting ID_* properties from the parent.

Signed-off-by: David Zeuthen <>
11 years agoata_id: Support SG_IO version 4 interface
David Zeuthen [Sat, 30 Oct 2010 15:44:06 +0000 (11:44 -0400)]
ata_id: Support SG_IO version 4 interface

This makes it possible to use /dev/bsg/* nodes for ata_id:

 # /lib/udev/ata_id --export /dev/bsg/0\:0\:0\:0

This means that our cd-rom detection as per commit;a=commit;h=160b069c25690bfb0c785994c7c3710289179107

needs to be reworked since we can't just use the CDROM_GET_CAPABILITY
ioctl on a /dev/bsg node (which is a character device). We do this by
just sending the SCSI INQUIRY command and checking the type (CD-ROM's
are all type 0x05 and disks are type 0x00) before we issue the ATA
IDENTIFY command through the SCSI command ATA PASS_THROUGH (12).

 (Yes, it's a bit perverse how we have to tunnel our ATA commands
 through a SCSI command  but that's how Linux currently work.)

We still support for SG_IO version 3 (we fail back if version 4 fails
with EINVAL) because testing reveals that some drivers (such as
mpt2sas) still only support version 3 on the block nodes.

Signed-off-by: David Zeuthen <>
11 years agocdrom_id: Fix media state for unreadable DVDs
Jan Drzewiecki [Tue, 26 Oct 2010 16:10:57 +0000 (12:10 -0400)]
cdrom_id: Fix media state for unreadable DVDs

If the disc is unreadable and reading of the first 32 blocks fails set the
cd_media status to 0 (not present). This will prevent udev from executing blkid
next that tries to determine fs on the disc and which in this case may seem to
hang forever locking the drive.

Signed-off-by: Martin Pitt <>
11 years agokeymap: Add some more Sony Vaio VGN-* models
Martin Pitt [Tue, 26 Oct 2010 02:11:37 +0000 (22:11 -0400)]
keymap: Add some more Sony Vaio VGN-* models

11 years agokeymap: Add Sony Vaio VGN71
Martin Pitt [Tue, 26 Oct 2010 02:01:03 +0000 (22:01 -0400)]
keymap: Add Sony Vaio VGN71

11 years agoversion bump
Kay Sievers [Sat, 23 Oct 2010 13:35:35 +0000 (15:35 +0200)]
version bump

11 years agorelease 164
Kay Sievers [Sat, 23 Oct 2010 13:13:57 +0000 (15:13 +0200)]
release 164

11 years agolibudev: return kernel provided devnode when asked before we handled any rules
Kay Sievers [Fri, 22 Oct 2010 11:50:55 +0000 (13:50 +0200)]
libudev: return kernel provided devnode when asked before we handled any rules

11 years agokeymap: Add Toshiba Satellite U500
Martin Pitt [Fri, 22 Oct 2010 10:52:45 +0000 (12:52 +0200)]
keymap: Add Toshiba Satellite U500

11 years agoreturn proper error code in rename_netif()
Kay Sievers [Mon, 18 Oct 2010 10:50:20 +0000 (12:50 +0200)]
return proper error code in rename_netif()

<Md>  kay: can you look at rename_netif()? it returns -errno in a place,
      but I think that it may by changed by err() (at least)
<kay> Md: yeah, that doesn't look correct

11 years agokeymap: Apply force-release rules to all Samsung models.
Martin Pitt [Wed, 13 Oct 2010 16:08:41 +0000 (18:08 +0200)]
keymap: Apply force-release rules to all Samsung models.

The force-release list for Samsung is already an ultralong monster, and
reportedly still incomplete (see
Give up and instead apply the force-release quirk to all Samsung models. The
worst that can happen is that autorepeat behaves a bit weird, but that's much
better than a complete freeze after each keypress.

11 years agoudevd: do not wrongly delay events for devices with swapped names
Kay Sievers [Wed, 13 Oct 2010 11:03:27 +0000 (13:03 +0200)]
udevd: do not wrongly delay events for devices with swapped names

Renaming network devices might delay events for the other device, which has
the same devpath in the meantime as the original event. Causing a delay until
the timout of the event is reached.

Look at the ifindex/devnum of the devices to check if they are really
the same devices.

11 years agoversion bump
Kay Sievers [Thu, 7 Oct 2010 13:34:20 +0000 (15:34 +0200)]
version bump

11 years agoInstall in prefix / instead of prefix /usr
David Zeuthen [Mon, 11 Oct 2010 16:01:04 +0000 (12:01 -0400)]
Install in prefix / instead of prefix /usr

This is to match where is installed and it works because
all dependent libraries are already installed in / instead of /usr on
most distros:

 $ ldd /usr/lib64/ =>  (0x00007fff44dff000) => /lib64/ (0x0000003bf2600000) => /lib64/ (0x0000003fb5200000) => /lib64/ (0x0000003fb4e00000) => /lib64/ (0x0000003d5b000000) => /lib64/ (0x0000003d5b800000) => /lib64/ (0x0000003fb4a00000) => /lib64/ (0x0000003d5ac00000)
         /lib64/ (0x0000003d5a800000)

With this change it is possible to write libgudev applications that
can be installed in /bin or /sbin and can run without /usr being
mounted. This is needed for e.g. udisks, NetworkManager and other
subsystem-specific daemons.

Signed-off-by: David Zeuthen <>