|
|||
[ anders ] [ resume ] [ choppers ] [ projects ] [ netatalk ] [ route66 ] [ updates ] [ download ] [ pictures ] [ movies ] [ cvs ] [ list ] [ 1030n ] [ javascript ] [ webgallery ] [ mockMarket ] [ merits ] [ dailyBulletin ] [ words ] [ pictures ] [ movies ] [ contact ]
|
i decided to write about my experiences with the gct-allwell 1030n set top box because it is probably of intrest to more than just myself. i purchased the 1030n with a 266 mhz celeron, 32 megs of ram, 32 megs of disk-on-chip, an ir keyboard and an ir remote. honestly i really didn't know what i wanted, i just bought. the total bill was $514 including shipping. i worked with theresa ho at 1-626-968-1116
so how do you boot the thing if there isn't a hard drive? well, there are actually 2 options here. you could boot over the network, but this requires some sort of external dependancy that i didn't want to have, or you could boot from the solid state disk ( disk-on-chip ) which is what i decided to do. this requires a few tricks with drivers and a special lilo, but it all works out in the end. another option would have been to get a compact flash to ide converter and boot with that, but i hadn't thought about this when i purchased my system. when i got the system, i had no idea how i was going to get the disk-on-chip to be the primary boot device. did the bios have to support disk-on-chip? would it show up like a scsi drive or an ide? i got the system up and running by attaching an old windows 95 hard drive i had pilfered from another machine to the onboard ide chain. to my amazement, it booted right up and ran windows. looking through the documentation, i had found that all the m-systems ( company that makes the disk-on-chip ) utilities run in dos, so i had to get dos running at some point. the utilities stepped me through initializing the disk-on-chip and getting it to show up under windows. right off the bat, really simple.
now the trick was to try and get linux going on this thing. i pilfered a linux drive and booted the box with that. again, it worked with no special modifications. i had downloaded a pdf file and some drivers from the m-systems website and put them on that hard drive so i would have somthing to fool with. when the system came up, i took a look at what i had gotten from m-systems. there were a few kernel patches to get disk-on-chip ( doc ) drivers into the kernel. i created the doc devices in /dev/msys, patched up a 2.2.18 kernel, got the kernel compiled, installed it on the hard drive and rebooted. the system came up with doc support. i was ready to go. the only problem was that i had an ms-dos filesystem on
the doc and that just wouldn't do for linux, so i did a the next step was to try and get this thing to be the
primary boot device of the machine, so i started setting up a basic linux
filestructure on the doc. i didn't have any hope for a successfull boot
without a fleshed out filesystem, but i wanted to see how the disk on chip
would be the primary boot deivice. there is an alternate to
lilo called doc-lilo which is used to write the boot loader to the doc.
doc-lilo, like lilo, does 2 things. it installs the boot loader and points
to the raw block on the filesystem that contains the kernel so that during
boot, the loader can pass off to the apropriate kernel. the problem is, the
kernel exists on the flash device and i wanted to point to the lilo.conf
there instead of the hard drive that was the root filesystem just now. it
turns out that doc-lilo supports the -r flag so you can specify root
somewhere else. so i did a
after some time, i became a bit desperate. i had tried searching the net for this file, but to no avail. i again went back to the files i had downloaded from m-systems and searched for everything ending in exb. whala. there was doc123.exb. a far cry from doc42.exb, but i was crazed by this point. i ran the little dos app that installs this questionable piece of code, and rebooted. to my utter amazement, the doc was found as the primary boot device and it started to boot the kernel! after i had shown everyone within earshot, ( whose comments ranged from "that's cool!" to "yeah, and? ..." ) i started on the task of building a working linux filesystem for my new kernel. it must have taken over 100 reboots swapping back and forth between the hard drive and the doc, but with the use of ldd and strace, i finally got a working tree with all the essentials. now when i reboot the system, i get a useable linux machine within 5 seconds! what a feeling!
as soon as i had a working system with network access, i was able to take the system home and continue to build the filesystem. it was critical to have nfs support so i could mount my mp3s, so i set out to start building my final implimentation. i have a computer at the office with all my music on it which i intended to mount at home. ( i have a cable broadband connection at home which is more than fast enough to play 256kb/sec mp3 files from the net ) i only have one ip address at home, so i run a masquerading firewall on a linux box to distribute the internet connection. i plugged my set-top box in above my tv and got things up and running. but when i tried to mount my mp3 collection from work on my new set-top machine, i was getting "connection refused" errors. looking on the server side, my mp3 server was complaning that an insecure port was requesting a mount, so it was denying the connection. when my set-top machine was making requests, they were going through the masquerading firewall and being mapped to higher ports. there was nothing i could do about making the masquerading happen on secure ports ( < 1024 ) because this was a very early design decision of masquerading. as luck would have it, there is a flag in the linux implimentation of nfsd on the server side that causes the server to ignore the insecure nature of a high port and let the nfs mount go through anyway. ( just needed to add "insecure" to the options for the share in /etc/exports )
update: by popular demand, i have posted the dmesg and a tar of the root filesystem. (comes with the basics that you would expect, joe as an editor and mpg123 to play mp3 files) i call my little distribution "itty-linux". get it? get it?! itty... internet tty? no? ok, you had to be there.
... to be continued as i get perl installed and a database connection going ... |
||
![]() |