x200 tp-theft

CarPad

Member
Themenstarter
Registriert
6 Juni 2010
Beiträge
169
Moin Leute,
ich versuche just tp-theft auf meinen x200 zum laufen zu bringen. Ich habe mich dabei an mikar's Anleitung im Thinkpad-Tweaks Beitrag gehalten. hdaps ist installiert und schlägt auch an (parking).
Jeglicher Alarm bleibt aber aus.
Meine Frage an die Gemeinde: Das tp-theft Script kann doch in /home liegen?? Und muss ich evtl. Anpassungen in Bezug auf Audio treffen? Oder, oder, oder? ;)

Gruß
Carpad
 
So, ich habe dann mal folgendes Skript nach /usr/bin befördert:
Code:
#!/usr/bin/perl
# tp-theft v0.1 ([url]http://thinkwiki.org/wiki/Script_for_theft_alarm_using_HDAPS[/url])
# This script uses the HDAPS accelerometer found on recent ThinkPad models
# to emit an audio alarm when the laptop is tilted. In sufficiently
# populated environments, it can be used as a laptop theft deterrent.
#
# This file is placed in the public domain and may be freely distributed.

use strict;
use warnings;

##############################

# Checks
# Here `lsmod` is in list context and returns the output of lsmod as a list of lines
# grep filters lists, returning only the line that matches the /hdaps/ regexp
unless ( grep { /hdaps/ } `lsmod` ) {
    system 'modprobe', ( 'hdaps' ); sleep(1);
}

if ( `fuser /dev/dsp` ) {
    system 'fuser', ( '-k' => '/dev/dsp' ) and die 'fuser -k /dev/dsp failed';
}

# system returns 0 on success which is the same as false in perl
# which is why we use 'and die ...' to report an error with the system call

# Audio volume (0..100)
my $volume = 100;

 #Synthesize a siren for 1.0 seconds:
  my $play_cmd = "sox -n -t ossdsp /dev/dsp -d synth 0.6 sine 800-1600 >/dev/null 2>&1";

 #Play a file:
 #my $play_cmd = ";
##############################
# Other tweakables

my $thresh = 0.20; # tilt threshold (increase value to decrease sensitivity)
my $interval = 0.5; # sampling interval in seconds
my $depth = 10; # number of recent samples to analyze
my $pos_file='/sys/devices/platform/hdaps/position';
my $verbose = 1;

##############################
# Code

sub get_pos {
    open(POS,"<",$pos_file) or die "Can't open HDAPS file $pos_file: $!\n";
    $_=<POS>;
    m/^\((-?\d+),(-?\d+)\)$/ or die "Can't parse $pos_file content\n";
    return ($1,$2);
}

sub stddev {
    my $sum=0;
    my $sumsq=0;
    my $n=$#_+1;
    for my $v (@_) {
$sum += $v;
$sumsq += $v*$v;
    }
    return sqrt($n*$sumsq - $sum*$sum)/($n*($n-1));
}

my (@XHIST, @YHIST);
my ($x,$y) = get_pos;
for (1..$depth) {
    push(@XHIST,$x);
    push(@YHIST,$y);
}
my $alarm_file; # flags ongoing alarm (and stores saved mixer settings)

while (1) {
    my ($x,$y) = get_pos;
    shift(@XHIST); push(@XHIST,$x);
    shift(@YHIST); push(@YHIST,$y);
    my $xdev = stddev(@XHIST);
    my $ydev = stddev(@YHIST);

    # Print variance and history
    print "X: v=$xdev (".join(',',@XHIST).") Y: v=$ydev (".join(",",@YHIST).")\n" if $verbose>1;

    my $tilted = $xdev>$thresh || $ydev>$thresh;

    if ($tilted && !(defined($alarm_file) && -f $alarm_file)) {
print "ALARM\n" if $verbose>0;
$alarm_file = `mktemp /tmp/hdaps-tilt.XXXXXXXX` or die "mktemp: $?";
chomp($alarm_file);
system('/bin/bash', '-c', <<"EOF")==0 or die "Failed: $?";
( trap \"aumix -L -f $alarm_file > /dev/null; rm -f $alarm_file" EXIT HUP QUIT TERM
  aumix -S -f $alarm_file &&
  aumix -v $volume -w 100 &&
  $play_cmd) &
EOF
    }

    select(undef, undef, undef, $interval); # sleep
}

Beim Aufruf von theft im Terminal und bewegen des x200 geht das gejaule auch los. (Danke Mikar)
Aber diese "Gejaule) also theft soll ja starten sobald ich FN+F2 also lock, bzw. wenn der Screensaver aktiv ist. Und da habe ich mir von Mikar (nochmals Danke ;) ) Diese Skript geliehen und nach /etc/acpi kopiert:
edit: Die Idee war Mist!!!
Ich habe jetzt das o.g. Skript zu den Startprogrammen hinzu genommen. Klappt ganz gut aber das ist es noch nicht was ich will. Ergo weiter basteln und Mut zur Lücke! :)

Gruß
Carpad
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben