blob: 5e92c8e0aab2eff0be6eb284f04c802b2571b266 [file] [log] [blame]
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
description "Replay critical udev events"
author "chromium-os-dev@chromium.org"
# This job is used to replay events of devices critical to the bring-up of
# the system. Since device nodes always exist, this is only needed if
# special permissions are required for nodes or special processing that
# would otherwise take place later.
#
# Subsystems listed here must be excluded from udev-trigger.conf to avoid
# replaying twice.
# Rationale:
# input - required to switch synaptics into raw mode, and also so X
# can initialize its input devices on startup rather than later
# misc - required if synaptics is already in raw mode
# graphics & drm - required to set permissions for accelerated graphics
# nvhost & tegra_dc_ext - on nVidia systems, X needs this
# tty - opened by powerd (running as user in "tty" group) at startup
# mem - kmsg opened by journald
# i2c-dev - Ensure /dev/i2c-* permissions are set for non-root firmware updaters
# hidraw - Ensure /dev/hidraw* permissions are set for non-root firmware
# updaters
# N.B. The 'boot-services' start on condition assumes this
# dependency on 'udev'. Don't change this line without accounting
# for the impact.
start on started udev
task
script
udevadm trigger --action=add --settle \
--subsystem-match="input" --subsystem-match="misc" \
--subsystem-match="graphics" \
--subsystem-match="drm" --subsystem-match="drm_dp_aux_dev" \
--subsystem-match="nvhost" --subsystem-match="tegra_dc_ext" \
--subsystem-match="tty" --subsystem-match="mem" \
--subsystem-match="i2c-dev" --subsystem-match="hidraw"
# Trigger graphics pci devices that may load as modules
udevadm trigger --settle --subsystem-match=pci --attr-match=class=0x030000
end script