Configuration tool problem
Hi,
I tried to use Configuration Tool for VPN. When I open a *.vpn file the program says:
Impossible to reach temp folder.
I'm using Win7.
Can you help me, please?
Thanks
Hey serenc2, Welcome to the Nokia Forums!
Have you tried viewing this link which can help you to configure your VPN on Configuration Tool?
You can also try do the following steps to fix the problem:
Disconnect the USB cable and connect it again.
If you use a USB hub with an external power source, verify it has been switched on.
If you use a USB hub, try connecting the phone directly to the computer.
Inspect the USB cable for problems and replace if necessary.
Ensure that you are using an original Nokia cable and the correct cable type for your phone.
Verify that you have selected PC Suite USB mode in the phone.
Disconnect the cable, reboot the computer, and try again.
Note; The connection problems may occur if you have previously unplugged USB devices without using the system tray utility for ejecting devices.
Also if a working connection suddenly stops working you can try to repair it using the functionality existing in Nokia Configuration Tool
Start > Programs > Nokia > Nokia Configuration Tool 6.0 > Uninstall > Repair Nokia Configuration Tool.
This option fixes missing or corrupt files, shortcuts and registry entries.
OR
Go to Add/Remove programs on Control panel (called Programs in Windows 7).
Select Nokia Configuration Tool installation and click Change/Remove.
From the dialog choose Repair.
I hope this has helped!
Sheldrick
Press the 'Accept As Solution' icon if I have solved your problem, Kudos my post if my advice has helped you!
Similar Messages
-
ColdFusion 9 Web Server Configuration Tool problem
I am using:
ColdFusion 9.01
Oracle iPlanet Web Server 7.0.13
Windows 2008 R2 Standard
When I try to use the Web Server Configuration Tool, I get the following message: warning "connectors/nsapi/intel-win64/prebuilt/jrun_nsapi.dll". Could it be an incompatability with the versions of software that I am using? Has anyone successfully configured ColdFusion 9.01 with Oracle iPlanet Web Server 7.0.13?
I can't get past this message (see below).
The wsconfig.log file has the following:
02/14 00:39:57 debug Parsing Sun ONE Web Server (iPlanet) configuration file G:\Program Files\Oracle\WebServer7\https-CFAdmin\config\magnus.conf
02/14 00:39:57 debug Parsing Sun ONE Web Server (iPlanet) configuration file G:\Program Files\Oracle\WebServer7\https-CFAdmin\config\obj.conf
02/14 00:39:57 error connectors/nsapi/intel-win64/prebuilt/jrun_nsapi.dll
java.io.FileNotFoundException: connectors/nsapi/intel-win64/prebuilt/jrun_nsapi.dll
at jrunx.connectorinstaller.JarUtils.extractToFile(JarUtils.java:72)
at jrunx.connectorinstaller.CIUtil.extractConnector(CIUtil.java:274)
at jrunx.connectorinstaller.iPlanetInstaller.installConnector(iPlanetInstaller.java:136)
at jrunx.connectorinstaller.ConnectorInstaller.installConnector(ConnectorInstaller.java:341)
at jrunx.connectorinstaller.ConnectorInstaller.doIt(ConnectorInstaller.java:275)
at jrunx.connectorinstaller.ConnectorInstaller.main(ConnectorInstaller.java:765)I'm using Solaris 10 SPARC, iPlanet 7.0.15, and I'm not going to use Apache!
Note: I made a slight modification to the LD_LIBRARY_PATH_64 reference in the startup script for iPlanet.
You have to do this to make the virtual server use the 64-bit libraries.
vi /sun/webserver7/https-<config_name>/bin/startserv
look for this line:
LD_LIBRARY_PATH_64="${SERVER_LIB_PATH_64}:${SERVER_JVM_LIBPATH}:${LD_LIBRARY_PATH_64}"; export LD_LIBRARY_PATH_64
and change it to this line:
LD_LIBRARY_PATH_64="${SERVER_LIB_PATH_64}:${SERVER_JVM_LIBPATH}:${LD_LIBRARY_PATH_64}:/us r/sfw/lib/sparcv9"; export LD_LIBRARY_PATH_64
I'm moving from CF8 ENT to CF9 ENT.
Here's the problem: iPlanet virtual server is configured for 64-bit operation; the connector in CF9 is 32-bit.
Question: What Program is Making this file ---> libjrun_nsapi.so ??
I'm assuming CF is creating it, so try to follow my logic here.....
CF9 doesn't want to produce libjrun_nsapi.so in 64-bit mode.
The file is located here:
/opt/coldfusion9/runtime/lib/wsconfig/1/libjrun_nsapi.so
Instead it spits out a 32-bit file....
# file libjrun_nsapi.so
libjrun_nsapi.so: ELF 32-bit MSB dynamic lib SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped, no debugging information avail
It's supposed to look something like this:
# file libjrun_nsapi.so
libjrun_nsapi.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
I found out that when I use CF8, the installer asks for 64-bit configuration during install,
AND the initial startup makes the 64-bit connector.
In CF9...no such menu item; it doesn't mention 32/64 bit anything.
How do you force CF9 to produce a 64-bit libjrun_nsapi.so file?
This creates the 32-bit file...
cf_root/runtime/bin/wsconfig -server coldfusion -ws sunone -dir /sun/webserver7/<config-name>/config -coldfusion -v
When I add -ws64 it breaks the script....
cf_root/runtime/bin/wsconfig -server coldfusion -ws64 sunone -dir /sun/webserver7/<config-name>/config -coldfusion -v
How do you force CF9 to produce a 64-bit libjrun_nsapi.so file?
FYI: I grabbed the libjrun_nsapi.so file from my CF8 ENT install, and used it in my CF9 ENT install.
No errors from the web server, but it's running dirt-slow now.
Could be the file because the libjrun_nsapi.so was created to connect with CF8, not CF9 !?
How do you force CF9 to produce a 64-bit libjrun_nsapi.so file? -
Laptop mode tools problem with kernel 3.0
today I just updated the system and my laptop runs dramatically hotter after that. I read the archwiki, it does talk about the laptop mode tools problem with kernel 3.0 but when I opened the file /usr/sbin/laptop_mode, the lines which the wiki mentions are not there. Does anyone here have the same problem and can you offer the solution?
Here is my /usr/sbin/laptop_mode
#! /bin/sh
# Script to start or stop laptop_mode, and to control various settings of the
# kernel, hardware etc. that influence power consumption.
# This script is a part of Laptop Mode Tools. If you are running a supported
# power management daemon, this script will be automatically called on power
# state change.
# Configure laptop mode tools in /etc/laptop-mode/laptop-mode.conf, and in
# the broken-out config files in /etc/laptop-mode/conf.d.
# Please consult the manual pages laptop-mode.conf(8) and laptop_mode(8) for
# additional information.
# Maintainer: Ritesh Raj Sarraf ([email protected])
# Original Author: Bart Samwel ([email protected])
# Project home page: http://samwel.tk/laptop_mode
# Contributors to this script: Bart Samwel
# Kiko Piris
# Micha Feigin
# Andrew Morton
# Herve Eychenne
# Dax Kelson
# Jan Polacek
# ... and many others that I've stopped
# keeping track of.
# Based on a script for Linux 2.4 written by Jens Axboe.
set -a
# The laptop mode tools version number. Extracted by the installer makefile
# as well, so don't change the format!
LMTVERSION=1.59
# This script is loaded from multiple scripts to set the config defaults
# and to read the configuration on top of those. Only when the command is
# recognized does this script do anything else.
VERBOSE_OUTPUT=0
ENABLE_LAPTOP_MODE_ON_BATTERY=1
ENABLE_LAPTOP_MODE_ON_AC=0
ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED=0
PARTITIONS="auto /dev/mapper/*"
LM_BATT_MAX_LOST_WORK_SECONDS=600
LM_AC_MAX_LOST_WORK_SECONDS=360
DEF_MAX_AGE=30
LM_READAHEAD=3072
NOLM_READAHEAD=128
CONTROL_READAHEAD=1
CONTROL_NOATIME=0
USE_RELATIME=1
CONTROL_HD_IDLE_TIMEOUT=1
LM_AC_HD_IDLE_TIMEOUT=4 # 20 seconds
LM_BATT_HD_IDLE_TIMEOUT=4 # 20 seconds
NOLM_HD_IDLE_TIMEOUT=244 # 2 hours
DEF_UPDATE=5
DEF_XFS_AGE_BUFFER=15
DEF_XFS_SYNC_INTERVAL=30
DEF_XFS_BUFD_INTERVAL=1
XFS_HZ=100
CONTROL_MOUNT_OPTIONS=1
BATT_HD_POWERMGMT=1
LM_AC_HD_POWERMGMT=254
NOLM_AC_HD_POWERMGMT=254
CONTROL_HD_POWERMGMT=0
CONTROL_HD_WRITECACHE=0
NOLM_AC_HD_WRITECACHE=1
NOLM_BATT_HD_WRITECACHE=0
LM_HD_WRITECACHE=0
LM_DIRTY_RATIO=60
LM_DIRTY_BACKGROUND_RATIO=1
NOLM_DIRTY_BACKGROUND_RATIO=10
NOLM_DIRTY_RATIO=40
LM_SECONDS_BEFORE_SYNC=2
BATT_CPU_MAXFREQ=medium
BATT_CPU_MINFREQ=slowest
BATT_CPU_GOVERNOR=ondemand
BATT_CPU_IGNORE_NICE_LOAD=1
LM_AC_CPU_MAXFREQ=fastest
LM_AC_CPU_MINFREQ=slowest
LM_AC_CPU_GOVERNOR=ondemand
LM_AC_CPU_IGNORE_NICE_LOAD=1
NOLM_AC_CPU_MAXFREQ=fastest
NOLM_AC_CPU_MINFREQ=slowest
NOLM_AC_CPU_GOVERNOR=ondemand
NOLM_AC_CPU_IGNORE_NICE_LOAD=0
CONTROL_CPU_FREQUENCY=0
HD="/dev/[hs]d[abcdefgh]"
CONTROL_SYSLOG_CONF=0
LM_AC_SYSLOG_CONF=/etc/syslog-on-ac-with-lm.conf
NOLM_AC_SYSLOG_CONF=/etc/syslog-on-ac-without-lm.conf
BATT_SYSLOG_CONF=/etc/syslog-on-battery.conf
SYSLOG_CONF_SIGNAL_PROGRAM=syslogd
SYSLOG_CONF=/etc/syslog.conf
CONTROL_DPMS_STANDBY=0
BATT_DPMS_STANDBY=300
LM_AC_DPMS_STANDBY=1200
NOLM_AC_DPMS_STANDBY=1200
CONTROL_CPU_THROTTLING=0
BATT_CPU_THROTTLING=medium
LM_AC_CPU_THROTTLING=minimum
NOLM_AC_CPU_THROTTLING=minimum
CONTROL_START_STOP=1
CONTROL_TERMINAL=0
TERMINALS="/dev/vc/1 /dev/vcs1"
BATT_TERMINAL_BLANK_MINUTES=1
BATT_TERMINAL_POWERDOWN_MINUTES=2
LM_AC_TERMINAL_BLANK_MINUTES=10
LM_AC_TERMINAL_POWERDOWN_MINUTES=10
NOLM_AC_TERMINAL_BLANK_MINUTES=10
NOLM_AC_TERMINAL_POWERDOWN_MINUTES=50
ENABLE_AUTO_HIBERNATION=0
HIBERNATE_COMMAND=/usr/sbin/hibernate
AUTO_HIBERNATION_ON_CRITICAL_BATTERY_LEVEL=1
DISABLE_LAPTOP_MODE_ON_CRITICAL_BATTERY_LEVEL=1
AUTO_HIBERNATION_BATTERY_CHARGE_MAH=0
AUTO_HIBERNATION_BATTERY_CHARGE_MWH=0
MINIMUM_BATTERY_CHARGE_MAH=0
MINIMUM_BATTERY_CHARGE_MWH=0
ASSUME_SCSI_IS_SATA=1
CONTROL_BRIGHTNESS=0
BATT_BRIGHTNESS_COMMAND=false
LM_AC_BRIGHTNESS_COMMAND=false
NOLM_AC_BRIGHTNESS_COMMAND=false
LOG_TO_SYSLOG=1
DEBUG=0
ENABLE_LAPTOP_MODE_TOOLS=1
# Initialize the PATH Variable
export PATH="${PATH}":/bin:/sbin:/usr/bin:/usr/sbin
# This is a 2 phase locking approach. LMT_REQ_LOCK is the outer lock and LMT_INVOC_LOCK is the inner lock
# We take this approach to ensure the scenario that, "At any point when an event occurs (AC/BATT), the
# kernel can generate multiple events spanning over a couple of events. The first event is honored and
# lmt executes. If the last event triggered at the 9th second, there is a fair chance that a good amount
# of state change would have occured in the OS, to honor that state, we keep an outer lock (LMT_REQ_LOCK)
# handy, so that those changes can also be applied and not forgotten.
# Workflow:
# Event-1 is generated and lmt executes (lmt runtime could span 5-10 seconds)
# At seventh second, 4 events generate. But Event-1 is still running.
# We don't want to discard all the remaining 4 events, but at least honor 1 so that we can act to the changes
# that occured in the last 7 seconds.
# So, Event-2 acquire LMT_REQ_LOCK and waits to acquire LMT_INVOC_LOCK (which is acquire by Event-1)
LMT_REQ_LOCK="/var/lock/lmt-req.lock"
LMT_INVOC_LOCK="/var/lock/lmt-invoc.lock"
FLOCK=`which flock`
checkint ()
# $1 arg should be the string/integer
# that you want to check for as an integer.
echo $1 | grep "[^0-9]" > /dev/null 2>&1
return $?;
# Returns 1 if it is an integer
# Function to handle logging
LOGGER=`which logger`;
log ()
# $1 should be msg type
# $2 should be the real msg
if [ x$LOG_TO_SYSLOG = x1 ]; then
# NOTE: Add the check on $2 being empty, once you are confident
# that there aren't any bugs in logging. And no bugs in executing
# modules and logging
if [ -x $LOGGER -a "$1" != "STATUS" ]; then
#if [ -z $2 ]; then
# continue
#elif [ "$1" = "MSG" ]; then
if [ "$1" = "MSG" ]; then
logger -p daemon.info -t laptop-mode "$2";
elif [ "$1" = "ERR" ]; then
logger -p daemon.err -t laptop-mode "$2";
elif [ "$1" = "VERBOSE" ]; then
if [ x$VERBOSE_OUTPUT = x1 ]; then
logger -p daemon.debug -t laptop-mode "$2";
fi
else
logger -p daemon.notice -t laptop-mode "$2";
fi
fi
fi
if [ "$1" = "VERBOSE" ]; then
$LM_VERBOSE && echo "$2" >/dev/fd/2;
elif [ "$1" = "ERR" ]; then
echo "$2" >/dev/fd/2;
else
# Message of type MSG and STATUS can go to stdout.
echo "$2" >/dev/fd/1;
fi
enableDebug ()
# Check if debug is enabled
if [ x$(($(basename $1 | cut -d . -f1 | tr "[:lower:]" "[:upper:]" | sed 's/-/_/g')_DEBUG)) = x1 ]; then
set -vx
fi
disableDebug ()
# Check if debug is enabled
if [ x$(($(basename $1 | cut -d . -f1 | tr "[:lower:]" "[:upper:]" | sed 's/-/_/g')_DEBUG)) = x1 ]; then
set +vx
fi
# No default on these ones -- we need to detect if they have been set, for
# backward compatibility with MINIMUM_BATTERY_MINUTES etc.
AUTO_HIBERNATION_BATTERY_CHARGE_PERCENT=
MINIMUM_BATTERY_CHARGE_PERCENT=
# Backward compatibility variable that is sometimes
# set externally (Debian init system)
unset VERBOSE
lmt_load_config ()
# Source config. Some config settings have been moved from the main config file
# to modular configuration files, and to support existing laptop-mode.conf
# files from earlier versions, we source the modular configuration files FIRST.
if [ -d /etc/laptop-mode/conf.d ] ; then
for CONF in /etc/laptop-mode/conf.d/*.conf ; do
if [ -r "$CONF" ] ; then
. "$CONF"
#Handle individual module debug settings
if [ "$DEBUG" -eq 1 ]; then
export $(basename $CONF | cut -d . -f1 | tr "[:lower:]" "[:upper:]" | sed 's/-/_/g')_DEBUG=1
log "VERBOSE" "Enabling debug mode for module $CONF"
fi
DEBUG=0
else
log "MSG" "Warning: Configuration file $CONF is not readable, skipping."
fi
done
fi
if [ -r /etc/laptop-mode/laptop-mode.conf ] ; then
. /etc/laptop-mode/laptop-mode.conf
else
log "ERR" "$0: Configuration file /etc/laptop-mode/laptop-mode.conf not present or not readable."
exit 1
fi
if [ x$ENABLE_LAPTOP_MODE_TOOLS = x0 ]; then
log "MSG" "laptop-mode-tools is disabled in config file. Exiting"
exit 0;
fi
# Add a simple bash debug mode switch
if [ "$DEBUG" -eq 1 ]; then
set -vx;
fi
# Support for old config settings
if [ "$AC_HD" != "" ] ; then
AC_HD_WITHOUT_LM="$AC_HD"
AC_HD_WITH_LM="$AC_HD"
fi
if [ "$VERBOSE" != "" ] ; then
VERBOSE_OUTPUT="$VERBOSE"
fi
if [ "$CPU_MAXFREQ" != "" ] ; then
BATT_CPU_MAXFREQ="$CPU_MAXFREQ"
fi
if [ "$MAX_AGE" != "" ] ; then
LM_BATT_MAX_LOST_WORK_SECONDS="$MAX_AGE"
LM_AC_MAX_LOST_WORK_SECONDS="$MAX_AGE"
fi
if [ "$DEF_AGE" != "" ] ; then
DEF_MAX_AGE="$DEF_AGE"
fi
if [ "$LAPTOP_MODE_ALWAYS_ON" != "" ] ; then
ENABLE_LAPTOP_MODE_ALWAYS="$LAPTOP_MODE_ALWAYS_ON"
fi
if [ "$LM_WHEN_LID_CLOSED" != "" ] ; then
ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED="$LM_WHEN_LID_CLOSED"
fi
if [ "$REMOUNT_PARTITIONS" != "" ] ; then
PARTITIONS="$REMOUNT_PARTITIONS"
fi
if [ "$READAHEAD" != "" ] ; then
LM_READAHEAD="$READAHEAD"
fi
if [ "$DO_REMOUNT_NOATIME" != "" ] ; then
CONTROL_NOATIME="$DO_REMOUNT_NOATIME"
fi
if [ "$DO_HD" != "" ] ; then
CONTROL_HD_IDLE_TIMEOUT="$DO_HD"
fi
if [ "$AC_HD_WITH_LM" != "" ] ; then
LM_AC_HD_IDLE_TIMEOUT="$AC_HD_WITH_LM"
fi
if [ "$AC_HD_WITHOUT_LM" != "" ] ; then
NOLM_HD_IDLE_TIMEOUT="$AC_HD_WITHOUT_LM"
fi
if [ "$BATT_HD" != "" ] ; then
LM_BATT_HD_IDLE_TIMEOUT="$BATT_HD"
fi
if [ "$DO_REMOUNTS" != "" ] ; then
CONTROL_MOUNT_OPTIONS="$DO_REMOUNTS"
fi
if [ "$DO_HD_POWERMGMT" != "" ] ; then
CONTROL_HD_POWERMGMT="$DO_HD_POWERMGMT"
fi
if [ "$AC_HDPARM_POWERMGMT_WITH_LM" != "" ] ; then
LM_AC_HD_POWERMGMT="$AC_HDPARM_POWERMGMT_WITH_LM"
fi
if [ "$AC_HDPARM_POWERMGMT_WITHOUT_LM" != "" ] ; then
NOLM_AC_HD_POWERMGMT="$AC_HDPARM_POWERMGMT_WITHOUT_LM"
fi
if [ "$BATT_HDPARM_POWERMGMT" != "" ] ; then
BATT_HD_POWERMGMT="$BATT_HDPARM_POWERMGMT"
fi
if [ "$DO_WRITECACHE" != "" ] ; then
CONTROL_HD_WRITECACHE="$DO_WRITECACHE"
fi
if [ "$AC_WRITECACHE_WITHOUT_LM" != "" ] ; then
NOLM_AC_HD_WRITECACHE="$AC_WRITECACHE_WITHOUT_LM"
fi
if [ "$BATT_WRITECACHE" != "" ] ; then
LM_HD_WRITECACHE="$BATT_WRITECACHE"
fi
if [ "$DIRTY_RATIO" != "" ]; then
LM_DIRTY_RATIO="$DIRTY_RATIO"
fi
if [ "$DIRTY_BACKGROUND_RATIO" != "" ] ; then
LM_DIRTY_BACKGROUND_RATIO="$DIRTY_BACKGROUND_RATIO"
fi
if [ "$DEF_DIRTY_RATIO" != "" ]; then
NOLM_DIRTY_RATIO="$DEF_DIRTY_RATIO"
fi
if [ "$DEF_DIRTY_BACKGROUND_RATIO" != "" ] ; then
NOLM_DIRTY_BACKGROUND_RATIO="$DEF_DIRTY_BACKGROUND_RATIO"
fi
if [ "$DO_CPU" != "" ] ; then
CONTROL_CPU_FREQUENCY="$DO_CPU"
fi
if [ "$CONTROL_CPU_MAXFREQ" != "" ] ; then
CONTROL_CPU_FREQUENCY="$CONTROL_CPU_MAXFREQ"
fi
if [ "$AC_CPU_MAXFREQ_WITH_LM" != "" ] ; then
LM_AC_CPU_MAXFREQ="$AC_CPU_MAXFREQ_WITH_LM"
fi
if [ "$AC_CPU_MAXFREQ_WITHOUT_LM" != "" ] ; then
NOLM_AC_CPU_MAXFREQ="$AC_CPU_MAXFREQ_WITHOUT_LM"
fi
if [ "$DO_SYSLOG" != "" ] ; then
CONTROL_SYSLOG_CONF="$DO_SYSLOG"
fi
if [ "$SYSLOG_SIGNAL_PROGRAM" != "" ] ;then
SYSLOG_CONF_SIGNAL_PROGRAM="$SYSLOG_SIGNAL_PROGRAM"
fi
if [ "$AC_SYSLOG_WITH_LM" != "" ] ; then
LM_AC_SYSLOG_CONF="$AC_SYSLOG_WITH_LM"
fi
if [ "$AC_SYSLOG_WITHOUT_LM" != "" ] ; then
NOLM_AC_SYSLOG_CONF="$AC_SYSLOG_WITHOUT_LM"
fi
if [ "$BATT_SYSLOG" != "" ] ; then
BATT_SYSLOG_CONF="$BATT_SYSLOG"
fi
if [ "$ENABLE_LAPTOP_MODE_ALWAYS" != "" ] ; then
ENABLE_LAPTOP_MODE_ON_AC="$ENABLE_LAPTOP_MODE_ALWAYS"
fi
if [ "$MINIMUM_BATTERY_MINUTES" != "" -a "$MINIMUM_BATTERY_CHARGE_PERCENT" = "" ] ; then
# Use a very conservative estimate (1% = 1 battery minute, 100 minutes in a battery)
# for backward compatibility.
MINIMUM_BATTERY_CHARGE_PERCENT="$MINIMUM_BATTERY_MINUTES"
fi
if [ -z "$MINIMUM_BATTERY_CHARGE_PERCENT" ] ; then
# Apply the default, now that we've determined that this is the minimum.
MINIMUM_BATTERY_CHARGE_PERCENT=3
fi
if [ "$AUTO_HIBERNATION_BATTERY_MINUTES" != "" -a "$AUTO_HIBERNATION_BATTERY_CHARGE_PERCENT" = "" ] ; then
# Use a very conservative estimate (1% = 1 battery minute, 100 minutes in a battery)
# for backward compatibility.
AUTO_HIBERNATION_BATTERY_CHARGE_PERCENT="$AUTO_HIBERNATION_BATTERY_MINUTES"
fi
if [ -z "$AUTO_HIBERNATION_BATTERY_CHARGE_PERCENT" ] ; then
# Apply the default, now that we've determined that this is the minimum.
AUTO_HIBERNATION_BATTERY_CHARGE_PERCENT=2
fi
# Postprocessing
if [ "$VERBOSE_OUTPUT" -ne 0 ] ; then
OUTPUT="/dev/stdout"
LM_VERBOSE="[ 1 = 1 ]"
else
OUTPUT="/dev/null"
LM_VERBOSE="[ 1 = 0 ]"
fi
if [ "$PARTITIONS" = "" ] ; then
PARTITIONS="auto /dev/mapper/*"
fi
# Expand shell wild cards immediately.
PARTITIONS=$( echo $PARTITIONS )
TERMINALS=$( echo $TERMINALS )
# Convert seconds to hdparm -S format
# Everything over 20 minutes is interpreted as 2 hours.
seconds_to_hdparm_S() {
if [ "$1" -eq 0 ] ; then
# disable.
echo 0
elif [ "$1" -gt 0 -a "$1" -lt 5 ] ; then
# 5 seconds minimum
echo 1
elif [ "$1" -le $((240*5)) ] ; then
# Values between 1 and 240 signify increments of 5 seconds
echo $(($1 / 5))
elif [ "$1" -lt $((30*60)) ] ; then
# Values between 20 and 30 minutes are rounded up to 30 minutes.
echo 241
elif [ "$1" -lt $((12*30*60)) ] ; then
# Values between 30 minutes and 6 hours (exclusive) yield values between
# 241 and 251, in 30-minute increments.
echo $(( 240 + ($1 / (30*60)) ))
else
# Larger values effectively indicate no timeout at all.
echo 0
fi
# Convert configured idle timeouts to hdparm -S format.
if [ "$LM_AC_HD_IDLE_TIMEOUT_SECONDS" != "" ] ; then
LM_AC_HD_IDLE_TIMEOUT=$(seconds_to_hdparm_S $LM_AC_HD_IDLE_TIMEOUT_SECONDS)
fi
if [ "$LM_BATT_HD_IDLE_TIMEOUT_SECONDS" != "" ] ; then
LM_BATT_HD_IDLE_TIMEOUT=$(seconds_to_hdparm_S $LM_BATT_HD_IDLE_TIMEOUT_SECONDS)
fi
if [ "$NOLM_HD_IDLE_TIMEOUT_SECONDS" != "" ] ; then
NOLM_HD_IDLE_TIMEOUT=$(seconds_to_hdparm_S $NOLM_HD_IDLE_TIMEOUT_SECONDS)
fi
# The main workhorse.
lmt_main_function ()
if [ "$1" = "status" ] ; then
# Display a status report.
log "STATUS" "Mounts:"
mount | sed "s/^/ /"
log "STATUS" " "
log "STATUS" "Drive power status:"
for disk in $HD; do
if [ -r $disk ]; then
hdparm -C $disk 2>/dev/null | sed "s/^/ /"
else
log "STATUS" " Cannot read $disk, permission denied - $0 needs to be run as root"
fi
done
log "STATUS" " "
log "STATUS" "(NOTE: drive settings affected by Laptop Mode cannot be retrieved.)"
log "STATUS" " "
log "STATUS" "Readahead states:"
cat /etc/mtab | while read DEV MP FST OPTS DUMP PASS ; do
# skip funny stuff
case "$FST" in
rootfs|unionfs|tmpfs|squashfs|sysfs|usbfs|proc|devpts) continue
esac
if [ -b $DEV ] ; then
if [ -r $DEV ] ; then
log "STATUS" " $DEV: $((`blockdev --getra $DEV` / 2)) kB"
else
log "STATUS" " Cannot read $DEV, permission denied - $0 needs to be run as root"
fi
fi
done
log "STATUS" " "
if [ -e /var/run/laptop-mode-tools/enabled ] ; then
log "STATUS" "Laptop Mode Tools is allowed to run: /var/run/laptop-mode-tools/enabled exists."
else
log "STATUS" "Laptop Mode Tools is NOT allowed to run: /var/run/laptop-mode-tools/enabled does not exist."
fi
log "STATUS" " "
STATFILES="/proc/sys/vm/laptop_mode /proc/apm /proc/pmu/info /proc/sys/vm/bdflush /proc/sys/vm/dirty_ratio /proc/sys/fs/xfs/age_buffer /proc/sys/fs/xfs/sync_interval /proc/sys/fs/xfs/lm_age_buffer /proc/sys/fs/xfs/lm_sync_interval /proc/sys/vm/pagebuf/lm_flush_age /proc/sys/fs/xfs/xfsbufd_centisecs /proc/sys/fs/xfs/xfssyncd_centisecs /proc/sys/vm/dirty_background_ratio /proc/sys/vm/dirty_expire_centisecs /proc/sys/fs/xfs/age_buffer/centisecs /proc/sys/vm/dirty_writeback_centisecs /sys/devices/system/cpu/*/cpufreq/cpuinfo_*_freq /sys/devices/system/cpu/*/cpufreq/scaling_governor /proc/acpi/button/lid/*/state /proc/acpi/ac_adapter/*/state /proc/acpi/battery/*/state /sys/class/power_supply/*/online /sys/class/power_supply/*/state"
for THISFILE in $STATFILES ; do
if [ -e "$THISFILE" ] ; then
log "STATUS" "$THISFILE:"
if [ -r "$THISFILE" ] ; then
cat "$THISFILE" | sed "s/^/ /"
else
log "STATUS" " Not accessible, permission denied - $0 needs to be run as root."
fi
log "STATUS" " "
fi
done
elif [ "$1" != "readconfig" -a "$1" != "defaults" ] ; then
KLEVEL="$(uname -r |
IFS='.-' read a b c
echo $a.$b
KMINOR="$(uname -r |
IFS='.-' read a b c d
# Strip any stuff from the end -- only the initial digits are part of the KMINOR.
echo $c | sed -e 's/\([[:digit:]]*\).*/\1/'
# Stop exporting everything -- what we do from here is private.
set +a
if [ "$1" = "--version" ] ; then
log "MSG" "Laptop Mode Tools $LMTVERSION"
exit 0
fi
if [ ! -e /proc/sys/vm/laptop_mode ] ; then
log "ERR" "Kernel does not have support for laptop mode. Please apply the laptop mode"
log "ERR" "patch or install a newer kernel."
exit 1
fi
if [ ! -w /proc/sys/vm/laptop_mode ] ; then
log "ERR" "You do not have enough privileges to enable laptop_mode."
exit 1
fi
INIT=0 # Display info in init script format?
FORCE=0 # Force reapplying the current state?
while [ "$1" != "" ] ; do
case "$1" in
init) INIT=1 ;;
force) FORCE=1 ;;
# Old options. We always do "auto" for any option now, but
# we still have to accept the options.
start) ;;
stop) ;;
auto) ;;
modules=*)
MODULES=$1
MODULES=${MODULES#"modules="}
devices=*)
DEVICES=$1
DEVICES=${DEVICES#"devices="}
*) log "ERR" "Unrecognized option $1."
exit 1 ;;
esac
shift
done
mkdir -p /var/run/laptop-mode-tools
# Used to display laptop mode state later on. This is the enabled/disabled
# state for laptop mode processing, it tells us nothing about whether laptop
# mode is actually _active_.
STATE=enabled
if [ "$ENABLE_LAPTOP_MODE_ON_BATTERY" -eq 0 -a "$ENABLE_LAPTOP_MODE_ON_AC" -eq 0 -a "$ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED" -eq 0 ] ; then
STATE=disabled
fi
# Determine the power state.
# First try /sys/class/power_supply/*
FOUND_SYS_CLASS_POWER_SUPPLY_AC=0
ON_AC=0
for POWER_SUPPLY in /sys/class/power_supply/* ; do
if [ -f $POWER_SUPPLY/type ] ; then
if [ "$(cat $POWER_SUPPLY/type)" = "Mains" ] ;then
log "VERBOSE" "Determining power state from $POWER_SUPPLY/online."
FOUND_SYS_CLASS_POWER_SUPPLY_AC=1
if [ "$(cat $POWER_SUPPLY/online)" = 1 ] ; then
ON_AC=1
fi
fi
fi
done
if [ $FOUND_SYS_CLASS_POWER_SUPPLY_AC = 1 ] ; then
# Already found it!
log "VERBOSE" "Not trying other options, already found a power supply."
elif [ -d /proc/acpi/ac_adapter ] ; then
log "VERBOSE" "Determining power state from /proc/acpi/ac_adapter."
ADAPTERS_FOUND=0
ON_AC=0
for ADAPTER in /proc/acpi/ac_adapter/* ; do
if [ -f $ADAPTER/state ] ; then
ADAPTERS_FOUND=1
STATUS=`awk '/^state: / { print $2 }' $ADAPTER/state`
if [ "$STATUS" = "on-line" ] ; then
ON_AC=1
fi
fi
done
if [ "$ADAPTERS_FOUND" -eq 0 ] ; then
ON_AC=1
fi
elif [ -f /proc/pmu/info ] ; then
log "VERBOSE" "Determining power state from /proc/pmu/info."
if ( grep -q "^AC Power.*0$" /proc/pmu/info ) ; then
log "VERBOSE" "/proc/pmu/info indicates absence of AC power."
ON_AC=0
else
# It is possible that there is no AC Power = 1 in the file,
# but we always assume AC power when we're not sure.
ON_AC=1
log "VERBOSE" "/proc/pmu/info indicates presence of AC power."
fi
elif [ -f /proc/apm ] ; then
log "VERBOSE" "Determining power state from /proc/apm."
read D1 D2 D3 APM_AC_STATE D0 </proc/apm
if [ "$APM_AC_STATE" = "0x00" ] ; then
ON_AC=0
else
ON_AC=1
fi
else
log "VERBOSE" "No /sys/class/power_supply, ACPI, APM or PMU power management information found -- assuming AC power is present."
ON_AC=1
fi
# Determine whether to activate or deactivate laptop mode.
ACTIVATE=0
if [ "$ON_AC" -eq 1 ] ; then
if [ "$ENABLE_LAPTOP_MODE_ON_AC" -ne 0 ] ; then
log "VERBOSE" "On AC power: Activating, because ENABLE_LAPTOP_MODE_ON_AC is set."
ACTIVATE=1
else
log "VERBOSE" "On AC power: Deactivating, because ENABLE_LAPTOP_MODE_ON_AC is not set."
ACTIVATE=0
fi
else
if [ "$ENABLE_LAPTOP_MODE_ON_BATTERY" -ne 0 ] ; then
log "VERBOSE" "On battery power: Activating, because ENABLE_LAPTOP_MODE_ON_BATTERY is set."
ACTIVATE=1
else
log "VERBOSE" "On battery power: Deactivating, because ENABLE_LAPTOP_MODE_ON_BATTERY is not set."
ACTIVATE=0
fi
fi
if [ "$ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED" -ne 0 -a "$ACTIVATE" -eq 0 ] ; then
if [ -x "`which hal-find-by-property`" ] ; then
HAL_LID_BUTTON=$(hal-find-by-property --key "button.type" --string "lid")
fi
if [ "$HAL_LID_BUTTON" != "" ] ; then
HAL_LID_BUTTON_STATE=$(hal-get-property --udi $(hal-find-by-property --key "button.type" --string "lid") --key "button.state.value")
if [ "$HAL_LID_BUTTON_STATE" = "true" ] ; then
log "VERBOSE" "Setting action to \"start\" because the lid is closed (says HAL)."
ACTIVATE=1
fi
elif [ -f /proc/acpi/button/lid/*/state ] ; then
if ( grep -q "closed" /proc/acpi/button/lid/*/state ) ; then
log "VERBOSE" 'Setting action to "start" because the lid is closed (says /proc/acpi/button/lid/*/state).'
ACTIVATE=1
fi
else
log "MSG" "Warning: ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED is set, but there is no file"
log "MSG" "/proc/acpi/button/lid/.../state, and hal information is not available either!"
fi
fi
# If the init script has not been run or has been run with the "stop"
# argument, then we should never start laptop mode.
if [ ! -f /var/run/laptop-mode-tools/enabled ] ; then
log "VERBOSE" "Laptop mode disabled because /var/run/laptop-mode-tools/enabled is missing."
STATE=disabled
fi
if [ "$ACTIVATE" -eq 1 -a -f /etc/default/laptop-mode ] ; then
. /etc/default/laptop-mode
if ! ( echo "$ENABLE_LAPTOP_MODE" |grep y ) ; then
log "VERBOSE" "Not starting laptop mode because it is disabled in /etc/default/laptop-mode."
STATE=disabled
fi
fi
if [ "$STATE" = "disabled" ] ; then
ACTIVATE=0
fi
# Check whether we are allowed to activate the data-loss-sensitive stuff.
# If the battery charge is too low, we want to disable this, but not the
# other power-saving stuff.
if [ "$ACTIVATE" -eq 0 ] ; then
ACTIVATE_WITH_POSSIBLE_DATA_LOSS=0
elif [ "$ON_AC" = 1 ] ; then
log "VERBOSE" "On AC, not checking minimum battery charge."
ACTIVATE_WITH_POSSIBLE_DATA_LOSS=1
else
ACTIVATE_WITH_POSSIBLE_DATA_LOSS=1
ENOUGH_CHARGE=0
ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=0
# Weird way of checking that /sys/class/power_supply is not empty -- but it works.
if [ "$(echo /sys/class/power_supply/*)" != '/sys/class/power_supply/*' ] ; then
log "VERBOSE" "Not on AC and we have battery information in /sys/class/power_supply/BAT* -- checking minimum battery charge."
for BATT in /sys/class/power_supply/* ; do
BATT_TYPE=$(cat $BATT/type)
log "VERBOSE" "$BATT is of type $BATT_TYPE."
if [ "$BATT_TYPE" != "Battery" ] ; then
log "VERBOSE" "Not of type \"Battery\", skipping."
else
PREV_ENOUGH_CHARGE=$ENOUGH_CHARGE
PREV_ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=$ENOUGH_CHARGE_TO_PREVENT_HIBERNATION
log "VERBOSE" "Checking levels for $BATT."
PRESENT=$(cat $BATT/present)
log "VERBOSE" "Present: $PRESENT."
# Only do if the battery is present
if [ "$PRESENT" -eq 1 ] ; then
FOUND_AN_ENABLED_CHECK=0
FOUND_AN_ENABLED_HIBERNATION_CHECK=0
# Get the remaining capacity.
IN_UAH=0
IN_UWH=0
if [ -f $BATT/charge_now ] ; then
REMAINING=$(cat $BATT/charge_now)
IN_UAH=1 # charge_* is in microAmpere-hours
elif [ -f $BATT/energy_now ] ; then
REMAINING=$(cat $BATT/energy_now)
IN_UWH=1 # energy_* is in microWatt-hours
else
REMAINING=0
fi
if [ -z "$REMAINING" -o "$REMAINING" -eq 0 ] ; then
log "VERBOSE" "Battery does not report remaining charge. Perhaps it is not present?"
REMAINING=0
fi
log "VERBOSE" "Remaining charge: $REMAINING"
if [ -f $BATT/charge_full_design ] ; then
CAPACITY=$(cat $BATT/charge_full_design)
elif [ -f $BATT/energy_full_design ] ; then
CAPACITY=$(cat $BATT/energy_full_design)
else
CAPACITY=0
fi
if [ -z "$CAPACITY" -o "$CAPACITY" -eq 0 ] ; then
log "VERBOSE" "Battery does not report design full charge, using non-design full charge."
if [ -f $BATT/charge_full ] ; then
CAPACITY=$(cat $BATT/charge_full)
elif [ -f $BATT/energy_full_design ] ; then
CAPACITY=$(cat $BATT/energy_full)
else
CAPACITY=0
fi
if [ -z "$CAPACITY" -o "$CAPACITY" -eq 0 ] ; then
log "VERBOSE" "Battery does not report non-design full charge."
CAPACITY=0
fi
fi
log "VERBOSE" "Full capacity: $CAPACITY"
# Check the charge percentage
if [ "$MINIMUM_BATTERY_CHARGE_PERCENT" -ne 0 ] ; then
FOUND_AN_ENABLED_CHECK=1
if [ "$CAPACITY" -eq 0 ] ; then
log "MSG" "WARNING: Battery does not report a capacity. Minimum battery"
log "MSG" "charge checking does not work without a design capacity."
ENOUGH_CHARGE=1
elif [ "$(($REMAINING * 100 / $CAPACITY))" -ge "$MINIMUM_BATTERY_CHARGE_PERCENT" ] ; then
ENOUGH_CHARGE=1
fi
fi
if [ "$AUTO_HIBERNATION_BATTERY_CHARGE_PERCENT" -ne 0 ] ; then
FOUND_AN_ENABLED_HIBERNATION_CHECK=1
if [ "$CAPACITY" -eq 0 ] ; then
log "MSG" "WARNING: Battery does not report a design capacity. Auto hibernation"
log "MSG" "does not work without a design capacity."
ENOUGH_CHARGE=1
elif [ "$(($REMAINING * 100 / $CAPACITY))" -ge "$AUTO_HIBERNATION_BATTERY_CHARGE_PERCENT" ] ; then
ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=1
fi
fi
# $BATT/alarm is the design_capacity_warning of a battery.
ALARM_LEVEL=$(cat $BATT/alarm)
if [ "$ALARM_LEVEL" -ne 0 ] ; then
if [ "$REMAINING" -le "$ALARM_LEVEL" ] ; then
# Restore the state we had before checking this battery, so that
# this battery does not count as having enough charge.
ENOUGH_CHARGE=$PREV_ENOUGH_CHARGE
elif [ "$FOUND_AN_ENABLED_CHECK" -eq 0 ] ; then
# This is the only check that is enabled. In that case a non-critical
# battery level counts as "enough". (If we would count non-critical
# battery levels as enough *always*, then the other settings would
# have no effect; this is only a final fallback.)
ENOUGH_CHARGE=1
fi
fi
if [ "$AUTO_HIBERNATION_ON_CRITICAL_BATTERY_LEVEL" -ne 0 ] ; then
if [ "$REMAINING" -le "$ALARM_LEVEL" ] ; then
ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=$PREV_ENOUGH_CHARGE_TO_PREVENT_HIBERNATION
elif [ "$FOUND_AN_ENABLED_HIBERNATION_CHECK" -eq 0 ] ; then
ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=1
fi
fi
# Fallback: hard values
if [ "$IN_UAH" -ne 0 ] ; then
if [ "$MINIMUM_BATTERY_CHARGE_MAH" -ne 0 ] ; then
FOUND_AN_ENABLED_CHECK=1
if [ "$REMAINING" -ge $((1000*"$MINIMUM_BATTERY_CHARGE_MAH")) ] ; then
ENOUGH_CHARGE=1
fi
fi
if [ "$AUTO_HIBERNATION_BATTERY_CHARGE_MAH" -ne 0 ] ; then
FOUND_AN_ENABLED_HIBERNATION_CHECK=1
if [ "$REMAINING" -ge $((1000*"$AUTO_HIBERNATION_BATTERY_CHARGE_MAH")) ] ; then
ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=1
fi
fi
elif [ "$IN_UWH" -ne 0 ] ; then
if [ "$MINIMUM_BATTERY_CHARGE_MWH" -ne 0 ] ; then
FOUND_AN_ENABLED_CHECK=1
if [ "$REMAINING" -ge $((1000*"$MINIMUM_BATTERY_CHARGE_MWH")) ] ; then
ENOUGH_CHARGE=1
fi
fi
if [ "$AUTO_HIBERNATION_BATTERY_CHARGE_MWH" -ne 0 ] ; then
FOUND_AN_ENABLED_HIBERNATION_CHECK=1
if [ "$REMAINING" -ge $((1000*"$AUTO_HIBERNATION_BATTERY_CHARGE_MWH")) ] ; then
ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=1
fi
fi
else
log "ERR" "Failed to determine battery charge. Battery charge units are not in"
log "ERR" "mWh, uWh, mAh or uAh."
fi
else
log "VERBOSE" "Battery is not present."
fi
fi
done
elif [ "$(echo /proc/acpi/battery/*)" != '/proc/acpi/battery/*' ] ; then
log "VERBOSE" "Not on AC and we have batteries in /proc/acpi/battery -- checking minimum battery charge."
for BATT in /proc/acpi/battery/* ; do
PREV_ENOUGH_CHARGE=$ENOUGH_CHARGE
PREV_ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=$ENOUGH_CHARGE_TO_PREVENT_HIBERNATION
BATT_STATE=$BATT/state
BATT_INFO=$BATT/info
log "VERBOSE" "Checking info and state for $BATT."
# Only do if the battery is present
if ( grep -q 'present:.*yes' $BATT_INFO ) ; then
FOUND_AN_ENABLED_CHECK=0
FOUND_AN_ENABLED_HIBERNATION_CHECK=0
# Get the remaining capacity.
REMAINING=`grep "remaining capacity:" $BATT_STATE | sed "s/.* \([0-9][0-9]* \).*/\1/" `
if [ -z "$REMAINING" ] ; then
log "VERBOSE" "Battery does not report remaining charte. Perhaps it is not present?"
REMAINING=0
fi
log "VERBOSE" "Remaining charge: $REMAINING"
CAPACITY=`grep "design capacity:" $BATT_INFO | sed "s/.* \([0-9][0-9]* \).*/\1/" `
if [ -z "$CAPACITY" ] ; then
log "VERBOSE" "Battery does not report capacity. Perhaps it is not present?"
CAPACITY=0
fi
log "VERBOSE" "Design capacity: $CAPACITY"
# Check the charge percentage
if [ "$MINIMUM_BATTERY_CHARGE_PERCENT" -ne 0 ] ; then
FOUND_AN_ENABLED_CHECK=1
if [ "$CAPACITY" -eq 0 ] ; then
log "MSG" "WARNING: Battery does not report a design capacity. Minimum battery"
log "MSG" "charge checking does not work without a design capacity."
ENOUGH_CHARGE=1
elif [ "$(($REMAINING * 100 / $CAPACITY))" -ge "$MINIMUM_BATTERY_CHARGE_PERCENT" ] ; then
ENOUGH_CHARGE=1
fi
fi
if [ "$AUTO_HIBERNATION_BATTERY_CHARGE_PERCENT" -ne 0 ] ; then
FOUND_AN_ENABLED_HIBERNATION_CHECK=1
if [ "$CAPACITY" -eq 0 ] ; then
log "MSG" "WARNING: Battery does not report a design capacity. Auto hibernation"
log "MSG" "does not work without a design capacity."
ENOUGH_CHARGE=1
elif [ "$(($REMAINING * 100 / $CAPACITY))" -ge "$AUTO_HIBERNATION_BATTERY_CHARGE_PERCENT" ] ; then
ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=1
fi
fi
# Fallback: hard values.
# Determine the reporting unit.
IN_MAH=0
IN_MWH=0
if ( grep -q mWh $BATT_INFO ) ; then
IN_MWH=1
elif ( grep -q mAh $BATT_INFO ) ; then
IN_MAH=1
fi
if [ "$IN_MAH" -ne 0 ] ; then
if [ "$MINIMUM_BATTERY_CHARGE_MAH" -ne 0 ] ; then
FOUND_AN_ENABLED_CHECK=1
if [ "$REMAINING" -ge "$MINIMUM_BATTERY_CHARGE_MAH" ] ; then
ENOUGH_CHARGE=1
fi
fi
if [ "$AUTO_HIBERNATION_BATTERY_CHARGE_MAH" -ne 0 ] ; then
FOUND_AN_ENABLED_HIBERNATION_CHECK=1
if [ "$REMAINING" -ge "$AUTO_HIBERNATION_BATTERY_CHARGE_MAH" ] ; then
ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=1
fi
fi
elif [ "$IN_MWH" -ne 0 ] ; then
if [ "$MINIMUM_BATTERY_CHARGE_MWH" -ne 0 ] ; then
FOUND_AN_ENABLED_CHECK=1
if [ "$REMAINING" -ge "$MINIMUM_BATTERY_CHARGE_MWH" ] ; then
ENOUGH_CHARGE=1
fi
fi
if [ "$AUTO_HIBERNATION_BATTERY_CHARGE_MWH" -ne 0 ] ; then
FOUND_AN_ENABLED_HIBERNATION_CHECK=1
if [ "$REMAINING" -ge "$AUTO_HIBERNATION_BATTERY_CHARGE_MWH" ] ; then
ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=1
fi
fi
else
log "ERR" "Failed to determine battery charge. Battery charge units are not in"
log "ERR" "mWh or mAh."
fi
CAP_STATE=`sed -r 's/^capacity state:\s*(.*)\s*$/\1/;t;d' "$BATT_STATE"`
if [ "$DISABLE_LAPTOP_MODE_ON_CRITICAL_BATTERY_LEVEL" -ne 0 ] ; then
if [ "$CAP_STATE" = "critical" ] ; then
# Restore the state we had before checking this battery, so that
# this battery does not count as having enough charge.
ENOUGH_CHARGE=$PREV_ENOUGH_CHARGE
elif [ "$FOUND_AN_ENABLED_CHECK" -eq 0 ] ; then
# This is the only check that is enabled. In that case a non-critical
# battery level counts as "enough". (If we would count non-critical
# battery levels as enough *always*, then the other settings would
# have no effect; this is only a final fallback.)
ENOUGH_CHARGE=1
fi
fi
if [ "$AUTO_HIBERNATION_ON_CRITICAL_BATTERY_LEVEL" -ne 0 ] ; then
if [ "$CAP_STATE" = "critical" ] ; then
ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=$PREV_ENOUGH_CHARGE_TO_PREVENT_HIBERNATION
elif [ "$FOUND_AN_ENABLED_HIBERNATION_CHECK" -eq 0 ] ; then
ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=1
fi
fi
else
log "VERBOSE" "Battery is not present."
fi
done
else
ENOUGH_CHARGE=1
ENOUGH_CHARGE_TO_PREVENT_HIBERNATION=1
log "VERBOSE" "Not on AC and could not check battery state -- data loss sensitive features stay enabled and auto-hibernation will not work."
fi
if [ "$ENABLE_AUTO_HIBERNATION" -ne 0 -a "$ENOUGH_CHARGE_TO_PREVENT_HIBERNATION" -eq 0 ] ; then
log "VERBOSE" "None of the batteries have a charge above the auto-hibernation level."
log "VERBOSE" "Starting hibernation."
if [ -x $HIBERNATE_COMMAND ]; then
$HIBERNATE_COMMAND
elif [ -f /sys/power/state ]; then
grep -q disk /sys/power/state && echo disk > /sys/power/state
fi
# Don't continue -- if things are configured correctly, then we
# will be called on resume.
exit 0
fi
if [ "$ENOUGH_CHARGE" -eq 0 ] ; then
log "VERBOSE" "None of the batteries have a charge above the minimum level."
log "VERBOSE" "Deactivating data loss sensitive features."
ACTIVATE_WITH_POSSIBLE_DATA_LOSS=0
fi
fi
if [ "$INIT" -eq 0 ] ; then
log "MSG" "Laptop mode "
fi
# WAS_ACTIVE is used later on. If there is no /var/run/laptop-mode-tools/state, then
# we know that laptop mode wasn't active before.
WAS_ACTIVE=0
log "VERBOSE" "Checking if desired state is different from current state."
if [ -f /var/run/laptop-mode-tools/state ] ; then
read WAS_ACTIVE WAS_ON_AC WAS_ACTIVATE_WITH_POSSIBLE_DATA_LOSS WAS_STATE < /var/run/laptop-mode-tools/state
if [ "$WAS_STATE" != "" ] ; then
if [ "$WAS_ACTIVE" -eq "$ACTIVATE" -a "$WAS_ON_AC" -eq "$ON_AC" -a "$WAS_ACTIVATE_WITH_POSSIBLE_DATA_LOSS" -eq "$ACTIVATE_WITH_POSSIBLE_DATA_LOSS" -a "$WAS_STATE" = "$STATE" -a "$FORCE" -eq 0 ] ; then
log "MSG" "$STATE, "
if [ "$WAS_ACTIVE" -eq 1 ] ; then
log "MSG" "active [unchanged]"
if [ "$ACTIVATE_WITH_POSSIBLE_DATA_LOSS" -eq 0 ] ; then
log "MSG" " (Data-loss sensitive features disabled.)"
fi
else
log "MSG" "not active [unchanged]"
fi
exit 0
fi
fi
else
log "VERBOSE" "/var/run/laptop-mode-tools/state does not exist, no previous state."
fi
echo "$ACTIVATE $ON_AC $ACTIVATE_WITH_POSSIBLE_DATA_LOSS $STATE" > /var/run/laptop-mode-tools/state
if [ "$ACTIVATE" -eq 1 ] ; then
log "MSG" "$STATE, active"
if [ "$ACTIVATE_WITH_POSSIBLE_DATA_LOSS" -eq 0 ] ; then
log "MSG" " (Data-loss sensitive features disabled.)"
fi
else
log "MSG" "$STATE, not active"
fi
# Finally, call laptop-mode-tools modules. The modules can use the settings
# from the config files, but they may NOT assume the settings actually exist,
# as no defaults have been given for them.
# Note that the /usr/local/lib path is deprecated.
export FORCE STATE ON_AC ACTIVATE ACTIVATE_WITH_POSSIBLE_DATA_LOSS KLEVEL KMINOR WAS_ACTIVE LM_VERBOSE DEVICES
for SCRIPT in /usr/share/laptop-mode-tools/modules/* /usr/local/lib/laptop-mode-tools/modules/* /usr/local/share/laptop-mode-tools/modules/* /etc/laptop-mode/modules/* ; do
if [ -z "$MODULES" ] ; then
# If a module list has not been provided, execute all modules
EXECUTE_SCRIPT=1
else
# If a module list has been provided, execute only the listed
# modules.
EXECUTE_SCRIPT=0
for MODULE in $MODULES; do
# Attempt to remove the module name from the end of the
# full script path. If the module name matches the
# script, the name will be removed from the end of the
# full file path, leaving the path to the script. If
# there was not a match made, the module name would not
# be removed from the path, and $PATH_TO_SCRIPT would
# be the same as $SCRIPT.
PATH_TO_SCRIPT=${SCRIPT%%$MODULE}
# Execute the script if a match was found (module name
# was removed from the script path, making it shorter.
if [ $PATH_TO_SCRIPT != $SCRIPT ] ; then
EXECUTE_SCRIPT=1
fi
done
fi
if [ -x "$SCRIPT" -a $EXECUTE_SCRIPT -eq 1 ] ; then
log "VERBOSE" "Invoking module $SCRIPT."
SCRIPT_DEBUG=$SCRIPT; # We do this because in start-stop-programs module a $SCRIPT variable is used. That
# changes the whole meaning when passed to disableDebug ()
enableDebug $SCRIPT_DEBUG;
. $SCRIPT
disableDebug $SCRIPT_DEBUG;
else
log "VERBOSE" "Module $SCRIPT is not executable or is to be skipped."
fi
done
exit 0
# This fi closes the if for "readconfig". If I would have indented this one
# I would have indented the whole file. :)
fi
lmt_load_config
lock_retry ()
( $FLOCK -n -x -w 1 8 || exit 0;
i=10;
while [ $i -ge 1 ]
do
log "ERR" "Couldn't acquire lock. Retrying.... PID is $$\n"
$FLOCK -x -w 1 9 && lmt_main_function "$@" && break;
i=$(( $i - 1 ))
done
) 8>$LMT_REQ_LOCK
# Check and acquire locks and then exec.
( $FLOCK -n -x -w 1 8; ) 8>$LMT_REQ_LOCK
($FLOCK -n -x -w 1 9 && lmt_main_function "$@";) || lock_retry "$@"
) 9<>$LMT_INVOC_LOCK
# We do a special run of battery polling daemon here so that it does not get
# plagued by the lock. We need the polling daemon to be independent of any locks
if [ x$ENABLE_BATTERY_LEVEL_POLLING = x1 ] && [ x$BLACKLIST_IN_FLOCK = x1 ]; then
log "VERBOSE" "Battery level polling is enabled."
if [ x$ON_AC = x1 ] ; then
log "VERBOSE" "On AC, stopping the polling daemon."
# In AC mode we disable the polling daemon.
killall -q lm-polling-daemon
else
if ! pidof -x lm-polling-daemon ; then
log "VERBOSE" "On battery and there was no polling daemon yet, starting the polling daemon."
# If there is no polling daemon, we start one.
/usr/share/laptop-mode-tools/module-helpers/lm-polling-daemon < /dev/null > /dev/null 2> /dev/null &
fi
fi
else
log "VERBOSE" "Battery level polling is disabled."
fi
exit 0;
and here is the lines which archwiki mentions
case "$KLEVEL" in
"2.4" ) ;;
"2.6" ) ;;
log "ERR" "Unhandled kernel version: $KLEVEL ('uname -r' = '$(uname -r)')" >&2
exit 1
esacI had the problem but edited the line in /usr/sbin/laptop_mode and it worked. But thoes lines are not there anymore. I guess they changed it at the recent update of laptop-mode-tools.
Regarding your heat problem; is there any other thing you use to cut down power usage (from AUR maybe)? I use acpi_call from AUR had to edit lines there aswell, but it should be updated by now. -
Oracle 8i Configuration Tools Fails on Install
I found problems on the Oracle 8i Installation, on my Windows XP Desktop (SP1). I've selected the Minimal Installation, and all goes on. When they reach the Configuration Tools Section of Setup...
It found the following fails:
- Net8 Configuration Assistant, fail:
Class not found: Files\Oracle\Ora81\network\jlib
- Oracle Database Configuration Assistant, fail:
There is no available output for this tool.
Apparently, it doesn't create the Starter Database (my main need). I'm newbie in Oracle Database world (I'm MS-SQL Server DBA), so, if anyone can help me, I'll be glad...
Thanks,
RafaelPlease turn on the debug trace in tip.properties
Since we want to see why B2B did not start, we want to have as much trace as possible. Please set the following (in tip.properties)
b2b.oracle.tip.DiagnosticLevel = DEBUG
oracle.tip.LogType = text
If there is an exception in also should be logged in /home/oracle/MTProd/opmn/logs/B2B~B2BServer~MTProd.helenab2b.helenachemical.com~1
Please gather as much trace information as possible when you start the B2B Server manually.
If opmn is not started, use the 'opmnctl start' command in $ORACLE_HOME/opmn/bin
Then use the following command to start B2B:
opmnctl startproc process-type=B2BServer
Thanks,
Eng -
ID: How to use the test Configuration tool
Hi all,
I have done one simple file2file scenario and it is working fine( source file is reaching the destination).
By using this scenario, i would like to know the use of test configuration.( which is in Integration Directory).
I have given the input parameters what it has asked.
Header details:-
sender service,sender message interface and namespace.
payload:-
xml format( taken from message mapping)
log result:-
Sender Agreement
Internal Error
HTTP connection to ABAP Runtime failed. Error: 403 Forbidden URL: http://xxxxx:8000/sap/xi/simulation?sap-client=000 User: XIDIRUSER
Please help me how to work with this tool.
Regards,
Deviprasad.hi deviprasad...even i face the same problem whenever i tried using test configuration tool...
i think it means...its trying to make a connection : HTTP connection to ABAP Runtime ......which fails due to lack of proper authorization...
if u login to ur integration builder with a user having the proper authoriztion(i dont know exactly)...u can do the test..... coz during the test there is a connection between java and abap stack...
pls rectify me and convey me if u get the proper answer....or if i m wrong..
pls try to do use the test after login to IB through a user with maximum authorization.... -
Dynamic Configuration Tool Issues
Hi,
Has anyone run into issues with the cisco dynamic configuration tool? I recently noticed I cannot customize the hardware I am trying to configure. This was not like this in the past.Hi Laurence,
According to your description, you are creating a SQL Server Reporting Services report using SSAS cube as the data source, there are 40 parameters in the MDX query, so the performance is poor, right?
In your scenario, you said that 10 of the parameters using existing function, so you suspect that the issue can be caused by the existing function. Based on my research, it seems that the existing function is not a problem. Only issue is that use existing
function together with nonempty function, please refer to the link below to see the detail information about it.
http://cwebbbi.wordpress.com/2009/03/31/existing-and-nonempty/
In additional, I'd suggest you enable SQL profiler to monitor the queries fired by the query, once you find some queries took a very long time to run, consider creating the smaller cube partition or optimizing the query by adding index or partition
to improve the query performance. Here are some links about performance tuning.
http://www.bidn.com/blogs/DustinRyan/bidn-blog/2636/top-3-simplest-ways-to-improve-your-mdx-query
http://blogs.msdn.com/b/azazr/archive/2008/05/01/ways-of-improving-mdx-performance-and-improvements-with-mdx-in-katmai-sql-2008.aspx
http://www.packtpub.com/article/query-performance-tuning-microsoft-analysis-services-part1
Hope this helps.
Regards,
Charlie Liao
If you have any feedback on our support, please click
here.
Charlie Liao
TechNet Community Support -
OCS 2007 R2 Response Group Configuration Tool Failure
Hello there.
We are bringing back to life an old OCS installation. Customer performed a clean AD reinstall and we are in the process of re-installing OCS 2007 R2. All seems to work fine, except the RGS. When accessing the web tool we get this error:
Response Group Configuration Tool Failure
An unknown error occurred. The operation cannot complete successfully. Please contact the administrator if this problem persists.
Click here to return Home.
the Event viewer for application on the FE shows:
Event code: 3005
Event message: Excepción no controlada.
Event time: 13/05/2014 12:13:01 p.m.
Event time (UTC): 13/05/2014 06:13:01 p.m.
Event ID: a74ea242095f4e8099bca266a7a5cc83
Event sequence: 8
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/1/ROOT/Rgs-1-130444779241580315
Trust level: Full
Application Virtual Path: /Rgs
Application Path: C:\Program Files\Microsoft Office Communications Server 2007 R2\Web Components\Acd Files\
Machine name: OCSR2-FE02
Process information:
Process ID: 6504
Process name: w3wp.exe
Account name: domain\RTCComponentService
Exception information:
Exception type: COMException
Exception message:
Request information:
Request URL: https://ocspool.domain.com:443/Rgs/Deploy/Default.aspx
Request path: /Rgs/Deploy/Default.aspx
User host address: 172.16.6.32
User: domain\user
Is authenticated: True
Authentication Type: Negotiate
Thread account name: domain\RTCComponentService
Thread information:
Thread ID: 9
Thread account name: domain\RTCComponentService
Is impersonating: False
Stack trace: en System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
en System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()
en System.Management.ManagementObjectCollection.get_Count()
en Microsoft.Rtc.Acd.Management.OcsApplicationContactSetting.Select(String condition)
en Microsoft.Rtc.Acd.Web.UI.WorkflowTemplate.GetContactObject()
en Microsoft.Rtc.Acd.Web.UI.WorkflowTemplate.AddedControl(Control control, Int32 index)
en ASP.deploy_default_aspx.__BuildControl__control15(Control __ctrl)
en Microsoft.Rtc.Acd.Web.UI.TemplateHelper.InstantiateWorkflowTemplate(AcdWorkflow workflow, ITemplate template, ControlCollection controlsToAddTo, String resourceClass, String templateResourcePrefix)
en Microsoft.Rtc.Acd.Web.UI.AcdWorkflowList.CreateChildControls()
en System.Web.UI.Control.EnsureChildControls()
en System.Web.UI.Control.PreRenderRecursiveInternal()
en System.Web.UI.Control.PreRenderRecursiveInternal()
en System.Web.UI.Control.PreRenderRecursiveInternal()
en System.Web.UI.Control.PreRenderRecursiveInternal()
en System.Web.UI.Control.PreRenderRecursiveInternal()
en System.Web.UI.Control.PreRenderRecursiveInternal()
en System.Web.UI.Control.PreRenderRecursiveInternal()
en System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Custom event details:
on the OCS logs I have:
Unhandled exception occurred in the Response Group Service Configuration Tool. The operation could not complete successfully.
Requested URL: /Rgs/Deploy/Default.aspx
User / Host making the Request: domain\user/ 172.16.6.32
Unhandled exception: System.Web.HttpUnhandledException - Se produjo una excepción de tipo 'System.Web.HttpUnhandledException'.
Inner Exception: System.Runtime.InteropServices.COMException
Cause: An unhandled exception occurred.
Resolution:
Check the exception.
Windows server is installed in spanish, if you wonder why the mix in languages.
We have been battling with this error for the last 2 weeks. Any help is greatly appreciated!
FRHi,
Please check the configuration of the Response Group Service with the help of the link below:
http://technet.microsoft.com/en-us/library/dd441277(v=office.13).aspx
Please check the OCS components that are required to implement the Response Group Service below:
Application Server and Response Group Service
Language pack
Administrative tools
Web Components Server
Internet Information Services
Microsoft Office Communicator 2007 R2
You can try to use the workflows that you crated to validate the deployment.
Best Regards,
Eason Huang
Eason Huang
TechNet Community Support -
Test Configuration Tool: Sender Agreement Not Found
Hi, All:
We have new XI3.0 setup and I just want to test simple file to file scenario, but the file was picked up by sender file adapter, however, there is no message sent to Integration server.
When I use Test Configuration Tool, the sender agreement is green, however, it also mention Sender Agreement Not Found, see below:
================================================
Sender Agreement
================================================
futhermore, Interface Mapping is not found either. Actually, Interface has been created on IR. Sender Agreement also created in ID.
Anyone who has idea about these two errors ?
Thanks in advance
LiangHi, Raj and Srinivas:
Thanks for your reply.
First of all, all the objects are activated, secondly, when create sender agreement, I just need to input the Sender Service Name / Sender Interface / Sender Interface Namespace. Then finally select commnication channel.
For any Receiver sides, they are grey out, I am not able to input anything.
So, there is no "*" in any fields.
I doubt if there is any setup wrong, especially for adapter engine, maybe some modules that are not functional for file adapter engine, since I also see other problems, I might post them as separate thread.
In Adapter monitor page, I did not see the adapter.
In RWB, if I use IE, there is Error in the page, using Firefox, it is OK.
Thanks And Regards !
Liang -
Install Oracle 9i in Redhat 7.1 hangs at Configuration Tools
I have upgraded the binutil to binutil-2.10.91.0.4-1. Everything seems fine until Configuration Tools. The Oracle Net Configuation Assistant shows in progress status and did not completed. In the detail box, it shows Running Listener Control
/u01/app/oracle/product/9.0.1/bin/lsnrctl start LISTENER.
Any idea?
Thanks,
EdHi, I had the same problem. But I don't think its a serious problem at all.
What I did was, stop the Net Configuration, so that it can carry on with configuring the Apache web server, followed by database creation. Only after the database was created successfully, then restart the Net Configuration again. It should work after database configuration.
Cheers. -
9iAS Linux - ADMN 100999 - configuration tools aborted
Hi
I installed on SUSE Linux 8.0 the 9iAS R2, only the option A - J2EE and WebChache. Now I have following problems.
1. Some configuration tools (OC4J, OPMN, DCM)were not initialized in the end of the installation. I read other postings with the same problems, but i never read a solution of these problems.
2. After installing, i want to start the http server manually (dctml start -ct ohs) , but it doesn't work. I got the error message ADMN 100999. dctml -resyncInstance was not successful.
Other admins has same problem, they reset the admin password and it worked.
But I can not use the script resetiAspassword.sh because I never installed the infrastructure.
If i want to start the http-server with enterprise manager (EM worked) I got an EMException.
I have no idea to resolve the problems, perhaps you
Thank YouHello Diana, i am having the same exact problem except it is on rh7.2. my initializations were also a problem: i have emctl but not dcmctl and therefore cannot run http. i am convinced i need to de-install/wipe clean/re-install. u r lucky because u r runninng on suse 8. u may consider de-install/re-install. i am going to wipe the directory clean this time becaue i have already tried de-install/re-install many times. thanx, david brown. webitplanet.com.
-
Configurations tools ( netca,dbca ,assistants) not started during install
Friends,
I am trying to install Oracle 9iR2 on redhat advanced server.
We copied the files into a staging area.During
install it asked for Oracle.swd.jre file which i checked
not there.
But i ignored the error message and finished the
install.Installation went through successfully but the
configurations tools netca,dbca and agent assistants have
not started. Apache server has started sucessfully.
I have done installs earlier on Redhat 8 but i never
had problems like this.I checked the staging area and i could able to see a directory like oracle.swd.jre in
Disk1/stage/Components/oracle.swd.jre but not the file.
I will be glad if anyone can tell me the work around
for this.
Regards.Friends,
I am trying to install Oracle 9iR2 on redhat advanced server.
We copied the files into a staging area.During
install it asked for Oracle.swd.jre file which i checked
not there.
But i ignored the error message and finished the
install.Installation went through successfully but the
configurations tools netca,dbca and agent assistants have
not started. Apache server has started sucessfully.
I have done installs earlier on Redhat 8 but i never
had problems like this.I checked the staging area and i could able to see a directory like oracle.swd.jre in
Disk1/stage/Components/oracle.swd.jre but not the file.
I will be glad if anyone can tell me the work around
for this.
Regards. -
Error with Nokia Configuration Tool with a E71.
Hi everyone, when using Nokia configuration tool, I tried many times to send a profile saved with a E71 to another E71 but each time I try I get the same error message. When trying to copy the PKI / Certificates group , the soft says "error 500 unexpected condition that prevented to request being fulfilled" ; the others groups work fine. I'm used to do this with the E51 and I've never encountered this problem. I have to program a lot of phones so it would be much easier for me if this method works.
Thank you for your help.Hi Gabor,
If the issue is still alive, please try to connect your N97 device after launching the Nokia Configuration Tool, NCT should detect your N97 device and if there are no profiles created for N97 device, It will prompt you to create a new profile.
I dont see any issue in identifying the N97 device with NCT 6.0.
Please let me know if it does not help.
Thanks & Regards,
Raghava Reddy K -
IFS configuration tool not running
The configuration tool is not running and in the ifsconfig.bat
There is this line:
set IFS_HOME=D:\oracle\ora90/9ifs
I do not why “/” and “\”
Any idea???Can you supply the errors you are getting, how far through does it get? I've had problems in the past with the configuration tool when installing on a P4 due to the symcjit problem.
Also are you trying to install 9.0.1 into a different home to iAS as we have had problems in the past.
Bernard -
Trusted Network Zone Configuration Tool is not there!
I've installed Solaris 10 x86 11/06 and Trusted Extensions, and when I open SMC and try to navigate to the "Trusted Network Zone Configuration Tool" that is supposed to be in the "Computers And Networks" section, it's just not there. Trusted Extensions are installed, I get the special Trusted dialogs during login, but this tool is missing. I've verified that all related packages were installed with Trusted Extensions. This is a stand alone machine (for development). Does anyone have suggestions as to why this tool is missing and how to get it working?
Found the problem, I feel stupid, I was opening the non-TSOL toolbox in SMC.
-
Nokia Configuration Tool and E70 with new firmware...
After the firmware update with NSU an interesting problem appeared - every attempt to import or load the profile from the phone to application fails with error message stating that the connection was lost. No difference whether to use USB or bluetooth connection. Because all was fine before the update, the alleged Nokia statement about the USB port problems on many computers (found on some S60-related blog) cannot be taken seriously.
It seems like the Configuration Tool is now also needing some update for compatibility with 3.06330.09.04 firmware
P.S. However the program is not completely unusable - I managed to load the e-mail and SIP server settings to the phone without problems.
388 -> 688 -> 6150 -> 6310 -> 6310i+1100+ E70-1(3.0633.09.04/crippled VoIP)...have to take back this P.S. on previous message - too bad there's no way to edit the thread openings (replies are editable however)
388 -> 688 -> 6150 -> 6310 -> 6310i+1100+ E70-1(3.0633.09.04/crippled VoIP)
Maybe you are looking for
-
"My Day" widget for iCal?
Hi-- I'm about ready to give up on Office and switch to iWork, but the one feature that is (perhaps stupidly) holding me back is Entourage's brilliant "My Day" widget: <http://www.microsoft.com/mac/products/entourage2008/default.mspx#/my_day/> Is the
-
Search and replace string not work as per required
please find the attachment. i am trying to replace the variable names but it doesnt replace the variable as i expected. Please help me in this Attachments: Replace String.vi 8 KB Replace String.vi 8 KB
-
How to import a virtual machine to a Hyper-V server by programme on Windows server 2012 ?
Hi As we know, Hyper-V of Windows server 2012 can support importing a VM without exporting it first manually now. So I try to code a programme to do it. I use the method "ExportVirtualSystemEx" of "Msvm_VirtualSystemManagementService". referenced by
-
Track pad extremely sensitive in drag and drop and clicking
Please help with a pad that's driving me nutz! Over sensitive in underlining, drag and drop and clicking. Is there any way to control sensitivity or do I have to take it to the Apple Store? Thanks!
-
I'm trying to make a horizontal spry menu with 5 buttons across 3 of which have submenus, and i want it so that on mouse over each menu will have a seperate colour, i've browsed google extensively but have had no luck what so ever, and am getting ver