« www.tkk.fi

Suomeksi | På svenska | In English | GER | CAT | SPA | EPO | IT | Old

Siirry sivun sisällön alkuun






Compiling Extreme Networks XOS kernel and busybox

Kernel, busybox and firmware image construction - under progress...


Extreme Networks is a well-known networking company that sells network equipment and services. The operating system of their Core and Edge switches is ExtremeWare or ExtremeXOS (exos). ExtremeXOS is built upon a modified Linux kernel, busybox and a number of other similar openly licensed software. These are all licensed either under the GNU GPL, LGPL, MIT or other open source software OSS license. In accordance to the licenses Extreme has offered to deliver a copy of the source code to all interested parties upon request. In the past Extreme did not reply to these requests nor take any other action, for example they ignored our numerous e-mails and request letter during 2006-2008 and failed to return phone calls. Following a GPL violation lawsuit that the SFLC filed against Extreme, Extreme has become active and started to comply to the conditions in the OSS license(s).

After the SFLC began discussing the licensing issues with Extreme Networks, Extreme created a software licensing page. It lists Extreme products and the OSS software that they use, what particular license these are distributed under, and gives instructions on how you can request a copy of the source code from Extreme. Currently 11/2008 to get the source you should send a request to software-at-extremenetworks.com.

In August 2008 we received, at no cost, the requested 'exos' source code that T. Lindfors had requested from Extreme in late 2006. The code for the OSS softwares was delivered on a - of course purple - USB memory stick. The GPL, LGPL and similar licensing of these software allows the software to be redistributed freely. Below is a copy of the August 2008 source code package that was on the memory stick. You may get a newer copy by requesting it from Extreme.

The same in form of diffs created by diffing the ExtremeNetworks-linux-busybox.tgz package to the official vanilla kernel and busybox:

Note: SFLC thought it is possible the above code we received is not yet the full code, but possibly a diminished or slightly different version of what they ultimately settled upon with Extreme. Though it is equally possible it actually is the full source code.

The standard compile relies on the MontaVista 3.0 toolchain, unfortunately no longer available. The exos kernel is '2.4.18 mvl30'. The Summit X450 and some of the other switches use SiByte or SiByte-derived boards with a BCM1250 Dual-Core 64-bit MIPS processor and buses to two FPGAs that handle MSM switch fabric and some internal physical monitoring.

Code for unpacking and repacking a firmware image can be found in xos_tools_v10.tar.gz which is provided by Anonymous and not by Extreme Networks. The tools may be useful for integrating your own kernel into an official firmware image.

The .tar.gz also contains a tool for unpacking (dexos) and generating (rexos) an image and replacing the debug-mode password (xoshash_tamper) with your own password hash so you can 'enable debug-mode' and get 'sh' shell access on the switch. The individual steps to modify the password in a firmware image are below:

#!/bin/bash
if [ ! -f "$1" ] || [ "$2" == "" ]; then
   echo "Usage: edit_xos.sh <filename> <password>"
   exit
fi

NEWHASH=`mkpasswd -H md5 "$2" "i/HC2W6."`
echo "New hash is: $NEWHASH"

FSDIR=./$1_root
mkdir $FSDIR

./dexos $1
tar -C $FSDIR/ -xzf dexos-out.001
./xoshash_tamper $FSDIR/bin/cliMaster $NEWHASH
tar czf dexos-out.001.new $FSDIR/*
./rexos headerfile.bin dexos-out.000 dexos-out.001.new > newimage.xos

echo "New image with modified debug mode password ($2) is in file 'newimage.xos'!"

In the GPL switch firmware source code provided by Extreme Networks, some parts are missing, for example Broadcom BDE, last seen in SDK-5.1.4.4.rar from Broadcom (google linux-user-bde.h etc). The BDE module creates /dev/linux-kernel-bde and /dev/linux-user-bde devices on the switch.

Interesting reading:

Compiling: ...