Linux VR Booting HOWTO


Before you can boot Linux on your tool, you need to have two things:

  • a boot loader
  • a kernel

The boot loader part is very easy – simply download it (see listed below).

The bit part is a bit harder, as you must use one that is particularly developed for your system. The easy means to obtain one is to download and install one from my ftp site (see listed below). You could develop your personal bit (BYOK), yet this paper doesn’t get into that (if you intend to BYOK please see my Kernel Building HOWTO).

Booting Linux from Windows CE isn’t really that hard, so please offer it a try, as well as if you do, please allow me recognize how it goes (

Getting a Windows CE Boot Loader

There go to the very least a few Windows CE boot loaders them available. I advise the latest one, passionately named CyaCE.:–RRB- Steven Hill and also I made it based upon pbsdboot (see below). It has a great user interface, as well as all the configuration is done in a plain-text config documents, cyacecfg.txt. It will certainly additionally open up the serial port for you, so you do not have to make use of the serial console tip discussed below. You could obtain it from my ftp site at

There is likewise pbsdboot, the boot loader from the PocketBSD job. I utilized to make use of a version of pbsdboot until I made CyaCE. It works fine, however it doesn’t do auto-booting from a config data like CyaCE does. Last I checked you could get it from here. A caution on this: older versions did hardware-dependent screen clearing up, which was really bad on the Casio E-100/ 105 since while it thought it was contacting the E-105 framebuffer, it was truly completely filpping out the E-105 graphics controller registers rather. IMO the boot loader should either leave the display alone, or clear it in some hardware indepenent (Win32) means. At this time, CyaCE does neither, yet hardware-independent screen clearing is on the order of business, listed below dealing with initrd and pressed kernels. Anyway, it looks #if 0′ ed out in latest pbsdboot resources, so it ought to be OKAY now, but I haven’t checked it.

Obtaining a Ready-Made Kernel from my FTP Site

There are several bits up there currently:

  • The -clio ones are configured for the Vadem Clio, with assistance for the display screen and key-board.
  • The -e-105 ones are configured for the Casio E-100/ 105.
  • The -serial ones are set up for the console on the serial port, and also no screen assistance.
  • The -sas indicates that they use the stand-alone covering, which is smaller and also might be needed for equipments with much less compared to 8MB RAM.

I additionally compressed a few of them to a number of various compression layouts, specifically bzip2 (use bunzip2) as well as zip (use your favorite unzipper).

To get a prefabricated kernel

  • Obtain the ideal vmlinux apply for your system from my ftp site at
  • If essential to end up with a vmlinux documents, uncompress it (. This is the bit picture documents.)

Starting the Kernel

Here’s how to boot it when you have your boot loader and kernel (vmlinux bit photo data).

Obligitory Warning Notice

Do not go any type of more on this page if you care about any of the information in your device. No, starting Linux on your gadget will not pysically damage it, nullify the service warranty, or include years to your life (at the very least not that I understand of), yet it can (as well as constantly does when I do it) eliminate all of the information in the device’s memory. Backup any kind of information that you care regarding. OK? Push the reset button on your gadget to get back to Windows CE (most likely with your data all gone) when you are finished playing with Linux. If that doesn’t work, try doing a tough reset inning accordance with the device maker’s directions (if booting Linux didn’t eliminate the memory, then this is virtually guaranteed to do so). Oh, as well as please do not assume that I’m liable if you lose something – you can’t say that I didn’t caution you. Another point – IF YOU GO MUCH FURTHER ON THIS PAGE YOU ARE PRATICALLY GUARANTEED TO ERASE ALL OF THE DATA IN YOUR DEVICE’S MEMORY! There. Now have fun.

To boot Linux from Windows CE.

  • Copy the boot loader as well as the bit photo to the Windows CE gadget. I prefer to replicate them to the origin of a CF card utilizing my laptop, then pop the CF card into the CE gadget.
  • If the bit is configured to make use of a serial console, then link your tool to a serial port on another computer, pull up your serial terminal software program (I utilize minicom on Linux), and also established it to 9600 baud.
  • Pause, think carefully, “Do I mind if I wipe out this tool’s memory?”, due to the fact that the next step is the one that practically for certain will certainly erase all of your gadget’s memory.
  • Introduce the boot loader (see listed below for pointers on that particular). It will most likely instantly boot after a few secs if you are using CyaCE. If you are making use of an additional boot loader, you could need to fill in some spaces as well as strike “Boot”.

Changing the Boot Loader Settings.

You might need to readjust the boot loader setups. The best ways to do this depends on the bootloader you are using.

Adjusting CyaCE for Ramdisk Root.

For ramdisk root, you should modify the cyacecfg.txt data to tell the bit to get the root from the/ dev/ram0 device. Adjust your cyacecfg.txt data to look something similar to this:.

  • image= vmlinux.
  • label= linux.
  • append= origin=/ dev/ram0.

Note: earlier kernels really did not need this, but newer kernels do. Those very early kernels brokenly always installed/ dev/ram as genuine origin when initrd was set up, whereas the more recent bits do not.

Releasing the Boot Loader.

This could be a little hard, particularly if you have a Palm-size PC. Below are some choices:.

  • You could merely navigate to the boot loader and also double-click on it if you have an H/PC.
  • You may be able to obtain a “run” dialog ahead up despite the fact that it doesn’t appear on the Start menu (see below).
  • Some Casios have a method to obtain them to auto-boot (see listed below).
  • You could require to add the boot loader to the Start food selection if none of those choices job.

Start Menu Run Dialog.

Why exists no Run choice on the Windows CE P/PC Start food selection? I can’t answer that concern, yet despite the fact that it doesn’t show up on the Start food selection, you still may be able to obtain a Run dialog up on your tool. Attempt this exactly as defined:.

  • Bring up the on-screen keyboard.
  • Click Start twice (the Start menu appears after that disappears). Don’t double-click it – simply click it as soon as, let it open, then click it once again and also let it close.
  • Type run23 on the on-screen keyboard.
  • Once it comes up, you might, as an example, key in “\ storage card \ cyace” (consisting of the quotes) to launch CyaCE from your storage space card.

( By the way, for some factor the Clio names the storage card “\ Storage Card” – with an area at the end. I wonder if the brand-new Clio will be “backward compatible”?

If you can not obtain it to work, try resetting your device after that trying again.

Auto-Booting on Casios.

Some Casio PsPC equipments (however apparently not the E-10) will automatically run \ CE \ R4100 \ AutoRun.exe on a CF card when the CF card is put.

To benefit from this attribute, relabel your boot loader to AutoRun.exe and also placed it in \ CE \ R4100 \ on your CF card.

Including the Boot Loader to the Start Menu.

Here is a means to include the boot loader and also bit documents to the start menu (based upon contribution by Greg Haerr). It requires the use of Windows CE Servces.

  • Open Up Mobile Devices on the PC.
  • In Mobile Devices, open up the folder for your tool.
  • Open the “Windows” folder.
  • Open Up “Start Menu”.
  • Drag cyace.exe, cyacecfg.txt, as well as vmlinux in.
  • Click on the Start food selection on the device.
  • Click on cyace.

Adjusting Memory Settings.

If you obtain a “cannot allocate load” error from the boot loader, you could need to change your CE memory setups in order to offer the boot loader more area to pack the kernel. Go to Start, Settings, System, Memory, and also set the slider for minimal storage memory as well as maximum program memory.

Tip on Using the Serial Console.

This tip is only useful to people utilizing old variations of CyaCE or pbsdboot. The more recent variations of both of those programs have a function that makes this tip obsolete.

If you are booting a bit set up for serial console, as well as you are not getting any kind of outcome on the serial port when you boot the bit, try booting it while COMPUTER Link is running. Some systems power down the serial transceiver wiring via a GPIO when it’s not in use to conserve power. Having PC Link running while you are starting the bit leaves the serial transceiver wiring turned on for Linux to make use of.

Social Share :

Linux VR Ramdisk HOWTO


I composed this HOWTO in order to help people construct as well as change ramdisks for connecting into a Vr41xx bit.

This is presently just a draft. It might still be broken in locations.

The means we do the ramdisk currently is not. Actually, we need either bootloader assistance for an origin ramdisk, or we should append the ramdisk onto the end of the bit with a header, after that cost-free that ram later on.


Linux VR can mount a ramdisk connected into the kernel as root. This is the most basic method of starting Linux VR from Windows CE, because the origin is linked right into the bit.


” Ramdisk image” refers to a file which contains a photo of an ext2 filesystem that could be installed with -o loop or as a ramdisk. “Ramdisk item” describes a fairy object that envelops a (normally pressed) ramdisk image, made use of for linking a ramdisk into the Linux kernel. See the note at the end about how this terminogy has changed with time.

Modifiying an Existing Ramdisk Image

It’s probably much easier to get the ramdisk image off my ftp site and also customize it to your preference than to build one on your own from square one. Keep in mind that these directions presume that you have loopback tool support available.

To customize an existing ramdisk image

  • Obtain the ramdisk photo (ramdisk.bz2) off my ftp website at The ramdisk there is based practically completely on a ramdisk put together by Jay Carlson. It’s the very best that I’ve seen thus far.
  • Don’t attempt the following actions with a ramdisk.o data – that’s a ramdisk (possibly a pressed one) packaged inside an elf object for connecting it into the kernel, not a ramdisk picture. You need to install the ramdisk picture (I reveal you how to make a brand-new ramdisk.o from your ramdisk picture in the following area).
  • Kind: mkdir/ mnt/ramdisk to develop a ramdisk install factor (if you don’t have one already).
  • Type: place/ tmp/ramdisk/ mnt/ramdisk -o loophole to place the ramdisk photo on/ mnt/ramdisk.
  • Modify/ mnt/ramdisk as you please.
  • Type: umount/ mnt/ramdisk to unmount the ramdisk image.
  • Type: touch/ tmp/ramdisk to show that the ramdisk picture has been changed. This is needed by mipsel-ramdisk “make install” (listed below), as well as for some strange reason/ tmp/ramdisk doesn’t automatically show that modifications were made to it while it was mounted.
  • Next off, do “Making a New Ramdisk Object” below.

If you do not have loopback tool assistance available

Try something such as this (untried):.

  • Kind: dd if=/ tmp/ramdisk of=/ dev/ram0 and also watch out that you typically aren’t already utilizing/ dev/ram0.
  • Kind: mkdir/ mnt/ramdisk to produce a ramdisk mount point (if you don’t have one already).
  • Type: mount -t ext2/ dev/ram0/ mnt/ramdisk.
  • Customize/ mnt/ramdisk as you please.
  • Kind: umount/ mnt/ramdisk.
  • Type: dd if=/ dev/ram0 of= ramdisk.img.ext2 count= 1440.
  • Next, do “Making a New Ramdisk Object” listed below.

Making a Ramdisk Image from Scratch.

Jay kept in mind: You can have any dimension ramdisk … If you intend to transform the size of the ramdisk, you have to mke2fs a new one (see linux/Documentation/ramdisk. txt area 4) and copy the contents of the old one over.

Next off, do “Making a New Ramdisk Object” below.

Making a New Ramdisk Object.

To earn the ramdisk a part of the bit photo, I press the ramdisk photo documents, plan the compressed documents in an elf object, then connect it with the rest of the kernel. In order to help with this, install the mipsel-ramdisk maker first if you haven’t currently.

Julian boot prefers a covering script to do this, as he states” [it is] all self included and I could be in any type of directory to run it. ymmv”. I included that method likewise.

To install the mipsel-ramdisk maker.

  • Obtain mipsel-ramdisk. tar.bz2 from my ftp site at
  • Uncompress it to/ usr/src. Now you have/ usr/src/mipsel-ramdisk.

Making a brand-new ramdisk object with the mipsel-ramdisk manufacturer.

  • Modification to the/ usr/src/mipsel-ramdisk directory site.
  • Kind: make install to earn ramdisk.o and also copy it into/ usr/src/linux/ arch/mips/boot.

Making a new ramdisk item with a manuscript.

Right here is a changed version of Julian’s script. I haven’t evaluated it however I presume it functions penalty.

use: ramdisk-image ramdisk-object.

Linking Your New Ramdisk Into Your Kernel.

The last step is to connect your brand-new ramdisk (actually, your new ramdisk.o data) right into your kernel (vmlinux data).

To link your brand-new ramdisk right into your bit.

  • Modification to the/ usr/src/linux directory site.
  • Type: make to make a brand-new vmlinux with your new ramdisk linked in.

Starting a Ramdisk-Root Kernel.

To book a ramdisk-root kernel, you should specify/ dev/ram0 as the origin gadget. See the Linux Virtual Reality Booting HOWTO for more details about this.


Ramdisk Terminology Change.

The ramdisk terminolgy altered with time. The term “ramdisk image” used to be “raw ramdisk”, and the term “ramdisk object” made use of to be “ramdisk photo”. The ramdisk item data “ramdisk.o” used to be “ramdisk.img”. The earlier terms as well as filename were based on terms that was being made use of at the time. The trouble was that “ramdisk.img” was not a ramdisk photo – it was an elf things, plus it was stealing the ideal name for the actual ramdisk picture, which I after that needed to call “raw ramdisk” rather. Anyhow it was a source of confusion. So I changed the terms as well as the filename to be better and less confusing. I additionally changed the mipsel-ramdisk maker as well as linux/arch/mips/ vr41xx/Makefile to accomodate the name adjustment. There, that actually simplifies points, eh.

Social Share :

Linux VR Kernel Building HOWTO


A couple of individuals have asked me how they can aid with the growth, and also my response was repeatedly something like, “First, obtain your compile enviornment established and try constructing the bit”. That spurred me on to make my own Vr41xx-aware Linux-MIPS Kernel Building HOWTO. It’s a quick-start guide to beginning Vr41xx growth, strolling you through the steps from beginning to end. If you’ve been kicking around the suggestion of building the bit on your own, yet just weren’t certain where to begin, please take a look.


Developing the kernel includes several actions, espcially at first. Right here is an outline of points one usually needs to do to develop a linux-mips bit for the first time:

  • Establish your cross-compile environment
  • Get the latest Linux VR bit resources
  • Supply a ramdisk item
  • Configure the bit
  • End up constructing the kernel

Each step is described carefully below.

Note: These guidelines think that you will certainly construct your bit on a Red Hat 6.0 i386 installation.

Setting Up a Cross-Compile Environment

To establish your cross-compile atmosphere, you should obtain the mipsel-linux compiler and binutils as well as install them on your computer. I very suggest that you get the binaries as opposed to building them on your own since a) it’s much easier, b) developing the kernel challenging enough, as well as c) I understand that these work and also have heard that developing points like glibc yourself is asking for it.

To setup up your cross-compile setting

  • See the Linux VR Tools HOWTO.

Obtaining the most recent Linux VR Kernel Sources

The current Linux Virtual Reality bit resources are kept in the Linux Virtual Reality CVS database. There are also launch photos offered.

The primary Linux-MIPS sources are maintained in a CVS archive at SGI. Confidential individuals can access it by cvs login, password cvs, carbon monoxide linux. Users with account the path name is/ home/pub/cvs/. We have actually been maintaining the Linux VR sources compatible them. We have likewise started offering back-syncs to SGI.

Note: this HOWTO assumes that you place your Linux VR kernel sources in ~/ src/linux-vr.

To obtain the current Linux Virtual Reality resources from our CVS

  • See the Linux Virtual Reality CVS HOWTO.
  • Supplying a Ramdisk Object

The bit can mount a ramdisk as origin. I have some ramdisk object files on my ftp site that you could connect into your kernel. You could likewise construct your very own ramdisk things, which you should do if you want to add to or modify the ramdisk for your very own functions. Help them out, who needs your support. and ultimately, This Organisation for Economic Co-operation and other social activities.

To supply a prepared ramdisk things

  • Get a ready ramdisk item file ramdisk.o.bz2 from my ftp website.
  • Uncompress it.
  • Place the ramdisk.o file in/ usr/src/linux/ arch/mips/boot/.

To construct and also provide your personal ramdisk object

  • See the Ramdisk HOWTO to learn more concerning modifying/building ramdisks and also making ramdisk things, as well as develop your own ramdisk object.
  • Put your ramdisk.o file in/ usr/src/linux/ arch/mips/boot/.

Configuring the Kernel

Before you could build the bit, you initially have to configure it. One means is to get a prepared config from my ftp site and use that to set up the bit. Another way is to configure it all on your own.

To configure the kernel with a prepared.config

  • Obtain the prepared config from my ftp website at that is appropriate for your platform.
    If required), uncompress it (.
  • Rename it to.config.
  • Place it in ~/ src/linux-vr.
  • Adjustment to ~/ src/linux-vr.
  • Type: make oldconfig
  • to run though the prepared.config.
  • Type: make dep
  • as well as take a look at the result to see if there are any errors.

To set up the kernel all yourself

  • Adjustment to/ usr/src/linux (that we sybolically linked to/ usr/src/linux-mips over).
  • Kind: make menuconfig
  • Under Code maturation … activate Prompt for advancement …
  • Under Machine Selection, Class, choose Handheld/PDA.
  • Under Kernel hacking, choose Are you making use of a cross compiler.
  • Finish establishing the rest of the configuration alternatives.
  • When you are completed configuring, leave as well as save your modifications.
  • Type: make dep
    as well as take a look at the output to see if there are any kind of errors.

Completing Building the Kernel

Since you have configured the kernel and also made the dependences, you can make the bit, producing the final kernel photo.

Making the bit normally produces a vmlinux documents, which is the bit executable. The vmlinux documents usually has a great deal of debugging and also unnecessary details that could securely be removed. You could develop a “removed” version of vmlinux, called vmlinux-stripped, that is much smaller sized as well as more appropriate for starting on little devices than vmlinux itself.

Making the kernel

  • Kind: make removed
  • Consider the outcome and also see if there are any type of errors. You should currently have an arch/mips/boot/ vmlinux-stripped that you can use to boot Linux on your gadget if everthing went right.
  • Evaluating Out Your New Kernel

Congratulations! You’ve completed developing the bit if you’ve gotten this far successfully. Now, boot it up as well as provide it a try. Look below for guidelines on booting bits.

Social Share :



This HOWTO provides info on the CVS repsitory used for the Linux VR project.


You can check out the latest source code through anonymous (pserver) CVS:

cvs login
cvs co linux

Just press Enter for the password (leave it blank). Updates from within the module’s directory do not need the -d parameter. Please contact a project admin to request write access to the repository.

This creates a “linux” directory right under wherever you were when you did the checkout command. I recommend that you rename it to “linux-vr”:

mv linux linux-vr

You can update your local sources from the Linux VR CVS repository:

cd linux-vr
cvs update

You can also browse the repository.


  1. If someone has a patch, let them post it to the list. We will all review it, and if it receives approval, an appropriate person will commit it.
  2. Once someone proves to be trustworthy and competent, by means of posting of quality patch(es), and can demonstrate a reasonable need for CVS write access, that person may apply for CVS write access. Those currently with write access will as a group consider the application, if they reach a consensus to approve the application, they will grant the applicant permission for write access.
  3. If someone who has write access proves to be untrustworthy or incompetent, then the others with write access will as a group consider revoking their permission for write access, and will make a decision of whether or not to revoke based on consensus.
Social Share :