2012/11/29
2012/11/18
Creating a DVD
First you need CentOS 6.
Then you need ffmpeg 0.7, available from the
NauLinux school repo. You might already have ffmpeg 0.6.5 installed, in which case you'll need rpm -e ffmpeg-libpostproc --nodeps before doing yum --enablerepo=naulinux-school install ffmpeg. (If you skip this step, you end up with an error that looks like Unrecognized option 'vf'. Or at least you will if can find stderr, which might be in ~/.xsession-errors).
Finally you install devede, which is written in Python but is surprisingly non-fail.
Linux tech has a repo. Set up that repo, then run yum --enablerepo=linuxtech-testing --enablerepo=rpmforge install devede.
2012/11/12
Vixie is a smart guy
I other words
0 0 1 * 0 do-somethingis in fact the equivalent of
0 0 1 * * do-something 0 0 * * 0 do-somethingwhich is so much more useful.
This is another formulation of the "don't allow the user to do stupid things" principle I talked about a while back.
2012/10/25
Total silence
Of note: when you switch on a computer you've just assembled, one of the first bits of feedback you get is the fans going WUURRRwuuurrrrr. But not if your computer has no fans! It took me at least one panicky minute to figure this our.
2012/10/23
2012/10/05
Multiple UPSes
OK, so now for a problem that probably only affects me. I have multiple UPSes in my server closet. A large one (APC BackUPS XS-1300 LCD) for most of the computers in the closet and a mid-sized one (APC BackUPS XS-900) for the computers in my office. I have a long wire running through the floor into my office. Why not put the mid-sized one in the office itself? Because it has a noisy fan.
Both these USPes are connected via USB to one computer. This computer assigns nearly randomly the device name, based on where I've plugged them into a USB hub. This resulted in the computers in the basement thinking they were on the 900 and my office thinking it was on the 1300. Not acceptable.
Using lsusb, I see the UPSes are at 2:5 and 2:4
# lsusb Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 005 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 002 Device 005: ID 051d:0002 American Power Conversion Uninterruptible Power Supply Bus 002 Device 002: ID 05e3:0604 Genesys Logic, Inc. USB 1.1 Hub Bus 002 Device 001: ID 0000:0000 Bus 002 Device 004: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Again with lsusb, I can find the serial number:
# lsusb -v -s 2:5 Bus 002 Device 005: ID 051d:0002 American Power Conversion Uninterruptible Power Supp ly Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x051d American Power Conversion idProduct 0x0002 Uninterruptible Power Supply bcdDevice 1.06 iManufacturer 3 American Power Conversion iProduct 1 Back-UPS XS 900 FW:830.E8 .D USB FW:E8 iSerial 2 BB0842016813 ... SNIP ...
Another way to get the same info:
# udevinfo -a -p /class/usb_device/usbdev2.5
looking at device '/class/usb_device/usbdev2.5':
KERNEL=="usbdev2.5"
SUBSYSTEM=="usb_device"
SYSFS{dev}=="189:132"
looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3':
ID=="2-1.3"
BUS=="usb"
DRIVER=="usb"
SYSFS{configuration}==""
SYSFS{serial}=="BB0842016813 "
SYSFS{product}=="Back-UPS XS 900 FW:830.E8 .D USB FW:E8 "
SYSFS{manufacturer}=="American Power Conversion"
SYSFS{maxchild}=="0"
SYSFS{version}==" 1.10"
... SNIP ...
Then I created some custom udev rules in /etc/udev/rules.d/99-apc.rules:
KERNEL=="hiddev*", SYSFS{serial}=="BB0842016813*", NAME="apc900"
KERNEL=="hiddev*", SYSFS{serial}=="JB0741003708*", NAME="apc1300"
I could also have used SYSFS{product} for matching, but the serial number uniquely defines these UPSes. I need the * for globbing because the serial number is padded with spaces, as can be seen in the udevinfo output.
Next reload the udev db:
# udevcontrol reload_rules # udevtrigger # ls -l /dev/apc* crw------- 1 root root 180, 97 Oct 5 12:53 /dev/apc1300 crw------- 1 root root 180, 96 Oct 5 12:53 /dev/apc900
YAY!