#!/usr/bin/perl -w use strict; my $MOUSENAME = "PS/2 Generic Mouse"; my $LINKNAME = "TouchPad"; print "Finding TouchPad and making device link for X server...\n"; system("rmmod", "psmouse"); system("modprobe", "psmouse"); my %dev = (); open DEVICES, "/proc/bus/input/devices" or die "cannot read device list"; while() { chomp; if(/^([A-Z]): (.*)/) { $dev{$1} = $2; } else { checkDevice(); %dev = (); next; } } checkDevice(); sub checkDevice { return if !defined $dev{N} or !defined $dev{H}; return if $dev{N} !~ $MOUSENAME; die "No event device found for TouchPad" if $dev{H} !~ /(event\d+)/; makeLink($1); exit(0); } sub makeLink { print "Mouse is at /dev/input/$_[0]\n"; chdir "/dev/input" or die; unlink $LINKNAME; system("ln", "-s", $_[0], $LINKNAME) == 0 or die "Could not make /dev/input/TouchPad link"; }