Compiling_ndiswrapper_on_mandrake_9.1


title: Compiling NDISwrapper on Mandrake 9.1 date: 2005-07-21 20:29:00

While compiling NDISwrapper on Mandrake 9.1, I ran into this error:

# ./configure -auto
checking for running kernel version...2.4.21
checking for ptserial...ptserial-2.4.7.c
checking for gcc...3.2.2
searching for kernel includes...found at /usr/src/linux/include
checking for modversions.h.../usr/src/linux/include/linux/modversions.h
checking for kernel_version...In file included from t.c:2:
/usr/src/linux/include/linux/version.h:1:28: linux/rhconfig.h: No such file or directory
./configure: line 1: ./t: No such file or directory
rm: cannot remove `./t': No such file or directory
** error
could not determine a proper UTS_RELEASE

This is how I got around it:

[root@localhost src]# ln -s /usr/src/linux/include/linux/rhconfig.h /usr/include/linux/
[root@localhost src]# ./configure -auto
checking for running kernel version...2.4.21
checking for ptserial...ptserial-2.4.7.c
checking for gcc...3.2.2
searching for kernel includes...found at /usr/src/linux/include
checking for modversions.h.../usr/src/linux/include/linux/modversions.h
checking for kernel_version...UTS_RELEASE is 2.4.21-0.13mdk
detecting your modem...found. Your modem is a i8xx type modem.

Tags:

NWR04B: Further up the abstraction ladder

Well, I'm getting further along.

First off, I've managed to get the kernel mounting its root directory from my desktop machine. The trick to this was turning off the initrd option in the kernel config; if you don't, it doesn't matter what options you put in the kernel command line -- it'll try to read the ramdisk and then fail because it's not in JFFS2 format (though I'm sure that error could be got around somehow; I'm just not bothering right now 'cos NFS is more flexible).

So now this kernel command line works:

root=/dev/nfs nfsroot=192.168.23.254:/home/aardvark/nwr04b/nfsroot ip=192.168.23.12:192.168.23.254:::test:eth0:off

...and I can ping the thing, which is good. Now I just need to populate it, which means just compiling busybox. Easy, right?

Ha! Another big-ass set of problems is what it is. First, I tried a copy of Busybox I had lying around that I think I'd compiled as part of a previous toolchain attempt. Yeah, I know -- "Let's throw in random binaries and they'll work!" -- but I figured it was worth a try. file seemed hopeful:

ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, statically linked

but when I tried it I got this error:

BINFMT_FLAT: Bad magic/rev (0x1010161, need 0x4)

God bless Free software; here's the comment from fs/binfmt_flat.c:

because a lot of people do not manage to produce good flat
binaries, we leave this printk to help them realise the problem.
We only print the rror if it's not a script file

Flat binary? Wha? And then came this FAQ from the excellent uCdot:

What causes 'BINFMT_FLAT: bad magic/rev (0xZZ, need 0xYY)' errors?

A lot of people encounter this error the first time they try to run a
program on a uClinux system. Usually this is caused by trying to run an
ELF or COFF executable rather than a "flat" executable. uClinux does not
support anything but the "flat" executable format.  ELF/COFF programs
are converted to "flat" format using elf2flt/coff2flt respectively.

To fix this problem with the ELF toolchain add -Wl,-elf2flt to the final
link line of your build and it will create a flat executable.

And why do we need that? Well, because this CPU has no MMU; the ELF format for executables won't work because (and I'm fuzzy on the details here) this means that the binary has to deal with being run from any memory address, rather than being lied to and told that it's at 0x0. Thus the special arguments to the compiler and linker, and the invocation of elf2flt afterward. So: to compile busybox I had to change the CFLAGS argument in make menuconfig to -D__PIC__ -fpic -msingle-pic-base, then run:

make dep
LDFLAGS=-Wl,-elf2flt make

I still got this error:

arm-elf-strip --remove-section=.note --remove-section=.comment busybox
arm-elf-strip: busybox: File format not recognized
make: *** [busybox] Error 1

but the strip command is the very last one in compiling the binary, and file busybox gave "busybox: BFLT executable - version 4 gotpic". I copied it into place, booted and got:

IP-Config: Guessing netmask 255.255.255.0
IP-Config: Complete:
      device=eth0, addr=192.168.23.12, mask=255.255.255.0, gw=255.255.255.255,
     host=test, domain=, nis-domain=(none),
     bootserver=192.168.23.254, rootserver=192.168.23.254, rootpath=
Looking up port of RPC 100003/2 on 192.168.23.254
Looking up port of RPC 100005/1 on 192.168.23.254
VFS: Mounted root (nfs filesystem).
Freeing init memory: 52K
Unhandled fault: external abort on linefetch (F4) at 0x00000001
fault-common.c(97): start_code=0x700040, start_stack=0x67ffbc)
[1] sh: bad data abort: code 33554432 instr 0x32005500
Code: 495f5fdf 0e97f38e (c9a303b1) 3ea3a3ad b294aa7c
fault-common.c(97): start_code=0x700040, start_stack=0x67ffbc)
Internal error: unknown data abort code: 32005500
CPU: 0
pc : [<0000ffff>]    lr : [<0000ffff>]    Not tainted
sp : 0000ffff  ip : 0000ffff  fp : 0000ffff
r10: 0004d04c  r9 : 00050e40  r8 : 001fa000
r7 : 00000000  r6 : 0000005b  r5 : 00169884  r4 : 0019a904
r3 : 001722c0  r2 : ffffffff  r1 : 20000010  r0 : 20010016
Flags: nzcv  IRQs off  FIQs off  Mode SYS_32  Segment kernel
Control: 0
Process sh (pid: 1, stackpage=001f9000)
Stack:
Backtrace: frame pointer underflow
Function entered at [<b1c9a2f3>] from [&amp;lt;8e0e97f3&amp;gt;]
Unhandled fault: alignment exception (93) at 0x00000001
fault-common.c(97): start_code=0x700040, start_stack=0x67ffbc)
Internal error: Oops: 0
CPU: 0
pc : [&amp;lt;0012cccc&amp;gt;]    lr : [&amp;lt;00058850&amp;gt;]    Not tainted
sp : 001f9e94  ip : 001f9e40  fp : 001f9ec8
r10: 00640004  r9 : 00000000  r8 : 00000010
r7 : 00000000  r6 : b1c9a2f3  r5 : 9c63fdbd  r4 : 0000ffff
r3 : 0014b478  r2 : 00000001  r1 : 00000001  r0 : 0000ffef
Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  Segment kernel
Control: 0
Process sh (pid: 1, stackpage=001f9000)
Stack:
001f9e80:          00058850 0012cccc 60000093  ffffffff 0000ffff 001f8000 00000001
001f9ea0: 001f9fd4 0067ffc8 00053a08 001f8000  001f9fd4 0000ffff 32005500 001f9ee0
001f9ec0: 001f9ecc 00053b00 00053984 001f8000  001f9fd4 001f9ef0 001f9ee4 00053b50
001f9ee0: 00053a60 001f9f94 001f9ef4 00054080  00053b44 32005500 00000004 00000000
001f9f00: 00030001 0000ffff 00050cc8 001f9f2c  001f9f1c 000567a8 000551b4 00000000
001f9f20: 001f9f7c 001f9f30 000576f8 0005675c  0068a000 001f9f98 00000000 001f9f98
001f9f40: 0067ff78 20000013 000480a0 001f8000  0068a000 0014b1f8 00148000 0014a040
001f9f60: 00170a40 001f9f94 00055710 00000000  00000000 0067ffd0 32005500 00000000
001f9f80: 0067ffd0 00000001 00000000 001f9f98  00054ed8 00053ff8 00000009 00000000
001f9fa0: 00000009 0004d03c 00000000 00000000  0067ffd0 00000001 0067ffc8 00000000
001f9fc0: 00640004 00000000 00000000 0067ff88  0004d020 20010016 20000010 ffffffff
001f9fe0: 001722c0 0019a904 00169884 0000005b  00000000 001fa000 00050e40 0004d04c
Backtrace:
Function entered at [&amp;lt;00053974&amp;gt;] from [&amp;lt;00053b00&amp;gt;]
 r7 = 32005500  r6 = 0000FFFF  r5 = 001F9FD4  r4 = 001F8000
Function entered at [&amp;lt;00053a50&amp;gt;] from [&amp;lt;00053b50&amp;gt;]
 r5 = 001F9FD4  r4 = 001F8000
Function entered at [&amp;lt;00053b34&amp;gt;] from [&amp;lt;00054080&amp;gt;]
Function entered at [&amp;lt;00053fe8&amp;gt;] from [&amp;lt;00054ed8&amp;gt;]
 r7 = 00000001  r6 = 0067FFD0  r5 = 00000000  r4 = 32005500
Code: ebfcae37 e2440010 (e5961004) e1a03521 e59f20cc
Kernel panic: Attempted to kill init!

The punchline is that that's the best result I've got in a lot of experimentation I'm not writing down here. The one common thread, once I got the binary format figured out, is this:

Unhandled fault: external abort on linefetch (F4) at 0x00000001
fault-common.c(97): start_code=0x700040, start_stack=0x67ffbc)

The 0x00000001 is the same throughout. I tried this suggestion and ran flthdr -s 65535 busybox to increase the stack size from 0x1000 to 0xffff -- same result. Then I came across this message, which says that there's something wrong, F4 is the message from the CPU's fault register, and I need to figure out what it is. However, I've also come across (and lost the links to) another post which suggested it was a paroblem with a particular version of uClibc. So that means paying proper attention to a toolchain, which I'd skipped over earlier. I'm currently trying to get the HRI toolchain going, so we'll see how that turns out.

Tags: nwr04b

NWR04B: KERNEL PANIC!

HO yeah!

boot no options
Linux version 2.4.19-uc1-cx84200-4 (aardvark@rearden.saintaardvarkthecarpeted.com) (gcc version 2.95.3 20010315 (release)) #955
Processor: Conexant CX84200 revision 1
Architecture: cx84200
On node 0 totalpages: 2048
zone(0): 0 pages.
zone(1): 2048 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/mtdblock1 ro console=ttyS0
Calibrating delay loop... 32.15 BogoMIPS
Memory: 8MB = 8MB total
Memory: 6668KB available (806K code, 324K data, 36K init)
Dentry cache hash table entries: 1024 (order: 1, 8192 bytes)
Inode cache hash table entries: 512 (order: 0, 4096 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 2048 (order: 1, 8192 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
eth0: a0:98:76:54:32:10
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 512 bind 512)
*******
VFS: test name =
VFS: fs_name = <jffs2>
VFS: root name <1f:01>
*******
VFS: tried fs_name = <jffs2> err= -19
VFS: Cannot open root device "mtdblock1" or 1f:01
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on 1f:01

I am currently giggling like an idiot and scaring my wife.

Tags: nwr04b

NWR04B: Progress!

EMXIFFIXMUncompressing Linux...FIXME

                                   FIXMran out of input data
                                                            FIXME

                                                                 -- System haltedFIXM

I set ZTEXTADDR in arch/armnommu/boot/Makefile to 0x1000, and now I get this. Sweet!

00000000:00304C0C;0000106C=00000000
00303A68-00304C0C>00000000
EMXIFàUncompressing Linux...à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à.à done, booting the kernel.
                                                                                                                     à
00000000:00000000;0017F4C8=00000000
0008BC8C-0017F48C>00008000
0017F48C
00008000: E1A0C000 E3A0105B E28F5028 E8952360  E3A04000 E1550008 34854004 3AFFFFFC
00008020: E59F2024 E5862000 E3A0205B E5892000  E3A0B000 EA0000F9 001337E0 00134184
00008040: 00163A8C 00134180 00116000 84200001  E1A0C00D E92DD800 E24CB004 E24B1014
00008060: E24DD008 E50B0010 E24B0010 EB0309CF  E3500000 159F200C 151B3014 15823000
00008080: E3A00001 EA000000 0013B720 E91BA800  E1A0C00D E92DD870 E24CB004 E1A06000
000080A0: E59F5050 E5950000 EB030401 E1A04000  E1A00006 E5951000 E1A02004 EB0303E7
000080C0: E3500000 1A000005 E0860004 E1A0E00F  E595F004 E3500000 13A00001 191BA870
000080E0: E59F3014 E2855008 E1550003 3AFFFFEC  E3A00000 E91BA870 00048880 00048930

00136E70: 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000
00136E90: 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000
00136EB0: 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000
00136ED0: 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000
00136EF0: 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000
00136F10: 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000
00136F30: 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000
00136F50: 00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000
EMXIFàUncompressing Linux...à

Tags: nwr04b

Blast from the past

(Note: this was actually written back in May.)

Top Tip: Filenames with a tilde in them can confuse Samba.

Case in point: last week a user was having problems loading his profile: W2K kept choking and saying that the file Local Data\Applications\foo\backup\~AvariciousMonkeys.c was in use. Naturally, lsof on the Samba server turned up nothing, and I couldn't see any obvious problem. On a hunch, I tried renaming the file to AvariciousMonkeys.c~, and hey presto! goodness all over.

This week I'm trying to get FAI going in seriousness. I've worked on it before, but now I've got three developers who want to switch to Linux. The last thing I want is another series of one-offs, so I'm taking the time to do it right. Now there's a CD version in beta, and so far it's working well. Cf. the usual way of doing it, which is to do PXE booting and grab everything off the network. I'm not opposed to that, but one of the things I wanted out of FAI before was the ability to do CD-based, kickstart-like Debian installs; looks like it's finally going to work.

Looks like we're having a problem with a Maxtor PCI IDE controller and the Intel mobo in our backup server. It's been mysteriously crashing in the middle of the night w/no log messages. Some checking in the BIOS turned up another problem: going to the hardware monitoring page to look at the CPU temperature made the damn thing freeze. WTF? Sure seems like the symptom we were seeing, and backups running at night make big use of the Vinum array that uses drives attached to the IDE adapter...long story short, taking out the card stopped the BIOS freezing. It remains to be seen if it'll work for the random midnight freezes, but it's good to have something to try. I'm hopeful that FreeBSD will be able to handle SATA drives attached to this thing...we'll have to see.

Which brings me to the next bit: fleshing out plans for server upgrades. As I mentioned, last week we had a power supply fail on our Very Important Server, and I want to try and keep that from happening again. Of course, adding umpty thousand dollars worth of hardware to your budget four months before the end of fiscal doesn't really work too well, so as much as possible I need to do this w/o new hardware. Ha! But I'll give it a try.

First off is setting up OpenLDAP and importing Samba's information into it. That'll be neat, since I've never worked w/LDAP before. Second is to set up some BDCs using OpenLDAP to query the master. (Or do they just suck over the whole database? Hm. Either way.) Third is to set up some Linux machines. Why? Two reasons:

  • LinuxHA + DRBD
  • Server Hardware

LinuxHA and DRBD seem fantastic, and there just doesn't seem to be anything comparable on the FreeBSD side. As for the hardware...well, my first impression of server hardware from IBM, HP and the like (no, don't talk to me about Dell) is that I'm going to need a newer version of FreeBSD than we currently use in order to run SATA drives. (I know SCSI is the way to go, but I was quoted two thousand dollars for two IBM 73GB 15k drives! I know: 15k, IBM, etc, but even halving that means two -- two! -- 73GB drives for a thousand bucks, a/o/t two 200GB drives for, what, four hundred. Heh.)

We're using an older version of the 4-series FreeBSD here. I've already set up one server using a newer 4-series release, and it's a pain: too many differences, one more thing to keep in mind when making changes, and so on. I haven't worked with the 5-series yet, and I don't want to start now...not entirely sure that it'd work for us. Plus, we'll probably migrate to Linux anyway, so I don't mind doing it for a server.

Anyhow! Get a Real Server and throw Linux on it. Hook it up to our drive array and start migrating home directories to ReiserFS from UFS/FreeBSD. Not trivial, but doable. Add more Linux servers as budget allows.

Tags: samba installation hardware upgrades linux bsd

Noooo!


title: Noooo! date: 2005-07-01 20:37:31

Got an email from my ISP saying they've noticed that our bandwidth usage is "substantially more than the average Internet user", and asking (ie, telling) us to contact them ASAP. Not sure what this would be about. I mean, yes, I am hosting a bunch of websites here in strict contravention of their AUP...but a quick look at MRTG shows that we simply can't be doing that much traffic: 2.5GB or so last month for the web, and maybe another GB for email, DNS, and whatnot. We don't do filesharing, so that's out. I've downloaded some ISOs and such, but no more than usual -- less, in fact. So what the hell?

As a result, I'm looking at virtual server hosting, just in case. If anyone has any recommendations or war stories, please drop a line.

Update: I talked to the Shaw people, and was told I'd done 55 GB total over the month. This was 'way beyond what I expected, and I couldn't figure it out. I looked at the usage graphs, and found that it was nearly symmetrical: almost 1GB up and 1GB down every day. And it had started at the end of May. What the...

Then I realized: I'd rebooted my desktop and server around that time, and the two addresses they'd got were on different subnets. I back up files from the server every night, and it's about 1GB or so. That meant that 1GB was going out from my server, hitting Shaw's router, then coming back to my desktop machine...making it about 2GB per day, very symmetrical.

I've added another ethernet card to each machine, hooked up a crossover cable, put in a restrictive firewall, and it's much better: 300MB total for yesterday. This is well under Shaw's "guideline" (ie, rule) of 20GB total per month. (Shaw, in their wisdom, refuse to put these limits on their AUP page, but instead insist that you call in and spend 10 minutes on hold for tech support to find out.) Aside from this blip (and a similar one in December), the average traffic over the last 12 months has been between 3 GB and 9GB total; I rarely serve more than 3GB in a month. Good to know.

Tags:

Nearly moved in...

Been a while since I wrote in here... The company I work for ("my company" sounds like the possessive) is moving, and today was the day the movers shifted everything. Fortunately we only moved across the street. I've been at this since 8am this morning, and I'm just starting to get servers turned on.

Right now I'm sitting in the 10 foot square server room (hey, it's a big improvement), waiting for one big-ass fsck to finish, and I just remembered to attach the SCSI terminators the disk array.

A lot has happened, both inside and outside work. I won't write about all of it right now, 'cos I'd be here 'til 11 if I did. But remember this, you Canada people: ALLSTREAM SUCKS ASS. You have been warned.

Tags:

Toread_


title: TOREAD date: 2005-05-31 19:44:04

In Democracy's Shadow: The Secret World of National Security

Tags:

Less_rfc_expr_$random_%_$last__rfc.txt


title: less rfc`expr $RANDOM % $LAST_RFC`.txt date: 2005-05-28 09:18:37

My, how things change... RFC 528, SOFTWARE CHECKSUMMING IN THE IMP AND NETWORK RELIABILITY, written by John McQuillan, was published in June of 1973. It's a surprisingly readable document that introduces packet checksums on the Internet. From TFRFC:

Our idea of the Network has evolved as the Network itself has grown. Initially, it was thought that the only components in the network design that were prone to errors were the communications circuits, and the modem interfaces in the IMPs are equipped with a CRC checksum to detect "almost all" such errors. The rest of the system, including Host interfaces, IMP processors, memories, and interfaces, were all considered to be error-free. We have had to re-evaluate this position in the light of our experience.

IMP stands for Interface Message Processor, and was what we'd now call a router. Having grown up with TCP/IP (drawn from me ma's teat, bye!), it's hard for me to imagine a protocol without some kind of checksum, or assuming that nearly all of your equipment would be error-free -- but then again, I have the benefit of 30 years of network research. It's fascinating to find out where your assumptions come from. Knowing his audience, the author threw in a good war story:

One of the earliest problems of this kind was discovered in 1971. The Harvard IMP was sometimes crashing in an unknown manner so that all the other IMPs were affected. It was finally determined that its memory was faulty and sometimes the routing messages read out from memory by the modem output interfaces were all zeroes. The adjacent IMPs interpreted such an erroneous message as stating that the Harvard IMP had zero delay to all destinations -- that it was the best route to everywhere! Once this information propagated to the other IMPs, the whole network was in a shambles.

(Lest we think that we've left this sort of thing behind, there are BGP flaps and such to keep us honest.) Tales like this weren't just there to entertain, though; he was anticipating serious objections about whether checksumming was worth it.

On of the major questions about such approaches is their efficiency. We have been able to include the software checksum on all packets without greatly increasing the processing overhead in the IMP. The method described above involves one checksum calculation at each IMP through which a packet travels. We developed a very fast checksum technique, which takes only 2 msec per word.

And in case the breakup of The Beatles, the Nixon presidency and the sight of a man playing golf on the moon at taxpayers' expense was not enough to convince you that, yes, it was a very different time, check out this approach to data collection:

On March 13, a new version of the IMP program was released with software checksum code. In this program, when a packet is found to have an incorrect checksum it is discarded, and a copy of the data is sent to the NCC.

Ah, the things you can do on a research network. And lastly, we have a foreshadowing of RFC 761, the first RFC to describe TCP:

Finally, we are looking into the structure of an optional IMP- Host/Host-IMP checksum to complete Host/Host end-to-end checksum. Under such an arrangement, the IMP and Host could agree to verify the checksums on the messages transferred over the interface between them, and the appropriate signalling mechanisms would be provided to handled errors. With this technique in effect, two Hosts could be certain that their messages were delivered error-free or else they would be notified of an error, and could then retransmit their message if desired.

Tags:

Pvr500mce:_working!


title: PVR500MCE: Working! date: 2005-05-22 10:04:05

Finally got my new PVR-500MCE working under Linux with the ivtv drivers. I'd been getting (black, fade to static, fade to black, rinse & repeat), and since a number of other people had reported the same problems I was beginning to think I'd just have to wait for the developers to catch up. But the solution turned out to be pretty simple. In the output from dmesg, I kept getting this line:

May 22 02:22:11 hunsacker ivtv: Encoder Firmware may be buggy, use version 0x02040011

What the hell, maybe the developers know what they're talking about, right? So I visited the wiki page, grabbed the revision they recommended, then ran:

ivtvfwextract.pl /path/to/firmware /tmp/encode.img /tmp/decode.img
mv /lib/modules/ivtv-fw-enc.bin /lib/modules/ivtv-fw-enc.bin-old
cp /tmp/encode.img /lib/modules
ln -s /lib/modules/encode.img  /lib/modules/ivtv-fw-enc.bin
shutdown -h now

I waited a minute to make sure the card would lose the firmware, rebooted, then ran these two bit from my Makefile:

insmod:
     sudo modprobe cx25840 debug=1 no_black_magic=1
        sudo modprobe tuner debug=1
        sudo modprobe wm8775 debug=1
        sudo modprobe tveeprom debug=1
        sudo modprobe ivtv ivtv_debug=1
        sudo modprobe tda9887 debug=1

test:
       /home/aardvark/bin/ivtv-0.3.3h/utils/ivtvctl --set-input 6 ; \
       for i in `seq 2 99` ; do \
                        ptune.pl --channel $$i --input /dev/video0 --freqtable ntsc-cable --tuner-num 0 ; \
                        cat /dev/video0 > test-channel-$${i}-$${j}-input-6-dev-0-tuner-0.mpg & \
                        sleep 5 && kill $$! ; \
        done

And sure enough, it worked! Now: on to MythTV!

Tags:

My_wife_needs_to_know_who_won_america_s_next_top_model


title: My wife needs to know: Who won America's Next Top Model? date: 2005-05-18 20:26:22

My wife has a simple question: Who Won America's Next Top Model? Seriously! We were out. We have a bet going and everything. First reply with the right answer wins.

I am counting on all y'all.

Tags:

Woohoo!


title: Woohoo! date: 2005-05-17 17:46:43

Someone wrote, like, nine of the firefox extensions I have lusted for all these years. Credit where credit is due.

Tags:

One_power_supply_shall_be_taken,_and_one_shall_be_left_behind


title: One power supply shall be taken, and one shall be left behind date: 2005-05-17 18:25:37

Had a server up and die on me yesterday at work. What's more, it was the Very Important Server that does almost, but not quite, everything: Samba (only one, natch), NIS master, SMTP/POP/IMAP, CVS/SVN, printing, and since the installation of the disk array, serving quite a few home directories, too. I was answering a user's question -- "Oh, this should be on the wiki..." -- and noticed that the web server wasn't up. Another user poked up his head to ask if CVS had disappeared for a reason. Aw,

crap. There were no lights on -- no power, disk or network activity, so I knew it wasn't good. The fans in the front and in the power supply weren't working, so it really wasn't good. Other things plugged into the same power bar were fine, so I tried power-cycling: no response. I unracked it, popped off the lid and watched the fans start briefly then die as I toggled the power switch again. Final verdict: not good.

I took it to a better place to crack it open, and grabbed some spare parts: power supply, memory, graphics card. By the time I got everything back there, maybe five minutes had passed since I'd unracked it. And of course it turned back on. I checked the CPU temperature in BIOS: 30C. A quick check of the heatsinks and drives showed they were quite fine, too. I mean, yeah, it had been five minutes, but I'd think there'd be some residual heat I could feel. I was stumped, but decided to swap the power supply anyhow. (If anyone has any other ideas, please let me know.)

So naturally, now I'm thinking about what to do about this server to keep this sort of thing from happening again. Here's a short list of the stuff it does:

  • NIS master server
  • SMTP/POP/IMAP
  • CVS/SVN
  • Samba PDC
  • NFS for internal drives and the drive array

In order:

  • NIS: Throw more slaves at it (though we've got two already, so I suspect that we're fine.)

  • SMTP/POP/IMAP: The poor cousins, at least for now. Am assuming that an outage of SMTP/POP/IMAP that can be fixed in an hour is fine, and a longer outage indicates bigger problems.

  • CVS/SVN: To some extent, just subsets of NFS. At any rate, I'm treating this like mail: a brief outage can be lived with, and a longer outage means I have bigger problems.

  • Samba: A BDC is obviously in order and shouldn't be too difficult (said the guy who's never worked with LDAP before), at least as far as authentication goes. However, fileserving is made stupidly more difficult by the way we're serving home directories to Windows clients: all the home directories are listed as \\VeryImportantServer\foo. The better way to do this would be to run Samba on the other file servers as well (\\SomeSmallerServer\foo). Can't believe this only just occurred to me.

  • NFS: The biggie. Obviously we should be breaking out home directories to some other server, but that just pushes the question over a machine or two: instead of worrying about the Very Important Server that Does Almost Everything, we're worrying about The One With The Files. Since the disk array is connected via SCSI to two machines (of which the VIS is only one), it would be possible, if the VIS was raptured again, to simply fsck the arrays and them export them from the second machine. This takes time, though: close to half an hour to fsck a 1TB drive. (I've never found the settings for newfs that are supposed to make fsck times approach that of a journaled FS; if anyone can fill me in, please let me know.) And there is some provision in amd for failover, but (as I understand it) not much. Another option is using ha+drdb, which looks quite promising. This means moving to Linux, though; I'm not opposed to that, but since I don't have a second drive array around I have no way of testing this, let alone gradually phasing this in.

Hm. Any ideas, let me know.

Tags:

Christ on a crutch

First off, The London Times has published secret UK government minutes from a 2002 meeting on the coming war in Iraq:

C reported on his recent talks in Washington. There was a perceptible shift in attitude. Military action was now seen as inevitable. Bush wanted to remove Saddam, through military action, justified by the conjunction of terrorism and WMD. But the intelligence and facts were being fixed around the policy. The NSC had no patience with the UN route, and no enthusiasm for publishing material on the Iraqi regime's record. There was little discussion in Washington of the aftermath after military action....It seemed clear that Bush had made up his mind to take military action, even if the timing was not yet decided. But the case was thin. Saddam was not threatening his neighbours, and his WMD capability was less than that of Libya, North Korea or Iran. We should work up a plan for an ultimatum to Saddam to allow back in the UN weapons inspectors. This would also help with the legal justification for the use of force.

From the ever-excellent Secrecy News (Friday the 13th ed.), which goes on to say: "Coverage of the matter has been sparse in the U.S. The Los Angeles Times reported on it yesterday, more than a week after the story broke in the UK on May 1, and the Washington Post followed today." Second, Seymour Hersh talks about Iraq, My Lai and the President of the United States of America:

But I think what's more important than that is that this guy, this Bush, absolutely believes in what he's doing. He's not like a nervous Richard Nixon, worried about, you know, "They're coming after me," or Lyndon Johnson quitting over Vietnam with great uncertainty about whether he is doing the right thing. This guy is absolutely convinced....I have a friend who is a major player who went to Iraq recently. There's been a series, unreported, a series of missions in Iraq that have all been there to study the war -- where are we? -- and they've all come back pretty negatively. This guy came back and he saw the President months ago. And he said, "Mr. President, we're losing the war in Iraq." And there was a sort of a three-second beat and Bush said, "You mean we're not winning." And this guy said, "Hey, I told him what I had to say. If he wants to turn it the way he wants to, that's the way it goes." You know, so he hears what he hears.

Link by way of Ken MacLeod: " You know how this stuff ends? It ends with your cities in rubble, your capital occupied, and your leaders hanged."

Tags: politics

Just_like_it_says:


title: Just like it says: date: 2005-05-15 13:36:21

Error in Cygwin after upgrading: The procedure entry point _impure_ptr could not be located in the dynamic link library cygwin1.dll. Solution: As it says here, just reinstall the Cygwin package (and only the Cygwin package).

Tags:

NWR04B: Adapter fubar'd

Arghh...the crappy little RS232 adapter I hacked together for the NWR04B got dropped the other day, and now I just see garbage. I spent two hours this afternoon re-soldering various connections, then gave up and ordered two of these (the 233 adapters, 3V version, in the DB9 shell). Even ordered 'em assembled. Work on that'll be on hold, though I may have some notes to put up. In the meantime, I'll be trying to get my PVR-500MCE working. Whee!

Tags: nwr04b

Must...not...purchase...

My uncle forwarded me an email from Tiger Direct, and I was sorely tempted to purchase the this. It's the Asante FR1104-G 802.11G router, and it's only 27 Canuckistan pesos. What's more, there is the rebate listed on Asante's website -- $20 US!, which would have almost made me a profit on the damned thing. Then I realized the rebate program had ended in April (damn!). And I couldn't find anyone else who'd tried to hack the thing, or run Linux on it. (Why else would I buy it?) The datasheet mentioned a 32-bit RISC microprocessor, but nothing more...almost certainly an ARM. And I remembered that I still have to get thing working with the wireless router I do have. (Dropped my crappy serial adapter the other day, so now I have to fix it.) Still, good deal if anyone wants one...

Tags: nwr04b

Promise releases the source!

I've been meaning to put this up for a couple weeks now, but haven't had a chance... I got an email from the customer service manager at Promise, and it's good news. As required by the GPL, they've finally released the source for the Linux kernel and the Busybox utility. They're used in the firmware for the VTrak SATA-to-SCSI drive arrays. MD5 checksums for the tarballs match those that I had downloaded (and mirrored) before. Hurray!

Tags: gpl

<jawdrop>


title: <jawdrop> date: 2005-05-13 20:25:15

This is the coolest thing I have ever seen.

Tags:

NWR04B: So that's what PC is set to

Finally figured out two things:

  1. The macros debug_reloc_start and debug_reloc_end in head.S are not called by default -- which is why I haven't been seeing any output from them. Duh.
  2. If I put them in and close a comment properly, I can print out pc -- which as near as I can figure is set to 0x1008 more than it should be if the image was being run from the beginning of memory.

Currently trying a truly horrible hack (.rept 4112 instead of .rept 8 at the beginning of the image) to see what heppens.

Tags: nwr04b