Main Page
Welcome to the XINU for Routers Main Page. This is for documentation for our development process that began in the summer of 2006.
As this is a wiki, you can sign up and begin adding and editing content, uploading images, and generating the needed documentation for our efforts.
Contents
About this Project
This is an ongoing research and implementation project in the area of Operating Systems and Embedded Systems. Its goal is to port the XINU Operating System to the MIPS platform by specifically targeting LinkSys WRT54GL routers, with the hope that it can soon be used as the basis for classes on Operating Systems, Embedded Systems, and Networking classes.
The Embedded XINU project was conceived and is supervised by Dr. Dennis Brylow and is being conducted by both graduate and undergraduate students in the Math, Statistics, & Computer Science department of Marquette University in Milwaukee, Wisconsin. The first major phase of work on Embedded XINU took place in the Summer of 2006.
Guides to Replicate Our Work
In this section we are developing instructions so that other groups can benefit from the work we are doing. These guides can be followed more or less in order to create a relatively inexpensive platform for a custom operating system. As our work develops further, there will be more XINU-specific information.
Internal Documentation
Project Outline
- Goals
- Infect WRT54GL Routers with a XINU kernel
- Develop XINU to a point where it can control the router's basic functions
- Use this platform for a course in embedded systems and/or networking
- Hardware (Mod that LinkSys!)
- Why we add serial ports
- How we add serial ports
- Pictures of building
- Wiring Diagrams
- Chip Diagrams
- Software
- How to connect to a modified router
- Our Project's Directory Structure
- And then there was light: the Common Firmware Environment
- Interacting with the CFE Command Line Interface
- Fun freebies in the CFE API
- How code can Interface with CFE
- OpenWRT (When all else fails, steal it from Linux!)
- Important OpenWRT places of interest
- XINU (an O/S of our own)
More Research
- TODO: (concrete tasks)
- XINU Tasks
- Complete wired NIC driver.
- Start on wireless NIC driver and "RoboSwitch".
- Integrate XINU TCP/IP stack.
- XINU Tasks
- TOTHINK: (abstract goals and wishlists)
- Learn more about the memory structure and underlying hardware.
- How should the loader discover hardware parameters if CFE does not implement device enumeration?
- How do we safely access flash memory without bricking the router?
Useful Links
- http://www.openwrt.org
- http://linux.junsun.net/porting-howto/ - Linux MIPS Porting Guide
- http://www.version6.net/gallery/WRT54GL - WRT54GL Internals Pics Gallery
- http://en.wikipedia.org/wiki/WRT54G - WRT54G Wiki
- http://en.wikipedia.org/wiki/MIPS_architecture - MIPS Architecture
- http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gnu-linker/ - How To Write Linker Scripts
- http://www.embedded.com/shared/printableArticle.jhtml;jsessionid=0LLEHS3YT5KWUQSNDBCSKHSCJUMEIJVN?articleID=9900048 - Linux Porting Guide
- http://courses.cs.vt.edu/~cs2504/spring2006/MIPSDocs/MD00090-2B-MIPS32PRA-AFP-02.50.pdf - MIPS32 Architecture For Programmers