[Touch-packages] [Bug 1354306]

2014-08-12 Thread Kay Sievers
(In reply to comment #1)
> Note that, due to a firmware change, the m400 rule should use "gpio_keys"
> instead of "gpio-keys". Here is the new rule:
> 
> SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="platform",
> KERNELS=="gpio_keys.6", PROGRAM="/bin/grep '^HP ProLiant m400 Server
> Cartridge$' /proc/device-tree/model", TAG+="power-switch"

That's a neat hack, but in no way upstreamable.

Upstream udev dev will not read the device information from /proc, and will
also not call any external tools like grep.

This all needs to be solved properly on the kernel side, to export real devices
and allow efficient and reliable matching from userspace tools.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1354306

Title:
  gpio shutdown trigger for ProLiant m400 cartridges

Status in systemd:
  Confirmed
Status in “systemd” package in Ubuntu:
  Triaged
Status in “systemd” source package in Trusty:
  Triaged
Status in “systemd” source package in Utopic:
  Triaged

Bug description:
  Similar to the m800 case in LP: #1347776, udev/systemd also needs to
  know how to trigger a graceful shutdown on ProLiant m400 cartridges.

  [Impact]
  Without this change, the power down button will not initiate an OS shutdown 
on this platform.
  [Test Case]
  Push button. Watch poweroff occur.
  [Regression Potential]
  The new rule is pretty tightly bound to the m400 system - so the risk of this 
rule matching and impacting behavior on a different platform is minimal. This 
will presumably cause new code to run and read /proc/device-tree/model on other 
platforms - but this is already done for the m800 system in both utopic and 
trusty.

To manage notifications about this bug go to:
https://bugs.launchpad.net/systemd/+bug/1354306/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1347776]

2014-08-12 Thread Kay Sievers
(In reply to comment #1)
> Note that, due to a firmware change, the m400 rule should use "gpio_keys"
> instead of "gpio-keys". Here is the new rule:
> 
> SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="platform",
> KERNELS=="gpio_keys.6", PROGRAM="/bin/grep '^HP ProLiant m400 Server
> Cartridge$' /proc/device-tree/model", TAG+="power-switch"

That's a neat hack, but in no way upstreamable.

Upstream udev dev will not read the device information from /proc, and will
also not call any external tools like grep.

This all needs to be solved properly on the kernel side, to export real devices
and allow efficient and reliable matching from userspace tools.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1347776

Title:
  shutdown trigger on gpio_keys.X for armhf hardware

Status in systemd:
  Confirmed
Status in “systemd” package in Ubuntu:
  Fix Released
Status in “systemd” source package in Trusty:
  Fix Committed
Status in “systemd” source package in Utopic:
  Fix Released

Bug description:
  Some ARM board uses GPIO gpio_key.12 for power control (key=116). The
  proposed patch adds entry to logind's 70-power-switch.rules to
  initiate soft shutdown of the cartridge from ilo.

  Here is the udevadm output for /dev/input/event0

  sudo udevadm info --query=all --name=/dev/input/event0 --attribute-
  walk

  Udevadm info starts with the device specified by the devpath and then
  walks up the chain of parent devices. It prints for every device
  found, all possible attributes in the udev rules key format.
  A rule to match, can be composed by the attributes of the device
  and the attributes from one single parent device.

    looking at device '/devices/soc.3/gpio_keys.12/input/input0/event0':
  KERNEL=="event0"
  SUBSYSTEM=="input"
  DRIVER==""

    looking at parent device '/devices/soc.3/gpio_keys.12/input/input0':
  KERNELS=="input0"
  SUBSYSTEMS=="input"
  DRIVERS==""
  ATTRS{name}=="gpio_keys.12"
  ATTRS{phys}=="gpio-keys/input0"
  ATTRS{uniq}==""
  ATTRS{properties}=="0"

    looking at parent device '/devices/soc.3/gpio_keys.12':
  KERNELS=="gpio_keys.12"
  SUBSYSTEMS=="platform"
  DRIVERS=="gpio-keys"
  ATTRS{keys}=="116"
  ATTRS{switches}==""
  ATTRS{disabled_keys}==""
  ATTRS{disabled_switches}==""

    looking at parent device '/devices/soc.3':
  KERNELS=="soc.3"
  SUBSYSTEMS=="platform"
  DRIVERS==""

  Regarding the possibility of gpio_key.12 being used by other systems
  to map to some other trigger, I put in the check that the gpio_key.12
  is associated with power control (keys=116). '116' is supposedly linux
  generic power control in DTS. There is no uniq idSystem or idVendor
  for device /dev/input/event0 as you can see from udevadm output,
  therefore I tried to use the best available combination as a safety
  check. This patch will enable power control for any system vendor
  (Other than the one the patch in intended for) that describes in DTS,
  the trigger gpio_key.12 as power control (116).

  
  SRU Request
  ==

  [Impact]

  * User won't be able to initiate a soft shutdown from the chassis
  manager.

  [Test Case]

  * To reproduce this bug, initiate a soft shutdown from the chassis manager, 
for example from ilo you could do
   set node power off shutdown 

  [Test Result]

  == BEFORE PATCH ==

  $ cat /lib/udev/rules.d/70-power-switch.rules
  # This file is part of systemd.
  #
  # systemd is free software; you can redistribute it and/or modify it
  # under the terms of the GNU Lesser General Public License as published by
  # the Free Software Foundation; either version 2.1 of the License, or
  # (at your option) any later version.

  ACTION=="remove", GOTO="power_switch_end"

  SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch"
  SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", 
TAG+="power-switch"

  LABEL="power_switch_end"
  $

  hpiLO-> set node power off shutdown c3n2

c3: #Cartridge 3
  c3n2: #Node 2 Shutting node down gracefully

  hpiLO-> show node list

  Slot ID Proc Manufacturer Architecture Memory Power Health
   - --  -- - --
3 c3n1  ARM Architecture 8 GB On OK
3 c3n2  ARM Architecture 8 GB On OK
3 c3n3  ARM Architecture 8 GB On OK
3 c3n4  ARM Architecture 8 GB Off OK

  hpiLO->

  == AFTER PATCH ==

  hpiLO-> set node power off shutdown c3n1

c3: #Cartridge 3
  c3n1: #Node 1 Shutting node down gracefully

  hpiLO-> show node list

  Slot ID Proc Manufacturer Architecture Memory Power Health
   - --  -- - --
3 c3n1  ARM Architecture 8 GB Off OK
3 c3n2  ARM Architecture 8 GB On OK
3 c3n3  ARM Architecture 8 GB On OK
3 c3n