Silly VFAT Filesystem..

Case-sensitivity is painful with VFAT.. I would have put a real filesystem on my new external hard drive, but I thought it would be nice to plug it into anyone’s box and be able to read/write.. Syncing up my audio directory failed when many upper-case ‘CD1’, ‘CD2’, etc directories were created in lower-case, as well as rsync wanting to iterate through every file again.. The magic:

sudo mount -o uid=1000,gid=1000,shortname=mixed,iocharset=utf8 /dev/sdc1 /mnt/
rsync --modify-window=1 -rtv ~/media/audio/ /mnt/media/audio/

My new “E” and kayaks

I have had my 2006 Element for about 4 months and hadn’t posted anything about it – it is definitely a cool vehicle that will get lots of good use 🙂

I got a little Pelican Burst for Christmas, and a couple days ago we bought a Apex 129T to go along with it. Michelle is going down to the beach this weekend, and I am in Chicago for PyCon2008, so we loaded up the boats on Wednesday before I left for the airport – they both fit (whew..)
E and yaks

Debian on Sunfire V120

I just dumped Solaris off my underutilized (because of Solaris..) Sunfire V120 and did a fresh install of Debian Etch for the Sparc64 architecture. I burned the sparc iso image and borrowed an IDE SuperSlim CDROM from another server for the install, but the V120 would not recognize the device, no matter what I tried, which seems to be a common issue with some Sun gear.. Sweet! Off to netboot-land 🙂

On a spare laptop (running Debian, of course):

aptitude install rarpd bootp tftpd

Set up rarpd with the MAC and IP addresses in /etc/ethers to hand the V120 its IP when it ARP broadcasts (grab the MAC for the Sun box from the console startup messages):

00:03:BA:16:85:6B 192.168.1.30

Set up bootp to tell the V120 where to go for the install image. The location of the tftp directory, the name of the image, the client IP and netmask, the boot server IP, and the client hardware (MAC) address go in /etc/bootptab:

client:\
hd=/srv/tftp:\
bf=boot.img:\
ip=192.168.1.30:\
sm=255.255.255.0:\
sa=192.168.1.26:\
ha=0003BA16856B:

Download the sparc64 boot image to the tftpd directory:

# cd /srv/tftp/
# wget http://http.us.debian.org/debian/dists/etch/main/installer-sparc/current/images/sparc64/netboot/2.6/boot.img

When the V120 netboots, it ignores the file, boot.img, we told it to look for and asks tftpd for a file based on the IP address that it currently has (see Preparing Files for TFTP Net Booting for more info), so I just cheated, and tailed syslog to see what was being requested:

# tail -f /var/log/syslog

Now, netboot the V120 from the Openboot “ok” prompt on the console:

ok boot net

Going back to the syslog tail, I found:

# tail -f /var/log/syslog
Dec 19 20:41:31 apollo rarpd[4751]: RARP request from 00:03:ba:16:85:6b on eth0
Dec 19 20:41:31 apollo rarpd[4751]: link lo
Dec 19 20:41:31 apollo rarpd[4751]: addr 127.0.0.1/8 on lo
Dec 19 20:41:31 apollo rarpd[4751]: link eth0
Dec 19 20:41:31 apollo rarpd[4751]: addr 192.168.1.26/24 on eth0
Dec 19 20:41:31 apollo rarpd[4751]: RARP response to 00:03:ba:16:85:6b 192.168.1.30 on eth0
Dec 19 20:41:31 apollo in.tftpd[10704]: connect from 192.168.1.30 (192.168.1.30)
Dec 19 20:41:31 apollo tftpd[10705]: tftpd: trying to get file: C0A8011E
Dec 19 20:41:31 apollo tftpd[10705]: tftpd: serving file from /srv/tftp
Dec 19 20:41:35 apollo in.tftpd[10708]: connect from 192.168.1.30 (192.168.1.30)
Dec 19 20:41:35 apollo tftpd[10709]: tftpd: trying to get file: C0A8011E
...

Nice! A quick symlink is all we need, while the V120 is repetitively requesting the file C0A8011E:

# ln -s boot.img C0A8011E

And then I see on the V120 console that it is happily downloading its boot image file. (happy debian sparc dance ensues!)

From there on out, the text debian-installer should be quite familiar.

Gotcha’s:

I ran into an issue when running the disk partitioner – regardless of even creating an empty partition table, the partitioner failed with an error message along the lines of (from memory), “you may have too many primary partitions”, and refused to create any partitions. Somewhere in my digging around, I came across a web page or mailing list post on the fact that if there was a previous Solaris install, debian-installer may fail, and that the cure was to wipe the master boot record from the disk. Backing out to the main menu dialog, there is a “start a shell” option – pick that! In the shell, just dd over the 512byte MBR of the drive, exit, and go back to the partitioning option, and all should be well.

# dd if=/dev/zero of=/dev/sda bs=1 count=512

Another little consideration was that the Linux kernel (not just debian) iterates the ethernet devices differently than labeled on the back of the server – eth1=Net0 and eth0=Net1. Since I would prefer the physical labels to be “correct”, in the sense that I may ask some other person in a data center to plug the primary interface of the server into a switch, then I commented my /etc/network/interfaces file appropriately:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

## eth1 really is the primary interface!
## eth1 is the port labeled "Net0" on the SunFire V120
# The primary network interface
auto eth1
iface eth1 inet static
address 192.168.1.30
netmask 255.255.255.0
gateway 192.168.1.1

## eth0 really is the secondary interface!
## eth0 is the port labeled "Net1" on the SunFire V120
# The secondary network interface
auto eth0
iface eth0 inet static
address 192.168.10.30
netmask 255.255.255.0

After the install was complete and Debian is booted, I found an annoying repetition of console messages about the disconnected eth0 (Net1) device switching between 10baseT and 100baseT while trying to find connectivity:

Debian GNU/Linux 4.0 sol ttyS0

sol login: eth0: switching to forced 10bt
eth0: switching to forced 100bt
eth0: switching to forced 10bt
eth0: switching to forced 100bt
eth0: switching to forced 10bt
...

Many thanks to a 2003 post by Marta Pla i Castells to the debian-powerpc mailing list, I found my console-saving grace in the form of an update to /etc/default/klogd to set a higher priority of kernel messages sent to the console, which restricted the annoying and unimportant (to me) eth0 message from being sent to the serial terminal. The default logging level to the console is 7 – dropping the console log level to 6, meaning anything with a priority of “notice” (5) or higher gets logged on the console, keeps these messages from appearing – so, by elimination, it appears that this particular message is of “info” (6) priority.

#KLOGD="-x"
KLOGD="-x -c 6"

My fix to suppress the same messages from /var/log/syslog was to change the kernel priority in /etc/syslog.conf allowing them to still be logged go to /var/log/messages:

#*.*;auth,authpriv.none -/var/log/syslog
*.notice;auth,authpriv.none -/var/log/syslog

Happy Sparc Hacking!

Debian Etch – ATI flgrx 8.42.3

I am working on a functional dual-monitor setup for when I drop my Lenovo T60 (2613-EAU – Radeon Mobility X1400 128M) into it’s dock while at work, and I am partially there.. The first thing I needed to work out the fact that Debian Etch comes with a version of the proprietary ATI flgrx driver/module (8.28.8) which has a broken xv implementation, so multimedia software like mplayer cannot use XVideo – this has been an annoyance to me since Etch released, so I started my adventure by grabbing the latest version from ATI and building my own packages:

(check http://ati.amd.com/support/drivers/linux/linux-radeon.html for the latest version, and adjust URL – as of writing, the latest is 8.42.3)

$ wget https://_path.to.download.url_/ati-driver-installer-8.42.3-x86.x86_64.run

Now let’s make sure we have all the bits in place to build our .deb’s (as root, if you do not use sudo..):

$ sudo aptitude install module-assistant build-essential dh-make debhelper debconf libstdc++5 linux-headers-$(uname -r)

Build the fglrx-driver/driver-dev/kernel-src/amdcccle .deb’s, install ’em, then go build/install the fglrx-kernel module package (in my case, the new .deb’s handled upgrade/removal of old packages perfectly – ymmv, I suppose):

$ sh ati-driver-installer-8.42.3-x86.x86_64.run --buildpkg Debian/etch
$ sudo dpkg -i fglrx*.deb
$ cd /usr/src/
$ sudo module-assistant prepare
$ sudo module-assistant a-i fglrx

The simplest thing to do is to reboot, at this point, or you can go to single-user mode unload/load fglrx, etc.. My existing, relatively stock xorg.conf worked fine for the new version, with the exception of totally jacked up tiny fonts in XFCE upon login. I started fiddling with font sizes in the settings, then logged out of XFCE to check that the changes stuck – only to find jacked up huge fonts.. Resetting them back to where they were (and have been for many moons..) and another reboot for good measure, I am back to my normal-looking, productive self 🙂

I still need to dig through various and wildly varying xorg.conf examples and dual-head configs out there, and work out a decent configuration for what I might want to accomplish. From some limited reading thus far, I may just set up the external VGA port on the T60 to mirror onto the second monitor so I can shut the lappy and save LCD wear and tear, then use the Catalyst Control Center to enable “Big Desktop” mode when I feel the need. Once I have a good xorg.conf, I will update this post.

Update: here is that xorg.conf 🙂

it wasn’t me..

My mail server is going mad.. It looks like some spammer decided to use my domain and I am currently rejecting thousands of emails to the user ‘fidpbandjellyqid’ at my domain.. Sorry, but it wasn’t me..
valid email graph
rejected email graph
update: (Thu Jun 21 18:18:27) – the mail traffic is slowly but surely tapering off, but total rejected messages in the last few days is currently at 118,796 and counting..