- 3/9/01
- Recieven my WebPlayer. Works fine. Already bought a 40-44 IDE adapter, a 12" WebPlayer cable, and had a Fujitsu MHK2060AT hard disk left over from upgrading my Creative Nomad Jukebox.
- 3/10-11/01
- Messing around with the QNX image. Looks like fun. Maybe I'll just leave this image here and use this thing as-is.
- Managed to hose up the original QNX setup on the DoC. Note to others: Don't click "Revert to factory settings"! Looks like I'll be upgrading it after all...
- Grabbed the Win98 DoC image from i-Hacked. Created a 1GB DOS partition on my hard disk, formatted it, and sys-ed it with Win98/DOS. Copied over all sorts of things to the disk.
- Attached the hard disk to the WP. I just ran the IDE cable out the right side (there's even a hole in the shield!) and hung the drive off it. This lets me keep the WP closed while I'm working on it. Entered the BIOS (hit F2 when it's booting) using the password ("schwasck"). Had to enable the primary IDE controller there and reboot. Then entered the BIOS again and made sure it detected my disk (it did) and set it to treat it like a Win95/DOS disk for large disk access. This was necessary to get it to boot. Also changed the settings so it shows me the boot process (disabled silent boot).
- Booted into DOS, flashed the DOC, removed the HD, booted from the DOC. Cool. However, power management is messed up now: The only way to shut the thing off is to pull the plug! The front power button doesn't seem to do anything anymore... Dialled up to my ISP and downloaded the WP drivers. Looks good!
- 3/14/01
- Bought a D-Link DSB-650 USB Ethernet adapter. It was only $29 at Circuit City (I was in Detroit that day, so bought it at the corner of Ford and Mercury!) and is supposed to be well-supported.
- 3/17/01
- Ethernet works under Win98. Got it running on my home LAN (with Linux laptop doing NAT and DHCP). No problems at all!
- 3/18/01
- Problems. Somehow it won't boot the DOC anymore, and when I tried to boot from the hard disk it wouldn't work, either. Looks like my staticky plastic hacking chair (from Ikea) strikes again. Maybe sometime I'll replace it...
- Re-did the disk on my desktop with Win98 CD CAB files. Installed Win98 on the WP, but am having all sorts of trouble booting. Yuck.
- Tried WinMe. Works fine! Installed (in about 5 hours...) and booting like a champ. USB Ethernet works. Haven't tried sound. Power button still useless, but that's what power cords are for!
- 3/20/01
- Sick of messing with Windows. Time to get a real OS on this little thing! My plan is to use Transmeta's newly-announced Midori distribution to make this thing useful. I'd like to make a general DOC image of Midori to share with other WP owners.
- Downloaded Midori and started work. Looks ... odd. Lots of configuration can be done using a web browser, including kernel/distribution config. But the config is ugly. The kernel looks good, though, and should be workable. I'll use a Debian install on my WP's hard disk as a development platform and test the DOC image all internally. Actually, the WP isn't my slowest PC in use (that would be my P-100 laptop NAT server) and has more disk space than anything else except my Jukebox, so it's not a bad dev environment...
- BTW, I did notice that I can kill the USB Ethernet under WinMe when transferring large files. I was copying the kernel source over to the WP from my laptop when it just stopped responding. I bet it's CPU-load dependant... Hopefully Linux doesn't have this problem.
- 3/21/01
- Created a group on Sourceforge to support/distribute Linux DOC image. Announced it on Yahoo and i-Appliance BBS.
- 3/22/01
- Got the WebPlayer booting Debian Potato (2.2 r2) off a Fujitsu 6GB laptop drive. I installed the distribution on a desktop with a CD-ROM drive and then transplanted the disk into the WebPlayer. I'm actually successfully dual-booting with WinMe using LILO, since Me supports my D-Link DSB650 and Linux doesn't (yet).
- Got X working. Yes, the VGA text mode is messed up. It's really tough to use it for much of anything! Happily, XFree86 v3.3 includes support for the MediaGX graphics in Debian's xserver-svga module. I haven't tried anything other than 8bpp yet because supposedly that's all XF86 supports with the MediaGX. I used XF86Setup to get a basic config working: PS/2 mouse, high-res monitor, auto-probe SVGA chipset, 1024k video RAM, 800x600 and 8bpp. I'm not sure about the video RAM, but 1024 works... You have to use some ungodly high res monitor setting (like 1280x1024) to get the clocks for the LCD. Hopefully we'll soon have a good, tuned XF86Config file to share.
- Compiled Linux 2.4.2 kernel on the WebPlayer. Took a LONG time with this slow disk and CPU. Happily, this kernel (allegedly) supports the MediaGX IDE and USB controllers and the M-Systems DoC right out of the box! We'll see how well over the next few days. The D-Link (Kawasaki) USB ethernet DID come up when I booted the new kernel, but I haven't gotten a chance to test it yet. I used the 5x86 optomizations, assuming that's appropriate for this CPU.
- Compiled the M-Systems DoC driver, too. We'll see how it goes. Also compiled the M-Systems version of lilo. Beware that it needs the bin86 package (16-bit assembler) to compile... GREAT documentation in this package! Thanks, M-Systems!
- Still no luck with power management. I'm using the power cord as a switch, which is not really optimal... Hopefully Linux will support enough ACPI to get it to power off.
- Found out more about the DSB-650 USB Ethernet adapter. It's the 10Mbit one based on the Kawasaki LSI LK5KUSB100 controller, not the 10/100Mbit one with the ADMTek Pegasus. More info and a Linux driver is here. I could have sworn that Linux 2.4.2 detected it, though. I'll check it out tonight...
- 3/24/01
- Some good news, some bad...
- Good news first: It's possible to work around that nasty text-mode problem
with the MediaGX graphics! Just use Linux's VESA framebuffer for your console
and you can get clear, stable, reliable text consoles. Compile a recent
kernel with the VESA framebuffer and pass "vga=303" to the kernel on boot.
- Other good news: I've got XFree86 3.3 working great. I've uploaded my
working XF86Config file here if you want to just use
it as-is. BTW, the MediaGX allocates 3MB of main memory for video use, FAIK.
- Next, the IDE support for the 5530/MediaGX works great, even in DMA mode.
I was having some troubles with my dialup hanging when heavy HD usage happened,
but enabling Unmask with hdparm fixed it. And setting DMA on on the disk works
too, as long as your drive supports it.
- Got the special M-Systems doc-lilo program compiled and working. It
eliminates the double double lilo lilo problem the standard lilo has. The
problem was that lilo would, for some reason, ask you TWICE what/how to boot.
Well, the m-sys one eliminates this.
- I'm using Kernel 2.4.2, and it has M-Systems DOC dnd NFTL drivers built
in. They recognize the DOC in a reasonable-looking way (seeing three chips
and 48MB) but I can't get the NFTL driver to see the (Win98 imaged) DOC
filesystem. Maybe the bundeled one doesn't work after all, I don't know.
I'll keep trying...
- APM is sort of working, too. Linux still won't power down the system,
but suspend works fine! This is great news since it means the front panel
button (which is suspend only, apparently) works now! However, even though
this system DOES support ACPI in some ways (TBD), Linux's ACPI driver doesn't
recognize it.
- Still no dice with the D-Link DSB-650 USB Ethernet. The pegasus driver
has this thing's string in it, but I'm almost certain that it's not a pegasus
at all but rather a Kawasaki. The Kaweth driver doesn't work with it at all,
and doesn't have its string. Using the pegasus driver, the Link light comes
on and I get an entry in ifconfig for eth0, but I can't up the interface or
do anything with it. Maybe I'll return it and get a DSB-650tx which is
definitely a Pegasus and supposedly works.
- No luck with sound, either. The soundblaster driver says it supports
MediaGX, and the settings look like a SB clone. But /dev/sndstat says no such
device with the modules loaded, and the driver doesn't seem to really see
the hardware...
- Note to self: ppp_deflate and bsd_compress modules continue to kill my
ppp sessions on this system, just like on every other Linux box I've ever
tried it on. They hang after 40-50k of data... But just not using those
drivers has allowed me to download 15MB this evening without a hickup at
4KB per second. Not bad for an analog modem!
- Other tidbits: Though this chip should have MTRRs, Linux doesn't see them
so I removed them from the config. Same for ACPI. I'm still not sure what
the best target for compiling is, so I'm using i586. It's got MMX, so maybe
the Pentium MMX would be best. But I'm not sure if it really makes any
difference...
- 3/27/01
- Got a tip in email that the MediaGX sound is supported in the new OSS 3.9.4f
package natively, according to Opensound.
Unfortunately, it's commercial ($20)
- This got me thinking of another look on google and what do I find? Why, specific Config excerpt to
make the MediaGX sound work under Linux. I tried this already, but not in the config file. In fact,
now that I think of it, it was the MPU401 that was reporting an error, not the sb driver! I'll give it
another shot...
#
# Sound
#
CONFIG_SOUND=y
CONFIG_SOUND_OSS=y
CONFIG_SOUND_SB=y
CONFIG_SB_BASE=220
CONFIG_SB_IRQ=5
CONFIG_SB_DMA=1
CONFIG_SB_DMA2=5
CONFIG_SB_MPU_BASE=0
CONFIG_SB_MPU_IRQ=-1
- Also, my tipster tells me that i486 is the best compile target for the MediaGX/geode. He says i586 instruction
support on this chipset is marginal and that compiling with i486 should in fact speed overall system performance. However, this will not allow MMX support (if any). I'll give it a shot. I'm currently seeing about 66 BogoMIPS,
FWIW. Alan Cox recommended a 386 or 486 kernel for the MediaGX as well.
- Another problem I found in my search is that the MediaGX has faulty TSC hardware. So they recommend setting
X86_FEATURE_TSC to disabled in the kernel config and compiling for i486.
- Another useful page tells us more about using Linux on the MediaGX. See the Audio
section of this page especially! Also check out Cyrix Tools for Linux. You
can find the set6x86 utility on Sunsite. Other interesting files there
include F6x86 and Cyrix. There might be some interesting source to be found in
NeoLinux since it supports a MediaGX/Geode internet appliance with an M-Systems
Disk-On-Chip!
- 4/2/01
- I finaly got sick of the D-Link DSB-650 so I returned it to Circuit City.
Now, I've never had very good luck with them, but this time, they did OK. They
took it back with no questions and didn't even charge me the stated 15%
restocking fee. I'll probably get a DSB-650TX instead...
- The sound still doesn't work. Silly me, I didn't hear that /dev/sndstat
was deprecated in 2.4... But I'm still getting the error on loading the
UART401 module. Now that 2.4.3 is out, I'll give it another shot. I'll
contact the driver author to get further.
- I also can't get the built-in M-Systems DOC driver to work. I tried
formatting the DOC under DOS with DFORMAT, as the docs said, but no luck.
FYI, the DOC is at 0xD600, not the default 0xD000. Perhaps the built-in
modules don't work? I couldn't get the standalone drivers from m-sys to
compile under the new kernel, either.
- 4/6/01
- It's been a while, but it's been worthwhile.
- First, I mounted my hard disk inside the WebPlayer. I decided to put it
on the bottom, under the motherboard. I made a paper template by tracing the
bottom of my disk, taped it to the bottom of the case, and drilled. No sweat.
I had to remove a few of the motherboard supports, and bend some of the
heatshield bits, but it works fine. I ran the cable up through the gap next to
the modem, and folded it nicely.
- But the big news is this: I got the DOC working! This means that the
really big problem holding up the initial release of Virgin Linux is removed!
I got the built-in drivers from the 2.4.2 kernel (actually, 2.4.3, but they
didn't change the MTD drivers) working. The problem? Duh, the DoC starts at
0xd6000, not 0xd600! STOOPID ME! I compiled in the standard MTD stuff:
#
# Memory Technology Devices (MTD)
#
CONFIG_MTD=y
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=1
CONFIG_MTD_DOC2000=y
CONFIG_MTD_DOCPROBE=y
CONFIG_MTD_DOCPROBE_ADDRESS=D6000
CONFIG_MTD_BLOCK=y
CONFIG_NFTL=y
CONFIG_NFTL_RW=y
- So now I can get down to work on getting a bootable Linux DoC image for
everyone!
- By the way, here is the correct /dev file config for the MSYS MTD in the
kernel:
brw------- 1 root root 93, 0 Mar 30 08:43 fla
brw------- 1 root root 93, 1 Mar 30 08:43 fla1
brw------- 1 root root 93, 2 Mar 30 08:43 fla2
brw------- 1 root root 93, 3 Mar 30 08:43 fla3
brw------- 1 root root 93, 4 Mar 30 08:43 fla4
- Sadly, Midor still won't compile. It relies on BASH 1, but I can't
find it anywhere. It's a bizarre, odd, and just plain strange config
process, involving Netscape and all. I still want to use it, but don't
know how long I'll wait for Transmeta to get their act together and release
a working version!
- A friend signed the NatSemi NDA, by the way, and he's interested in
providing binaries of their proprietary audio and graphics drivers for
us. However, he can't get them to compile and function with 2.4.3... So
maybe we'll have audio sooner or maybe later. As for the graphics, I'm quite
happy with the VESA framebuffer and SVGA X driver. Sure, a native (quick)
FB would be nice, as would 16bpp, but that's not critical.
- One odd thing: Is anyone else having random problems booting up? My
WP occasionally locks up on boot or when entering X. It seems to only do
it when it has been unplugged for a while...
- 4/8/01
- Woah! Check out this report on actually compiling Midori! Maybe I'll change my mind...
- 4/17/01
- Tax time (ouch) is gone, so I'm back to hacking. Problems lately include:
no replacement ethernet adapter purchased, still no working sound, still just
8bpp on X, problems with the DOC, still no power-down with APM.
- I hear tell from the Webplayer yahoo group that the 3Com 3C19250 is a
really good NIC. I'm still thinking of getting a DSB-650TX since they're
super cheap at the local Comp-USA, but I haven't gotten over there lately.
- On the sound front, a good pointer came from this post on the webplayer group.
Seems that the original WP had a Linux image and certain people have been
looking at how they put it together. This is quite valuable since it can
tell us how to get our own Linux working! I've got a friend who is buying
a couple more WPs direct from Boundless, and these will have the original
Linux image on them so I will soon have an image to look at myself. In the
mean time, if you've got one of these Linux-based WPs, please drop me a line!
- My DoC is working intermittently. I can't figure out the pattern.
Sometimes it works fine (Linux sees it, I can mount it, write and read, etc)
and other times it isn't detected. Again, maybe the original Linux DoC image
will help here.
- Another thing I'd like to get working is self-powerdown with APM or ACPI.
Right now, I just suspend it with the button or apm command, which works fine,
or reboot and suspend at the LILO prompt to really shut it down. But it would
be nice to have real suspend working. Any suggestions?
- 4/25/01
- Sound: I have been informed that the ALSA sound driver (at least 0.5.10b)
supports the WP sound with the SoundBlaster 16 module. You need to disable
ISA PnP with snd_isapnp=0 as a module parameter and probably also need to
specify the rest of the settings there, too. I'll give this a shot when I
have a chance to sit down with my WP again.
- A generic Linux DoC image is available here.
- Some more info came in from Frank de Lange, WP hacker extraordinaire! Most
of what follows is his words, edited by me.
- The X server used on the generic Linux image by IAN
is XFree86 3.3.3. It uses the SVGA server with the Cyrix driver compiled in.
3.3.6 has some nasty issues with the MediaGX, and 4.0.x does not support the
PCI versions of MediaGX yet, so I'd advise you to use 3.3.3.
- To access the DOC on the WebPlayer using Linux (on a harddrive), compile
a kernel with the following:
- MTD support
- M-Systems Disk-On-Chip 2000 and Millennium
- physical address of the DOC is d6000
- NFTL (NAND Flash Translation Layer) support
- If you want to boot from DOC with your new Linux kernel, you're better off
compiling the drivers into the kernel instead of using modules. You also want
to get a patched LILO to boot from the DOC. Patches for LILO can be had from
the MTD CVS tree, or I can send them if you want.
- Devfs is ideal for these devices since it does not require a writeable
root partition nor a slew of inodes to keep all those device files.
- Should you, through your experiments with the DOC, end up with a system
which does not want to boot anymore (BIOS probes the DOC before booting from
harddrive, a corrupted DOC can lead to an unbootable system), you can
temporarily disable the DOC during the BIOS probe by 'pulling up'
(electrically) to VCC (supply voltage) ping 22 of the DOC (Chip Enable). You
can achieve this by connecting pin 22 through a small resistor or an ammeter to
pin 32 of said device. These pins are accessible from the top of the
motherboard, look for the double row of pins to the right of the BIOS socket.
Should you need to use this trick, gimme a mail, and I'll explain more. This is
just so that you know there is a way out of these problems without needing an
external DOC programmer, or without paying someone to program it for you (with
the accompanying wait and hassle). After booting from harddrive, you can use
the DOS or Linux tools to revive/reprogram the DOC.
- Be VERY careful when you use the MTD drives to access the DOC. Especially
when you use the character mode driver to write to the DOC. This can lead to
corruption of the bad block tables on the DOC, which in turn leads to the M-Sys
tools rejecting the DOC. Should this happen, you can remove the bad blocks
table using the dformat.exe tool (it does not seem to be possible to remove it
using the character-mode or block-mode driver in Linux) and the /uselog:logfile
option. Just create an empty file, and use it as the logfile. This will wipe
all bad block ifo from the DOC, which probably DOES contain some bad or flaky
blocks somewhere, so it in effect makes the DOC less reliable. Only use it in
case of emergency...
- This ends Frank's comments...
- 4/27/00
- Some good news, some not. First the not.
- I tried
the generic Linux image on the DoC. It DID install and boot, but that's about all good I have to say about it. The console is corrupted on boot
(maybe because I have the "Virgin" logo turned off) and it takes forever. I
could not get to a login prompt anywhere, CTL-ALT-F1 didn't do the trick as
I had hoped. The load runs X plainly, and then greets with a login prompt and
ISP setup. I got wary when it was clear that it couldn't keep up with my
typing speed. My darkest fears are confirmed: Java. In short, the supposed
Linux image is, in reality, just a vehicle for a deathly slow Java-based web
browser "environment". There's apparently nothing more to it than this nasty
web browser. It takes forever to boot, and offers no way to shut down. And
it's so slow that it can't keep up with the keystrokes coming in from the
keyboard.
- To make matters worse, I couldn't get the thing to mount under my normal
Linux boot! The Linux DOC2000/MTD driver DOES detect the DoC regularly now, and
sees a single Linux type 83 partition on the DoC, but I couldn't get it mounted
any way I tried. Has anyone else tried this? I had hoped to learn from their
successfully-booting linux image...
- Now the better news. Sound is working! That's right, I got the standard
Linux sb.o module to work! All I had to do is use the "isapnp=0" and "mpu_io=0"
arguments to the module on load to disable ISA PnP and the MPU401. Then I used
aumix to mute the mic and line, and listened happily to a Pop Will Eat Itself
mp3 on the underwhelming built-in speakers. One could use This silly init script to load sound
drivers, play some WAV files, and correctly unload sb before APM suspend and
reload it before resume. No matter what you do, you probably won't want to use
the built-in speakers...
- Following Frank's advice, I'm working on getting used to devfs and figuring
out a good devfsd configuration for the WP and it's various hardware. I still
intend to boot from the DoC and mount a read-only root filesystem if possible.
Due to the lack of an acceptable power switch, and the apparent flakiness of the
DoC, I think this is an appropriate method to ensure that disk corruption
doesn't interfere with the usefulness of Virgin Linux.
- On other topics, there's still no good news from Midori. The beta release
is quite beta, with some showstopper bugs in it that no one has bothered to fix.
Is anyone home? It's been more than a month with no official patches... At
least there are a few helpful people on the mailing list. Also, I now have two
collaborators on this project. Anyone else want to help?
- 4/30/01
- Thank goodness for helpers! Dave Griffith figured out the source of our DoC
problems: The timing on the MTD driver was too tight! We were both perplexed
that it seemed that we had to enable level-3 debugging to get the DoC to be seen
by the driver. But this poured out all sorts of junk on the screen at boot.
Well, these two things were not unrelated. Dave reports that he had to make one
timing function in the MTD driver 4 times longer to get reliable DoC access. I
haven't (yet) tried this, but it feels right. Here's a patch for Kernel 2.4.4.
- I myself spent long, frustrating hours on this last night. I just couldn't
get the DoC partition to mount! fdisk could see the DoC, and I could even dd
off the raw device, but mount kept complaining about it being the wrong
filesystem type.
- 5/1/01
- Today ought to be a holiday for Free Software believers and WebPlayer users
alike. The former should be self-evident, and the latter is because the DoC is
working! Just download our patch for Kernel 2.4.4
and rejoice! Seriously, I feel we've now progressed far enough to re-do our
milestones and declare some victory. See the main page
for more information.
- Just a quick journal note: The Geode GXLV in the WebPlayer does NOT have
MTRRs, an APIC, or AGP. FYI. AFAIK.
- 5/4/01
- Still plodding along. The MTD driver seems stable once patched. I put a
basic Debian filesystem on the DOC and booted from the HD, using the DoC as the
root, with great success. I'm still working on getting Midori working, but if
that fails, it'll be Debian.
- After trying unsuccessfully to get LILO working on the DoC, I decided to
give GNU GRUB a try
as a bootloader. The MTD folks seem to think it's best, ad offer more support
for it than LILO. I downloaded GRUB and patched it with the patch from the Linux MTD folks. I WAS able to
get a working GRUB Stage1 onto the DoC last night, but it got too late to do
much with it. Check back tomorrow...
- 5/8/01
- Good and bad things are happening. First, the bad. I managed to corrupt my
DoC with GRUB. I'm not sure why, but somehow it started refusing to boot! It
would get past the POST and just reboot without anything else happening. It
didn't even spin up the hard disk! I thnk the GRUB-based DoC firmware somehow
got corrupted.
- So I had to recover somehow. Frank posted about shorting some pins on the
motherboard to keep the BIOS from accessing the DoC. Not wanting to take apart
my WP, I found another way: Unplug the DoC chip before powering-on, and plug it
back in at the LILO or GRUB prompt. I'm not sure if this is kosher from an
electronics/static electricity/healthy DoC perspective, but it worked for me.
Just don't come crying to me if it kills your WP or DoC!
- Once I got the system booted, I re-flashed the DoC and it now works fine.
I'm still trying to get GRUB working, but noticed that the MTD patches for
version 0.5.95 don't actually seem to work. Stage 2 doesn't recognize the DoC
at all on boot, though Stage 1 is loading from it and it will boot the HD. I
looked closer and noticed that the DoC patches are not even being compiled in to
the GRUB executables! I'll work on it more soon.
- I also have a RedHat 6.2 image booting on my development system, so I'm
starting to compile Midori. Hopefully we can get that squared away soon,
too.
- I added a crontab to grab the latest GNU GRUB (0.5.97, sort of) from CVS and
put it here: grub-latest.tgz