General
Features
Building
Running
Debugging
Running SeptemberOS Image


SeptemberOS 1.0 beta evaluation package is prepared to run on the following targets:
  • x86 PC
  • evmdm6467
  • x86 PC emulated on QEMU
  • x86 PC emulated on VmWare
  • versatile emulated on QEMU
  • malta emulated on QEMU
Below target-specific procedures are described.

x86 PC

SeptemberOS is prepared to run on a PC as bootable floppy image. When you build an application (for example, uart-sample by issuing 'make uart-sample'), a floppy image 'boot.flp' will be created in 'image/' build result directory. You need to copy this image to a blank floppy disk, from which PC will boot SeptemberOS. If you have a floppy drive connected to your Linux build machine, you may simply copy it as:

dd if=image/boot.flp of=/dev/fda

If you have a floppy drive connected to a Windows computer, you may use rawcopy utility, which provides similar functionality to 'dd' but with less options. If you have Cygwin installed on your Windows computer, you may also use 'dd' program supplied with Cygwin. Remember to use Windows naming for floppy drive (i.e. "\\.\a:" instead of "/dev/fda") when writing a floppy on Windows.

After preparing boot floppy, reboot the PC, set "boot from floppy" option in BIOS and boot SeptemberOS.

evmdm6467

SeptemberOS is prepared for evmdm6467 as ELF image that can be loaded by u-boot boot monitor. This image can be loaded as other "raw" programs. For example, you may place the compiled image on TFTP server and then run on u-boot prompt:

tftp 0x800F0000 ${tftp_server_ip}/image.elf
go 0x80100000

Note that by default SeptemberOS is prepared to run at 0x80100000 (you may change that in arch/arm/mach-evmdm6467/septos.ld

x86 PC emulated by QEMU

Prepare floppy boot image as explained for x86 PC. Copy that image to your virtual machine location. Then start QEMU:

qemu -L "c:\program files\qemu\pc-bios" -fda boot.flp -hda septos.qcow2 -boot a -net nic,model=pcnet,macaddr=11:22:33:0B:0C:0D -net tap,ifname=lan2 -serial file:uart-output.txt -localtime

This example line starts a virtual PC with BIOS located at "c:\program files\qemu\pc-bios", you may need to change that to a directory where you put "bios.bin" supplied with QEMU. Boot floppy is emulated with image file "boot.flp" and IDE hard drive is emulated with file "septos.qcow2". You may download a prepared image or create one with "qemu-img" utility supplied with the emulator.

The example above also directs the virtual PC to boot from floppy "A:" and adds to the system a virtual LAN adapter of type PCNET32 (AMD Lance). In order to use networking with QEMU you need to install and virtual TAP adapter supplied with OpenVPN package (on Windows) or install tun/tap adapter and configure virtual Ethernet bridge on Linux. Please consult QEMU documentation for details.

Serial output is redirected to file "uart-output.txt".

Note: in order to run UART interface examples with input (uart and uart-mon) you will have to direct emulated serial port to real serial port and connect a terminal to it on the other side.

x86 PC emulated by VmWare

SeptemberOS runs on VmWare emulation very similar to it running under QEMU. You may download a sample virtual appliance, which is configured in a similar way to QEMU (boots from a floppy emulated by "boot.flp"; emulates three IDE hard drives (one with ext2 partition, one with FAT partition and one not partitioned at all); emulates an AMD Lance (PCNET32) ethernet adapter and redirects serial port to file "uart-output.txt").

Note: in order to run UART interface examples with input (uart and uart-mon) you will have to direct emulated serial port to real serial port and connect a terminal to it on the other side.

ARM versatile emulated by QEMU

You may run SeptemberOS compiled for ARM versatile target on QEMU with the following line:

qemu-system-arm -M versatilepb -kernel image.elf -m 128 -serial file:uart-serial.txt -net nic,model=smc91c111 -net tap,ifname=lan2


QEMU ARM emulator is instructed to emulate a "versatilepb" platform with 128M of memory, SMC91C111 MAC/PHY controller and send serial output to a file "uart-serial.txt". "-kernel" option tells QEMU to boot "image.elf"; in this mode QEMU acts as boot monitor, emulating its initialization of hardware and ability to load and execute OS binary.

Note: in order to run UART interface examples with input (uart and uart-mon) you will have to direct emulated serial port to real serial port and connect a terminal to it on the other side.

MIPS malta emulated by QEMU

You may run SeptemberOS compiled for MIPS malta target on QEMU with the following line:

qemu-system-mips -M malta -kernel image.elf -m 128 -serial uart-serial.txt


QEMU MIPS emulator is instructed to emulate a "malta" platform with 128M of memory and send serial output to a file "uart-serial.txt". "-kernel" option tells QEMU to boot "image.elf"; in this mode QEMU acts as boot monitor, emulating its initialization of hardware and ability to load and execute OS binary.

Note: in order to run UART interface examples with input (uart and uart-mon) you will have to direct emulated serial port to real serial port and connect a terminal to it on the other side.
Documentation
Download
Links
Articles




Copyright (c) Daniel Drubin, 2010