notes-7

Sat Dec 8 09:43:36 PST 2001

I’ve been trying to build the dreamcast kernel with ppp support, but so far, I’ve had very little luck…

make ARCH=sh CROSS_COMPILE=sh4-linux- menuconfig make ARCH=sh CROSS_COMPILE=sh4-linux- clean dep zImage

I’ve gotten the impression from some of the messages on the mailing list that I need to plug the CVS repository into a normal linux kernel source tree using some kind of magic treemerge command. Anyway, this is turning out to be substantially more difficult to do than I originally anticipated.

notes-6

Thu Dec 6 21:42:16 PST 2001

Several CDs later…

mount load -r -b 0x8c210000 /boot/zImage load -v -r -b 0x8c400000 /boot/initrd.gz exec -c "mem=16M init=/busybox /etc/profile"

It’s possible that the RedBoot/ECOS booter doesn’t like kernel sizes <1M for some reason. The new kernel I built the loader didn’t want to load it with load /boot/vmlinuz, claiming some kind of "backwards seek" error which seemed odd. But it seemed to like the zImage a lot better.

But even this doesn’t work correctly, as when I got it booting, the kernel had issues in that it couldn’t find any consoles to attach a root shell to after bringing up the kernel. It could be that that dist of the kernel is missing some of the drivers for the serial port and/or Maple bus.

I’m becoming increasingly inclined to give the NetBSD code a try since it’s a bit fresher. They don’t have a nice prepackaged system like I’ve found for the Linux people, but their group is a little more active and they even have Jason Thorpe working from time to time on it, and I know he’s pretty good. He worked for CS support at OSU when I was there once upon a time.

notes-5

Wed Dec 5 00:23:35 PST 2001

Well, with a bit of quick messing about in the early morning hours, I got the DC outputting VGA (you have to plug the connector in all the way) and also talking on the serial port. The DC is most certainly leaving a full console on the serial port, so now I need to go read up on pppd and getty to figure out how to set up both linux machines to talk pppd to each other and then NFS or Samba mount the servers drives on the DC. Should be interesting, but unfortunately, I’m not likely to have much time to work on it this week.

Wed Dec 5 23:23:32 PST 2001

OK, so I figure out that I need to edit /etc/inittab and run telinit Q to get init to reread the file to disable the login on the serial port. That’s not so bad at all. So then when I run pppd, it tells me that I need to do a mknod /dev/ppp c 108 0 which works fine. So I run pppd again, and it turns out that while they included pppd in the distribution, they didn’t bother to compile ppp support into the kernel, making the pppd binary completely useless.

Fortunately, I’ve already got a gcc cross compiler built (I think, it didn’t want to compile distributed.net’s client, but that’s another story.) So recompiling the kernel with ppp support isn’t too bad, but I will have to burn a new CD. But at this point, I’m thinking that it’s time to boot 4×4 Evolution and race trucks around on the DC and then get some sleep. Compiling a new kernel can wait till tommorow. The kernel compiles pretty quick on a 1GHz P3 :-)

notes-4

Tue Dec 4 08:25:34 PST 2001

Well, the WAN was down, but a 20min call to Speakeasy fixed that problem. It was the same issue as I had on 11/28 and it’s working just fine again. Unfortunately, they didn’t write a decent log the last time it was down so it was unclear how they fixed the problem. This time the support person promised to write a decent log on how she fixed it so it won’t take nearly as long if the problem comes back.

Also I got my coders cable for my dreamcast as well as the VGA box from Lik-Sang. I had to go down to the mail distribution center to get it for some reason (it sure looked like it would fit in my mailbox) but that wasn’t a big deal since we went out to lunch and Brian knew where it was.

The cable is rather obviously a partial hack. The voltage conversion chip and caps are on a small pcb board wrapped in plastic. No big deal really, I’m just happy to have it. The VGA adapter is great, it has not only VGA out and a 1/8 inch sterio jack, but also it has RCA jacks for audio out, composite out and a s-video out. Moreover, they included an s-video cable and a 3-set of RCA for composite video and left/right audio. Heck, the cables alone are nearly worth the $13 I paid for it.

Unfortunately, I probably won’t get to play with it tonight since I’ll be at Bible study most of the evening. It will probably take me a while to get them both talking PPP to each other correctly. I think that the DC linux distribution is set up to use the serial port as a console by default, so it’s pretty likely that I’ll need to burn a new CD with some changes to run PPP over the link instead.

notes-3

Mon Dec 3 20:28:07 PST 2001

I finally got my plan working through planwatch.org (yea!). It turns out that somehow my URL to pooh.asric.com was getting stored in the database incorrectly, anyway !jwdavidson! got it fixed and also corrected some issues with the way it was dealing with newlines as well.

So Sunday night I dug out a pile of X10 gear including the little firecracker RS-232 controller that I got a couple of years ago. I seem to be missing a number of the parts that I had, but I had enough to get what I need to get done. The linux drivers were a bit of an issue, but a quick trip over to sourceforge revealed that the original bottlerocket code was gone (site down) but they also had flipit, another command line utility which compiled easily enough.

Why use some X10? Christmas lights! Thanks to a couple of devices, the computer interface and a pair of lines in my crontab the lights come on shortly after dark and stay on until just before 11:00 at night. I’m a bit nervous about using X10 controlers for anything else. Considering that anyone with a $10 remote controler can control anything that you’ve put on X10, I’m disinclined to put anything important on it. Maybe I’m be overly paranoid, but allowing anybody in a passing car to turn on or off my bedroom lights seems like asking for trouble.

notes-2

Sun Dec 2 20:28:07 PST 2001

Well, waiting for my dreamcast coders cable to show up at this point. Yea, I could have built one using a MAX3232, but I didn’t exactly have any lying around since all my stuff is now old (5 volt logic, how quaint!). And I kinda wanted a VGA adapter as well since the DC linux framebuffer uses the overscan region on NTSC video, so I can’t see several columns on both the right and left, which isn’t so bad, but also missing is the bottom line, where all the typing takes place.

So, getting Linux running standalone wasn’t too hard thanks to a nice distribution combined with some boot disk guides from Marcus Comstat’s site which helped me burn the disk correctly:
http://www.m17n.org/linux-sh/dreamcast/
http://mc.pp.se/dc/ And once I figured out that the root filesystem wasn’t the GDROM drive (it is the boot/initrd.gz file) I had fairly good luck doing some basic activities and adding things to the disk.

I got reasonably far compiling the distributed.net client natively after setting up a ramdisk on the DC and symlinking the sources to the ramdisk with a pair of find commands since lndir isn’t on the distribution. But after several hours of trying to compile the ‘mips-linux’ distribution, it ran out of ram, and halted. Other configuration options for the client yielded errors much earlier in the configuration process.

Under "Plan B" I built a cross-compiler following the instructions on a website and then tried compiling it on my x86-linux box. But unfortunately, it hit some errors on the rc5 mips cruncher code. I’m currently attempting to contact the dnet coders to see if they have some idea what the error messages mean. It could be an issue with my cross-compiler, or it might be that I’m using gcc 3.0.1 and it’s being more picky than usual. There aren’t too many mips-linux owners out there anymore since I had to remove the ‘cpu=r3000’ string from the gcc compile options because gcc didn’t even recgonize it.

Once the DC/coders cable gets here, I’ll NFS mount the source across a PPP link and try natively compiling the source to see if it is a problem with the way that the cross-compiler is built.

So, you might be wondering why bother even trying this. The bottom line is that I’m curious as to the real-world performance of the platform. Because the platform is incredibly cheep ($30 used, $40 refurbished, $50 new) the price/performance for distributed apps might make this a viable platform. On the other hand, at only 200Mhz, and a single 5-stage pipeline, It is very likely that a bare bones 800Mhz-1GHz, which is available for $400 or so, could easily have 10x performance over the DC, making the DC a very poor choice.

The other major hurdle for the DC as a viable platform is the lack of either high speed or low cost networking. While the Broadband Adapter (10/100Base-TX ethernet, also called the BBA) exists, it costs $80-120 assuming that you can find a source. Clearly, this would negate the price/perf of the platform. The serial alternative isn’t bad, but deployed as a star network, the price for <4 serial ports on the server is likely to be quite prohibitive.

Doing something custom with the serial port might be feasible. For example, turining it into a unidirectional token ring with one agent acting as the router might be a viable low-cost low-speed solution. But doing so, might also put undue additional load on the CPUs since the serial port is directly connected to the SH4, and a store and forward mechanism would need to be used for moving data around the ring.

Yet another option might be to build some low-cost hardware to interface with the controler ports Maple-bus, a 2Mb/s bus. While the hardware would be fairly simple, it would represent a non-trival hardware and software investment to deploy on a per-port basis.

Of course one could leave them completely disconnected from any network using something like the work-over-email system used by distributed.net. As long as the work package description and the returned values are sufficiently small (128K), you could put the binaries onto CD-R, and provide the work orders on VMUs (the removeable memory units for DC). Unfortunately this would likely be a very manual task to physically move the VMUs around, and also cause the DCs to take up extra space due to the need for controllers to be attached to the machines.

On the plus side, the previous solution requires very little hardware, and most of the software exists. The bulk of the controler code for the Maple bus is in place, and the protocol for communicating with a VMU is very well documented. Also, a homebrew connector for programming a VMU from a PC is also available:
http://www.maushammer.com/vmu.html

Now the other possible usage model that I was thinking of for my DC was that of a media player, preferably both .mp3 audio files and .mp2 or .mp4 video files. Clearly there’s plenty of cpu power to decompress audio files, and while video might be a bit of a streach, it seems plausable, since people have gotten video running on StrongArm 204Mhz chips. But here again the issue of delivering data to the machine is a severe problem. Even with the serial port running at 114Kbs, it just isn’t enough to play the .mp3 audio files stored on my fileserver, which are all 128Kbs or higher.

As I mentioned before the BBA might be an option, but for the price of just the adapter, I can almost buy a Rio Receiver:
http://www.riohome.com/HomeAudio.htm So unless I can come up with a cheap BBA or figure out how to get my Linux server to run RS-232 a < 114Kbps, it seems to be a dead end again since I’ve got way too many .mp3s to fit on a single CD-R, or even a reasonable number of CD-Rs.

notes-1

A return I wrote was accepted into the Internet Oracle volumes. Yea!

Return-Path: oracle-request@cs.indiana.edu
Date: Thu, 11 May 2000 10:17:36 -0500 (EST)
Subject: Congratulations! (1159.3 2.9)

Congratulations! An Oracularity which you wrote the question or answer
for has been selected and published in an issue of the Internet
Oracularities, volume #1159. It received an average rating of 2.9
on a scale of 1 to 5, with votes from participating readers. The
distribution of votes was 3mza5, where each digit represents the number
of votes of value 1, of value 2, etc. Letters are used for digits
beyond 9. To participate in the voting yourself in the future, see the
instructions at the top of each digest.

Here’s the Oracularity:

1159-04 3mza5 2.9 —————————————————-
Selected-By: "Paul L. Kelly" <zymurge@mindspring.com>

The Internet Oracle has pondered your question deeply.
Your question was:

> Twice Born Oracle, pal of The Blue One and he who taught Ganesha
> how to write,
>
> What if I don’t want to be reincarnated?

And in response, thus spake the Oracle:

} Like you have a choice in the matter! Foolish supplicant! Reistance is
} futile, you will be reincarnated. Now you do have some options as to
} what you will be reincarnated as. Unfortunately your karma is so low,
} that you don’t really get to decide, we’ll just throw two six sided
} dice and consult the table "low or negative karmatic reincarnations"
} here in the book…
}
} 2 Worm. The kind that gets squished by young children playing
} in mud puddles.
}
} 3-4 You are reincarnated as an ashtray in a small midwestern town
} diner. Hope you aren’t allergic to smoke…
}
} 5-6 Pot of petunias. Location of pot may be suboptimal to long term
} viability. (roll again)
}
} 7-8 Sperm whale. Location of reincarnation may be suboptimal to long
} term viability. (roll again)
}
} 9-11 A Furby owned by a dyslexic child. A classic race against time
} to teach the child about ‘responsibility’, (don’t leave the toy
} Mommy got you out in the rain) before you come back to roll on
} this table again.
}
} 12 Human, but your only access to the net is through AOL over a
} 2400 baud modem. (might as well roll again and hope for the worm)
}
} You owe the Oracle a new set of dice