Kay Sievers [Wed, 13 Apr 2011 20:33:01 +0000 (22:33 +0200)]
udevadm: info --cleanup-db
Most of the udev database from initramfs should be deleted before
starting udev in the real root. udevadm: info --cleanup-db deletes
all database entries in /run/udev. Events that processed IMPORT{db},
or mark devices explicitely as persistent, will be excluded.
Martin Pitt [Mon, 4 Apr 2011 09:47:54 +0000 (11:47 +0200)]
Avoid spinning up CD on pressing eject button
When the CD tray door is locked and the hardware eject button is pressed, newer
kernels (2.6.38+) will send out a change event with a DISK_EJECT_REQUEST==1
property. Do not run cdrom_id and blkid in this case, as the media state and
contents does not change, and this only needlessly spins up the drive again
right before ejection.
Lee, Chun-Yi [Thu, 31 Mar 2011 10:01:05 +0000 (18:01 +0800)]
Add rule for Acer Aspire One ZG8 to use acer-aspire_5720 keymap
Acer Aspire One ZG8's bluetooth HW key emit 0xD9 scancode, it must map
to KEY_BLUETOOTH like Acer Aspire 5720. So, add rule for Acer Aspire One
ZG8 use acer-aspire_5720 keymap.
Tested on Acer Aspire One ZG8 netbook.
Signed-off-by: Lee, Chun-Yi <jlee@novell.com> Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
David Zeuthen [Wed, 30 Mar 2011 12:11:03 +0000 (08:11 -0400)]
Run ata_id on non-removable USB devices
If a USB device is marked as removable, it is often a SATA/PATA disk
in an enclosure (note that flash card readers and usb storage sticks
are always marked as removable). In this case, try running ata_id
(which sends ATA commands wrapped in SCSI ATA PASS THROUGH commands)
to get information about the disk. If this fails, just fall back to
running usb_id since it could be the device isn't an ATA device at
all or the device doesn't have a SAT layer.
This extra information is nice to have as it indicates if it is
suitable to send e.g. SMART commands to the disk, whether the disk
supports power management and so on. Additionally, the VPD and serial
number returned by ata_id is usually more accurate as it stems from
the disk itself instead of the enclosure.
Set hostname to <eeepc>.
Found ordering cycle on sysinit.target/start
Walked on cycle path to systemd-tmpfiles-setup.service/start
Walked on cycle path to local-fs.target/start
Walked on cycle path to fedora-storage-init.service/start
Walked on cycle path to fedora-wait-storage.service/start
Walked on cycle path to udev-settle.service/start
Walked on cycle path to udev.service/start
Walked on cycle path to udev.socket/start
Walked on cycle path to sysinit.target/start
Breaking ordering cycle by deleting job systemd-tmpfiles-setup.service/start
Kay Sievers [Mon, 28 Mar 2011 23:14:53 +0000 (01:14 +0200)]
systemd: do not enable udev-settle.service by default
This barrier service is usually not enabled by default. If enabled,
it acts as a barrier for basic.target -- so all later services will
wait for udev completely finishing its coldplug run.
It might be enabled just unconditionally, or pulled-in on-demand by
broken or non-hotplug-aware services that assume a fully populated
/dev at startup.
Kay Sievers [Mon, 28 Mar 2011 12:34:05 +0000 (14:34 +0200)]
libudev: make valgrind happy
Warning: noted but unhandled ioctl 0x641e with no size/direction hints
Syscall param socketcall.setsockopt(optval) points to uninitialised byte(s)
at 0x6A30BAA: setsockopt (syscall-template.S:82)
by 0x4E36E1C: udev_monitor_filter_update (libudev-monitor.c:347)
by 0x4E36ED8: udev_monitor_enable_receiving (libudev-monitor.c:373)
by 0x8A9E68E: I830ScreenInit (intel_driver.c:838)
by 0x42EE9E: AddScreen (dispatch.c:3890)
by 0x471561: InitOutput (xf86Init.c:738)
by 0x422C18: main (main.c:205)
Location 0x7ff0000c2 is 2 bytes inside local var "filter"
declared at libudev-monitor.c:256, in frame #1 of thread 1
Uninitialised value was created by a stack allocation
at 0x4E30860: ??? (in /lib64/libudev.so.0.10.0)
Seth Forshee [Thu, 24 Mar 2011 15:33:54 +0000 (16:33 +0100)]
keymap: continue reading keymap after invalid scancodes
Reading of keymaps is aborted when EINVAL is returned from EVIOCGETKEYCODE.
Scan codes are not always continuous ranges of values starting at 0, so this
can result in not getting the full keymap for a device. Instead, continue
processing if EINVAL is returned.
Kay Sievers [Wed, 23 Mar 2011 15:40:23 +0000 (16:40 +0100)]
systemd: bind udev control socket in systemd and split udev.service
We should bind the udev socket from systemd, so we are sure
that the abstract namespace socket is always bound by a root
process and there is never a window during an update where
an untrusted process can steal our socket.
Also split the udev.service file, so that the daemon can be
updated/restarted without triggering any coldplug events.
Kay Sievers [Wed, 23 Mar 2011 00:41:25 +0000 (01:41 +0100)]
udevd: use facility == LOG_DAEMON when writing to /dev/kmsg
Syslog wants to distinguish the sorce of messages. We should
indicate that this is a userspace message (LOG_DAEMON) and not
a kernel message (LOG_KERNEL).
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).
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.
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".
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."
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
fault.
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
fault.
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.
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.