When running APM without parameters it works great and gives the battery status. strace apm -s gives me: execve("/usr/bin/apm", ["apm", "-s"], [/* 31 vars */]) = 0 brk(0) = 0x804b480 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40016000 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(0x3, 0xbfffed74) = 0 old_mmap(NULL, 69339, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40017000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\264\323"..., 1024) = 1024 fstat64(0x3, 0xbfffedbc) = 0 old_mmap(NULL, 1116516, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40028000 mprotect(0x4012f000, 39268, PROT_NONE) = 0 old_mmap(0x4012f000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x106000) = 0x4012f000 old_mmap(0x40135000, 14692, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40135000 close(3) = 0 munmap(0x40017000, 69339) = 0 getpid() = 843 access("/proc/apm", R_OK) = 0 brk(0) = 0x804b480 brk(0x804b600) = 0x804b600 brk(0x804c000) = 0x804c000 open("/proc/apm", O_RDONLY) = 3 fstat64(0x3, 0xbffff5fc) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000 read(3, "1.14 1.2 0x03 0x01 0x00 0x01 100"..., 4096) = 42 close(3) = 0 munmap(0x40017000, 4096) = 0 access("/proc/apm", R_OK) = 0 open("/proc/apm", O_RDONLY) = 3 fstat64(0x3, 0xbffff5ac) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000 read(3, "1.14 1.2 0x03 0x01 0x00 0x01 100"..., 4096) = 42 close(3) = 0 munmap(0x40017000, 4096) = 0 open("/dev/apm_bios", O_RDWR) = 3 time([1001935391]) = 1001935391 sync() = 0 ioctl(3, APM_IOC_SUSPEND, 0) = -1 EAGAIN (Resource temporarily unavailable) write(2, "apm: Resource temporarily unavai"..., 38apm: Resource temporarily unavailable ) = 38 close(3) = 0 _exit(0) = ?