Clean:
Busy:
WM: Openbox
GTK: MurrinaGilouche
One of the things that would always irritate me, with Linux, was the fact that I could not resume my machine by hitting a key on the keyboard. When I first searched for an answer, to this issue, many of the replies stated “look for an option in the BIOS.” To my dismay, I had no such option in the BIOS. After more searching I found /proc/acpi/wakeup!
/proc/acpi/wakeup looks like this:
Device S-state Status Sysfs node UAR1 S4 disabled pnp:00:08 SMB0 S4 disabled pci:0000:00:01.1 USB0 S4 disabled pci:0000:00:02.0 USB2 S4 disabled pci:0000:00:02.1 US15 S4 disabled pci:0000:00:04.0 US12 S4 disabled pci:0000:00:04.1 NMAC S5 disabled pci:0000:00:0a.0 P0P1 S4 disabled pci:0000:00:08.0 HDAC S4 disabled MXR0 S4 disabled pci:0000:00:10.0 BR11 S4 disabled BR12 S4 disabled pci:0000:00:12.0 BR13 S4 disabled BR14 S4 disabled BR15 S4 disabled BR16 S4 disabled BR17 S4 disabled
Now this might be confusing, at first, but do not fear! We are interested in only two types of devices: USB and US
USB0 S4 disabled pci:0000:00:02.0 USB2 S4 disabled pci:0000:00:02.1 US15 S4 disabled pci:0000:00:04.0 US12 S4 disabled pci:0000:00:04.1
To figure out which device is which take the number after pci: and run grep on dmesg. Example for US15: dmesg | grep 0000:00:04.0
You will likely get a lot of output… you should look for something similar (Note: this differs by hardware, it likely won’t be the same)
[ 6.164097] usb usb4: SerialNumber: 0000:00:04.0 [ 7.284302] input: BTC USB Multimedia Keyboard as /devices/pci0000:00/0000:00:04.0/usb4/4-3/4-3:1.0/input/input2 [ 7.284363] generic-usb 0003:046D:C312.0001: input,hidraw0: USB HID v1.10 Keyboard [BTC USB Multimedia Keyboard] on usb-0000:00:04.0-3/input0 [ 7.300110] input: BTC USB Multimedia Keyboard as /devices/pci0000:00/0000:00:04.0/usb4/4-3/4-3:1.1/input/input3 [ 7.300287] generic-usb 0003:046D:C312.0002: input,hiddev96,hidraw1: USB HID v1.10 Device [BTC USB Multimedia Keyboard] on usb-0000:00:04.0-3/input1
As you can see US15 is my USB keyboard so I will simply run echo "US15" > /proc/acpi/wakeup to allow US15 to wake up the computer.
USB0 S4 disabled pci:0000:00:02.0 USB2 S4 disabled pci:0000:00:02.1 US15 S4 enabled pci:0000:00:04.0 US12 S4 disabled pci:0000:00:04.1
If it is not appearant which devices are which there is always the trial and error process. Enable one, see if the desired device wakes up the machine and if it doesn’t, disable the device (by executing the echo command again) and try another.
Lastly just add the echo command to your startup script. On Arch /etc/rc.local is a good place.
With Kernel 2.6.26.32-rc6 suspend-2-ram (aka sleep/standby) finally works on my machine! However OSSv4 does not support suspend/hibernate which means that OSS must be unloaded.
This scripts does the following:
In my case I have the script stop mpd. Then it kills ossxmix and attempts to unload oss. On spawn it starts mpd again and loads ossxmix.
Here it is:
oss_s.py
#!/usr/bin/env python
import subprocess
import sys
import os
#Daemons that need to be stopped
daemons=('mpd',)
#Programs that are safe to kill
kill_apps=('ossxmix','vlc','mplayer','xine','xmms','audacious',)
#Programs to load on spawn/resume
load_apps=('ossxmix -xb',)
#User to start apps as
user='pyther'
def start():
p=subprocess.Popen(['soundon'])
p.wait()
for d in daemons:
p=subprocess.Popen(['/etc/rc.d/' + d, 'start'])
p.wait()
for a in load_apps:
#Load the program as a user, not root
os.system('sudo su -c \'' + a + ' &\' ' + user)
return
def stop():
for d in daemons:
p=subprocess.Popen(['/etc/rc.d/' + d, 'stop'])
p.wait()
for a in kill_apps:
p=subprocess.Popen(['killall',a])
p.wait()
o=subprocess.Popen(['soundoff'],stdout=subprocess.PIPE)
output=o.stdout.readlines()
list=[]
for line in output:
#If the line is empty skip it
line = line.rstrip("\n")
if line == '':
pass
#Otherwise lets split the line by spaces
else:
line=line.rsplit(' ')
#Going to see if the first word is an int
try:
pid=int(line[0])
except ValueError:
#Must not be an int
pass
#Good it is an int... lets continue
else:
app=line[1] #The second word is the name of the app
#If the list has no values, we will add the first running program
if len(list) == 0:
list.append([pid,app])
#Now lets check and see if the pid is already in the list
else:
inList=0 #Set to False by default
#Scanning items already in the list
#If we find a match we set inList to True and break out of the loop
for x in list:
if int(x[0]) == int(pid):
inList=1
break
if not inList:
list.append([pid,app])
if list:
print("Apps that need to be killed:")
for x in list:
pid=x[0]
app=x[1]
subprocess.Popen(['notify-send', '-u', 'normal', '-i', 'audio-card', '-t', '120000', 'PID: ' + str(pid) + ' is using OSS', str(pid) + ' - ' + app + '\nPlease kill this application.' ])
print("PID: " + str(pid) + " - " + app)
#Exit abnormally
sys.exit(1)
return
if __name__ == "__main__":
if len(sys.argv) <= 1:
print("Usage: start or stop")
sys.exit(1)
if os.geteuid() != 0:
print "You must be root to run this script."
sys.exit(1)
if sys.argv[1] == "start":
start()
elif sys.argv[1] == "stop":
stop()
else:
print "Usage: start or stop"
Usage is simple enough:
./oss_s.py start
./oss_s.py stop
Then to get the script to run on suspend/wake:
Save this as /etc/pm/sleep.d/48oss
#!/bin/bash
case $1 in
hibernate)
/home/pyther/bin/oss_s.py stop
;;
suspend)
/home/pyther/bin/oss_s.py stop
;;
thaw)
/home/pyther/bin/oss_s.py start
;;
resume)
/home/pyther/bin/oss_s.py start
;;
esac
Then make it executable
chmod +x /etc/pm/sleep.d/48oss
Of course you will have to modify the code as necessary.
I was asked to convert some European (PAL) dvds to the American (NTSC) format. With the help of a few linux tools, the process is pretty painless. A cautionary note: the process takes about 3 hours for one dvd using my AMD X2 7750.
What you need:
First, we need to rip the DVD to the computer. We can do this by using dvdrip or vobcopy. Vobcoby is a simple command line utility that rips vob files straight from the dvd to the hard drive. dvdrip is a gui tool which is very easy to use. Load it up, create a new project, select the rip tab, and pick the title you want to rip. Ripping the dvd will probably take anywhere from 15-20 minutes.
Vobcopy Example: cd /home/pyther/dvdrip and vobcopy /dev/sr0
Next, we want demux (seperate) the audio and the video. ProjectX is very easy to use for this task and ProjectX insures the video and audio stay in sync.
To Demux the video:
projectxThis result in the following files being created:
If there are multiple audio tracks you will see zorro-001.ac3, zorro-001[1].ac3, zorro-001[2].ac3
In my case:
Lets clean up the directory right now:
That’s right I passed the RHCT! Woot!

Well I got up this morning at 4:30am and headed of at 5:15am to Columbus, Ohio. The trip wasn’t bad, however the fog made it a bit harder. After 2hrs and 20 minutes in the car I made it. 1hr 30min early. I got breakfast, and looked over a few things.
The exam was fairly easy and took me about 1hr 30 minutes to complete. I got stuck on the last part of the exam which involved auto-mounting.
On my way home I stopped at Hardee’s, a great burger place!
We were instructed that we would be given an email letting us know if we passed or failed.
I have been using Arch Linux since 2005. It is a great distro and there are a few devs that are still keeping it the Arch Way. For this I am grateful. However, the community has taken a change for the worse. When I first started using Arch if you asked a noob question you were given a man page or a google query. If you wanted to succeed with arch, you had to read up. I think this turned away a good amount of users, but that was the type of distro Arch was. Now the community is soft, we are willing to put up with people that have no clue what they are doing and that can’t survive on their own!
ataraxia summed it up very well:
“A part of me really misses those old days. We’re far too welcoming of people who don’t substantially get what The Arch Way is even about, or who just don’t agree with it. Arch hasn’t been materially harmed by the changes, but I think we’re overly patient in these forums nowadays with people that are just too inexperienced to succeed anyway, and even more so with BIGNUM practically-identical threads that could have been avoided by simply reading the last day’s posts (or even the front page news) before posting a new thread.”
WM: Openbox
GTK: MurrinaGilouche
Wallpaper: Space
Tray: Stalonetray
Sidebar: Conky
Top Bar: Conky (mpd info + clock)