Difference between revisions of "Main Page"

From Embedded Xinu
Jump to navigation Jump to search
(Link to mipsel-qemu)
 
(87 intermediate revisions by 10 users not shown)
Line 1: Line 1:
Welcome to the XINU for Routers Main Page. This is for developing documentation for our development process over the summer of 2006As this is a wiki, you can sign up and begin adding and editing content, uploading images, and generating the needed documentation for our efforts.
+
'''Embedded Xinu''' is an ongoing research and implementation project in the area of Operating Systems and Embedded Systems.  Its original goal was to re-implement and port the [[Xinu|Xinu Operating System]] to several embedded MIPS platforms, such as the Linksys [[WRT54GL]] router. Since then, Embedded Xinu has been ported to other platforms, such as the [[mipsel-qemu|QEMU MIPSel virtual environment]] and the [[Raspberry Pi]]; see the [[list of supported platforms]]Although Embedded Xinu is still being developed and ported to new platforms, a laboratory environment and curriculum materials are already in use for courses in Operating Systems, Hardware Systems, Embedded Systems, Networking, and Compilers at Marquette University and other colleges/universities.
  
As fair warning from a certain [http://mscs.mu.edu/~brylow professor], this should be very comprehendable and well written. Below is a rough outline of what should be documented, it is very flexible so feel free to change it as you see fitAdd links to any sites you need to reference and (hopefully) once this is fairly completed we will be able to export it in a plaintext or static html format--since I don't want to host it on my server forever...
+
The Embedded Xinu project was conceived and is supervised by [http://www.mscs.mu.edu/~brylow/ Dr. Dennis Brylow] and is being conducted by both graduate and undergraduate students in the [[Systems Laboratory]] in the [http://www.mscs.mu.edu/ Math, Statistics, & Computer Science] department of [http://www.mu.edu/ Marquette University] in Milwaukee, WisconsinThe first major phase of work on Embedded Xinu began in the Summer of 2006.
  
 +
Our project partners include [http://www.cse.buffalo.edu/~bina/ Dr. Bina Ramamurthy] at University of Buffalo (with whom we shared an [http://www.nsf.gov/pubs/2009/nsf09529/nsf09529.html NSF CCLI] grant), [http://cs.olemiss.edu/~ruth/wiki/doku.php Dr. Paul Ruth] at University of Mississippi, and [http://www.cs.purdue.edu/people/comer Dr. Doug Comer] (father of Xinu) at Purdue University.
  
== Project Outline ==
+
== Teaching With Embedded Xinu ==
* 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|'''Why''' we add serial ports]]
 
** '''How''' we add serial ports
 
*** [[Pictures]] of building
 
*** [[Wiring|Wiring Diagrams]]
 
*** [[Chips|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)
 
  
== Guides ==
+
* For curriculum guidance on adopting or adapting Embedded Xinu for undergraduate coursework, see [[Teaching With Xinu]].
How to...
+
* Workshops have been held regarding teaching with Embedded Xinu.  For example, the [http://www.cs.olemiss.edu/acmse2010/pdf/xinu.pdf Teaching With Embedded Xinu Workshop] at [http://www.cs.olemiss.edu/acmse2010/Home.htm ACMSE 2010] in Oxford, Mississippi (Ole Miss campus) shared ready-made curriculum resources that have been used successfully to teach hardware systems, operating systems, realtime/embedded systems, networking, and compilers with the Embedded Xinu platform at several colleges/universities.
* [[HOWTO:Install OpenWRT|Install OpenWRT]]
 
* [[HOWTO:Connect a serial console|Connect a serial console]]
 
* [[HOWTO:Run your own code|Run your own code]]
 
  
 +
== Building an Embedded Xinu Laboratory ==
  
== More Research ==
+
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.
* TODO: (concrete tasks)
 
** Lab Setup Tasks
 
*** Automate the tftp boot process, so that by default the routers pull down their image from morbius.
 
*** In the RS-232 in the infrastructure for remotely accesible power cycling.
 
** XINU Tasks
 
*** Port libxc from xinu-ppc so that it compiles and works in xinu-mips (should be done now)
 
*** Get serial port input working.
 
*** Determine the interrupt vectors and get the handlers working. (esp. clock interrupt)
 
*** Context switch ported from PPC to MIPS. (shouldn't be too hard)
 
*** ... more?
 
* TOTHINK: (abstract goals and wishlists)
 
** Learn more about the [[memory structure]]
 
** Get [[interrupts]] working?
 
** Figure out [[silicon backplane]] stuff?
 
** Is there a better way to get serial port info?
 
** How do we access flash memory?
 
  
== Useful Links ==
+
# Obtain a [[List of supported platforms|supported platform]].
* http://www.openwrt.org
+
# [[HOWTO:Modify the Linksys hardware|Modify the Linksys hardware]] or [[HOWTO:Modify the ASUS hardware|Modify the ASUS hardware]]
* http://linux.junsun.net/porting-howto/ - Linux MIPS Porting Guide
+
# [[HOWTO:Connect to a modified router|Connect to a modified router]]
* http://www.version6.net/gallery/WRT54GL - WRT54GL Internals Pics Gallery
+
# [[HOWTO:Build Xinu|Build Xinu]]
* http://en.wikipedia.org/wiki/WRT54G - WRT54G Wiki
+
# [[HOWTO:Deploy Xinu|Deploy Xinu]]
* http://en.wikipedia.org/wiki/MIPS_architecture - MIPS Architecture
+
# (Optional) [[HOWTO:Build Backend Pool|Build a pool of backends]]
* http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gnu-linker/ - How To Write Linker Scripts
+
# (Recommended) [[HOWTO:Backup your router|Backup your router's factory configuration]]
* 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
+
== Other Embedded Xinu Information ==
 +
 
 +
* MIPS [[processor]]
 +
* Main [[memory]]
 +
* [[Exception and Interrupt Handling]]
 +
* [[UART driver]]
 +
* [[TTY driver]]
 +
* [[Switch driver]]
 +
* [[Networking]]
 +
* [[Flash memory]]
 +
* [[Flashing firmware]]
 +
* [[EJTAG|Enhanced Joint Test Action Group]] debugger
 +
* [[Standard library]]
 +
* [[XinuPhone]] Internet telephony
 +
* [[Router Recovery]] aka "Debricking"
 +
* [[Development]]
 +
* [[Contributors]]
 +
 
 +
----
 +
 
 +
<small><small><small>The Xinu Lab is brought to you in part by [[XMMS|M&M's]].</small></small></small>
 +
<!--
 +
-->__NOTOC__<!-- Disable "Contents" box from showing --><!--
 +
-->__NOEDITSECTION__<!-- Disable [edit] from appearing --><!--
 +
-->

Latest revision as of 02:55, 12 September 2013

Embedded Xinu is an ongoing research and implementation project in the area of Operating Systems and Embedded Systems. Its original goal was to re-implement and port the Xinu Operating System to several embedded MIPS platforms, such as the Linksys WRT54GL router. Since then, Embedded Xinu has been ported to other platforms, such as the QEMU MIPSel virtual environment and the Raspberry Pi; see the list of supported platforms. Although Embedded Xinu is still being developed and ported to new platforms, a laboratory environment and curriculum materials are already in use for courses in Operating Systems, Hardware Systems, Embedded Systems, Networking, and Compilers at Marquette University and other colleges/universities.

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 Systems Laboratory in the Math, Statistics, & Computer Science department of Marquette University in Milwaukee, Wisconsin. The first major phase of work on Embedded Xinu began in the Summer of 2006.

Our project partners include Dr. Bina Ramamurthy at University of Buffalo (with whom we shared an NSF CCLI grant), Dr. Paul Ruth at University of Mississippi, and Dr. Doug Comer (father of Xinu) at Purdue University.

Teaching With Embedded Xinu

  • For curriculum guidance on adopting or adapting Embedded Xinu for undergraduate coursework, see Teaching With Xinu.
  • Workshops have been held regarding teaching with Embedded Xinu. For example, the Teaching With Embedded Xinu Workshop at ACMSE 2010 in Oxford, Mississippi (Ole Miss campus) shared ready-made curriculum resources that have been used successfully to teach hardware systems, operating systems, realtime/embedded systems, networking, and compilers with the Embedded Xinu platform at several colleges/universities.

Building an Embedded Xinu Laboratory

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.

  1. Obtain a supported platform.
  2. Modify the Linksys hardware or Modify the ASUS hardware
  3. Connect to a modified router
  4. Build Xinu
  5. Deploy Xinu
  6. (Optional) Build a pool of backends
  7. (Recommended) Backup your router's factory configuration

Other Embedded Xinu Information


The Xinu Lab is brought to you in part by M&M's.