Having now worked a bit with the Bubba3 Server by Excito I came across several facts that I would like to provide in a summarized form again to the public world:
General
Internally, the Bubba3 server is an ARMEL architecture (byte-order little endian) based on the ORION plattform making use of the KIRKWOOD architecture. Best this corresponds to the following GNU Arch string when setting up cross-toolchains: arm-unknown-linux-gnueabi. Apparently, there is also an ARM cross toolchain package available at Excito’s FTP server — though I did not test it out yet. Generally speaking, the developers do not recommend to make use of cross-toolchains, but recommend to use the box’ native support for development.
Additionally technical information also be found at:
Hardware
CPU
The processor reports the following details via /proc/cpuinfo
under a Linux kernel 2.6.38:
Processor : Feroceon 88FR131 rev 1 (v5l) BogoMIPS : 1199.30 Features : swp half thumb fastmult edsp CPU implementer : 0x56 CPU architecture: 5TE CPU variant : 0x2 CPU part : 0x131 CPU revision : 1 Hardware : BUBBA3 Kirkwood based miniserver Revision : 0000 Serial : 0000000000000000
and thus is a ARMV5TE running around 1,2 GHz. Similar processors thus are ARM946E-S, ARM966E-S, ARM968E-S, ARM996HS, ARM926EJ-S
Wifi card
The optional WiFi card connected to the motherboard is a Mini-PCI-X card. Based on this post on the Excito Forum, it’s a Unex DXNA-92.
Network/LAN card
When starting up the following network drivers for the LAN cards are being booted:
mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4 mv643xx_eth_port mv643xx_eth_port.0: eth0: port 0 with MAC address [...]
Based on the specification the internal LAN cards may go up to 1 GBit/s of speed.
Special Hardware
The LED on the front side of the box is a special development. Thus, additional patches/drivers are necessary in the Linux kernel to allow accessing them. Details on this can also be found at this wiki post.
Layout of the Flash Memory
The Flash Memory partitions have the following layout:
root@b3:/proc# cat /proc/mtd dev: size erasesize name mtd0: 000c0000 00010000 "u-boot" mtd1: 00020000 00010000 "env" mtd2: 00120000 00010000 "data"
Though being interesting concerning the uboot information, this article on enabling a Bubba 2 server box for making also the system partition RAID-1-enabled does not fit for the Bubba 3. However, there is another forum post available on a similar topic which seems to be the basis for the Wiki article mentioned just a sentence before. The correct /etc/fw_env.config
file seems to be:
# MTD definitrion for Bubba|3 # MTD device name Device offset Env. size Flash sector size Number of sectors /dev/mtd1 0x000000 0x010000 0x010000
UBoot content
With the fw_env.config
file above, you can read the uboot configuration parameters which are:
root@b3:/proc# fw_printenv bootdelay=1 baudrate=115200 preboot= loadaddr=0x800000 console=ttyS0 bootfile=uImage flashfile=u-boot.kwb installfile=install.itb setdiskargs=setenv bootargs root=$diskdev console=$console,$baudrate serial=${serial#} key=$key button=$button setbootargs=setenv bootargs root=$rootdev rw console=$console,$baudrate $othbootargs usbbootroot=/dev/sda1 usbbootdev=usb 0:1 usbboot=usb start; setenv diskdev $usbbootroot; run setdiskargs; ext2load $usbbootdev $loadaddr /boot/$bootfile; bootm usbflashdev=usb 0:1 usbflash=fatload $usbflashdev $loadaddr /install/$flashfile && sf probe 0:0 && sf erase 0 80000; sf write $loadaddr 0 $filesize satadev=sata 0:1 sataroot=/dev/sda1 sataboot=setenv diskdev $sataroot; run setdiskargs; ext2load $satadev $loadaddr /boot/$bootfile; bootm usbinstallroot=/dev/ram0 usbinstalldev=usb 0:1 usbinstall=usb start; setenv diskdev $usbinstallroot; run setdiskargs; fatload $usbinstalldev $loadaddr /install/$installfile; bootm bootalt1=run sataboot || reset bootalt2=run usbinstall || run usbflash || run sataboot || reset stdin=serial stdout=serial stderr=serial button=0 bootcmd=run sataboot || reset ethact=egiga0 ethaddr=00:22:02:xx:yy:zz eth1addr=00:22:02:xx:yy:aa serial#=1234 key=xyzabc1234567890123456789=
The manual of uboot can be found at DENX.
Software
Linux Distribution
The Bubba3 server makes use of Debian Release Squeeze (armel architecture). Standard packages fit also to the Bubba3 server. Excito also provides an additional Debian repository available at http://b3.update.excito.org
. The Debian suite squeeze
matches to the Bubba3 internal suite name elvin
.
Linux Kernel
As the Bubba3 server has some special hardware, additional drivers are required to be available with the kernel. The source code of these were available via HTTP download from an Excito Download server (see also this wiki post for the source of this link). In the meantime it appears that there is a GIT repository available at GitHub. Apparently that one is used for newer kernel versions than 2.6.38.
Please remember that you do not need to get the source via the git repository if you just want to compile the Bubba3 kernel yourself. In most cases it is easier (and even more up-to-date) if you fetch the source code of your kernel that you are running on the Bubba3 server via
# apt-get source bubba3-kernel
For this, please note that you need the apt repository with the source code active in your source.list
file. The corresponding apt line is:
deb-src http://b3.update.excito.org/ elvin main
Default IP-Address
By default the IP address of the Bubba3 box is 192.168.10.1 reachable via the LAN interface.
Standard HDD layout
A Bubba 3 box with a pre-shipped 500 GB disk uses a GPT disk layout and has the following details based on parted:
(parted) unit s (parted) print Model: ATA WDC WD5000AADS-0 (scsi) Disk /dev/sda: 976773168s Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 34s 20971520s 20971487s ext3 root 2 20973568s 974675967s 953702400s home lvm 3 974675968s 976773119s 2097152s linux-swap(v1) swap
This especially means that root partition is on ext3, and the /home mount point is running via lvm.