| [ Index | Smartcards | Dreambox ] |
It is. A Linux platform. But you can build an image on a Windows system. The trick is to run Linux inside Windows. This is made possible with CoLinux. I've done the same thing with the MediaMVP
Install CoLinux with the standard 1GB debian image (20 MB to download, included in the setup). Just follow the instructions. You do not need to install the WinPCAP driver, but you do need the built-in TAP network driver.
update: It did not work out with Debian, so I'm trying with Fedora
now. Basically, the difference is that apt-get is yum
on Fedora, which functions the same. The ssh package is called
openssh and isn't installed by default.
I 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...). On an XP system, just create a network bridge between your LAN/WAN and the TAP network "card". You also need quite a lot of memory. I've been using 300MB, you can also use a swapfile with CoLinux if you don't have enough real RAM.
Put a 10GB disk image on your system (you can
download it here,
very easy). Use a program like 7-Zip to
extract the file. I renamed it to home.10gb. Mount it as
/home in the Colinux session, before you create a user account.
I also discovered that the cofs driver lets colinux read and write the Windows disks without any problem (as far as I can tell).
The linux "box" I get up and running with the following command:
colinux-daemon.exe kernel=vmlinux eth0=tuntap,"",00:FF:11:22:33:45 cobd0=Debian-3.0r2.ext3-mit-backports.1gb cobd1=swap_384Mb cobd2=userdisk.3gb cobd3=home.10gb root=/dev/cobd0 mem=256 -t nt cofs0=D:\ cofs1=G:\ cofs2=H:\I assign a fixed MAC address to the colinux card, so it will get the same IP address from my router every time I start it.
My /etc/fstab file looks like this:
# filesystem mountpoint type options dump pass /dev/cobd0 / ext3 errors=remount-ro 0 1 proc /proc proc defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 /dev/cobd1 swap swap defaults 0 0 /dev/cobd2 /home ext3 defaults 0 0 cofs0 /mnt/win/d cofs rw,uid=mike,gid=users,dmask=0777,fmask=0777 0 0 cofs1 /mnt/win/g cofs rw,uid=mike,gid=users,dmask=0777,fmask=0777 0 0 cofs2 /mnt/win/h cofs rw,uid=mike,gid=users,dmask=0777,fmask=0777 0 0
There are quite some packages that I'll need, i hope to list them all here. As root, get them by:
apt-get update apt-get install make sed gcc g++ bzip2 xutils automake xlibs xlibs-dev patch cvs subversion autoconf libtool bison flex wget unzip rsync ssh python python-dev diffstat texi2html libgnutls-dev(For Fedora 7 image, i needed to add "gcc-c++" to the list). When using a different distribution, try this OEandYourDistro wiki page. And of course, a text editor and terminal would be nice too. I've used PSPAD On the windows side, and vim on the linux box. Using PuTTY to talk to the linux box also makes things a lot easier, so enable the SSH deamon when asked whether you want to run the SSH server.
Set up a home directory. Mount the 10GB filesystem image under /home first, by using
mount /dev/cobd2 /home if you don't have it in your fstab where it should be.
Create a user, type adduser dreambox. Now you can develop
using that account, and have lots of disk space in your home dir. It would
also be wise to setup PuTTY now, and setup a key exchange. Create a DSA key
with PuTTYGen, and save the private key somewhere on your
Windows system. Copy the "public" key part from the top of the PuTTYGen dialog,
to paste it into your linux session. First open a session to the IP address
of the CoLinux box (use ifconfig to figure it out), and login
using the dreambox user and password. Save the session before you open it.
Next, create a the .ssh directory and the keyfile:
mkdir .ssh cat > .ssh/authorized_keysPaste the public key info into the linux screen, and press return and Ctrl-D to terminate the file. Now you can login with PuTTY without the need for a password, and have a much bigger terminal than the standard one.
It's probably a good idea to create a directory, e.g. "DB" or so. In that
directory, get the Makefile:
wget http://tmb.elitedvb.net/Makefile-opendreambox
Don't run it yet, we need Monotone first.
Get the "deb sarge" binary edition, that's the easiest one to get running.
I got version 0.31 today. You also need Python for that (we got it during
setup) and you need psyco too. Download
the version that matches your Python version (2.3 in my case), and install
it on the system (as root):
tar xzf /mnt/win/h/Downloads/psyco-1.5.2-linux.i386-2.3.tar.gz cd psyco-1.5.2 cp -r psyco /usr/lib/python2.3/site-packages/Now setup monotone, as root:
dpkg -i /mnt/win/h/Downloads/monotone_0.31-sarge0.1_i386.deb
Okay. Now we need the monotone database stuff. As root,
# cat >> /etc/apt/sources.list deb http://www.openembedded.org/dl/ packages/ # apt-get update # apt-get install openembedded-essentialThat last command did not work on my system. Sigh.
Grab an OE snapshot here,
Pick the one that matches your version, if you're not running the latest Monotone. It will take a while,
it's an 80MB download...
Contrary to the documentation, extract the file to (lowercase) oe.mtn using:
bunzip2 < OE.mtn.bz2 > oe.mtn
Go to your development user directory, where you put the oe.mtn file and the
makefile. Grab the Dreambox code:
mtn pull --db=oe.mtn monotone.openembedded.org org.openembedded.dreambox
Start by setting up the prerequisites.
Run the following command:
make -f Makefile-opendreambox
And to create your own image:
make -f Makefile-opendreambox image
To be continued...
MediaMVP programming for Windows
CoLinux
Empty disk images for CoLinux
GettingStarted | OpenEmbedded
Openembedded - DreamboxWiki
SAT4ALL Message Board: [all] Dreambox ontwikkelomgeving
developer.elitedvb.net
Contact me
My Homepage: Mike Looijmans