Table of Contents

udev System

udev-rules in /lib/udev/rules.d/ sind vorgegeben und eigene rules in /etc/udev/rules.d/
alle rules müssen mit .rules enden.

udev Events monitoren

root> udevadm monitor –property

Laptop Strom Status

Batterie Ladezustand anzeigen und bei zu niedriger Ladung warnen bzw. in Suspend-to-RAM gehen.
Benötigte Packete:

apt-get install xosd-bin beep pm-utils

udev-rule

In /etc/udev/rules.d/

99-power-status.rules

SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", RUN+="/usr/bin/su - -c /usr/local/bin/battery_status"
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_NAME}=="AC", RUN+="/usr/bin/su - -c /usr/local/bin/ac_power_status"

Scripte zu der udev-rule

Batterie Status

/usr/local/bin/battery_status

#!/usr/bin/bash

cap=`cat /sys/class/power_supply/BAT0/capacity`
stat=`cat /sys/class/power_supply/BAT0/status`
level=`cat /sys/class/power_supply/BAT0/capacity_level`
if [ "$level" = "Full" ]; then
  echo -e "Batterie-Status:\n$stat\n$level $cap %"|osd_cat --colour=green -f '-adobe-courier-bold-r-*-*-180-*-*-*-*-*-*-*' -O 10 -p bottom -A center -o 600 -d 5 &
fi
if [ "$level" = "Normal" ]; then
  echo -e "Batterie-Status:\n$stat\n$level $cap %"|osd_cat --colour=green -f '-adobe-courier-bold-r-*-*-180-*-*-*-*-*-*-*' -O 10 -p bottom -A center -o 600 -d 5 &
  beep -f 50
fi
if [ "$level" = "Low" ]; then
  echo -e "Batterie-Status:\n$stat\n$level $cap %"|osd_cat --colour=yellow -f '-adobe-courier-bold-r-*-*-180-*-*-*-*-*-*-*' -O 10 -p bottom -A center -o 600 -d 7 &
  beep -f 2000 -l 1000 -n -f 1000 -l 1000 -n -f 2000 -l 1000 -n -f 1000 -l 1000
fi
if [ "$level" = "Critical" ]; then
  echo -e "Batterie-Status:\n$stat\n$level $cap %"|osd_cat --colour=red -f '-adobe-courier-bold-r-*-*-180-*-*-*-*-*-*-*' -O 10 -p bottom -A center -o 600 -d 10 &
  beep -f 2000 -l 1000 -n -f 1000 -l 1000 -n -f 2000 -l 1000 -n -f 1000 -l 1000 -n -f 2000 -l 1000 -n -f 1000 -l 1000 -n -f 2000 -l 1000 -n -f 1000 -l 1000 -n -f 2000 -l 1000 -n -f 1000 -l 1000
  sleep 5
  echo -e "Shutdown\nSuspend to RAM"|osd_cat --colour=red -f '-adobe-courier-bold-r-*-*-180-*-*-*-*-*-*-*' -O 10 -p bottom -A center -o 600 -d 10
  sleep 5
  /usr/sbin/pm-suspend
fi

Stromanschluss (AC) Status

/usr/local/bin/ac_power_status

#!/usr/bin/bash

stat=`cat /sys/class/power_supply/AC/online`
if [ "$stat" = "0" ]; then
  echo -e "AC-Power-Status:\nOFFLINE"|osd_cat --colour=red -f '-adobe-courier-bold-r-*-*-180-*-*-*-*-*-*-*' -p bottom -A center -d 10 &
  beep -f 2000 -l 1000 -n -f 1000 -l 1000 -n -f 2000 -l 1000 -n -f 1000 -l 1000
fi
if [ "$stat" = "1" ]; then
  echo -e "AC-Power-Status:\nONLINE"|osd_cat --colour=green -f '-adobe-courier-bold-r-*-*-180-*-*-*-*-*-*-*' -p bottom -A center -d 5 &
  beep -f 50 -l 1000
fi