|[ Index ]|
Okay, so I got this MediaMVP thing. Don't like the standard software. I like the mvpmc quite well, but I don't like the way it boots. I have some simple Python software that does enough of BootP and TFTP to upload the firmware, but upon reboot it does strange things. So I intend to 'fix' that...
Don't have a dedicated linux box, so I grab CoLinux from the web. Install it with the standard 1GB debian image (20 MB to download). Just follow the instructions. This I get up and running with the following command:
G:\CoLinux\colinux-daemon.exe kernel=vmlinux eth0=tuntap cobd0=Debian-3.0r2.ext3-mit-backports.1gb root=/dev/cobd0 mem=192 -t ntI just enable Internet sharing for my LAN adapter, so that the linux box can connect to the net using my PC as NAT router (which goes to a ADSL modem which is also a NAT router...)
Along the way, I found out the hard way that 1GB was not enough to build
the cross compiler. So I put a 3GB disk image on my system, and mounted it
/home in my Colinux session. I also discovered that the cofs
driver lets colinux read and write the Windows disks without any problem (as
far as I can tell).
There are quite some packages that I'll need, i hope to list them all here. As root, get them by:
apt-get install make sed gcc-3.3 g++-3.3 bzip2 xutils automake libpng-dev xlibs xlibs-dev patch cvsThis is needed in addition to what's listed in the "Installing and using mvpmc" howto:
apt-get install autoconf libtool bison flex wget unzip libjpeg62-devsomehow, gcc did not install as
/usr/bin/gccso I just link it:
ln -s /usr/bin/gcc-3.3 /usr/bin/gcc ln -s /usr/bin/g++-3.3 /usr/bin/g++ ln -s /usr/bin/cpp-3.3 /usr/bin/cppAnd of course, a text editor and terminal would be nice too.
Another thing you probably want is Cygwin. That will provide you with an X server in addition to the 'regular' unix emulation stuff. The X server is quite handy to display the "host" version of the software on.
Got it all running! The key seems to be that you have to get the packages first, the scripts don't handle it well if you just try to get it going with trial-and-error. So once I had them all, just delete the whole build tree and start over - this time, it created a working dongle file.
Okay, now for getting this to work with the MediaMVP. The problem i want to fix is that if you have a DHCP already running (like my ADSL modem), you must disable it to get the MediaMVP to boot properly.
With the Python scripts below (which will work on any platform, not just windows) you can upload your dongle.bin.mvpmc to the MediaMVP even if there is a(nother) DHCP server in your network. If the MVP boots for the second time and loads that image, it only outputs a DHCP request on port 67, for which it will get a reply from the modem... without boot filename.
Fixing this looks easy: Just check the
SERVER variable in
/etc/rcS script, and if it is not set, send a simple bootp
request on port 16867 to obtain it from the "correct" server. A simple C
program can do this and write it into a file that can be sourced (just like
udhcp does on the dongle).
Now I just need to figure out where to put the C file, which makefile to change, how to get the executable on the system...