Building on Windows

From The Neuros Technology Wiki

Jump to: navigation, search

NOTE:This page has been largely obsoleted by the new OSD_Virtual_Machine_Development system setup by Crweb The below should still work, but it's just less up to date and maintained than the vm setup.


Are you excited about building for the OSD but aren't currently running Linux? If you're running Windows on a 32-bit, x86 processor, you can use coLinux to build the Neuros OSD firmware, and even serve TFTP and NFS for netboot. Here's how!

!! Warning: Building custom OSD firmware still requires in-depth knowledge of how to compile things on Linux. Builder beware! !!


Step 1: Downloads

First, start this download going: Base Filesystem That self-extracting archive contains the disk images with Ubuntu Linux (Edgy) all the necessary tools preinstalled. It's 0.99 gigabytes tall, so watch your head on the way in. I had to use an EXE archive because the ZIP format doesn't support files that big, and not everyone will have WinRAR or 7zip installed. It's a RAR SFX.

While that's going, download coLinux from Sourceforge.

Step 2: Install coLinux

You can do this while the disk images are still downloading. Just run the coLinux installer that you downloaded. When prompted, choose the following:

- coLinux - coLinux Virtual Ethernet Driver (TAP-Win32) - coLinux Bridged Ethernet (WinPcap)

Do not check "Root Filesystem Image Download" because you are already downloading it.

Install to c:\colinux or wherever you deem appropriate.

Step 3: Configure coLinux

Navigate to your coLinux install directory and open default.colinux.xml in your favorite UNIX-newline compatible text editor (not Notepad!). You need to edit some entries in here to point to the filesystem images you'll be extracting.

Note: In the latest version of coLinux, default.colinux.xml does not exist. You will need to look at example.conf instead (there are instructions in there on how to run colinux and use that file). The XML tags listed below map to things in example.conf, it's a fun game to try and figure out the mappings but they are relatively obvious (block_device index="N" is the "cobdN" entries in example.conf). Also, "\DosDevices\" is no longer necessary.

Locate the first line starting with "<block_device" and change it to point to wherever you plan to extract the images. For example, if you plan to extract them to "c:\colinux" (a recommended spot), change the line thusly:

<block_device index="0" path="\DosDevices\c:\coLinux\root_fs" enabled="true" />

A line further below it will bear reference to a swap device. Change it in this manner:

<block_device index="1" path="\DosDevices\c:\coLinux\swap_fs" enabled="true" />

Below this line you must add another line (gasp!). Use this one:

<block_device index="2" path="\DosDevices\c:\coLinux\bsp_fs" enabled="true" />

Check again that all three paths are correct. They must end in root_fs, swap_fs, and bsp_fs, respectively.

You can also alter the memory size further down. A value of "64" megabytes was plenty for me to build the OSD firmware.

Step 4: Connect coLinux to your network

In order for coLinux to communicate with your OSD, it must be connected to your network. In order for coLinux to download source code from Neuros, it must also be connected to the Internet. A few possibilities may exist in your situation, so follow the path that pertains to you:

Step 4a: Your OSD is on your home network

This one is easy. Head to your Network Connections panel and select both your network-facing connection and the coLinux adapter (this will be the highest Local Area Connection number; it may also be labeled TAP-Win32 Adapter). Right-click and select Add to Bridge, or Bridge Connections. After a moment, the coLinux adapter should have easy access to the Internet and your local network. Proceed to step 5.

Note: See Discussion for the rest of the instructions on getting CoLinux networking up this way.

Note 2: In WinXP SP2, after creating the bridge, I had to do the following from the command prompt to get everything up and running again (using DHCP):

 ipconfig /release
 ipconfig /renew "*Bridge*"

If you do "ipconfig /renew all", Windows may complain about not finding any adapters in a valid state for the operation, even though the Bridge is there. You may get an error during /release, ignore that.

Step 4b: Your OSD is directly connected to your computer

In order for coLinux to communicate with the OSD, you will have to bridge the connections like in step 4a. For coLinux to connect to the Internet you will have to enable Internet Connection Sharing on your Internet-facing interface, with the Network Bridge as the internal network interface. Windows should be able to guide you through the process.

Step 4c: You know what you're doing and don't need my help

The idea is to get the coLinux adapter in a state where it will freely exchange packets with your OSD and the Internet (and optionally your host computer). Go on and do that now. I'll wait. When you're done, proceed to step 5.

Step 5: Extract the disk images

By now, the disk images should have finished downloading. If they haven't, wait for them to finish before continuing.

Open the self-extracting archive and extract the files to a location of your choice (may I suggest c:\colinux ?) This will rightly take a while.

Step 6: Fire up that puppy!

When the disk images are done extracting, open up a command line and navigate to the coLinux program directory. Execute this command:

colinux-daemon.exe -c default.colinux.xml

This will start coLinux along with a console window. Hopefully everything went well!

Slight erratum: Looks like I left a reference to a third partitionfile in there. Do the following to fix it:

  • On bootup, it will ask you for the root password for maintenance. Don't give it - press Ctrl+D to skip.
  • Log in as normal with the neuros account.
  • Edit /etc/fstab using the command "sudo vi /etc/fstab". Use the password for the neuros account ("0sd").
  • Remove line 9, which starts with "/dev/cobd3". (Keystrokes: down 8 times, d, d, colon, w, q, enter, and optionally a, b, a, b, select, start)
  • Next bootup should work fine.

Step 7: You're on your own!

Congratulations! Now you're running Linux!

Just a few housekeeping notes. You can log in with username "neuros", password "0sd". I recommend changing the password on the first login so you don't get owned (by all those crazy people out there who definitely want to sit down at your computer and hack into your CoLinux account and WRITE SOFTWARE FOR YOUR NEUROS!!!!) (AHHHHHHHHH!!!!). Same goes for the root account (password "n3ur0s") which you should change too.

The Neuros OSD build tree will be located in its own filesystem in /bsp - it was up to date at the time of this writing but you may have to just erase it and download the source.

For further instruction in building the OSD firmware, and enabling NFS and TFTP, please consult Derobert's_Guide_to_Hacking_the_On-Screen_Display.


If you and get Blue screen of death (BSOD), you can see Troubleshooting section on the colinux site to find help with your problem.

Personal tools