From eda66735c224dec36d1baf79424ecd34e9652f63 Mon Sep 17 00:00:00 2001
From: gferg <>
Date: Wed, 5 Jul 2000 17:23:44 +0000
Subject: [PATCH] updated
---
LDP/howto/docbook/Cable-Modem.sgml | 418 ++-
LDP/howto/linuxdoc/Bash-Prog-Intro-HOWTO.sgml | 213 +-
LDP/howto/linuxdoc/C++Programming-HOWTO.sgml | 2330 ++++++++++++++---
LDP/howto/linuxdoc/C-C++Beautifier-HOWTO.sgml | 100 +-
LDP/howto/linuxdoc/IPCHAINS-HOWTO.sgml | 155 +-
LDP/howto/linuxdoc/MIPS-HOWTO.sgml | 814 +++---
LDP/howto/linuxdoc/Modem-HOWTO.sgml | 421 +--
LDP/howto/linuxdoc/Plug-and-Play-HOWTO.sgml | 147 +-
LDP/howto/linuxdoc/Serial-HOWTO.sgml | 222 +-
LDP/howto/linuxdoc/Text-Terminal-HOWTO.sgml | 177 +-
10 files changed, 3663 insertions(+), 1334 deletions(-)
diff --git a/LDP/howto/docbook/Cable-Modem.sgml b/LDP/howto/docbook/Cable-Modem.sgml
index 135a16e4..5f5b145b 100644
--- a/LDP/howto/docbook/Cable-Modem.sgml
+++ b/LDP/howto/docbook/Cable-Modem.sgml
@@ -16,11 +16,11 @@
- v4.17
- May 16, 2000
+ v4.20
+ June 29, 2000vv
- Additions to @home and new provider in Bombay, India
+ Addition to 21st Century Cable
@@ -120,7 +120,7 @@ text of the license can be found at
-
+
@@ -280,10 +280,10 @@ With a little luck, your ethernet card should be working in Windows
95, and ready to rock in Linux.
-
-If you live Hampton Roads, VA or Phoenix, AZ
-you should read a little note from Mark Solomon
-
+
+Notes from Hampton Roads, VA and Phoenix,
+AZ by Mark Solomon:
+
With the @home service in Hampton Roads, VA, it is absolutly neccessary
@@ -307,6 +307,7 @@ Ether Express cards can be found at
http://www.monmouth.com/~jay/Linux/
+Notes for Baltimore, MD and Colleyville,TX
@@ -467,6 +468,89 @@ words "router", "firewall", or "Linux".
+
+Notes from Mobile, Alabama R. Jason Valentine miracle@procyon.com:
+
+
+
+In Mobile, Comcast cable provides cable modem service through the @home
+network. An RCA cable modem (model DCM205) is issued along with a SMC
+EZ-Card (10/100) if you don't already have a cable modem.
+
+
+
+Static IPs are not given, but rather assigned through DHCP. You need to
+make your ethernet card (eth*) use DHCP - linuxconf is the easiest way to
+set that up. Next, you'll need to find the following line in /sbin/ifup
+
+
+
+-----------------------------------------------------------------
+if [ -n "$PUMP" ]; then
+ echo -n "Determining IP information for $DEVICE..."
+ if /sbin/pump -i $DEVICE; then
+ echo " done."
+ else
+ echo " failed."
+ exit 1
+ fi
+ else ...
+-----------------------------------------------------------------
+
+
+
+and change it to
+
+
+
+-----------------------------------------------------------------
+if [ -n "$PUMP" ]; then
+ echo -n "Determining IP information for $DEVICE..."
+ if /sbin/pump -i $DEVICE -h hostname; then
+ echo " done."
+ else
+ echo " failed."
+ exit 1
+ fi
+ else ...
+-----------------------------------------------------------------
+
+
+
+Where hostname is the computer name (cc123456-a - or whatever yours may
+be.)
+
+
+
+
+
+
+Notes from Auburn, Alabama by Andrew W. Jones
+andywjones@home.com
+
+
+
+I would like to note that Auburn's @home service supports DHCP. If you
+simply issue `dhcpcd -h hostname` all your network settings are taken
+care of...
+
+
+
+
+
+Notes from Santa Barbara, California by Tim Newsome
+nuisance@cmu.edu
+
+
+My provider (Cox@Home, in Santa Barbara, CA) does the same thing as
+ . I'm using Debian,
+with dhclient version 2.0. I added the following line to my
+/etc/dhclient.conf: send host-name "cx803168-a"; Where cx803168-a is the
+hostname I've been assigned. It is listed on the purchase order.
+
+
+
+
Information about @Home Service can be found at
http://www.home.com/.
@@ -488,7 +572,7 @@ url="http://www.oswg.org/oswg-nightly/DHCP.html">http://www.oswg.org/oswg-nightl
-If this doesn't work out for you you should check out
+If this doesn't work out for you you should check out
http://www.math.uakron.edu/RoadRunner/
for Akron, Ohio and
@@ -507,18 +591,30 @@ One more thing that might be worth mentioning: you will need a Windows NT,
95, or 98 or Macintosh PC for the RoadRunner installers to configure the
modem. It's not technically necessary, but they will insist, and will not
install on a Linux system. It's also best not to mention the IPFW system
-while they're around.
+while they're around.
-
-Information about RoadRunner Service can be found at
+
+Additional notes by Phil Baird pjb@rocsoft.com from Rochester, NY:
+
+
+
+About getting hooked up initially. It is true the RR techs don't want
+to talk about Linux. However, they now offer us a "self-install" that is
+half the price ($50). Basically, they come out, run the cable, and make
+sure the signal gets to the modem. You must supply your own nic card and
+do the rest of the setup on your own.
+
+
+
+Information about RoadRunner Service can be found at
http://www.rr.com/.
-
-
+
+Rogers@Home
@@ -540,7 +636,7 @@ for Rogers@Home at
http://members.home.net/randal.leavitt/CableModemConnectionNotes.html.
-Notes from Greg Jacobs
+Notes from Greg Jacobs gregjacobs@home.com
They now only give out dynamic IP's. The techs says its pretty much fixed
@@ -942,8 +1038,8 @@ Information about Videotron can be found at
Telekabel (Teleweb), Austria
-According to Andreas Kostyrka:
-
+There are two approaches to setting up your Telekabel
+connection. First one is the approach used by Andreas Kostyrka:
@@ -973,6 +1069,30 @@ url="ftp://ftp.redhat.com/pub/contrib/readmes/3c5x9utils-1.0-1.README">ftp://ftp
+
+Second approach is provided by Marcel Ebmer
+marcel.ebmer@chello.at
+
+
+
+
+Do NOT bother using dhcpcd or pump!
+
+
+
+In case you don't know, ask the provider for your IP-address, which
+is static, for the DNSs, the Gateway and use linuxconf to configure the
+network. For Vienna: 960 60 333 is the helpdesk's telephone number They
+officially do not support linux, but you need not mention you
+are running linux.
+
+
+
+Choose a unique name for your PC....not "localhost"
+
+
+
+
Information about Telekabel can be found at http://www.telekabel.at/.
@@ -1898,6 +2018,29 @@ my Linux box (which I never do really) I can go in and update the IP
address that my web server www.xanderbelly.com and mail server
+
+Additional notes:
+
+
+
+The terms and conditions of 21st Century cable modem contains the
+following statement:
+
+
+
+Distributing unsolicited information in any manner is prohibited on 21st
+Century's network and will result in termination of 21st Century
+service. (I.e. junk email, etc...) Any use of a server type application
+or service on a computer system connected to 21st Century Cable Modem
+Service is prohibited and may result in termination of 21st Century
+Cable Modem Service (i.e. web, ftp, or game servers, etc...). 21st
+Century Cable Modem Service is for client type applications ONLY.
+
+
+
+Also, technically, each additional dynamic IP address beyond the first
+one carries a $4.95 monthly charge.
+
@@ -2060,7 +2203,7 @@ under a modern linux distribution.
Last thing worth to be said is that Supercable doesn't provide support
for Linux but you can always ask your questions in news.supercable.es in
the Linux area. Their web page is located at http://www.supercable.es
+url="http://www.supercable.es/">http://www.supercable.es/
(WARNING: get
ready to download an almost 1MB of useless Macromedia's Flash garbage).
@@ -2196,11 +2339,248 @@ worked. The Cable Modem that was used (provided by Hathway) was a SurfBoard 3100
+
+
+Siti Cable, Bangalore, India
+
+
+This information is provided by Vinay Avasthi vinay@avasthi.com:
+
+
+
+Zee Telefilms has partnered with Siti Cable in Bangalore, India to
+provide cable modem service. I subscribed to this service and it kind of
+worked out of the box from linux.
+
+
+
+I am using Redhat 6.1 on a IBM Thinkpad 600 with Xircom Realport
+Ethernet card. On autodetect links mentions that the card will be used
+in 10MB/s only.
+
+
+
+Only problem that I faced was on shutdown, the system will hang while
+shutting down pump. To temporarily fix the problem I just put that
+particular like in rc-scripts to background.
+
+
+
+The steps that one needs to perform are as follows.
+
+
+
+
+ - Need to have an ethernet card that works with Linux.
+
+
+- Enable DHCP by using pump. For some reason dhcpd does not seem to
+work.
+
+
+
+
+Only thing that I would suggest is to be careful regarding support since
+the tech support do not seem to know much about software.
+
+
+
+
+
+Com Hem, Sweden
+
+
+This information is provided by Zoltan Arpadffy arpadffy@polarfox.com:
+
+
+
+com hem http://www.comhem.se/
+is a Swedish cable TV/Internet provider, a sub-company
+of Telia http://www.telia.com/
+the biggest Scandinavian carrier.
+com hem does not support any other OS but Windows and Mac-OS (as com hem support
+claims ), but it is not so complicate to set up on Linux as well.
+
+
+
+com hem sells NetGame's cable modem (NeMo). Initial speed is 512 kb/s and it can be
+set up to 10Mb/s. You can order it with or without Ethernet card.
+com hem internet service is available in the bigger cities all over Sweden.
+
+
+
+1. Setting up a single node
+
+
+
+
+set up your network card to work properly
+(Ethernet HOWTO)
+
+
+
+
+
+configure DHCP to that card (DHCP mini-HOWTO)
+
+
+
+
+
+you need some browser what supports Java-script (as Netscape) and go to the login
+site http://login1.telia.com/
+
+
+
+
+
+- fill in your user-name and password (provided by com hem) ... and you're there.
+
+
+
+
+
+
+Network what you'd become a member is:
+ IP address: Assigned by com hem
+ Subnet mask: 255.255.255.0
+ Default GW: Assigned by com hem
+ Hostname: Assigned by com hem
+ Domain name: telia.com
+ Primary DNS server (nameserver): 10.0.0.1
+ Secondary DNS server (nameserver): 10.0.0.2
+
+
+
+
+2. Connecting your home LAN (if you have more than one machine)
+
+
+
+We have to turn one computer to gateway (I did it with an old Pentium 66MHz/16M)
+
+
+install two network cards in your gateway
+NET3-4 HOWTO
+
+
+
+first set up (and connect) to your LAN
+
+
+
+second network card have to use DHCP
+(DHCP mini-HOWTO)
+
+
+
+enable ip forwarding
+
+
+net.ipv4.ip_forward = 1 in /etc/sysctl.conf or by
+echo "1" > /proc/sys/net/ipv4/ip_forwarding
+
+
+
+
+set up IP masquerade
+(IP Masquerade mini-HOWTO)
+
+ipchains -P forward DENY
+ipchains -A forward -s your_network_here/24 -j MASQ
+
+
+(for me it was ipchains -A forward -s 192.168.10.0/24 -j MASQ)
+check your routing table with route command... it should be something like below:
+
+
+Destination Gateway Genmask Flags Metric Ref Use Iface
+gate.polarfox.h * 255.255.255.255 UH 0 0 0 eth0
+telia-net * 255.255.255.0 U 0 0 0 eth1
+polarfox-net * 255.255.255.0 U 0 0 0 eth0
+127.0.0.0 * 255.0.0.0 U 0 0 0 lo
+default h2n5fdt22o429.t 0.0.0.0 UG 0 0 0 eth1
+
+
+Useful literature for security issues is
+Linux IPCHAINS HOWTO
+
+
+
+
+configure default gateway for all other hosts in your LAN.
+On unix nodes it should look something like:
+
+
+Destination Gateway Genmask Flags Metric Ref Use Iface
+sea.polarfox.ho * 255.255.255.255 UH 0 0 0 eth0
+polarfox-net * 255.255.255.0 U 0 0 0 eth0
+127.0.0.0 * 255.0.0.0 U 0 0 0 lo
+default gate.polarfox.h 0.0.0.0 UG 0 0 0 eth0
+
+
+Default gateway setup for other OSs you can find a very nice description in IP
+Masquerade mini-HOWTO
+
+
+
+configure name server on your gateway DNS HOWTO or just set up your hosts to use
+Telia's name server (10.0.0.1)
+
+
+
+log in from any host http://login1.telia.com/
+and you're on the road with all your LAN.
+
+
+
+
+
+
+
+
+
+Problems:
+
+
+
+
+
+If you don't use browser with Java-script support, you can not log in.
+Solution: there is no elegant solution. Without it you can not log in and open the
+connection.
+
+
+
+
+After some network inactivity period (10-15 minutes) your connection will be
+terminated and you have to log in again... meanwhile your gateway and all your inner
+services will be unreachable from outside as well (if you're running some web server
+at home etc).
+Solution: start one ping process or even more elegant solution is to submit one cron
+job for every 5-10 minutes on the gateway, to "do something" though the network.
+
+
+
+
+
+I did it with /etc/cron.d/keep-alive file when contains:
+
+
+
+# fake connection in order to keep line alive
+# every 5 minutes send some packages
+MAILTO=""
+*/5 * * * * ping -f -c 5 www.polarfox.com
+
+
+
+
-
+Hybrid Cable modem ISPs
If you think you have the card recognized you have to now look at the
diff --git a/LDP/howto/linuxdoc/Bash-Prog-Intro-HOWTO.sgml b/LDP/howto/linuxdoc/Bash-Prog-Intro-HOWTO.sgml
index 2a9d9062..af82e5f7 100644
--- a/LDP/howto/linuxdoc/Bash-Prog-Intro-HOWTO.sgml
+++ b/LDP/howto/linuxdoc/Bash-Prog-Intro-HOWTO.sgml
@@ -9,7 +9,7 @@
BASH Programming - Introduction HOW-TOby Mike G
- v0.07, 22 June 2000
+ 27 June 2000
This article intends to help you to start programming
basic-intermediate shell scripts. It does not intend to be an
@@ -27,11 +27,11 @@
Introduction
-
- Getting the latest version
+
+Getting the latest version
-
-
+
@@ -90,6 +90,9 @@ Very simple Scripts
to use to run the file.
The second line is the only action performed by this script,
which prints 'Hello World' on the terminal.
+
If you get something like ./hello.sh: Command not found.
+ Probably the first line '#!/bin/bash' is wrong, issue whereis bash or see
+ 'finding bash' to see how sould you write this line.
A very simple backup script
@@ -402,7 +405,7 @@ Conditionals
#!/bin/bash
T1="foo"
T2="bar"
- if [ $T1 = $T2 ]; then
+ if [ "$T1" = "$T2" ]; then
echo expression evaluated as true
else
echo expression evaluated as false
@@ -492,7 +495,7 @@ Loops for, while and until
This script 'emulates' the well known
- (C, Pascal, perl, python, etc) 'for' structure
+ (C, Pascal, perl, etc) 'for' structure
@@ -573,10 +576,10 @@ User interfaces
#!/bin/bash
OPTIONS="Hello Quit"
select opt in $OPTIONS; do
- if [ $opt = "Quit" ]; then
+ if [ "$opt" = "Quit" ]; then
echo done
exit
- elif [ $opt = "Hello" ]; then
+ elif [ "$opt" = "Hello" ]; then
echo Hello World
else
clear
@@ -596,7 +599,7 @@ User interfaces
#!/bin/bash
- if [ -z $1 ]; then
+ if [ -z "$1" ]; then
echo usage: $0 directory
exit
fi
@@ -620,7 +623,8 @@ Misc
Reading user input with read
-
In many ocations you may want to prompt the user for some input, and there are several ways
+
In many ocations you may want to prompt the user for some input, and
+ there are several ways
to achive this. This is one of those ways:
#!/bin/bash
@@ -628,7 +632,8 @@ Misc
read NAME
echo "Hi $NAME!"
-
As a variant, you can get multiple values with read, this example may clarify this.
+
As a variant, you can get multiple values with read, this example may
+ clarify this.
#!/bin/bash
echo Please, enter your firstname and lastname
@@ -756,6 +761,11 @@ Tables
echo "S1('$S1') is equal to S1('$S1')"
fi
+
I quote here a note from a mail, sent buy Andreas Beck, refering to use
+ This is not quite a good idea, as if either $S1 or $S2 is empty, you will
+ get a parse error. x$1=x$2 or "$1"="$2" is better.
+
@@ -765,7 +775,7 @@ Tables
-
*
/
-
% (reminder)
+
% (remainder)
@@ -785,25 +795,154 @@ Tables
Useful commands
-
-
sed (stream editor - very useful)
-
gawk
-
grep (show line matching this or not matching that)
-
wc (count words, lines)
-
sort
-
bc (more than a calculator)
-
cut (edit columns)
-
tput (get information from the current terminal)
-
-
It it higly recommended to be familiarized with
- this programs (at least). There are tons of little
- programs that will let you do real magic in a
- command line.
-
+
This section was re-written by Kees (see thank to...)
+
Some of these command's almost contain complete programming languages.
+ From those commands only the basics will be explained. For a more detailed
+ description, have a closer look at the man pages of each command.
+
+ Sed is a non-interactive editor. Instead of altering a file by moving the
+ cursor on the screen, you use a script of editing instructions to sed, plus the
+ name of the file to edit. You can also describe sed as a filter. Let's have
+ a look at some examples:
+
+
+ $sed 's/to_be_replaced/replaced/g' /tmp/dummy
+
+
+
Sed replaces the string 'to_be_replaced' with the string 'replaced' and
+ reads from the /tmp/dummy file. The result will be sent to stdout (normally
+ the console) but you can also add '> capture' to the end of the line above so
+ that sed sends the output to the file 'capture'.
+
+
+ $sed 12, 18d /tmp/dummy
+
+
+
Sed shows all lines except lines 12 to 18. The original file is not altered by this command.
+
+ Many implementations of the AWK programming language exist (most known interpreters are GNU's
+ gawk and 'new awk' mawk.) The principle is simple: AWK scans for a pattern, and for every
+ matching pattern a action will be performed.
+
Again, I've created a dummy file containing the following lines:
+
+ $awk '/test/ {print}' /tmp/dummy
+
+
test123
+
+
test
+
+
The pattern AWK looks for is 'test' and the action it performs when it found a line in the file
+ /tmp/dummy with the string 'test' is 'print'.
+
+
+ $awk '/test/ {i=i+1} END {print i}' /tmp/dummy
+
+
+
3
+
+
When you're searching for many patterns, you should replace the text between the quotes with '-f
+ file.awk' so you can put all patterns and actions in 'file.awk'.
+
+ We've already seen quite a few grep commands in the previous chapters, that display the lines
+ matching a pattern. But grep can do more.
+
+ $grep "look for this" /var/log/messages -c
+
+
12
+
The string "look for this" has been found 12 times in the file /var/log/messages.
+
+
[ok, this example was a fake, the /var/log/messages was tweaked :-)]
+
+ In the following example, we see that the output is not what we expected. The dummy file, as used
+ in this example, contains the following text:
+
+ $wc --words --lines --bytes /tmp/dummy
+
+
+
2 5 34 /tmp/dummy
+
+
Wc doesn't care about the parameter order. Wc always prints them in a standard order, which is,
+ as you can see: .
+
+ This time the dummy file contains the following text:
+
+ $sort /tmp/dummy
+
+
+
This is what the output looks like:
+
+
Commands shouldn't be that easy :-)
+ Bc is accepting calculations from command line (input from file. not from redirector or pipe),
+ but also from a user interface. The following demonstration shows some of the commands. Note that
+
I start bc using the -q parameter to avoid a welcome message.
+
+
+ $bc -q
+
+
+
A little demonstration of tput's capabilities:
+
+ $tput cup 10 4
+
+
The prompt appears at (y10,x4).
+
+ $tput reset
+
+
Clears screen and prompt appears at (y1,x1). Note that (y0,x0) is the upper left corner.
+
+ $tput cols
+
+ Shows the number of characters possible in x direction.
+
It it higly recommended to be familiarized with these programs (at least). There are tons of
+ little programs that will let you do real magic on the command line.
+
[some samples are taken from man pages or FAQs]
-
-
-
@@ -980,16 +1119,20 @@ About the document
Jon Abbott for sending comments about evaluating arithmetic expressions.
Laurent Martelli for translating this document to French (soon here the URL)
Felix Hudson for writing the Kees van den Broek (for sending many corrections)
+ Kees van den Broek
+ (for sending many corrections, re-writting usefull comands section)
Mike (pink) made some suggestions about locating bash and testing files
- fiesh make a nice suggestion for the loops section.
+ Fiesh make a nice suggestion for the loops section.
+ Lion suggested to mention a common error (./hello.sh: Command not found.)
+ Andreas Beck made several corrections and coments.
History
+
Added the section usefull commands re-writen by Kess.
+
More corrections and suggestions incorporated.
Samples added on string comparison.
-
v0.8 More little additions.
+
v0.8 droped the versioning, I guess the date is enought.
v0.7 More corrections and some old TO-DO sections written.
v0.6 Minor corrections.
v0.5 Added the redirection section.
diff --git a/LDP/howto/linuxdoc/C++Programming-HOWTO.sgml b/LDP/howto/linuxdoc/C++Programming-HOWTO.sgml
index 98c2ccc6..ee6906f7 100644
--- a/LDP/howto/linuxdoc/C++Programming-HOWTO.sgml
+++ b/LDP/howto/linuxdoc/C++Programming-HOWTO.sgml
@@ -40,7 +40,7 @@ C++ Programming HOW-TO
Al Dev (Alavoor Vasudevan)
-v10.0, 02 June 2000
+v11.0, 03 July 2000
This document discusses methods to avoid memory problems in C++ and
also will help you to program properly in C++ language.
@@ -159,12 +159,12 @@ brace-surrounded block - in this case, everything in the header file
and comp(), some_c_function() is compiled by a C compiler.
Instead of using char * and char[] all the C++ programmers MUST use the
-'mychar class'
+'String class'
which is given in this document and
'string class'
included in the STDLIB.
The
-'mychar class'
+'String class'
utilises the constructor and destructor to automate the memory management
and also provides many functions like ltrim, substring,
etc..
@@ -175,13 +175,13 @@ in
the C++ compiler. The string class is part of the standard GNU C++
library and provides lot of string manipulation functions. The
'string class' and
-'mychar class'
+'String class'
can remove the need of char * datatype.
Also, C++ programmers must be encouraged to use 'new', 'delete'
features instead of using 'malloc' or 'free'.
The
-'mychar class'
+'String class'
does everything
that char * or char [] does. It can
completely replace char datatype. Plus added
@@ -192,7 +192,7 @@ The GNU C++ compiler MUST drop off the support of char *, char[]
datatypes and in order to compile older programs using char datatype,
the compiler should provide a additional option called "-fchar-datatype" to g++ command.
Over the next 2 years all the C++ programs will use
-'mychar class'
+'String class'
and
'string class'
and there will be no char * and char[]. The compiler
@@ -247,12 +247,12 @@ Hence, Java runs on "client" and C++ runs on servers!!
- Download mychar
diff --git a/LDP/howto/linuxdoc/MIPS-HOWTO.sgml b/LDP/howto/linuxdoc/MIPS-HOWTO.sgml
index 5c557ee4..3606aabf 100644
--- a/LDP/howto/linuxdoc/MIPS-HOWTO.sgml
+++ b/LDP/howto/linuxdoc/MIPS-HOWTO.sgml
@@ -5,7 +5,7 @@
Linux/MIPS HOWTO
Ralf Bächle, v0.1, 31 March 1999
+June 24, 2000
This FAQ describes the MIPS port of the Linux operating system, common
problems and their solutions, availability and more. It also tries to
@@ -34,6 +34,25 @@ find information that actually should be covered elsewhere.
However as usual your mileage may vary and you should examine Linux's
suitability for your purpose which purpose this document tries to serve.
+Getting this FAQ
+ You can download this document in various formats:
+
+
+ The HTML version
+
+ The text version
+
+ The Postscript version
+
+ The Linux-Doc SGML version.
+
+
+
+ This FAQ is also available as SGML source code via anonymous CVS from
+ oss.sgi.com. The archive also has a Makefile which will translate it into
+ various formats. An ASCII version is regularly being posted via
+ comp.os.linux.answers and the other Linux HOWTO channels.
+
What hardware does Linux/MIPS support?
Hardware platforms
@@ -84,10 +103,31 @@ find information that actually should be covered elsewhere.
The Cobalt Qube support has never been integrated into the official
Linux/MIPS 2.1.x kernels.
+ NEC machines
+ The NEC uniprocessor machines are OEM Acer PICA systems, see
+ that section for details. The SMP systems are different from that. The
+ Linux/MIPS developers have no technical documentation as necessary to write
+ an OS. As long as this does not change this will pretty much stay a show
+ stopper preventing a port to NEC's SMP systems.
+
+ NEC VR41xx-based platforms
+ The Linux VR project is porting Linux to devices based on the NEC VR41xx
+ microprocessors. Many of these devices were originally designed to run
+ Windows CE. The project has produced working kernels with basic drivers
+ for the Vadem Clio, Casio E-105, Everex Freestyle, and more. For more
+ information please see .
+
+ Toshiba TMPR39xx/Philips PR31700 platforms
+ Similar to the VR41xx, devices with these processors were originally intended
+ for running Windows CE. However, there are working kernels with basic drivers
+ for Sharp Mobilon and the Compaq C-Series. Support for more devices
+ is under construction. The code is part of the Linux VR project and as such
+ more information can be found at .
+
Netpower 100
- The Netpower 100 is apparently an Acer PICA in disguise. It
- should therefore be supported but this is untested. If there is a problem
- then it is probably the machine detection.
+ The Netpower 100 is apparently an Acer PICA in disguise.
+ It should therefore be supported but this is untested. If there is a
+ problem then it is probably the machine detection.
Nintendo 64
The Nintendo 64 is R4300 based game console with 4mb RAM. Its
@@ -96,15 +136,37 @@ find information that actually should be covered elsewhere.
Nintendo decides to publish the necessary technical information. The
question remains as to whether this is a good idea.
- Silicon Graphics Indy
+ Silicon Graphics Challenge S
+ This machine is very similar to the Indy; the difference is that it doesn't
+ have a keyboard and a GFX card but has an additional SCSI WD33C95 based
+ adapter. This WD33C95 hostadapter is currently not supported.
+ Silicon Graphics Indigo
+ This machine is only being mentioned here because occasionally people have
+ confused it with Indys or the Indigo 2. The Indigo is a different,
+ R3000 based architecture however and not yet unsupported.
+
+ Silicon Graphics Indigo2
+ This machine is the successor to the Indigo and is very similar to the Indy.
+ It is now supported, however it is lacking in several areas. You will have
+ to use serial console. If you have a Indigo2 and still want to run Linux on
+ it, contact either or .
+
+ Silicon Graphics Indy
The Indy is currently the only (mostly) supported Silicon Graphics
machine. The only supported graphics card is the Newport card aka
- “XL” graphics. The Indy is available with a large number of
- CPU options at various clock rates all of which are supported. There is
- currently no X server available for the Indy; is working on one.
+ ``XL'' graphics. The Indy is available with a large number of
+ CPU options at various clock rates all of which are supported.
+ There's also a X server available now written by
+ .
+ If you're able to use the Newport console on your Indy it should be
+ possible to also use this X server. It's based on XFree86 4.0 and
+ currently running at snail speed but seems to work quite ok.
+ If you want to try it take a look at
+ .
Strange numbers of available memory
On bootup the kernel on the Indy will report available memory with a
@@ -116,14 +178,14 @@ find information that actually should be covered elsewhere.
128mb area in the Indy's memory address space which mirrors up to the
first 128mb of memory. The difference between the two numbers will
always be about 128mb and does not indicate a problem of any kind.
+ Kernels since 2.3.23 don't count this 128mb gap any longer.
- Indy PROM related problems
-
- Several people have reported these problems with their machines after upgrading them
- typically from surplus parts. There are several PROM versions for the
- Indy available. Machines with old PROM versions which have been upgraded
- to newer CPU variants like a R4600SC or R5000SC module can crash during
- the self test with an error message like
+ Indy PROM related problems
+ Several people have reported these problems with their machines after
+ upgrading them typically from surplus parts. There are several PROM
+ versions for the Indy available. Machines with old PROM versions which
+ have been upgraded to newer CPU variants like a R4600SC or R5000SC module
+ can crash during the self test with an error message like
Exception:
Status register: 0x30004803
@@ -148,7 +210,7 @@ find information that actually should be covered elsewhere.
for this is of course a PROM upgrade. Alternatively you can use Sash of
IRIX 5 or newer to boot the kernel. Sash knows how to load ELF binaries
and doesn't care if it's an IRIX or Linux kernel. Simply type
- “Sash” to the prom monitor. You should get another shell
+ ``Sash'' to the prom monitor. You should get another shell
prompt, this time from Sash. Now launch Linux as usual.
Sash can read
EFS or XFS filesystems or read the kernel from bootp / tftp. That means
if you intend to use Sash for booting the kernel from local disk you'll
@@ -162,18 +224,25 @@ find information that actually should be covered elsewhere.
its memory is mirrored. Linux knows about it and just ignores
that memory, thus this message.
- Silicon Graphics Challenge S
- This machine is very similar to the Indy; the difference is that it doesn't
- have a keyboard and a GFX card but has an additional SCSI WD33C95 based adapter.
- This WD33C95 hostadapter is currently not supported.
+ Silicon Graphics Origin 200 and 2000
+
+ and a team of SGI employees are currently working on a port to the
+ Origin 200. While still in it's early stages it's running in
+ uniprocessor and multiprocessor mode and has drivers for the builtin
+ IOC3 Ethernet and SCSI hostadapters. The code is available in the
+ Linux/MIPS CVS tree.
- Silicon Graphics Indigo
- This machine is only being mentioned here because occasionally people
- have confused it with Indys. The Indigo series is a different architecture
- however and therefore yet unsupported.
- announced
- a university project to port Linux to the Indigo on January 2, 1999.
+ Silicon Graphics Onyx 2
+ The Onyx 2 is basically an Origin 2000 with additional graphics
+ hardware. As of now about Linux support for the graphics hardware has
+ not yet been decieded. Aside of that Linux should run just as well as
+ on a normal headless Origin 2000 configuration.
+
+ Silicon Graphics Power Series
+ This is a very old series of R3000 SMP systems. There is no hardware
+ documentation for these machines, few of them exist anymore, the hardware
+ is weird. In short, chances that Linux will ever run on them are
+ approximating zero. Not that we want to disencourage takers ...
Serial console on SGI machines
Make sure the kernel you're using includes the appropriate driver for a
@@ -189,45 +258,18 @@ find information that actually should be covered elsewhere.
documentation; it's in /usr/src/linux/Documentation/serial-console.txt if
you have the kernel source installed.
- Motorola 68k based machines like the Iris 3000
- These are very old machines, probably more than ten years old by
- now. As these machines are not based on MIPS processors this document is
- the wrong place to search for information. However, in order to make things
- easy, these machines are currently not supported.
-
- SGI VisPC
- This is actually an x86 based system, therefore not covered by this FAQ.
- But to make your search for answers simple, here it is.
-
- posted on January 17, 1999 to SGI's Linux mailing list:
-
- We are working on it. We're actually close to getting
- the base level system support into the 2.2 release.
- Software-only X and OpenGL should follow relatively
- shortly, but hardware-accelerated OpenGL is still
- some time off. See www.precisioninsight.com for
- news about hardware-accelerated OpenGL.
-
- For more information see the Documentation/ of Linux kernel versions from
- 2.2.0 and newer. There is additional information available on the web on
- . Note that the SGI/MIPS and
- SGI/Intel people are working independently of each other, therefore the
- sources in the anonymous CVS on linus.linux.sgi.com may or may not work
- for Intel machines; we don't test this.
-
Other Silicon Graphics machines
At this time no other Silicon Graphics machine is supported. This also
applies to the very old Motorola 68k based systems.
Sony Playstation
- The Sony Playstation is based on an R3000 derivative and uses a set of graphics
- chips developed by Sony themselves. While the machine in theory would be
- capable of running Linux, a port is difficult, since Sony so far hasn't provided
- the necessary technical information. This still leaves the question of
- whether the port would be worthwhile. So in short,
- nothing has happend yet even though many people have shown their interest
- in trying Linux on a Playstation so far.
+ The Sony Playstation is based on an R3000 derivative and uses a set of
+ graphics chips developed by Sony themselves. While the machine in theory
+ would be capable of running Linux, a port is difficult, since Sony so far
+ hasn't provided the necessary technical information. This still leaves the
+ question of whether the port would be worthwhile. So in short, nothing has
+ happend yet even though many people have shown their interest in trying Linux
+ on a Playstation so far.
SNI RM200C
In contrast to the RM200 (see below) this machine has EISA and PCI slots.
@@ -235,65 +277,68 @@ find information that actually should be covered elsewhere.
NCR53c810A SCSI controller.
SNI RM200
- If your machine has both EISA and PCI slots, then it is an RM200C; please
- see above. Due to the slight architectural differences of the RM200 and
- the RM200C this machine isn't currently supported in the official sources.
- has managed to get his RM200
- working partially but the patches haven't yet been included in the official
- Linux/MIPS
- sources.
+ If your machine has both EISA and PCI slots, then it is an RM200C; please
+ see above. Due to the slight architectural differences of the RM200 and
+ the RM200C this machine isn't currently supported in the official sources.
+ has managed to get
+ his RM200 working partially but the patches haven't yet been included in the
+ official Linux/MIPS sources.
SNI RM300C
- The RM300 is technically very similar to the RM200C. It should be supported
- by the current Linux kernel, but we haven't yet received any reports.
+ The RM300 is technically very similar to the RM200C. It should be supported
+ by the current Linux kernel, but we haven't yet received any reports.
SNI RM400
- The RM400 isn't supported.
+ The RM400 isn't supported.
+
+ SNI RW320
+ This machine is a OEM variant of the SGI Indigo and therefore also still
+ unsupported.
Algorithmics P4032
The Algorithmics P4032 port is at the time of this writing still running
Linux 2.1.36.
- Algorithmics P5064
- The P5064 is basically an R5000-based 64bit variant of the P4032. It's not
- yet supported but a Linux port will be quite easy.
+ Algorithmics P5064
+ The P5064 is basically an R5000-based 64bit variant of the P4032. A port is
+ ongoing.
DECstation series
- During the late 80's and the early 90's Digital (now Compaq) built MIPS based
- Workstations named DECstation resp. DECsystem. Other x86 and Alpha based
- machines were sold under the name DECstation, but these are obviously not
- subject of this FAQ. Support for DECstations is still under development,
- started by Paul M. Antoine. These days most of the work is done by
- and others. On the
- Internet, DECstation-related information can be found at
- .
+ During the late 80's and the early 90's Digital (now Compaq) built MIPS based
+ Workstations named DECstation resp. DECsystem. Other x86 and Alpha based
+ machines were sold under the name DECstation, but these are obviously not
+ subject of this FAQ. Support for DECstations is still under development,
+ started by Paul M. Antoine. These days most of the work is done by
+ and others. On the
+ Internet, DECstation-related information can be found at
+ .
- The DECstation family ranges from the DECstation 2100 with an R2000/R2010
- chipset at 12 Mhz to the DECstation 5000/260 with a 60 MHz R4400SC.
+ The DECstation family ranges from the DECstation 2100 with an R2000/R2010
+ chipset at 12 Mhz to the DECstation 5000/260 with a 60 MHz R4400SC.
- The following DECstation models are actively supported:
-
- 2100, codename PMAX
- 5000/xx (Personal DECstation), codename MAXine
- 5000/1xx, codename 3MIN
- 5000/2x0, codename 3MAX+
- 5900/2x0 (identical to the 3MAX+).
-
+ The following DECstation models are actively supported:
+
+ 2100, codename PMAX
+ 5000/xx (Personal DECstation), codename MAXine
+ 5000/1xx, codename 3MIN
+ 5000/200, codename 3MAX
+ 5000/2x0, codename 3MAX+
+ 5900/2x0 (identical to the 3MAX+).
+
- These DECstation models are orphaned because nobody is working on them,
- but support for these should be relatively easy to achieve.
-
- 3100, identical to the 2100 except the R2000A/R2010A @ 16 MHz
- 5100, codename MIPSMATE, almost identical to the 2100 but with an
- R3000/R3010 chipset.
- 5000/200, codename 3MAX
-
+ These DECstation models are orphaned because nobody is working on them,
+ but support for these should be relatively easy to achieve.
+
+ 3100, identical to the 2100 except the R2000A/R2010A @ 16 MHz
+ 5100, codename MIPSMATE, almost identical to the 2100 but with an
+ R3000/R3010 chipset.
+
The other members of the DECstation family, besides the x86 based ones,
should be considered as VAXen with the CPU replaced by a MIPS CPU.
- There is absolutely no information available about these machines and support
+ There is absolutely no information available about these machines and support
for them is unlikely to happen ever unless the VAXLinux port comes to a new
life. These are:
@@ -302,10 +347,6 @@ find information that actually should be covered elsewhere.
5800, codename ISIS
- The R2000/R3000 support in the Linux/MIPS kernel is a merge of the
- DECstation and Baget/MIPS code and isn't yet integrated into the official
- Linux/MIPS source tree.
-
Mips Magnum 4000 / Olivetti M700-10
These two machines are almost completely identical. Back during the
ACE initiative Olivetti licensed the Jazz design and marketed the machine
@@ -339,14 +380,6 @@ find information that actually should be covered elsewhere.
The Mips Magnum 4000SC is the same as a Magnum 4000 (see above) with
the exception that it uses an R4000SC CPU.
- VaxStation
- As the name already implies this machine is a member of Digital Equipment's
- VAX family. It's mentioned here because people often confuse it with
- Digital's MIPS based DECstation family due to the similar type numbers.
- These two families of architectures share little technical similarities.
- Unfortunately the VaxStation, like the entire VAX family, is currently
- unsupported.
-
Processor types
R2000, R3000 family
@@ -355,20 +388,23 @@ find information that actually should be covered elsewhere.
market. Later versions were clocked faster: for instance,
the R3000 is a 100% compatible redesign of the R2000, just clocked
faster. Because of their high compatibility, where this document mentions
- the R3000, in most cases the same facts also apply to the R2000.
+ the R3000, in most cases the same facts also apply to the R2000.
The R3000A is basically an R2000 plus an R3010 FPU
- and 64k cache running at up to 40Mhz and integrated into the same chip.
- Support for the R3000 processor is currently in the works by various
- people.
+
+ and
- have both independently worked on patches which haven't yet been integrated
- into the official Linux/MIPS sources.
+ have both independently worked on patches for R3000 processors.
+ The work has been merged and is integrated into the official Linux/MIPS
+ sources since July 1999. Actually Linux supports R3000 processors including
+ some derivatives like the R3081 and the TMPR3912/PR31700
R6000
Sometimes people confuse the R6000, a MIPS processor, with RS6000, a series
- of workstations made by IBM. So if you're reading this in hope of finding out
- more about Linux on IBM machines you're reading the wrong document.
+ of workstations made by IBM. So if you're reading this in hope of finding
+ out more about Linux on IBM machines you're reading the wrong document.
+
The R6000 is currently not supported. It is a 32-bit MIPS ISA 2 processor
and a pretty interesting and weird piece of silicon. It was developed
and produced by a company named BIT Technology. Later NEC took
@@ -379,6 +415,7 @@ find information that actually should be covered elsewhere.
primary cache, a technology called TLB slice. That means its
MMU is substantially different from those of the R3000 or R4000 series,
which is also one of the reasons why the processor isn't supported.
+
R4000 and R5000 family
Linux supports many of the members of the R4000 family. Currently these
are R4000PC, R4400PC, R4300, R4600, R4700, R5000, R5230, R5260. Many
@@ -390,26 +427,76 @@ find information that actually should be covered elsewhere.
unlike other systems, especially PCs, on MIPS the cache is architecturally
visible and needs to be controlled by software.
Special credit goes to who provided the CPU module for debugging the
- R4000SC / R4400SC support.
+ name="Ulf Carlsson (ulfc@engr.sgi.com)"> who provided the CPU module for
+ debugging the R4000SC / R4400SC support.
+
R8000
- The R8000 is currently unsupported partly because this
- processor is relatively rare and has only been used in a few SGI machines,
- partly because the Linux/MIPS developers don't have such a machine.
+ The R8000 is currently unsupported partly because this processor is
+ relatively rare and has only been used in a few SGI machines, partly because
+ the Linux/MIPS developers don't have such a machine.
The R8000 is a pretty interesting piece of silicon. Unlike the other
- members of the MIPS family it is a set of seven chips. Its cache and
- TLB architecture is pretty different from the other members of the MIPS
- family. It was born as a hack to get the floating point crown
- back to Silicon Graphics before the R10000 is finished.
+ members of the MIPS family it is a set of seven chips. It's cache and TLB
+ architecture are pretty different from the other members of the MIPS family.
+ It was born as a quick hack to get the floating point crown back to
+ Silicon Graphics before the R10000 is finished.
+
R10000
- The R10000 is currently unsupported because the Linux/MIPS developers
- don't have an R10000 machine.
+ The R10000 is supported as part of the mips64 kernel which currently is
+ supported on the IP22 (SGI Indy, Challenge S and Indigo 2) and
+ Origin.
+ Due to the very hard to handle way this processor works in non-cachecoherent
+ systems it's probably still taking some time until we support this processor
+ in such systems. As of today these systems are the SGI O2 and
+ Indigo
+
+ Hardware we're never going to support
+ IBM RS6000
+ As the name say these are IBM machines which are based on the RS6000
+ processor series and as such they're not subject of the Linux/MIPS project.
+ People frequently confuse the IBM RS6000 with the MIPS R6000 architecture.
+ However the Linux/PPC project might do so. Checkout
+ for further information.
+
+ VaxStation
+ As the name already implies this machine is a member of Digital Equipment's
+ VAX family. It's mentioned here because people often confuse it with
+ Digital's MIPS based DECstation family due to the similar type numbers. These
+ two families of architectures share little technical similarities.
+ Unfortunately the VaxStation, like the entire VAX family, is currently
+ unsupported.
+
+ SGI VisPC
+ This is actually an x86 based system, therefore not covered by this FAQ.
+ But to make your search for answers simple, here it is.
+
+ posted on January 17, 1999 to SGI's Linux mailing list:
+
+ We are working on it. We're actually close to getting
+ the base level system support into the 2.2 release.
+ Software-only X and OpenGL should follow relatively
+ shortly, but hardware-accelerated OpenGL is still
+ some time off. See www.precisioninsight.com for
+ news about hardware-accelerated OpenGL.
+
+ For more information see the Documentation/ of Linux kernel versions from
+ 2.2.0 and newer. There is additional information available on the web on
+ . Note that the SGI/MIPS and SGI/Intel
+ people are working independently of each other, therefore the sources in the
+ anonymous CVS on oss.sgi.com may or may not work for Intel machines; we don't
+ test this.
+
+ Motorola 68k based machines like the Iris 3000
+ These are very old machines, probably more than ten years old by
+ now. As these machines are not based on MIPS processors this document is
+ the wrong place to search for information. However, in order to make things
+ easy, these machines are currently not supported.
Linux distributions.
RedHat
For MIPSeb, there's Rough Cuts Linux, previously known as Hard Hat Linux,
which is most of Red Hat Linux 5.1 ported for MIPSeb. You can get this at
- .
+ .
It is also bundled along with M68k, UltraSparc and PowerPC in a package
called "Rough Cuts" pressed by Red Hat, and available wherever Red Hat
@@ -421,6 +508,8 @@ find information that actually should be covered elsewhere.
Cobalt Qubes; those binaries will work perfectly on other MIPSel
architectures available at
.
+ has various rpm packages from
+ Redhat 6.0 and 6.1.
Debian
A Debian port is underway. Current efforts are being bootstrapped using
@@ -433,50 +522,61 @@ find information that actually should be covered elsewhere.
Anonymous FTP servers.
The two primary anonymous FTP servers for Linux/MIPS are
-
+
This server should satisfy almost all your Linux/MIPS related ftp desires.
- Really.
+ Really.
This server is currently pretty outdated; it's included here mostly for
completeness and for people with interest in prehistoric software.
On all these ftp servers there is a list of mirror sites you may
- want to use for faster access.
+ want to use for faster access.
+
+ Another source for little endian MIPS binaries is
+ which carries mostly newer
+ versions of binaries for the Redhat flavour shipping with the Cobalt's.
Anonymous CVS servers.
For those who always want to stay on the bleeding edge and want to avoid
having to download patch files or full tarballs we also have an anonymous
CVS server. Using CVS you can checkout the Linux/MIPS source tree with
the following commands:
+
- cvs -d :pserver:cvs@linus.linux.sgi.com:/cvs login
+ cvs -d :pserver:cvs@oss.sgi.com:/cvs login
(Only needed the first time you use anonymous CVS, the password is "cvs")
- cvs -d :pserver:cvs@linus.linux.sgi.com:/cvs co
+ cvs -d :pserver:cvs@oss.sgi.com:/cvs co
- where you insert linux, libc, or gdb for <repository>.
+ where you insert linux, libc, gdb or faq for <repository>.
The other important CVS archive of the Linux community is vger.rutgers.edu
where a lot of code is being collected before being sent to Linus for
distribution. Although vger itself no longer offers anonymous access, there
are mirror sites which do provide anonymous access. For details how to access
- them see . The modules
- which are of interest are “linux”, “modutils”,
- “pciutils”, “netutils”.
+ them see . The modules which are
+ of interest are ``linux'', ``modutils'', ``pciutils'', ``netutils''.
Web servers.
- The two primary anonymous web servers for Linux/MIPS are
+ The two primary web servers for Linux/MIPS are
-
+
This server covers most of Linux/MIPS; it's somewhat SGI centric but since
Linux/MIPS tries to be the same on every platform most of its information
is of interest to all users.
-
+
This server is currently pretty outdated; it's included here mostly for
completeness.
All these servers have mirrors scattered all over the world; you may want to
use one for best performance.
+ Web CVS server.
+ Via you have
+ directs access the new Linux/MIPS kernel sources and a few other projects
+ hosted in the same CVS archive. The intuitive interface allows you to
+ follow the development at the click of your mouse.
+
Mailing lists.
There are three Linux/MIPS oriented mailing lists:
@@ -484,20 +584,21 @@ find information that actually should be covered elsewhere.
This mailing list is used for most non-SGI related communication of all
kinds. Subscription is handled by a human; send your subscription requests
to . You can unsubscribe from this mailing
+ name="linux-mips-request@fnet.fr">. You can unsubscribe from this mailing
list by sending unsubscribe <your-email-address> to the same
address.
-
- This mailing list currently has the most traffic. It's somewhat SGI-centric
- but is nevertheless of interest especially to developers as a good number
- of SGI engineers are subscribed to this list. Subscription to this list
- is handled via ; just send an email with the
- words subscribe linux-mips. In order to unsubscribe send
- unsubscribe linux-mips. Note that you have to be subscribed if you
- want to post; the growth of spam forced us into that policy.
+
This mailing list currently has the most
+ traffic. It's somewhat SGI-centric but is nevertheless of interest
+ especially to developers as a good number of SGI engineers are subscribed
+ to this list. Subscription to this list is handled via
+ ; just send an email with the
+ words subscribe linux. In order to unsubscribe send
+ unsubscribe linux. Note that you have to be subscribed if you
+ want to post; the growth of spam forced us into that policy. For more
+ information see also .
@@ -509,6 +610,10 @@ find information that actually should be covered elsewhere.
unsubscribe linux-mips.
+ IRC channel.
+ There is a IRC channel named #mipslinux for Linux/MIPS which may be found on
+ irc.openprojects.net.
+
Installation of Linux/MIPS and common problems.
NFS booting fails.
@@ -592,6 +697,21 @@ find information that actually should be covered elsewhere.
This is a known bug in older binutils versions. You will have to upgrade to
binutils 2.8.1 plus very current patches.
+ My machine doesn't download the kernel when I try to netboot
+
+ Your machine is replying to the BOOTP packets (you may verify this
+ using a packet sniffer like tcpdump or ethereal) but doesn't download the
+ kernel from your BOOTP server. This is happens if your boot server is
+ running a kernel of the 2.3 series or higher. The problem may be circumvented
+ by doing a "echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc" as root on your
+ boot server.
+
+ Bug in DHCP version 2
+ When using DHCP version 2 you might see the following problem:
+ Your machines receives it's BOOTP reply 3 times but refuses to start TFTP.
+ You can fix this by doing a "unsetenv netaddr" in the PROM command monitor before you boot your
+ system. DHCP version 3 fixes that problem.
+
Milo
Milo is the boot loader used to boot the little endian MIPS systems with
ARC firmware, currently the Jazz family and the SNI RM 200.
@@ -621,10 +741,40 @@ find information that actually should be covered elsewhere.
version 2.1.121 installed. Older versions won't work.
How do I setup a crosscompiler?
- First of all go and download the following source packages:
+ Available binaries
+ The easist thing to setup a crosscompiler is to just download the binaries.
+ For Linux/i386 hosts and big endian targets this are the packages:
+
+ binutils-mips-linux-2.8.1-1.i386.rpm
+ egcs-c++-mips-linux-1.0.3a-1.i386.rpm
+ egcs-g77-mips-linux-1.0.3a-1.i386.rpm
+ egcs-libstdc++-mips-linux-2.8.0-1.i386.rpm
+ egcs-mips-linux-1.0.3a-1.i386.rpm
+ egcs-objc-mips-linux-1.0.3a-1.i386.rpm
+
+
+ And this is the list of packages for little endian targets:
+
+ binutils-mipsel-linux-2.8.1-1.i386.rpm
+ egcs-c++-mipsel-linux-1.0.3a-1.i386.rpm
+ egcs-g77-mipsel-linux-1.0.3a-1.i386.rpm
+ egcs-libstdc++-mipsel-linux-2.8.0-1.i386.rpm
+ egcs-mipsel-linux-1.0.3a-1.i386.rpm
+ egcs-objc-mipsel-linux-1.0.3a-1.i386.rpm
+
+
+ It's not necessary that you install all these packages; most people can
+ just omit the C++, Objective C and Fortran 77 compilers. The
+ Intel binaries have been linked against GNU libc 2.1, so you may have
+ to install that as well when upgrading.
+
+ Building your own crosscompiler
+ First of all go and download the following source packages and patches:
binutils-2.8.1.tar.gz
- egcs-1.0.2.tar.gz
+ binutils-2.8.1-2.diff.gz
+ egcs-1.0.3a.tar.gz
+ egcs-1.0.3a-1.diff.gz
glibc-2.0.6.tar.gz
glibc-crypt-2.0.6.tar.gz
glibc-localedata-2.0.6.tar.gz
@@ -636,15 +786,15 @@ find information that actually should be covered elsewhere.
order binutils, egcs, then glibc. Unless you have older versions
already installed, changing the order will fail. The installation
description below mentions a number of patches which you can get from the
- respective SRPM packages on . However since these SRPM packages are intended
+ respective SRPM packages on . However since these SRPM packages are intended
to be compiled natively it's not possible to just rebuild them.
Diskspace requirements
For the installation you'll have to choose a directory for installation.
I'll refer to that directory below with <prefix>. To avoid a certain
- problem it's best to use the same value for <prefix> as your native gcc. For
- example if your gcc is installed in /usr/bin/gcc then choose /usr for
+ problem it's best to use the same value for <prefix> as your native gcc.
+ For example if your gcc is installed in /usr/bin/gcc then choose /usr for
<prefix>. You must use the same <prefix> value for all the packages
that you're going to install.
During compilation you'll need about 31mb diskspace for binutils; for
@@ -670,8 +820,9 @@ find information that actually should be covered elsewhere.
Configuration names
Many of the packages based on autoconf support many different
architectures and operating systems. In order to differentiate between
- these many configurations, names are constructed with <cpu>-<company>-<os>
- or even <cpu>-<company>-<kernel>-<os>. Expressed this way
+ these many configurations, names are constructed with
+ <cpu>-<company>-<os> or even
+ <cpu>-<company>-<kernel>-<os>. Expressed this way
the configuration names of Linux/MIPS are mips-unknown-linux-gnu for big
endian targets or mipsel-unknown-linux-gnu for little endian targets. These
names are a bit long and are allowed to be abbreviated to mips-linux or
@@ -705,7 +856,22 @@ find information that actually should be covered elsewhere.
scripts to fail silently; it was never necessary and was only installed
because of a bug in older GCC versions. Check to see if the file
<prefix>/<target>/include/assert.h exists in your installation. If
- so, just delete the it: it should never have been installed.
+ so, just delete the it: it should never have been installed for any version
+ of the crosscompiler and will cause trouble.
+
+ Installing the kernel sources
+ Installing the kernel sources is simple. Just place them into some directory
+ of your choice and configure them. Configuring them is necessary such that
+ files which are generated by the procedure will be installed. Make shure
+ you enable CONFIG_CROSSCOMPILE near the end of the configuration process.
+ The only problem you may run into is that you may need to install some
+ required GNU programs like bash or have to override the manufacturer-provided
+ versions of programs by placing the GNU versions earlier in the PATH variable.
+ Now go to the directory <prefix>/<target>/include and create two
+ symbolic links named asm and linux pointing to include/asm rsp. include/linux
+ within your just installed and configured kernel sources. These are
+ necessary such that necessary header files will be found during the next
+ step.
First installation of egcs
Now the not-so-funny part begins: there is a so-called bootstrap problem.
@@ -715,16 +881,12 @@ find information that actually should be covered elsewhere.
once when you install a crosscompiler for the first time. Later when you
already have glibc installed things will be much smoother. So now do:
- gzip -cd egcs-.tar.gz | tar xf -
+ gzip -cd egcs-1.0.3a.tar.gz | tar xf -
cd egcs-
- for i in egcs-1.0.2-libio.patch egcs-1.0.2-hjl.patch \
- egcs-1.0.2-rth1.patch egcs-1.0.2-rth2.patch egcs-1.0.2-rth3.patch \
- egcs-1.0.2-rth4.patch egcs-1.0.2-hjl2.patch egcs-1.0.2-jim.patch \
- egcs-1.0.2-haifa.patch egcs-1.0.1-objcbackend.patch \
- egcs-1.0.2-mips.patch; do patch -p1 -d < ../$i; done
+ patch -p1 < ../egcs-1.0.3a-mips.patch
./configure --prefix= --with-newlib --target=
- cd gcc
- make LANGUAGES="c"
+ make SUBDIRS="libiberty texinfo gcc" ALL_TARGET_MODULES= \
+ CONFIGURE_TARGET_MODULES= INSTALL_TARGET_MODULES= LANGUAGES="c"
Note that we deliberately don't build gcov, protoize, unprotoize and the
libraries. Gcov doesn't make sense in a crosscompiler environment and
@@ -733,47 +895,18 @@ find information that actually should be covered elsewhere.
because we don't have glibc installed yet. If everything went successfully,
install with:
- make LANGUAGES="c" install
+ make SUBDIRS="libiberty texinfo gcc" INSTALL_TARGET_MODULES= \
+ LANGUAGES="c" install
- float.h
- Another bootstrap problem is that building GCC requires running programs
- on the machine for which GCC will generate code, but since a crosscompiler
- is running on a different type of machine this cannot work. When building
- GCC this happens for the header file float.h. Luckily there is a simple
- solution: download the header file from one of the Linux/MIPS ftp servers
- or rip it from one of the native Linux/MIPS binary packages. Later when
- recompiling or upgrading egcs usually the already-installed float.h file
- will do because float.h changes rarely. Install it with:
-
- cp float.h //include/float.h
-
- where <version> is the internal version number of the egcs version you're
- using. For egcs 1.0.2 for example you would use egcs-2.90.27 for
- <version>. If not sure - ls is your friend.
+ If you only want the crosscompiler for building the kernel, you're done.
+ Crosscompiling libc is only required to be able to compile user applications.
- Installing the kernel sources
- Installing the kernel sources is simple. Just place them into some
- directory of your choice and configure them
- such that some files which are generated by the procedure will be
- installed. This works the same as you're used to when configuring the
- kernel sources for native compilation. The only problem you may run
- into is that you may need to install some required GNU programs like
- bash or have to override the manufacturer-provided versions of
- programs by placing the GNU versions earlier in the PATH variable. When
- configuring you should answer the question ``Are you using a
- crosscompiler'', that is the option CONFIG_CROSSCOMPILE, with ``yes''.
- When you're done with configuring type make clean; make depend; make.
- The last make command will generate the header file <linux/version.h>
- which compiling some programs depends on. This file is
- generated right at the beginning of the make command, so if
- you're not interested in actually building a kernel you may interrupt
- the compilation after this file has been built. It may be a good idea,
- however, to compile the kernel as a test for your newly-built crosscompiler.
-
- If you only want the crosscompiler for building the kernel, you're done.
- Crosscompiling libc is only required to be able to compile user
- applications.
+ Test what you've done so far
+ Just to make shure that what you've done so far is actually working you
+ may now try to compile the kernel. Cd to the MIPS kernel's sources and
+ type ``make clean; make dep; make''. If everything went ok do ``make clean''
+ once more to clean the sources.
Installing GNU libc
Do:
@@ -827,11 +960,7 @@ find information that actually should be covered elsewhere.
gzip -cd egcs-.tar.gz | tar xf -
cd egcs-
- for i in egcs-1.0.2-libio.patch egcs-1.0.2-hjl.patch \
- egcs-1.0.2-rth1.patch egcs-1.0.2-rth2.patch egcs-1.0.2-rth3.patch \
- egcs-1.0.2-rth4.patch egcs-1.0.2-hjl2.patch egcs-1.0.2-jim.patch \
- egcs-1.0.2-haifa.patch egcs-1.0.1-objcbackend.patch \
- egcs-1.0.2-mips.patch; do patch -p1 < ../$i; done
+ patch -p1 < ../egcs-1.0.3a-mips.patch
./configure --prefix= --target=
make LANGUAGES="c c++ objective-c f77"
@@ -842,12 +971,9 @@ find information that actually should be covered elsewhere.
make LANGUAGES="c c++ objective-c f77" install
- You're almost finished. All you have left to do now is to reinstall
- float.h, which has been overwritten by the last make install command.
- You'll have to do this every time you reinstall egcs as a crosscompiler.
- If you think you don't need the Objective C or F77 compilers you can
- omit them from above commands; each will save you about 3mb. Do not
- build gcov, protoize or unprotoize.
+ You're almost finished. If you think you don't need the Objective C or
+ F77 compilers you can omit them from above commands; each will save you about
+ 3mb. Do not build gcov, protoize or unprotoize.
Should I build the C++, Objective C or F77 compilers?
The answer to this question largely depends on your use of your crosscompiler
@@ -856,6 +982,21 @@ find information that actually should be covered elsewhere.
F77 compilers. You must, however, build the C++ compiler, because building
the libraries included with the egcs distribution requires C++.
+ Known problem when crosscompiling
+ IRIX crashes
+ Origin 200 running IRIX 6.5.1 may crash when running ``make depend''
+ on the Linux kernel sources. IRIX 6.5 on Indy and IRIX 6.5.4 on
+ Origin 200 are known to work. Further reports on that help isulating
+ the problematic configuration are welcome.
+
+ Resource limits on System V based hosts
+ Typical System V based Unices like IRIX or Solaris have limits for
+ the maximum number of arguments to be passed to a child process which
+ may be exceeded when crosscompiling some software like the Linux kernel
+ or GNU libc. For IRIX systems the maximum length of the argument list
+ defaults to 20kb while Linux defaults to at least 128kb. This size
+ can be modified by the command ``systune ncargs 131072'' as root.
+
GDB
Building GDB as crossdebugger is only of interest to kernel developers; for
them GDB may be a life saver. Such a remote debugging setup always
@@ -886,9 +1027,8 @@ find information that actually should be covered elsewhere.
to the Linux/MIPS mailing list!
John Hennessey, father of the MIPS architecture, was kind enough to write
- in the foreword: “ ... this book is the best combination of
- completeness and readability of any book on the MIPS architecture
- ...”
+ in the foreword: ``... this book is the best combination of completeness
+ and readability of any book on the MIPS architecture ...'';
It includes some context about RISC CPUs, a description of the
architecture and instruction set including the "co-processor 0"
@@ -918,11 +1058,11 @@ find information that actually should be covered elsewhere.
level, by the author of PMON. Strengths: lots of examples; weakness:
leaves out some big pieces of the architecture (such as memory management,
floating point and advanced caches) because they didn't feature in the LSI
- “embedded” products this book was meant to partner.
+ ``embedded''; products this book was meant to partner.
Computer Architecture - A Quantitative Approach
authors Hennessy & Patterson, published Morgan Kaufmann,
- ISBN 1-58860-329-8.
+ ISBN 1-55860-329-8.
The bible of modern computer architecture and a must-read if you want
to understand what makes programs run slow or fast. Is it about MIPS?
@@ -930,211 +1070,11 @@ find information that actually should be covered elsewhere.
defect is its size and weight - but unlike most big books it's worth
every page.
-Linux/MIPS news
- Some of this chapter is pretty historic ...
-
-
- 04-Dec-98
- Ariel Faigon announces that SGI has joined Linux International.
-
- 13-Oct-98
- Ralf Bächle fixes the support for R4000SC / R4400SC CPUs.
-
- 12-Oct-98
- Vladimir Roganov reports that his R3000 system is now stable enough to
- compile GDB.
-
- 03-Oct-98
- Harald Körfgen reports that his DECstation 5000/133 is now running
- single user. Congratulations!
-
- 29-Sep-98
- Ralf starts rewriting this FAQ to fit with reality.
-
- 10-Jun-98
- ftp.linux.sgi.com now offers anonymous CVS access.
-
- 01-Feb-98
- First commercial Linux/MIPS based product accounced.
-
- 26-Jan-98
- One more timewarp in this list because the maintainer is lazy^H^H^H^H
- busy coding. The driver for the NCR53c8xx has been modified and has been
- successfully tested with several machines, most notably the SNI RM200. Even
- better, the initial version seems to be reliable.
- Already some time ago Thomas Bogendörfer implemented the necessary
- changes to the NCR53C9x driver aka ESP driver, so there is now SCSI support
- for the builtin hostadapters in the Mips Magnum 4000, Olivetti M700-10 and
- Acer PICA.
-
- 28-Nov-97
- First public release of X11 client binaries.
-
- 30-Aug-97
- Duh, time warp in this page once again. A lot has happend in the meantime
- and the maintainer of this pages is a lazy person that rather prefers to
- code and hack than write docs...
- SGI now has its own Linux/MIPS server reachable as http://www.linux.sgi.com,
- with lots of SGI specific information and many links. The server is also reachable
- under ftp.linux.sgi.com. In addition to binaries, sources and docs specific
- to Silicon Graphic machines this server also has all the other Linux/MIPS
- stuff in stock. Only available on this server is the developers' cvs archive
- for download. Sorry, no anonymous CVS yet.
Silicon Graphics has supported
- some of the Linux key developers' work on Linux/MIPS with hardware. As a
- result the work is now advancing more quickly and Ralf is no longer the lone
- workhorse ...
Already available for some time the Indy port is now in
- the standard kernel source tree.
Long missing, but finally there: Thomas
- Bogendoerfer contributed patches to the NCR53C9x driver for Mips Magnum 4000,
- Olivetti M700 and Acer PICA.
Many more packages of a RedHat port to MIPS
- are now available for ftp download. Installing is still more a thing for
- experts ... but we're working on it!
Eeecmacs lovers will be pleased to
- hear that this FAQ has been edited by Emacs running on a Linux/MIPS machine.
-
- 6-May-97
- David Monro releases version 1.01 of bfsd. bfsd is a daemon that can be
- used to boot the machines built by Mips Computersystems, Inc. over a
- network.
-
- 10-Jun-96
- Release of Linux/MIPS kernel 2.0.4. This release features a partially
- rewritten signal handler that should match POSIX.1.
-
- 3-Jun-96
- First release of shared libraries for Linux/MIPS based on GNU libc snapshot
- 960619.
- Release of Linux/MIPS kernel 2.0.1.
-
- 25-May-96
- David S. Miller starts working on SGI support at Silicon Graphics.
-
- 20-May-96
- Release 1.3.98 of the kernel adds support for the SNI RM200 PCI.
-
- 27-Mar-96
- Linux/MIPS works as NFS server.
- The IDE CD driver now also supports Linux/MIPS.
-
- 24-Mar-96
- Added reference to literature available online form SGI to the FAQ.