Using kernel LED class - Raspberry Pi Forums


hello,
tried use pi's onboard led "heartbeat" indicator.

code: select all

insmod ledtrig-heartbeat.ko echo heartbeat > /sys/class/leds/mmc0::/trigger 
when change trigger source led, pi stops responding after while (about 10sec).

pi's kernel led class broken?

best regards
piotr

this kind of overengineered response, in deals couple of other things, should able rip relevant bits out application.

code: select all

#!/usr/bin/perl  # name      flash-ok-led.pl # author    kronalias # provides  flashes rpi ok (green) led confidence tone #           flashing heartbeat = usb device cheeky big red button found #           flashing pattern = unplugged #  # crontab   run on boot #           @reboot sleep 15; /usr/bin/perl /home/pi/my/scripts/flash-ok-led.pl # # version   1.01 - base version #           1.02 - allows crontab start  use strict; use warnings;  use time::hires ('usleep'); # can usleep(microseconds)  $version = 1.02; $path = '/mnt/ramdisk/'; $name = 'flash-ok-led';  use posix "strftime"; $pid = "$$"; print strftime("%h:%m:%s %a %d %b %y", localtime(time())), " $path$name ver:$version pid: $pid\n";  # if script started crontab may need find pid, store in file $pid_file = "$path$name.pid"; `echo $$ > "$pid_file"`;  while (1) {     if ( &red_button_exists() ) {         &ok_led_timer();     } else {         &ok_led_heartbeat();     } }  # never here exit;  sub ok_led_heartbeat(){     # default trigger led 'mmc0'.     # before using led have deactivate trigger.     `sudo sh -c "echo none >/sys/class/leds/led0/trigger"`;     # `echo none >/sys/class/leds/led0/trigger`;      # attach heartbeat module trigger     if (index(`lsmod`, 'ledtrig_heartbeat') == -1) {         `sudo modprobe ledtrig_heartbeat`;     }      # start heartbeat:     `sudo sh -c "echo heartbeat >/sys/class/leds/led0/trigger"`;     # `echo heartbeat >/sys/class/leds/led0/trigger`;      while ( !&red_button_exists() ) {         sleep 1;     }      # restore original functionality:     `sudo sh -c "echo mmc0 > /sys/class/leds/led0/trigger"`;     #`echo mmc0 > /sys/class/leds/led0/trigger`;     # clean     `sudo rmmod ledtrig_heartbeat`;      return 1; }  sub ok_led_timer(){     # default trigger led 'mmc0'.     # before using led have deactivate trigger.     `sudo sh -c "echo none >/sys/class/leds/led0/trigger"`;     #`echo none >/sys/class/leds/led0/trigger`;      # attach ledtrig_timer module trigger     if (index(`lsmod`, 'ledtrig_timer') == -1) {         `sudo modprobe ledtrig_timer`;     }      # turn on timer control:     `sudo sh -c "echo timer >/sys/class/leds/led0/trigger"`;     # `echo timer >/sys/class/leds/led0/trigger`;      # start flashing @ ~4hz , speed     $delay = 256;      # /var/log/auth.log catches sudo commands     # make things world writeable not log write     `sudo chmod 666 /sys/class/leds/led0/delay_on`;     `sudo chmod 666 /sys/class/leds/led0/delay_off`;      $done = 0;     while (!$done) {         #`sudo sh -c "echo $delay >/sys/class/leds/led0/delay_on"`;         #`sudo sh -c "echo $delay >/sys/class/leds/led0/delay_off"`;         `echo $delay >/sys/class/leds/led0/delay_on`;         `echo $delay >/sys/class/leds/led0/delay_off`;         $delay = int($delay/2);         if ($delay <= 10) {             $delay = 256;         }         usleep(500000); # 0.5 seconds         if ( !&red_button_exists() ) {             $done = 1;         }     }      # restore original functionality     `sudo sh -c "echo mmc0 > /sys/class/leds/led0/trigger"`;     # `echo mmc0 > /sys/class/leds/led0/trigger`;     # clean     `sudo rmmod ledtrig_timer`;      return 1; }  sub red_button_exists(){     # returns true cheeky stress big red button, vendor/product id of 04f3:04a0, otherwise returns false     # lsusb returns this: "bus 003 device 002: id 04f3:04a0 elan microelectronics corp."      # following lines work, load cpu     #    $result = 0;     #    if (index(`lsusb`, '04f3:04a0') != -1) {     #        $result = 1;     #    }      # following line not cpu intensive     $result = (-e '/dev/input/by-id/usb-04f3_panic_button-event-kbd');      return $result; }  
written big red button thingy here:
http://www.youtube.com/user/kronalias


raspberrypi



Comments

Popular posts from this blog

Joomla site hacked, cant see front and - Joomla! Forum - community, help and support

Christian Home School Programs - Joomla! Forum - community, help and support

Trouble with PF_OutFlag_I_USE_AUDIO and PF_CHECKOUT_LAYER_AUDIO