New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 637175 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Aug 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug

Blocked on:
issue 551926



Sign in to add a comment

udevd[178]: specified group 'plugdev' unknown

Project Member Reported by djkurtz@chromium.org, Aug 12 2016

Issue description

Chrome OS Version: 8693.0.0 (test)
Chrome OS Platform: any

Steps To Reproduce:
(1) boot
(2) grep plugdev /var/log/messages
(3)

Expected Result:

No 'unknown' group message

Actual Result:

2016-08-12T00:01:02.245931+08:00 ERR kernel: [    2.239195] udevd[178]: specified group 'plugdev' unknown

How frequently does this problem reproduce? (Always, sometimes, hard to
reproduce?)

Always

What is the impact to the user, and is there a workaround? If so, what is
it?

Unknown

Please provide any additional information below. Attach a screen shot or
log if possible.

The "group 'plugdev'" udev rules are in 70-dfu-programmer.rules.

$ grep plugdev /lib/udev/rules.d/*

/lib/udev/rules.d/70-dfu-programmer.rules:SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", MODE="660", GROUP="plugdev", SYMLINK+="dfu-%n"
/lib/udev/rules.d/70-dfu-programmer.rules:SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", MODE="660", GROUP="plugdev", SYMLINK+="dfu-%n"
/lib/udev/rules.d/70-dfu-programmer.rules:SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", MODE="660", GROUP="plugdev", SYMLINK+="dfu-%n"
/lib/udev/rules.d/70-dfu-programmer.rules:SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff7", MODE="660", GROUP="plugdev", SYMLINK+="dfu-%n"
/lib/udev/rules.d/70-dfu-programmer.rules:SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", MODE="660", GROUP="plugdev", SYMLINK+="dfu-%n"
/lib/udev/rules.d/70-dfu-programmer.rules:SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", MODE="660", GROUP="plugdev", SYMLINK+="dfu-%n"


This rule is installed by:
dfu-programmer-0.7.2.ebuild

Which was last updated to match upstream gentoo [0] by:
https://chromium-review.googlesource.com/328844
  dfu-programmer: upgraded package to upstream

[0] https://packages.gentoo.org/packages/dev-embedded/dfu-programmer

$ equery-elm depends dfu-programmer
 * These packages depend on dfu-programmer:
chromeos-base/chromeos-test-root-0.0.1-r6 (dev-embedded/dfu-programmer)

This dependency was created by:
https://chromium-review.googlesource.com/329750
  chromeos-test-root: Add dfu-programmer and dfu-util


The error message is coming because Chrome OS does not have a 'plugdev' group:

localhost ~ # groups
root bin daemon sys adm disk wheel floppy tape video tss pkcs11 wpa chronos-access

There is a note in the commit message for CL:329750:
"Once all the servos get updated. These tools can be removed."

So if that means reverting CL:329750, then these messages will also go away.
Hence, blocking this on  issue 551926 .
 
Cc: jrbarnette@chromium.org
Status: Available (was: Assigned)
These tools are for updating the servo v3 for the new keyboard map. I am afraid these tools have to be kept for a while. As there are always some new servo v3 deployments in the lab currently, these tools should be available. Once we all switch to use servo v4 and no more v3 deployment, we can remove this tool.

Any other issue except the error message?
The "dfu-programmer" package shouldn't be installed except on
embedded Chrome OS platforms that include hdctools.  It sounds
like maybe it can even be restricted to beaglebone_servo images.

Whatever dependency is pulling this package into regular Chrome OS
images is wrong, and needs to get fixed.

Looking more closely:

> $ equery-elm depends dfu-programmer
>  * These packages depend on dfu-programmer:
> chromeos-base/chromeos-test-root-0.0.1-r6 (dev-embedded/dfu-programmer)

Oh.  _That_ thing.  It's a different kind of problem.

We do want this package on Chrome OS, to support servo V3
reprogramming.  I was suspicious of installing this package
in "chromeos-test-root", but if there are udev rules, then
that's necessary.  :-(

Still, why is that rule generating errors?  The presence of an
error message is ipso facto a bug.

The error message is coming because Chrome OS does not have a 'plugdev' group

/lib/udev/rules.d/70-dfu-programmer.rules:SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", MODE="660", GROUP="plugdev", SYMLINK+="dfu-%n"

> The error message is coming because Chrome OS does not have a 'plugdev' group

Yeah, I've been slowly grokking that...  IIUC, this means
that the rules must be failing, and therefore currently don't
do anything?

So, I think this means we have three choices:
 1) Remove the udev rules, because they're not needed.
 2) Change the rules to use a Chrome OS-appropriate group.
 3) Add a 'plugdev' group.

I assume our preferences solutions would be in that order.

For 1), I'd prefer that we move the dependency out of chromeos-test-root
altogether.  The only reason to use that package is for the sake
of udev rules.  If the rules don't belong, then moving the dependency
will install the rules someplace harmless.  It's a bit of a hack,
but effective.

Cc: waihong@chromium.org
Owner: nsanders@chromium.org
I am not familiar with the dfu-programmer. Nick, is it OK to remove these udev rules?

Comment 7 by nsanders@google.com, Aug 12 2016

If the tool is run as root there's no need for udev rules
dfu-programmer always runs as root.

Filed changes to remove the rules:
  https://chromium-review.googlesource.com/#/c/370342
  https://chromium-review.googlesource.com/#/c/370343
Project Member

Comment 9 by bugdroid1@chromium.org, Aug 23 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/8855d08cbe68a7099d3b9a546fd1606b047b992d

commit 8855d08cbe68a7099d3b9a546fd1606b047b992d
Author: Wai-Hong Tam <waihong@google.com>
Date: Mon Aug 22 22:29:26 2016

Mask the udev rules of dfu-programmer

The udev rules are not compatible with Chrome OS. They are not needed
as the program always runs as root. Mask the file of the udev rules.

BUG= chromium:637175 
TEST=emerge-samus dfu-programmer; checked no 70-dfu-programmer.rules
TEST=Booted and verified no result on 'grep plugdev /var/log/messages'

Change-Id: I821b17471783b27c0d8e021c5d3a53374bad2375
Reviewed-on: https://chromium-review.googlesource.com/374099
Commit-Ready: Wai-Hong Tam <waihong@google.com>
Tested-by: Wai-Hong Tam <waihong@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[add] https://crrev.com/8855d08cbe68a7099d3b9a546fd1606b047b992d/chromeos/config/env/dev-embedded/dfu-programmer

Status: Fixed (was: Started)
Should be fixed.
Labels: VerifyIn-54
bulk verified
Status: Verified (was: Fixed)

Sign in to add a comment