Contents
Debian MIPS Port
MIPS is one of the first RISC CPU architectures invented around 1985. It was a radical design which removed many features deemed unnecessary, since the goal was to get the best possible performance from a limited transistor count. Back then, MIPS were powerful general purpose CPUs, and very successful in that role, until they lost ground to systems based on cheap mass-produced Intel-compatible CPUs. Later on, the simple and elegant design allowed to create a wide range of low power CPUs targeted for embedded applications.
Today, MIPS is a popular architecture for embedded systems, with a strong presence in various networked devices, and spanning a range from 32-bit at 100 MHz to 64-bit at 1.2 Ghz.
The Debian 'mips' and 'mipsel' ports support a range of older workstations and servers as well as a few newer embedded devices. The Debian 'mips64el' port support the 64bit little endian CPUs, see mips64el for more information. All the Debian MIPS ports use the hard-float ABI. On CPUs without a floating-point unit, the kernel emulates the FPU instructions.
The global state of the development branch is tracked at mipsLennyReleaseRecertification.
A howto for installing a SGI Indy over network is available at NetworkBootingIndy.
External links of interest
General information about Linux/MIPS
Autobuilder graph for all architectures
Build daemons & porter boxes
Machine |
Architecture |
Sub-architecture |
Purpose |
FPU? |
mips |
Cavium Octeon |
buildd |
No |
|
mips |
Cavium Octeon II |
buildd |
No |
|
mips |
Cavium Octeon II |
buildd |
No |
|
mips |
Cavium Octeon II |
buildd |
No |
|
mips |
Cavium Octeon II |
buildd |
No |
|
mips |
Cavium Octeon II |
porter box |
No |
|
mipsel/mips64el |
Loongson 3A |
buildd |
Yes |
|
mipsel/mips64el |
Loongson 2E |
porterbox |
Yes |
|
mipsel/mips64el |
Loongson 3A |
buildd |
Yes |
|
mipsel/mips64el |
Loongson 3A |
buildd |
Yes |
|
mipsel/mips64el |
Loongson 3A |
buildd |
Yes |
|
mipsel/mips64el |
Loongson 3A |
buildd |
Yes |
|
thor (vip.sparklingly.org:60022) |
mips64el |
Loongson 3A |
porter box |
Yes |
Most of the machines above were donated by Imagination Technologies and new ones, Cavium Octeon III, bi-endian, with FPU are being evaluated currently before they are donated to Debian.
Known issues
Package |
Issue |
Assigned-to |
Status |
Comments |
gcc-4.4 |
Aurelien Jarno |
Solution offered |
||
openjdk-6 |
FTBFS |
|
|
Sometimes works, may depend on the buildd |
Wishlist / Possible improvements
- Add HWCAP support and/or STT_GNU_IFUNC to the GNU libc so that we can provide optimized libraries (for example MIPS32, loongson, etc...). Also add optimized versions of the string functions.
Add new kernel flavours: Octeon, Loongson 2E & 3, Routerboard
How to contribute
1. Make yourself visible/integrate yourself and learn more about the project in general
Join the projects mailing list and say hello. Feel free to ask questions.
Links to mailing lists and wikis:
An easy way to start contributing is to fix packages that cannot be built. The following points are related to this matter. Do not hesitate to ask the mailing list for more options if you feel like it.
2. Get a mips device or set up QEMU on your PC
Qemu is an architecture emulator and will replace your need for a mips device if you or whoever may be mentoring you cannot provide you with one.
However there is currently an issue with doing all the work with a QEMU emulated device: some functionalities may not trivially work and it may be impossible to access repositories and therefore to run any package on this virtual device. The networking part will be fleshed out as much as possible here. Future updates of this guide will hopefully be enough for newcomers to start up. If you have any insights on this matter, do not hesitate to add information or email the relevant information at this email address: jnthjackson@gmail.com
3 Download QEMU, images, kernels and set up networking
You will need images and kernels to run a version of mips Debian. You will find these at this link. Read the README for more information on how to get going with the images.
4 Learn more about package maintaining and the buildd network
How does the buildd network works:
5 Chose a package and study the failed-build log to find/fix the bug
Links to build status of packages:
https://buildd.debian.org/status/architecture.php?a=mips&suite=sid
https://buildd.debian.org/status/architecture.php?a=mipsel&suite=sid
https://buildd.debian.org/status/architecture.php?a=mips64el&suite=sid
6 Report your progress or found bugs
If you feel like contributing in any other way, please do so and if you want to know more ways to do so, feel free to write to the mailing list.