**** BEGIN LOGGING AT Thu Apr 20 09:59:56 2006 Apr 20 16:38:26 ~seen beewoolie Apr 20 16:38:28 beewoolie was last seen on IRC in channel #openjtag, 68d 16h 52m 23s ago, saying: 'I thought they were going SA-SCSI so there'd only be a dozen or so pins.'. Apr 20 16:38:33 ~seen beewoolie-afk Apr 20 16:38:35 beewoolie-afk was last seen on IRC in channel #openjtag, 17d 19h 8m 38s ago, saying: '[g2-lap]: was it a fine vacation?'. Apr 20 16:38:46 hnmm Apr 20 16:38:55 * prpplague wonders if beewoolie is alive Apr 20 17:07:32 prpplague, greetings Apr 20 17:17:03 hey beewoolie Apr 20 17:17:28 vmaster, Hey Apr 20 17:17:46 New note book computer. Things are little rough on the edges. Apr 20 17:18:03 nice Apr 20 17:19:59 How's the good fight? Apr 20 17:22:21 beewoolie Apr 20 17:22:24 where are you from? Apr 20 17:22:55 I think men are from mars. At least that's what dollface tells me. Apr 20 17:25:43 beewoolie: hey Apr 20 17:25:50 beewoolie is female? Apr 20 17:26:01 :-) Apr 20 17:26:03 Hi prpplague Apr 20 17:26:08 whazzup? Apr 20 17:26:09 is this true? Apr 20 17:26:16 beewoolie: hey have you looked at the uboot utility called mkimage ? Apr 20 17:26:23 I think so. Apr 20 17:26:31 It's the thing that wraps a binary with a header Apr 20 17:26:38 ...so that uboot can read it. Apr 20 17:26:47 yea Apr 20 17:26:53 prpplague btw pixter mm down to $19 walmart but only one Apr 20 17:26:54 basically just adds a 64 byte header Apr 20 17:26:56 man I was so tempted Apr 20 17:27:06 Yeah. Apr 20 17:27:07 fishhead-: hey i'm working here Apr 20 17:27:14 I've hassled with that a bunch. Apr 20 17:27:30 beewoolie: well, i was thinking of using it Apr 20 17:27:31 It causes *lots* of traffic on the lists because uboot cannot load anything without it. Apr 20 17:27:37 For what? Apr 20 17:27:44 oh ok Apr 20 17:27:49 thought you were just chatting Apr 20 17:27:50 * fishhead- bows Apr 20 17:27:52 my apoligised Apr 20 17:27:56 Huh? Apr 20 17:27:58 beewoolie: to keep track of kernel/ramdisk sizes Apr 20 17:28:11 beewoolie: as well as use it for the crc32 header Apr 20 17:28:32 There's nothing wrong with supporting such as header as long as it's optional. Apr 20 17:28:44 Uboot's requirement for it is annoying. Apr 20 17:28:48 beewoolie: right, definetly would an option Apr 20 17:28:52 beewoolie: agreed Apr 20 17:29:04 How do you see it working? Apr 20 17:29:51 beewoolie: basically the major item i'm interested in is for the exact image size and the crc32. Apr 20 17:30:07 beewoolie: the startup command would read the size from the header and copy just that amount to ram Apr 20 17:30:10 one quick question if I might, does openboot work on arm archtechture? Apr 20 17:30:20 beewoolie: i.e. to decrease boottime Apr 20 17:30:26 fishhead-, not as far as I know. Apr 20 17:30:29 ok thx Apr 20 17:30:49 Hmm. Apr 20 17:30:58 Are you reading from NOR flash? Apr 20 17:30:58 beewoolie: second would be to verify the crc32 and to make sure that its correct before booting Apr 20 17:31:02 beewoolie: nor Apr 20 17:31:25 So really, we need a command that comprehends this header and does the right thing. Apr 20 17:31:29 Something like this: Apr 20 17:32:00 apex> loadfrom nor:256k+2m Apr 20 17:32:18 But it only read the header and then figures out how much to really copy. Apr 20 17:32:42 It could check the crc as well, but you know that that is going to increase the load time *more* than just reading all of it. Apr 20 17:32:57 This header could just have a script in it. Apr 20 17:33:11 That way, you could do anything that APEX can do. Apr 20 17:33:31 It may need to have some smarts about the contents of this package. Apr 20 17:33:39 beewoolie: right, i was almost thinking of a command that would just read the header and populate some env vars Apr 20 17:33:45 That way, you could spin out a couple of files from the package if you needed to. Apr 20 17:34:01 That would work as well, but it may not be relocatable. Apr 20 17:34:16 If the archive moves, some of those variables may be hard to fix up. Apr 20 17:34:19 ....or not. Apr 20 17:34:25 Perhaps this would be OK. Apr 20 17:34:37 beewoolie: i'm just brain storming about it right now Apr 20 17:34:40 You could have a list of regions copied to the environment. Apr 20 17:34:46 Yeah. It's a fine idea. Apr 20 17:35:24 What is the problem you are trying to solve? Apr 20 17:35:55 beewoolie: number one issue is i need to be able to automate some sort of crc checking for images Apr 20 17:36:18 beewoolie: i need to be able to do the check in several places Apr 20 17:36:34 beewoolie: i need to check it when its transfered to the device before flashing Apr 20 17:36:39 beewoolie: after its been flash Apr 20 17:36:45 beewoolie: and possible on boot Apr 20 17:37:27 If that's all you need, we could do this more simply. Apr 20 17:38:02 I've been intending to support chaining of drivers so that it's easier to handle CF. Apr 20 17:38:24 We would use a driver to perform the checksumable portion. Apr 20 17:38:49 It would something like this. Apr 20 17:39:22 checksum package.nor:256k+2m Apr 20 17:39:39 The package 'driver' would unravel the header and do the right thing. Apr 20 17:39:52 The question I have is this: what will you do if the checksum fails? Apr 20 17:40:42 beewoolie: the result would be that the backup kernel is booted instead of the one that has the failed checksum Apr 20 17:41:04 And if that fails? Apr 20 17:41:35 Is there a screen on this thing? Apr 20 17:41:38 beewoolie: then provide apex bootprompt Apr 20 17:41:40 beewoolie: yea Apr 20 17:41:51 beewoolie: and keyboard Apr 20 17:42:09 The thing I wonder is how the user will know that anything has gone awry? Apr 20 17:42:39 beewoolie: if the primary kernel fails and the backup boots, then they will be provided with diagnostic information Apr 20 17:43:06 beewoolie: if the secondary kernel fails them we kick it off with splash screen Apr 20 17:43:10 beewoolie: with some info Apr 20 17:43:48 So, the command line would be something like Apr 20 17:44:11 if checksum_ok REGION then run_script_a else run_script_b Apr 20 17:44:46 yea something like that Apr 20 17:44:52 The first thing we need is a checksum wrapper on the kernel. Apr 20 17:44:59 We *could* use the uboot wrapper and detect it. Apr 20 17:45:26 beewoolie: yea i already have that semi working for some tests Apr 20 17:46:03 chkheader nor:256k+64 Apr 20 17:46:43 Well, I wasn thinking that it needs to specify the whole region. Apr 20 17:47:02 It doesn't really know the extent of the area it can read if it isn't told. Apr 20 17:47:28 So, the idea would be that the checkheader command would verify that the header is good and then read only the portion of the region where the image lies. Apr 20 17:47:29 So, Apr 20 17:47:46 apex> verifycrc32 nor:256k+2m Apr 20 17:47:59 It would only read the portion that it needs to read. Apr 20 17:48:14 BTW, there is an optimization that may be helpful. Apr 20 17:48:21 I don't yet do this, but I think it would help a lot. Apr 20 17:48:37 The MMU code disables caching on the flash for obvious reasons. Apr 20 17:49:10 However, we *could* cache reads using a different region of addresses. Apr 20 17:50:21 hmm Apr 20 17:50:54 It would require a little bit of shenanigans, but it ought to be reasonable easy to get right. Apr 20 17:51:13 The verify step should be easy enough. Apr 20 17:51:22 The harder part is making sense of the conditional logic. Apr 20 17:51:30 the uboot header is only 64 bytes, could you not just do> verifycrc32 nor:256k Apr 20 17:51:38 assume it has 64 byte header Apr 20 17:51:43 and get the file size from there Apr 20 17:51:47 That's not the point. Apr 20 17:52:02 The verifycrc32 code needs to know the extent of the region in flash. Apr 20 17:52:15 Technically, it can only read the region that it's given. Apr 20 17:52:20 It could read the header, but no more. Apr 20 17:52:47 ahh Apr 20 17:52:48 Do you know where the kernel is in flash? Apr 20 17:52:50 gotcha now Apr 20 17:52:57 yea Apr 20 17:53:18 The only reason to relieve this constraint would be if you wanted to append a couple of kernels or something like that. Apr 20 17:53:30 Since you need to know where the data is being written, you can set the extents properly. Apr 20 17:53:36 warning Apr 20 17:53:39 short paste Apr 20 17:53:44 k Apr 20 17:53:44 KiloBytes Start Address Apr 20 17:53:44 bootloader 256 0 Apr 20 17:53:44 sec kernel 768 256 Apr 20 17:53:44 sec ramdisk 1024 1024 Apr 20 17:53:44 pri kernel 768 2048 Apr 20 17:53:45 pri ramdisk 3072 2816 Apr 20 17:53:47 jffs2 10496 5888 Apr 20 17:53:49 total 16384 Apr 20 17:53:54 Nice. Apr 20 17:54:21 Does the kernel fit in 768k? Apr 20 17:54:26 yea Apr 20 17:54:41 actually both are right now at only about 590k Apr 20 17:54:43 I didn't think it was still possible. Apr 20 17:54:53 Yeah, this should work fine. Apr 20 17:55:09 Let me thing. Apr 20 17:55:14 s/g/k/ Apr 20 17:55:14 beewoolie meant: Let me think. Apr 20 17:55:46 Does the uboot header have a magic number in it? Apr 20 17:55:46 beewoolie: right now i have it where when apex boots, it checks the keyboard buffer to see if any keys are pressed, if its the space bar(to change later) then it boots to the secondary kernel Apr 20 17:56:01 Fancy Apr 20 17:56:42 beewoolie: the secondary kernel/ramdisk has nice little gui for updating the primary kernel and ramdisk via several methods Apr 20 17:56:43 One way to handle this is simply to augment the copy command to check the crc. Apr 20 17:57:01 That solves some of the problems, but it doesn't make your life easy when you want to verify after flashing. Apr 20 17:57:24 Are you using Linux to flash new kernels? Apr 20 17:57:39 beewoolie: yea that will be the primary method Apr 20 17:58:01 beewoolie: secondary from apex Apr 20 17:58:41 If you are using apex, you can check the crc with a command. Apr 20 17:58:55 The point is this, do we need to be able to branch on a failed flash in apex? Apr 20 17:59:19 If not, we can simply add a /c switch to the copy command and then allow for branching on a failed copy. Apr 20 17:59:52 beewoolie: that would be acceptable Apr 20 18:00:30 OK. So this is at least one commands, veryifycrc, and a new switch being added to copy. Apr 20 18:00:33 beewoolie: that would fite well Apr 20 18:00:40 Actually, that's probably the most efficient as wel. Apr 20 18:00:53 It's better to verify the CRC as we copy instead of forcing two reads of the data. Apr 20 18:01:01 beewoolie: yep Apr 20 18:01:40 Does uboot's header have a magic number? Apr 20 18:01:41 beewoolie: so the question is, how shall get the crc? Apr 20 18:01:48 beewoolie: yea Apr 20 18:01:53 beewoolie: let me check Apr 20 18:02:02 If it does, we can support the uboot header at least. Apr 20 18:02:25 We can also add support for another kind of header if we need scripting or other fancyness. Apr 20 18:03:13 #define IH_MAGIC 0x27051956 /* Image Magic Number */ Apr 20 18:03:13 #define IH_NMLEN 32 /* Image Name Length */ Apr 20 18:03:26 OK. Apr 20 18:03:32 So it's possible to detect this. Apr 20 18:03:44 yea Apr 20 18:03:51 Heck, we could even use the load address and other bits if we wanted to. Apr 20 18:04:02 it doesn't matter for the kernel since it relocates automatically. Apr 20 18:04:13 which is why I found his header so annoying. Apr 20 18:05:05 The only other bit is that I need to copy his CRC code if it is different from the code I'm already using. Apr 20 18:05:37 beewoolie: i've already been testing Apr 20 18:05:44 Is is the same? Apr 20 18:05:44 beewoolie: they seem to be compatible Apr 20 18:05:48 Excellent. Apr 20 18:05:52 beewoolie: slight variation Apr 20 18:05:57 Really? Apr 20 18:06:02 What's the difference? Apr 20 18:06:05 beewoolie: mainly x86isms Apr 20 18:06:20 I don't know what you mean? Apr 20 18:06:35 beewoolie: just from what i read in the comments Apr 20 18:06:36 either the checksums are the same or they're not. Apr 20 18:06:54 beewoolie: they are the same, i meant the code on calculating it was coded more for x86 Apr 20 18:06:59 Oh. Apr 20 18:07:03 I coded for size. Apr 20 18:07:18 right Apr 20 18:07:51 There are two versions of the code in the source. Apr 20 18:08:05 I could enable the faster one when not in CONFIG_SMALL mode. Apr 20 18:08:11 beewoolie: yea i noticed Apr 20 18:08:46 beewoolie: i'll probably be using your crc32 for a command line to check the crc stuff Apr 20 18:10:20 I think that there is a command line implementation. cksfv. Apr 20 18:10:38 But that doesn't handle the header. Apr 20 18:10:49 * prpplague googles Apr 20 18:16:05 beewoolie: think i'll stick with a bastard version of mkimage since it handles the header already Apr 20 18:18:14 beewoolie: so Apr 20 18:18:30 k. Apr 20 18:18:32 beewoolie: we are talking about adding the magic number support to the copy command as well? Apr 20 18:19:04 Well, the idea is this: copy command takes an argument, say -c, that looks for a header and checks the checksum. Apr 20 18:19:14 If there is no header or the checksum fails, it returns an error. Apr 20 18:19:25 There will be a verify command as well. Apr 20 18:20:19 beewoolie: so if you use the -c option it will copy the exact size as well? Apr 20 18:20:21 Why is your mkimage hacked? Apr 20 18:20:28 ACK. Apr 20 18:20:40 The idea is that once it knows there is a size, it does the right thing. Apr 20 18:20:46 gotcha Apr 20 18:21:14 It can also check that the length of the data is within the region passed. Apr 20 18:21:33 beewoolie: mainly hacked to just provide a return value for the results Apr 20 18:21:51 OK. But the standard version in uboot is OK as well. Apr 20 18:22:17 beewoolie: right, but i need to intergrate it into my gui stuff Apr 20 18:22:39 NP Apr 20 18:22:47 I just want to know what I can test with. Apr 20 18:22:51 beewoolie: you know luserland stufff Apr 20 18:22:59 -) Apr 20 18:23:02 I do lots of it. Apr 20 18:23:11 I just started working for the UW. Apr 20 18:23:18 beewoolie: the core functions won't be modified just the output Apr 20 18:23:18 It's all SQL JAVA and Perl. Apr 20 18:23:27 beewoolie: UW? Apr 20 18:23:33 Univ Washington. Apr 20 18:23:36 ahh Apr 20 18:23:49 I've brushed off those SQL skills and I'm doing MAD crazy queries. Apr 20 18:25:55 hehe Apr 20 18:26:33 beewoolie: so essential the copy function would either provide a success or fail condition Apr 20 18:26:43 Yeah. Apr 20 18:26:47 beewoolie: the fail condition will work like doing a ctrl-c in the wait command? Apr 20 18:26:53 APEX has piping for this, but there isn't much you can do with it. Apr 20 18:26:54 beewoolie: i.e. stopping the script Apr 20 18:27:09 Well, we could test for the result as well. Apr 20 18:27:18 I'm not sure how to make sense of that. Apr 20 18:27:21 ...yet. Apr 20 18:27:28 for the test? Apr 20 18:28:20 beewoolie: do something like the c syntax: result ? a : b Apr 20 18:28:40 That gets into associativity and the like. Apr 20 18:28:46 I'd like something more tractable. Apr 20 18:30:56 the problem is that only lets us do one thing. Apr 20 18:31:20 What might work better is this Apr 20 18:31:51 copy /c ... ; if $failed call $startup_failsafe Apr 20 18:32:02 This way, you can chain to a sequence of events. Apr 20 18:32:29 Or, simpler yet would be Apr 20 18:32:50 copy /c ... ; onfail call $startup_failsafe Apr 20 18:33:34 The success path would continue with the rest of the line. Apr 20 18:34:33 beewoolie: hmmm Apr 20 18:35:11 Actually, I have new syntax for this that should work Apr 20 18:35:18 onfail \$startup_failsafe Apr 20 18:35:44 The escaping allows the variable reference into the environment Apr 20 18:35:54 go Apr 20 18:35:56 gotcha Apr 20 18:36:01 does that already work? Apr 20 18:36:07 I'll have to check. Apr 20 18:36:39 I know that I started on it so that I could save a copy from an nfs server into the environment without requiring it to be known when the command was saved. Apr 20 18:36:52 doesn't look like it works with 1.3.18 Apr 20 18:36:56 OK. Apr 20 18:36:59 haven't had time to upgrade Apr 20 18:37:01 It may not be checked in. Apr 20 18:37:25 I need to get back to another project right now. Apr 20 18:37:34 beewoolie: gotcha Apr 20 18:37:39 I cannot promise when I can look at this. Apr 20 18:37:45 It may be tomorrow and it may be next week. Apr 20 18:37:45 beewoolie: np, i'll go ahead and start hacking away Apr 20 18:37:49 This job thing gets in the way. Apr 20 18:37:57 beewoolie: hehe Apr 20 19:28:08 <[g2]> beewoolie hey ! Apr 20 19:30:37 [g2], hey man Apr 20 19:31:28 amusing bit: the UW uses a lot of the aruba gear. They've got a very nice solution for roaming wireless Apr 20 19:34:57 <[g2]> beewoolie cool Apr 20 19:35:23 <[g2]> maybe they'll want some lofts for high-performance roaming and multiple radios :) Apr 20 19:35:52 :-) Apr 20 19:36:11 They're using x86 boxes for data collection because it was easier to get them running. Apr 20 19:36:22 <[g2]> beewoolie another amusing bit, the guys are really rock'n on the openezx (linux 2.6.16+ on cell phones) Apr 20 19:36:26 The fellow who did that work has an unopened slug on his desk. Apr 20 19:36:41 <[g2]> beewoolie my box will do line rate capture Apr 20 19:36:45 aruba folks? Apr 20 19:36:59 <[g2]> no, Harold Apr 20 19:37:04 <[g2]> the netfilter guys Apr 20 19:37:10 Interesting. Apr 20 19:37:25 <[g2]> what the _really_ need right now is a bootloader replacment on the pxa27x Apr 20 19:37:31 <[g2]> and some JTAG of course Apr 20 19:37:33 -) Apr 20 19:37:35 :-) Apr 20 19:37:50 <[g2]> so one could dual-boot the phone Apr 20 19:38:14 I was just chatting with prplague about dual boot stuff. Apr 20 19:38:21 he needs a backup kernel in case one fails. Apr 20 19:38:37 <[g2]> I scrolled throught the log Apr 20 19:38:55 <[g2]> the real question is determining failure Apr 20 19:39:10 He's just using a checksum on the file. Nothing more complex. Apr 20 19:39:35 <[g2]> well that's not really a backup kernel Apr 20 19:39:41 <[g2]> that's just a media check Apr 20 19:39:54 Well, it sort of is in the event that a flash fails. Apr 20 19:40:05 Also, he can check for input while te system boots. Apr 20 19:40:23 <[g2]> I'd think that a good programming algorithm would check that during the program :) Apr 20 19:40:57 That may not detect a flash failure. Apr 20 19:41:06 <[g2]> verifying on boot is a good idea Apr 20 19:41:13 He'll do both. Apr 20 19:41:17 <[g2]> especially if it's optional Apr 20 19:41:29 Also, he s programming from Linux, so it's easy to check the result. Apr 20 19:41:57 <[g2]> do you have IDE support in APEX ? Apr 20 19:42:08 Only from the perspective of IDE> Apr 20 19:42:12 I mean CF. Apr 20 19:42:19 It is IDE, though. Apr 20 19:42:39 <[g2]> we're running on the D-LIink DSM-G600 Apr 20 19:42:51 <[g2]> it's got a real IDE controller Apr 20 19:42:55 I just don't do all of the things I'd have to do for a bonafide IDE controller. Apr 20 19:43:07 It should be close to what I've gt. Apr 20 19:43:10 <[g2]> it's a bootloader Apr 20 19:43:25 What is a boot loader? Apr 20 19:43:25 <[g2]> it just need to be able to pull out a kernel and jump to it Apr 20 19:43:32 <[g2]> APEX is a bootloader Apr 20 19:43:35 Right. Apr 20 19:43:48 That should all be possible. Apr 20 19:43:54 It's got fat and ext2. Apr 20 19:44:11 <[g2]> right so it's just a little programming to the IDE controller Apr 20 19:44:28 I'd guess that the CF code is really close if not already complete for that. Apr 20 19:44:47 <[g2]> not Apr 20 19:44:59 Why not? Apr 20 19:45:08 It's got memory mapped IO support. Apr 20 19:45:19 <[g2]> I'd think PIO mode would work fine Apr 20 19:45:35 <[g2]> I was going to say "not a full IDE controller" Apr 20 19:45:40 <[g2]> sorry for the pause there Apr 20 19:45:56 The only things that it doesn't handle is multiple targets on the same controller. Apr 20 19:46:09 <[g2]> only one disk Apr 20 19:46:21 <[g2]> physically there's just one connector Apr 20 19:46:24 Also, there may be some differences in the command handling for a bonafide IDE controller. I only looked at the CF spec when I wrote the code. Apr 20 19:46:25 <[g2]> and one controller Apr 20 19:46:34 Master/slave. Apr 20 19:46:42 It should be able to handle two targets. Apr 20 19:46:43 <[g2]> one master only Apr 20 19:47:08 <[g2]> I'll have to check with dwery after he gets back from holdiay Apr 20 19:47:40 <[g2]> so is the wireless roaming open source ? Apr 20 19:47:50 I don't know anything else about it. Apr 20 19:47:55 I suspect it's aruba's IP. Apr 20 19:48:14 <[g2]> funny small world :) Apr 20 19:48:52 <[g2]> right now I'm about to attempt coordinating a regression suite for the madwifi-ng drivers Apr 20 19:49:07 <[g2]> automated regression testings Apr 20 19:49:10 The U has a very slick system for allowing authorized users to access the internet from campus using wireless. Apr 20 19:49:21 Sounds useful. Apr 20 19:49:35 <[g2]> "Trust, but verify" :) Apr 20 19:49:52 This system uses NULL routing and DNS tricks to block unauthorized users. Apr 20 19:50:09 Once a user authenticates, they can access the internet. Apr 20 19:50:28 There is no trust at all. Apr 20 19:50:38 Users can access the wireless network without authenticating. Apr 20 19:50:46 It's just the uplink that is guarded. Apr 20 19:51:03 <[g2]> well after they authenticate you could probably spoof the wireless mac and IP and "bob's your uncle" Apr 20 19:51:21 That doesn't help with getting access. Apr 20 19:51:33 If a user has authenticated, they are free to get access to the internet. Apr 20 19:51:40 Without it, they cannot. Apr 20 19:51:57 <[g2]> I'm talking about a non-authenticated user acting as one already authenticated Apr 20 19:52:03 Someone could spoof MAC and IP, but that would cause a lot of chaos for the valid user. Apr 20 19:52:28 It times out and drops the route. Apr 20 19:52:53 Certainly, it is possible, but not without using someone else's mac and IP. Apr 20 19:53:10 <[g2]> or one could simply "man-in-the-middle" Apr 20 19:53:22 In other words, they could only do this for a short time before the link changed. Apr 20 19:53:32 <[g2]> it depends on how the authentication is done Apr 20 19:53:34 Man in the middle is really an issue for the authenticator and I don't know about that. Apr 20 19:53:35 <[g2]> phone Apr 20 19:53:39 k Apr 20 19:54:36 I think they have their own CA certificate, so the man in the middle isn't really an issue once the users get a copy of the cert. Apr 21 00:31:13 beewoolie, hi there guy Apr 21 01:50:15 ka6sox-office, he Apr 21 01:50:20 I've been elsewhere Apr 21 01:51:15 ya...me too..been out of towne more than in! Apr 21 01:51:53 I got myself a new job. Even though it's only three days a week, I'm bushed. Apr 21 01:52:02 I'll get used to it, I know. Apr 21 01:52:22 wow..thats a change Apr 21 01:52:28 (hopefully for the better) Apr 21 01:52:29 You know it. Apr 21 01:52:37 Me too. Apr 21 01:52:42 The benefits are outstanding. Apr 21 01:52:59 It had never occured to me to get disability insurance. Apr 21 01:53:00 thats worth the price of admission Apr 21 01:53:06 I'm lucky I didn't need it. Apr 21 01:53:14 I have it as I"m self-employed Apr 21 01:53:20 Right! Apr 21 01:53:25 No one even suggested it to me. Apr 21 01:53:31 doh! Apr 21 01:53:35 It just wasn't something I had ever considered. Apr 21 01:53:56 I mean, I worried about what would happen if I couldn't work. I just didn't think there was anything I could do about it. Apr 21 01:54:24 The new employer bought me a machine. I've got a shiny new ThinkPad T60 sitting here. Apr 21 01:54:44 It's about as fast as the Athlon64 I've been using as a server. Apr 21 01:54:51 And, it's got two cores. Apr 21 01:55:38 I've got to go back to the driver hacking... Apr 21 01:56:28 aha...enjoy! Apr 21 01:58:53 trying to nfsroot my slug Apr 21 01:59:01 and hopefully I didnt' muck it up too bad **** ENDING LOGGING AT Fri Apr 21 09:59:57 2006