Saturday, June 19, 2010

subnet tutorial

Subnetting
Subneting is the procedure to create logical sub-networks of a given network using bits assigned to the host address space. Obviusly, subnetting therefore, reduces the address space for hosts as each subnet also needs to reserve addresses for network and broadcast.

Lets take the example of a class C network address. A class C network address is in the form of n.n.n.h, implying that the first three octets of the 32 bit IP address is used to refer to the network and the last 8 bit octet is used to represent the host. therefore, a class C network can address 256 no of hosts.

Subnet Mask


Subnet mask is a 32 bit number, which helps to identify the network portion in an IP address. This is done by bit anding the subnet mask with the IP address. The default subnet mask for a class C address is 255.255.255.0, this mask implies that no subnets have been created for the IP address, and the entire host address space ( 256) is under one network.

Creation of subnet masks other than default subnet masks for class C nework:-

x x x x x x x x denotes 8 bits of the host address space.

1 0 0 0 0 0 0 0 -> 128

1 1 0 0 0 0 0 0 -> 192

1 1 1 0 0 0 0 0 -> 224

1 1 1 1 0 0 0 0 -> 240

1 1 1 1 1 0 0 0 -> 248

1 1 1 1 1 1 0 0 -> 252

1 1 1 1 1 1 1 0 -> 254

Notice that, there is no zero between the ones, this is one rule of subnet masking. It is quite simple for class C addresses, but for class A and B address, it may get a bit unwieldy as the number of bits in the host portion are more.If you keep this rule of continous ones as above, it should be easy enough to list out the subnets for class A and B as well.

The last subnet mask is not used as it leaves just one bit for defining hosts and none for broadcast address and leaves you with many subnets without any hosts.

Finding out the network address from an IP address.


IP address 10.205.15.20
Subnet mask : 255.255.255.192

Bit AND result : 10.205.15.0

So, host number 20 is part of the 0 subnet and its the 20th host in the 0 subnet.

Another example:

IP address : 10.205.15.130
Subnet mask : 255.255.255.192
Bit AND result : 10.205.15.128
so, it is the 2nd host in 128 subnet

Finding out the subnets in an network, given the subnet mask


Suppose, the network given is 10.205.15.34
and subnet mask is 255.255.255.192

1. The number of subnets is 2^x (not applicable to 128 mask) where x is the number of masked bits. masked bits are the bits which are 1 in the host portion

The no of masked bits in 192 mask is 2. so, there are 4 subnets. Out of these 4 subnets , one subnet is the 0 subnet (00) and one is the 1 subnet (11). Earlier these two subnets were not considered as subnets, but from a new RFC released in 1995, 0 and 1 subnet is also allowed.


so the subnets are :

0 0 0 0 0 0 0 0 -->0

0 1 0 0 0 0 0 0 --> 64

1 0 0 0 0 0 0 0 --> 128

1 1 0 0 0 0 0 0 --> 192

Since the no of possible subnets using the 192 mask is given above, we can write out the network, first host, last host and the broadcast address of these subnets.

subnet 0

first host-1
last host- 62
broadcast-63
No of hosts=62
subnet 64


first host-65
last host- 126
broadcast-127
No of hosts=126-65=62
Subnet 128


first host-129
last host- 190
broadcast-191
No of hosts=190-129=62
Subnet 192

first host-193
last host 254
broadcast 255

No of hosts=254-193=62

So, total no of hosts in these 4 subnets is 62X4=248

had we used the default subnet mask of 255.255.255.0, we would have had 254 hosts. so we loose six addresses for defining the network and broadcast address for the four subnets.

Finding the no of subnets for a given mask (easier method)



for example you want to find out the number of subnets in 252 subnet mask

1 1 1 1 1 1 0 0 -> 252

subtract the subnet mask from 256 and add the result to itself till you reach the subnet mask.

256-252=4
so the subnets are 4, 8,12,16,20,24,28,so on upto 252.

No of hosts per subnet is 2^ (no of unmasked bits)-2
so, in this case it is 2^2-2=2

CIDR notation


classless internet routing domain represents IP address and subnet mask in a new notation:-

10.205.15.30/24 implies that 24 bits are masked, so this is a class C IP address, with no subnets (255.255.255.0). 255 is 8 nos of 1. so, 3x8=24

10.205.15.30/25 implies one bit of the host is masked so the subnet mask is 255.255.255.128

10.205.15.30/26 denotes 255.255.255.192 and so on.

Sunday, May 30, 2010

installing debian using local file server

I had been installing debian on O2 systems using internet wherein the machine after net booting would download the necessary components from the internet. However this was getting difficult for installing to large number of systems. So, the alternate method had to be found to install debian on these systems. I summarize the steps:-)
1. Use get to copy ftp.debian.org/debian/lists/lend

Sunday, May 2, 2010

CREATING HD VIDEOS USING SONY CAMCORDER

Info #2 : The video output from the analog cables (component) is of the interlaced type (denoted by initial i. With resolution of ------

The video output from HDMI is non interlaced type (progressive scan denoted by initial p)

Camcorder send info in SD if the analog input is used, even if content is recorded in HD.

HD content is only delivered through HDMI.


 

Info# 3: Burning and playing HD content on DVD.

Camcorder records in MPEG4 AVC/H.264 AVCHD format. HD content can be burned by connecting external Sony DVD writer capable of AVCHD format .The connection between DVD writer and camcorder is via USB cable supplied with camcorder. Note that l DVD writers are not capable of playing HD content. HD content can only be played using a BD player. This method just enables creation of HD content on DVD media. Some DVD players may not eject such HD-DVD.


 

Info # 4: Recording modes, bit rate , avg file size and max duration possible:

S.No

Camcorder Format

Codec & bit rate

Max duration

Avg file size/hr

1.

HD FH

AVC HD 16Mbps

9 h 40 m

8.27 GB

2.

HD HQ

AVC HD 9Mbps

19 h 40 m

4 GB

3.

HD SP

AVC HD 7Mbps

24 h

3.3 GB

4.

HD LP

AVC HD 5Mbps

32 h

2.5 GB

5.

SD HQ

MPG2 9Mbps

19h 40m

8.27 GB

6.

SD SP

MPG2 6Mbps

29h 10m

2.8 GB

7.

SD LP

MPG2 3Mbps

56 h

1.4 GB


 


 

Info : Exporting video to computer

Use PMB to export movies and pics from camcorder . Its quite intuitive interface and can be done easily. Software is smart, and movies once imported to the computer are not imported again.


 

Info: Exporting video to hard disk

Only HD movies can be exported back to camcorder. Another reason for recording in HD J. Again, the PMB interface is intuitive and can be done easily.

Info: converting videos to wmv and mpg2

Can be done through PMB very easily.

Info: Playing the HD video on PC

Can be done through PMB .Splash player also plays the MPEG4 AVC/H.264 AVCHD created by sony camcorder fairly well. Splash player has fullscreen mode which is not there in the PMB interface.


 

Info: Burning HD DVD using Camcorder one touch button

Connect camcorder to computer using USB cable. Insert a DVD in the computer. Simply pressing the DISC BURN button on camcorder burns the HD video and photos to the DVD. But, the DVD so created can only be readable in blu ray players or Play Station3 not ordinary DVD players.


 

Info: Burning SD-DVD from HD content in the camcorder.

Use PMB software to create SD-DVD from the transferred HD content on computer.


 


 

Info: Playing HD disc on computer

HD DVD discs can be played using the AVCHD player included with PMB software.

DEBIAN ON SGI O2

INSTALLATION OF DEBIAN LINUX ON O2



O2 work station Technical Details


General information

The Silicon Graphics O2, introduced in 1996, is the successor to the Indy workstation. It comes in two flavours: the R5000/RM5271/RM7000 and the R10000/R12000. The former has space for two harddrives and the latter only for one, due to the size of the CPU heatsink. It is possible to put a R10000/R12000 into some R5k O2's by removing the metal separator between the mainboard and the harddrives, however, on some earlier models the separator is part of the chassis and cannot be removed short of cutting it out with a hacksaw.

The O2 was re-introduced with slight modifications as the O2+ in August 2001; the case colours were changed, a DVDROM came as standard, the serial port controller was improved, and the baseline CPU was replaced with the R7000/350MHz, though a recall of some early versions of this CPU is thought to have led to the O2's end of presence in the product line, afterwhich it was not replaced (the Fuel, released in January 2002, was not a replacement for O2; Fuel was intended purely to be a single-CPU mid-range system).

System architecture

The O2 features a proprietary high-bandwidth Unified Memory Architecture (UMA) that connects the various system components. A PCI bus is bridged onto the UMA with one slot available. It has a designer case and an internal modular construction. It has space for two SCSI drives mounted on special sleds (1 in the later R10000/R12000 models) and an optional video capture / sound cassette mounted on the far left side. Further information on the design and construction of the O2 can be found in SGI service manuals on Techpubs. Detailed breakdown pictures and an IRIX hinv dump can be found here.

O2: 32 bit or 64 bit

R5000 is a real 64bit processor. The O2 under IRIX ran as a 32bit, however under Linux, we use a 64bit kernel, but there is a catch: The IP32 PROM can't boot true 64bit kernels (hereby referred to as n64. So, we use a hack that's found in gcc/binutils called the o64 ABI, which is defined as the default 32bit ABI (o32) "extended" to 64bits. This builds an object file that looks like a 32bit file to the "file" utility, but really contains 64bit code.




CPU options

The O2 comes in two distinct CPU flavours; the low-end MIPS 180-350 MHz R5000/R7000 based units and the higher-end 150-400 MHz R10000/R12000 based units. The 200 MHz R5000 CPUs with 1 MB L2-cache are generally noticeably faster than the 180 MHz R5000s with only 512 KB L2-cache. Also of note is that there is no 300 Mhz R5000 CPU, the O2 will incorrectly report the RM5200 CPU as an R5000.

CPU Version:

Clock Speed:

2nd Level Cache:

R5000PC

180 MHz

-

R5000SC

180 MHz

512 KB

R5000SC

200 MHz

1 MB

R5200SC

300 MHz

1 MB

RM7000A

350 MHz

256 KB (+1 MB tertiary)

R10000SC

150, 175, 195, 225, 250 MHz

1 MB

R12000SC

270, 300 MHz

1 MB

R12000SC

400 MHz

2 MB


< name="Memory_subsystem">Memory subsystem

The motherboard has 8 proprietary 278-pin (139 per side) slots on the motherboard, accepting 4 paired sets of memory, referred to and sold as kits. The individual SDRAM DIMM modules come in 16 MB, 32 MB, 64 MB, and 128 MB sizes. The banks must be filled in order, and larger modules should be put in first. The O2 is expandable to 1 GB using 4 2x128 MB kits.

Original SGI DIMMs are either single-sided (SS) with memory chips on only one side of the module or double-sided (DS), and come color-coded to assist you in identifying what is installed. 3rd party DIMMs may or may not follow these conventions. Knowing the current memory configuration is important as DIMMs must be installed according to a number of specific rules. These rules follow the table in this section.

Size

Color Code 1

Color Code 2

SS/DS

Type

16 MB

Purple

-

SS

A

32 MB

Yellow

-

DS

A

64 MB

Green

White

SS

B

128 MB

Silver

-

DS

A

128 MB

Silver

White

DS

B




  • The DIMMs in slots 1 and 2 make up Bank A. DIMMs in slots 3 and 4 make up Bank B, and so on.
  • A bank of two slots must have a DIMM in each slot or be empty (except for slots 1 and 2, Bank A, which must always be populated.)
  • The two DIMMs in any bank must be of the same size and type.
  • The largest size DIMMs must be in Bank A.
  • DIMM banks must be filled sequentially, beginning with bank A.
  • Equal or smaller size DIMMs must be in Bank B, and so on.
  • Do not skip banks, or the memory will not be recognized.

To install high density (128 MB) DIMMs, PROM revision 4.4 or higher is required. With older PROM revisions maximum memory is 256 MB. For IRIX 6.3 there are patches to upgrade the PROM, for IRIX 6.5 PROM images come with the operating system and overlays CD sets.


Graphics subsystem

  • The CRM chipset that SGI developed for the O2, shares OpenGL calculations between CPU and chip. Due to the unified memory architecture, framebuffer memory comes from main memory, and there is effectively an 'unlimited' amount of texture memory. Another useful feature is that any incoming video data from the Audio/Video option can be used directly as an OpenGL texture without having to perform a copy or move.
  • ICE (Image Compression Engine -- a dedicated 64-bit R4000-based processor containing a 128-bit SIMD unit running at 66 MHz, which is used to accelerate various image and video operations)
  • OpenGL 1.1 + ARB image extensions

O2 Video System

The O2 Video system simultaneously supports two input video streams to memory and one output video stream from memory which can be seperated into two outputs, one carrying pixel information, the other carrying alpha (key) information.

Using the O2 Video system, it is possible to capture live video into the computer's memory which can then be displayed in a graphics window on the screen or further processed by an application. It is also possible to generate video output from images in memory, which can be displayed on a standard video monitor, or recorded to a VTR. Using the VL programming library , a program can capture video in either the RGB or YCrCb color spaces, and either full or reduced size formats, and in a format usable for input to the compressor/decompressor, display on the graphics screen, or as an input to a graphics processing and/or texture operation.

SGI offered 2 video options for the O2/O2+: the AV1 interface and the AV2 interface.

CONNECTING EXTERNAL HDD

I have connected a 76 GB external SCSI HDD. The hinv command on command monitor shows it as scsi(1)disk(1),The internal hard disk was shown as scsi(0)disk(1) and the CDROM drive was shown as scsi(0)cdrom(4).


The Debian MIPS team recommends net booting approach.


Netbooting the O2 using a DHCP/TFTP server. A laptop running Ubuntu Linux was configured as DHCP/TFTP server. The Boot image was downloaded from ftp://ftp.nl.debian.org/debian/dists/lenny/main/installer-mips/current/images/r5k-ip32/. This image was copied to /var/lib/tftpboot folder of the laptop and all necessary permissions were given.


After installation of TFTP service, using sudo apt-get install tftpd-hpa on the ubuntu laptop, the configuration file for tftp was edited and the path for the tftp boot image was corrected as /var/lib/tftpboot. The DHCP service was instaled using sudo apt-get install dhcp3-server


Checking if dhcp and tftp services are running:

Check for TFTP:


# netstat -al grep ^ UDP


Should return this line:


UDP 0 *; tftp *.*


If not, try this command:-


# /etc/init.d/tftpd-hpa start


Check for DHCP:


# ps x grep DHCP


should return some entry in sbin directory named dhcp along with the process id.


If the service is not running:-


# /etc/init.d/dhcpd3-server restart


Setting up the dhcp server:-

The settings of the dhcp server are controlled by dhcpd.conf in /etc folder. The dhcpd.conf looks like:-


host o2 {

option tftp-server-name "192.168.2.104";

next-server 192.168.2.104;

filename "o2-boot.img";

hardware ethernet 08:00:69:0E:94:CF;

fixed-address 192.168.2.106;

nameserver 218.248.240.79;

}


Line # 1 is the ip address of the laptop, the same ip address is repeated in line # 2. Line#3 is the name of the boot image stored in /var/lib/tftpboot. Notice that the path is relative, therefore, full path is not necessary. The full path is picked up from the tftp config file. Line#4 is the MAC address of O2 which we are trying to boot. The MAC address can be got from hinv or ifconfig. On some O2s, it is also written on the base of the machine. Line # 5 is the IP address which we want to give to the O2. Since we were using a setup with broadband router and a broadband modem, the setup is shown below, we are using the 192.168.2 network for the dhcp server and the O2. Line # 6 is optional, it is the IP address of DNS server of the broadband ISP. It may be necessary in some situations when the O2 is not able to resolve the ftp address(s) to download the remaining files for complete installation.



Some /proc corrections
The netboot server replies on some higher ports, which the O2 PROM is not able to listen to, therefore, the port range has to be restricted on the tftp server to 32767:-
echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range

Also, O2 PROM does not support MTU discovery, therefore, this line is to be added to the tftp server:-
echo "1" > /proc/sys/net/ipv4/ip_no_pmtu_disc



NETBOOTING PROCEDURE


After checking that tftp and dhcp services are up and running on the laptop, ping the DNS IP to check if internet is up and running. Now, boot the O2 and when the PROM screen comes up, click on 'Stop for Maintenance' button, and then click on command monitor button to arrive at > command prompt. give the folowing command:-


> setenv netaddr 192.168.2.106


>bootp()


If everything is correct, the O2 will download the boot image via tftp and after 2-3 seconds, you should be able to see the familiar tux logo with SGI written on it and the booting will start.





Issues encountered while netbooting (given in sequence as encountered):


(a) After giving bootp(), returns error, unable to find the boot file.

The /var/log/messages in the ubuntu laptop shows that O2 is trying to connect to the laptop and the laptop is responding to the request. However, no further details are evident. Finally, it was resolved to be permissions problem in the /var/lib/tftpboot folder. necesary read and write permissions were given.


(b) Next, it was giving TFTP error index 4. everything looked allright, the tftp and dhcp services were running in laptop, so, rebooted the o2 using the init command and then tried bootp():-

>init

>setenv netaddr 192.168.2.106

>bootp()


c) If the ports are not restricted to 32767 and MTU discovery is not turned off on the tftp server, O2 does not boot on giving bootp(): command. It just returns an error: invalid argument.


Now, things started working smoothly.After booting, O2 was able to connect to the ftp sites to download and complete the rest of installation as described below:-

Choose a language. English only if you are using the serial console. Credit to Martin Michlmayr for pointing this out.



Choose a language:


Albanian #

Arabic #

Basque #

Bosnian #

Bulgarian #

Catalan #

Chinese (Simplified) #

Chinese (Traditional) #

Croatian #

Czech #

Danish #

Dutch #

English #




Choose a country



Based on your language, you are probably located in one of these

countries or regions.


Choose a country, territory or area:


Denmark #

Hong Kong #

India #

Ireland #

New Zealand #

Philippines #

Singapore #

South Africa #

United Kingdom #

United States #


<Go Back>


In graphical install, it may complain about the keyboard layout. Ignore the error and skip to Detect network hardware and select eth0.

Configure the network... dhcp should work automagically based on the previous steps.

Hostname



Please enter the hostname for this system.


The hostname is a single word that identifies your system to the

network. If you don't know what your hostname should be, consult your

network administrator. If you are setting up your own home network,

you can make something up here.


Hostname:


o2___________________________________________________________________


<Go Back>



Domain name



The domain name is the part of your Internet address to the right of

your host name. It is often something that ends in .com, .net, .edu,

or .org. If you are setting up a home network, you can make

something up, but make sure you use the same domain name on all your

computers.


Domain name:


somedomain.bogus_____________________________________________________


<Go Back>


Select a convenient mirror.

Select United States



The goal is to find a mirror of the Debian archive that is close to

you on the network -- be aware that nearby countries, or even your

own, may not be the best choice.


Debian archive mirror country:


Sweden #

Singapore #

Slovenia #

Slovakia #

Thailand #

Turkey #

Taiwan #

Ukraine #

United States #


<Go Back>



Select ftp.us.debian.org



Please select a Debian archive mirror. You should use a mirror in

your country or region if you do not know which mirror has the best

Internet connection to you.


Usually, ftp.<your country code>.debian.org is a good choice.


Debian archive mirror:


debian.oregonstate.edu #

ftp.us.debian.org #

archive.progeny.com #

ftp.debian.org #

mirrors.kernel.org #

wuarchive.wustl.edu #

mirrors.rcn.net #


<Go Back>


No Proxy



If you need to use a HTTP proxy to access the outside world, enter

the proxy information here. Otherwise, leave this blank.


The proxy information should be given in the standard form of

"http://[[user][:pass]@]host[:port]/"


HTTP proxy information (blank for none):


___________________________________________________________________


<Go Back>



All relevant modules are compiled in. Select Yes to continue without loading modules.



No kernel modules were found. This probably is due to a mismatch

between the kernel used by this version of the installer and the

kernel version available in the archive.


If you're installing from a mirror, you can work around this problem

by choosing to install a different version of Debian. The install

will probably fail to work if you continue without kernel modules.


Continue the install without loading kernel modules?


<Go Back> <Yes> <No>


Partition the disk. This step is very important. The GUI does not partition the disks properly, so the disk(s) need to be partitioned manually.

Select No to continue. Note: You will only need to do this if you do not see this screen.



This partitioner doesn't have information about the default type of

+ the partition tables on your architecture. Please send an e-mail

message to debian-boot@lists.debian.org with information.


Please note that if the type of the partition table is unsupported by

libparted, then this partitioner will not work properly.


+ Continue with partitioning?


<Go Back> <Yes> <No>


Select Partition a hard drive



This is the main menu for the Debian installer.


Choose the next step in the install process:


Choose language #

Choose country or region #

Select a keyboard layout #

Detect network hardware #

Configure the network #

Choose a mirror of the Debian archive #

Download installer components #

Detect hardware #

Partition disks #

Partition a hard drive #

Configure and mount partitions #



Select the drive you want to partition.



Please choose one of the listed disks, to create partitions on it.


Disk to partition:


/dev/scsi/host0/bus0/target1/lun0/disc (SGI SEAGATE ST34572W/ 434

Finish


Start Another shell using Alt+ F2 and zero fill the entire disk to delete any existing SGI Partitions.

dd <space> if=/dev/zero <space> of=/dev/sda <space> count=1

will return : 1 + 0 records in, 1 + 0 records out

now, return to previous shell by pressing Alt + F1

This should get you to a fdisk prompt. Type p to print the drive stats. Pay close attention to the cylinder size.


Command (m for help): p


Disk /dev/scsi/host0/bus0/target1/lun0/disc (SGI disk label): 141 heads, 62 sectors, 1016 cylinders

Units = cylinders of 8742 * 512 bytes


----- partitions -----

Pt# Device Info Start End Sectors Id System

1: /dev/scsi/host0/bus0/target1/lun0/part1 boot 18 985 8462256 83 Linux native

2: /dev/scsi/host0/bus0/target1/lun0/part2 swap 986 1015 262260 82 Linux swap

9: /dev/scsi/host0/bus0/target1/lun0/part3 0 17 157356 0 SGI volhdr

11: /dev/scsi/host0/bus0/target1/lun0/part4 0 1015 8881872 6 SGI volume

----- Bootinfo -----

Bootfile: /unix

----- Directory Entries -----

The example above shows a drive that's properly partitioned. We'll pretend it's not and walk through how to properly partition the disk.

Notice the Units = ... line. What this line indicates is (8742*512) bytes/cylinder or roughly 4.48MB/cylinder. This may vary across different disks.

Go into expert mode (x), and create a SGI partition table. Note, if it already has an SGI label, you will not have access to expert mode. Use {{r} to return to non-expert mode.


Command (m for help): x


Expert command (m for help): g

Building a new SGI disklabel. Changes will remain in memory only,

until you decide to write them. After that, of course, the previous

content will be unrecoverably lost.



Expert command (m for help): r


Command (m for help): p


Disk /dev/scsi/host0/bus0/target1/lun0/disc (SGI disk label): 141 heads, 62 sectors, 1016 cylinders

Units = cylinders of 8742 * 512 bytes


----- partitions -----

Pt# Device Info Start End Sectors Id System

9: /dev/scsi/host0/bus0/target1/lun0/part1 0 4 43710 0 SGI volhdr

11: /dev/scsi/host0/bus0/target1/lun0/part2 0 1015 8881872 6 SGI volume

----- Bootinfo -----

Bootfile: /unix

----- Directory Entries -----


Command (m for help):

The default SGI volhdr is too large. It only needs to be big enough to hold the arcboot image, which is only about 250kB. From the Units = ... line, we know that each cylinder is rougly 4.48MB/cylinder. For this disc, the first cylinder should be enough to hold the arcboot image. Leaving it as default is also safe. Thanks to Ladislav Michl and Thiemo Seufer for clarifying this point.


Command (m for help): d

Partition number (1-16): 9


Command (m for help): n

Partition number (1-16): 9

First cylinder (0-1015, default 0):

Using default value 0

Last cylinder (0-1015, default 1015): 1


Command (m for help): p


Disk /dev/scsi/host0/bus0/target1/lun0/disc (SGI disk label): 141 heads, 62 sectors, 1016 cylinders

Units = cylinders of 8742 * 512 bytes


----- partitions -----

Pt# Device Info Start End Sectors Id System

9: /dev/scsi/host0/bus0/target1/lun0/part1 0 1 17484 0 SGI volhdr

11: /dev/scsi/host0/bus0/target1/lun0/part2 0 1015 8881872 6 SGI volume

----- Bootinfo -----

Bootfile: /unix

----- Directory Entries -----

Now create the root (/) and swap partitions. The following example will create a ~4.0GB root partition and a ~128MB swap partition.


Command (m for help): n

Partition number (1-16): 1

First cylinder (2-1015, default 2):

Using default value 2

Last cylinder (2-1015, default 1015): 985


Command (m for help): n

Partition number (1-16): 2

First cylinder (986-1015, default 986):

Using default value 986

Last cylinder (986-1015, default 1015):

Using default value 1015


Command (m for help): t

Partition number (1-16): 2

Hex code (type L to list codes): 82

Changed system type of partition 2 to 82 (Linux swap)


Command (m for help): p


Disk /dev/scsi/host0/bus0/target1/lun0/disc (SGI disk label): 141 heads, 62 sectors, 1016 cylinders

Units = cylinders of 8742 * 512 bytes


----- partitions -----

Pt# Device Info Start End Sectors Id System

1: /dev/scsi/host0/bus0/target1/lun0/part1 boot 2 985 8602128 83 Linux native

2: /dev/scsi/host0/bus0/target1/lun0/part2 swap 986 1015 262260 82 Linux swap

9: /dev/scsi/host0/bus0/target1/lun0/part3 0 1 17484 0 SGI volhdr

11: /dev/scsi/host0/bus0/target1/lun0/part4 0 1015 8881872 6 SGI volume

----- Bootinfo -----

Bootfile: /unix

----- Directory Entries -----


Command (m for help): w

Select Finish.



Please choose one of the listed disks, to create partitions on it.


Disk to partition:


/dev/scsi/host0/bus0/target1/lun0/disc (SGI SEAGATE ST34572W/ 434

Finish


Select the first partition.



These are the partitions that were detected in your system. Please

select a partition to configure. No actual changes will be made until

you select "Finish". If you select "Abort", no changes will be made.


The information shown is, in order: device name, size, file system,

and mount point.


Select a partition


SCSI1 (0,1,0) part. 1 4.0 GiB n/a

SCSI1 (0,1,0) part. 2 128 MiB n/a

Finish

Abort


<Go Back>


Create an ext3 filesystem.



This partition does not seem to have a file system. You can create a

file system or swap space on it.


Action on /dev/scsi/host0/bus0/target1/lun0/part1:


Create ext3 file system

Create ext2 file system

Create swap space


<Go Back>


Mount it as /.



When a partition is mounted, it is available to the users of the

system. You always need a root ("/") partition, and it's often good

to have a separate partition for /home.


Mount point for /dev/scsi/host0/bus0/target1/lun0/part1:


/

/usr

/boot

/home

/var

/tmp

Don't mount it

Enter manually


<Go Back>



Select the second partition.



These are the partitions that were detected in your system. Please

select a partition to configure. No actual changes will be made until

you select "Finish". If you select "Abort", no changes will be made.


The information shown is, in order: device name, size, file system,

and mount point.


Select a partition


SCSI1 (0,1,0) part. 1 4.0 GiB ext3 /

SCSI1 (0,1,0) part. 2 128 MiB n/a

Finish

Abort


<Go Back>


Create a swap space.



This partition does not seem to have a file system. You can create a

file system or swap space on it.


Action on /dev/scsi/host0/bus0/target1/lun0/part2:


Create ext3 file system

Create ext2 file system

Create swap space


<Go Back>


Select Finish



These are the partitions that were detected in your system. Please

select a partition to configure. No actual changes will be made until

you select "Finish". If you select "Abort", no changes will be made.


The information shown is, in order: device name, size, file system,

and mount point.


Select a partition


SCSI1 (0,1,0) part. 1 4.0 GiB ext3 /

SCSI1 (0,1,0) part. 2 128 MiB swap

Finish

Abort


<Go Back>


Select Yes to create and mount the new filesystems.



File systems will be created and partitions mounted.


WARNING: This will destroy all data on the partitions you have

assigned file systems to.


Ready to create file systems and mount partitions?


<Go Back> <Yes> <No>


You may run into the following message when the installer tries to mount the partitions. Select No to continue.



Since the partitions have already been mounted, you cannot do any

changes.


Do you want to unmount the partitions so you can make changes?


<Go Back> <Yes> <No>


After partitioning, the base system should install over the network.

Finishing the installation.

If the boot loader is able to install during the installation flow, Click here to skip the manual installation of the bootloader.

Boot loader. Select Continue.


No boot loader installed

No boot loader has been installed, either because you chose not to or

because your specific architecture doesn't support a boot loader yet.


You will need to boot manually with the /vmlinux kernel on partition

/dev/sda1 and root=/dev/sda1 passed as kernel argument.


<Continue>



If you get the above message saying no boot loader was installed, select Go Back


+ Installation complete

Installation is complete, so it is time to boot into your new Debian

system. Make sure to remove the installation media (CD-ROM,

floppies), so that your system boots from the disk to which Debian

was installed.


+ <Go Back> <Continue>


Install the bootloader manually. Select Excute a shell



This is the main menu for the Debian installer.


Choose the next step in the install process:


Detect hardware #

Partition disks #

Partition a hard drive #

Configure and mount partitions #

Install the base system #

Continue without boot loader #

Finish the installation #

Change debconf priority #

Save debug logs #

Execute a shell #

Abort the installation #


Select Continue


Interactive shell

After this message, you will be running "ash", a Bourne-shell clone.


The root filesystem is a RAM disk. The hard disk file systems are

mounted on "/target". The editor available to you is nano. It's very

small and easy to figure out. To get an idea of what Unix utilities

are available to you, use the "help" command.


Use the "exit" command to return to the installation menu.


<Go Back> <Continue>



The newly installed filesystem should be mounted as /target. Chroot to it, mount /proc, and install arcboot with apt-get.


BusyBox v1.00-pre10 (Debian 20040623-1) Built-in shell (ash)

Enter 'help' for a list of built-in commands.


~ # df

Filesystem 1k-blocks Used Available Use% Mounted on

tmpfs 102400 20736 81664 20% /

/dev/scsi/host0/bus0/target1/lun0/part1 4143076 253836 3678780 6% /target

~ # chroot /target

sh-2.05b# mount /proc

sh-2.05b# mount

/dev/sda1 on / type ext3 (rw,errors=remount-ro)

proc on /proc type proc (rw)

sh-2.05b# apt-get install arcboot

The default /dev/sda should be fine.


Arcboot must be put into the volume header of a disk with a SGI

disklabel. Usually the volume header of /dev/sda is used. Please give

the device name of the disk you want to put arcboot onto.


Where to put arcboot?


/dev/sda_______________________________________________________________


<Ok>


If arcboot was installed automatically during the flow of the install process, you get the following message. Select Continue. The installation will finish and reboot automatically.


Setting PROM variables for Arcboot

If this is the first Linux installation on this machine, or if the #

hard drives have been repartitioned, some variables need to be set in #

the PROM before the system is able to boot normally. #

#

At the end of this installation stage, the system will reboot. After #

this, enter the command monitor from the "Stop for Maintenance" #

option, and enter the following commands: #

#

setenv SystemPartition scsi(0)disk(1)rdisk(0)partition(8) #

setenv OSLoadPartition scsi(0)disk(1)rdisk(0)partition(0) #

setenv OSLoader arcboot #

setenv OSLoadFilename Linux #

#

You will only need to do this once. Afterwards, enter the "boot" #

command or reboot the system to proceed to the next Debian #


<Continue>



Otherwise, if you are having to install arcboot manually, continue on...

If arcboot installed properly, it should look as follows. Note arcboot.ip32. ip32 is the O2 architecture.


Selecting previously deselected package arcboot.

(Reading database ... 8492 files and directories currently installed.)

Unpacking arcboot (from .../arcboot_0.3.8.6_mips.deb) ...

Setting up arcboot (0.3.8.6) ...

Putting arcboot.ip32 into the volume header of /dev/sda...done.

Take a look at /etc/arcboot.conf and take note of the label= line.


sh-2.05b# cat /etc/arcboot.conf

# arcboot.conf

#

label=linux

image=/vmlinux

append="root=/dev/sda1"

Exit the shell


sh-2.05b# exit

exit

~ # exit

Select Finish the installation



This is the main menu for the Debian installer.


Choose the next step in the install process:


Choose a mirror of the Debian archive #

Download installer components #

Detect hardware #

Partition disks #

Partition a hard drive #

Configure and mount partitions #

Install the base system #

Continue without boot loader #

Finish the installation #

Change debconf priority #

Save debug logs #


Select Continue


+ Installation complete

Installation is complete, so it is time to boot into your new Debian

system. Make sure to remove the installation media (CD-ROM,

floppies), so that your system boots from the disk to which Debian

was installed.


+ <Go Back> <Continue>


Making Linux boot automatically. In System Maintenance Menu, select Enter Command Monitor. The OSLoadFilename environment variable should match the label= from the previous step. If arcboot installed automatically for you, just cut and paste the lines from Setting PROM variables for Arcboot dialog. It is case sensitive.


Running power-on diagnostics...




Starting up the system...


To perform system maintenance instead, press <Esc>



System Maintenance Menu


1) Start System

2) Install System Software

3) Run Diagnostics

4) Recover System

5) Enter Command Monitor


Option? 5

Command Monitor. Type "exit" to return to the menu.

> setenv OSLoader arcboot

> setenv SystemPartition scsi(0)disk(1)rdisk(0)partition(8)

> setenv OSLoadPartition scsi(0)disk(1)rdisk(0)partition(0)

> setenv OSLoadFilename linux

> exit


Restart the system, and debian should start loading. If the GUI (X) does not start, edit the file /etc/xorg.conf with the settings as shown below:-


# XF86Config-4 (XFree86 X Window System server configuration file)

#

# This file was generated by dexconf, the Debian X Configuration tool, using

# values from the debconf database.

#

# Edit this file with caution, and see the XF86Config-4 manual page.

# (Type "man XF86Config-4" at the shell prompt.)

#

# This file is automatically updated on xserver-xfree86 package upgrades *only*

# if it has not been modified since the last upgrade of the xserver-xfree86

# package.

#

# If you have edited this file but would like it to be automatically updated

# again, run the following commands as root:

#

# cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.custom

# md5sum /etc/X11/XF86Config-4 >/var/lib/xfree86/XF86Config-4.md5sum

# dpkg-reconfigure xserver-xfree86


Section "Files"

FontPath "unix/:7100" # local font server

# if the local font server has problems, we can fall back on these

FontPath "/usr/lib/X11/fonts/misc"

FontPath "/usr/lib/X11/fonts/cyrillic"

FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"

FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"

FontPath "/usr/lib/X11/fonts/Type1"

FontPath "/usr/lib/X11/fonts/CID"

FontPath "/usr/lib/X11/fonts/Speedo"

FontPath "/usr/lib/X11/fonts/100dpi"

FontPath "/usr/lib/X11/fonts/75dpi"

EndSection


Section "Module"

Load "GLcore"

Load "bitmap"

Load "dbe"

Load "ddc"

Load "dri"

Load "extmod"

Load "freetype"

Load "glx"

Load "int10"

Load "record"

Load "speedo"

Load "type1"

Load "vbe"

EndSection


Section "InputDevice"

Identifier "Generic Keyboard"

Driver "keyboard"

Option "CoreKeyboard"

Option "XkbRules" "xfree86"

Option "XkbModel" "pc104"

Option "XkbLayout" "us"

EndSection


Section "InputDevice"

Identifier "Scroll Mouse"

Driver "mouse"

Option "CorePointer"

Option "Device" "/dev/psaux"

Option "Protocol" "IMPS/2"

Option "Emulate3Buttons" "false"

Option "ZAxisMapping" "4 5"

EndSection


Section "InputDevice"

Identifier "SGI Mouse"

Driver "mouse"

Option "CorePointer"

Option "Device" "/dev/psaux"

Option "Protocol" "PS/2"

Option "Emulate3Buttons" "false"

EndSection


Section "Device"

Identifier "Generic Video Card"

Driver "fbdev"

Option "UseFBDev" "true"

EndSection


Section "Monitor"

Identifier "LCD Monitor"

VendorName "Dell"

ModelName "2001fp"

HorizSync 31.0-80.0

VertRefresh 56.0-76.0

Option "DPMS"

EndSection


Section "Monitor"

Identifier "SGI Monitor"

VendorName "SGI"

ModelName "GDM-5011p"

HorizSync 30-117

VertRefresh 50-180

Option "DPMS"

EndSection


Section "Screen"

Identifier "Default Screen"

Device "Generic Video Card"

Monitor "SGI Monitor"

# DefaultDepth 15

SubSection "Display"

# Depth 15

Modes "1600x1200"

EndSubSection

EndSection


Section "ServerLayout"

Identifier "Default Layout"

Screen "Default Screen"

InputDevice "Generic Keyboard"

InputDevice "SGI Mouse"

EndSection


Section "DRI"

Mode 0666

EndSection


Linux DEbian useful commands

The network manager in debian is the GUI based application for configuring networks.

To Stop Network Manager :-

nm-applet --sm -disable

To see the available interfaces

ifconfig

To make an interface up or down:-

ifconfig eth1 up/down

To configure network interface:-

nano /etc/network/interfaces

if you want to configure an interface as static:-

auto eth0

iface eth0 inet static

address <ip address>

netmask 255.255.255.0

gateway 10.205.15.1

broadcast 10.205.15.255

network 10.205.15.0


 

if you want to configure an interface as dhcp:-

auto eth0

iface eth0 inet dhcp

To restart networking from command line after editing interfaces file:-

/etc/init.d/networking restart

Configure Nameservers

Nano /etc/resolv.conf

To include proxy server information

#export http_proxy="10.205.3.101:8080"

#export ftp_proxy="10.205.3.101:8080"

To include proxy server information for apt to update packages

Create a new file called proxy

#nano /etc/apt/apt.conf.d/proxy

Type the following info in this file

Acquire::http::Proxy <space> "http://10.205.3.101:8080";

Save and close the file

To install ssh and SFTP services

Apt-get install ssh

Activate sftp in sshd-config

Nano /usr/lib/openssh/sftp-server

To install Apache

Apt-get install apache2

Default webroot of Apache is /var/www.

To change default webroot to some other path

Nano /etc/apache2/sites-available/default

And change /var/www to whatever path you wish

Setting up DHCP Server

Apt-get install dhcp3-server

After initial setup, the dhcp server may not turn on, then, edit the dhcpd.conf as shown below and uncomment the lines in this file as per your choice. Then, try starting the server

To configure DHCP server

Nano /etc/dhcp3/dhcpd.conf

To Start/Stop/Restart DHCP Server

#/etc/init.d/dhcp3-server start/stop/restart


 

Setting up TFTP server

#apt-get install tftpd-hpa

To configure TFTP boot file path (default /var/lib/tftpboot), we have to use the internet superserver configuration file inetd.conf, scroll down to the tftp entries

#nano /etc/inetd.conf

To switch on TFTP daemon, change the run daemon from "no" to "yes"

# nano /etc/default/tftpd-hpa

To Start/Stop/Restart TFTP Server

#/etc/init.d/tftpd-hpa start

To remove a package

#apt-get<space> remove <space> <package_name>

To remove a package along with all associated config files

#apt-get <space> --purge <space> remove <space> <package_name>

To Stop GNOME Display Manager (I.e., to unload X)


 

# update -rc.d <space> -f <space>gdm <space> remove


 

TO Load GDM on boot


 

# update -rc.d <space> -f <space>gdm <space> defaults


 

I made changes to some critical system files, but, upon reboot, system does not boot properly and gives Kernel Panic. How do I undo the changes?

  1. Remove the disk
  2. Insert it into a working system
  3. Mount the disk to a folder in the working system
  4. Chroot into the path as follows

    # chroot /test /bin/bash

  5. CD <space> ~
  6. Then, undo changes to any files and save


 

Database Path for postgre sql is /var/lib/postgres/data


 

Connecting and External SCSI hard disk to workstation

  1. Zero fill the entire disk to remove SGI partition or any other partition

    dd if=/dev/zero of=/dev/sdb count=1

  2. fdisk /dev/sdb (to partition hard drive)
  3. Create primary partition # 1
  4. Start cylinder=1 (default)
  5. Last cylinder=last cyl (default)
  6. Write changes to disk (w)
  7. Verify that the partition type is 83 (Linux) using p command
  8. The HDD would be visible as single partition /dev/sdb1
  9. Format an ext3 file system

    # mke2fs <space> -j <space> /dev/sdb1

  10. Mount the disk

    # mount /dev/sdb1 /test


     

Wednesday, January 20, 2010

Failed attempt to load gentoo linux on O2 work station

Installing Linux on SGI
Silicon Graphics International (SGI) launched their O2 workstations in 1996 as a successor to the Indy workstations.More technical details of the workstation can be found at http://www.nekochan.net/wiki/index.php/SGI_O2The O2 on which Linux was installed had 256 MB SDRAM and used the R5000 Processor clocked at 300 Mhz. The HDD capacity was 4 GB.
First Attempt: Gentoo on O2 SGI
Gentoo is a Linux Distribution which is considered to be very customisable with its powerful porteage and emerge features.
First, I created a live CD for SGI O2 architecture. The CD image can be found at the Oregon State UNiversity Mirror http://gentoo.osuosl.org/experimental/mips/livecd/x-rc6/Also, On my hard disk at C:\OLD PROJECTS\Linux on SGI O2\livecdwhich is also backed up using my CD catalog software.
CREATING THE LIVE CD
The O2 PROM (something similar to BIOS in ordinary workstation) tries to look for a 'boot sector' on the Boot CD. Therefore, the CD should have a partition which stores the bootable info. Such CD's can't be created in windows based burning software which burns in ISO 9660 format. Therefore, it requries a Linux PC using the command line cdrecord given from terminal. I used RedHat 4 to burn this image on the CD.
RUNNING THE LIVE CD
After inserting the CD, reboot the machine.When the 'Stop for maintenance'button comes on screen, click that and enter into the PROM GUI. Click on boot from CD ROM and complete the remaining steps by clicking 'Next'. If the CD is burned properly, you should see the Tux logo with SGI logo superimposed on it.The CD uses the XFCE desktop and is fully functional. If you connect an ethernet cable (before booting),and if you have a DHCP server on your network,the machine should be able to get an IP address from the DHCP server and if you set the proxy, browse internet as well. Live Cd installs on the RAM called ramdisk.This live CD is pretty much for demo purposes only.
INSTALLING SYSTEM FROM LIVE CD-FAILURE
There is a detailed user manual for installing Gentoo on MIPS which can be foud at http://www.gentoo.org/doc/en/handbook/handbook-mips.xml.The approach recomended is to netboot the system using TFTP/DHCP server. Somehow, for starters, this method was found to be complicated (though, it really isn't) and instead I thought, we can skip some steps of netbooting, as we already have the system booted up and running.Therefore, I skipped the earlier chapters and bagan with chapter 4, "Partitioning of Disks". The explanation given to partition the disk and to create a filesystem, was bit too complicated in the the above documentation, primarily, because, the documentation is intended for many SGI machines, like O2, cobalt and Indy. Iam summarising the major steps:-
1. Create an SGI disk labelThe disk label exists in the 9th Partition of the Hard Disk.It stores information about the disk partitions.First, start an fdisk session.Since SCSI drive is present, the device name would be sda. For IDE devices, it is generally hda.
fdisk /dev/sdaCommand (m for help): xx gets you to the expert mode in fdisk.
Expert command (m for help): mCommand action b move beginning of data in a partition c change number of cylinders d print the raw data in the partition table e list extended partitions f fix partition order g create an IRIX (SGI) partition table h change number of heads m print this menu p print the partition table q quit without saving changes r return to main menu s change number of sectors/track v verify the partition table w write table to disk and exit
Expert command (m for help): g
Now, Note that If a disk already has SGI disk label, it will not create another disk label. In this case, you have to exit the fdisk and fill the entire disk with zero and start over again. dd if=/dev/zero of=/dev/sda bs=512 count=1. This will completely fill the disk with zero. try giving g at expert mode and SGI disk label should be created for you.
Building a new SGI disklabel. Changes will remain in memory only,until you decide to write them. After that, of course, the previouscontent will be irrecoverably lost.
Expert command (m for help): r
Command (m for help): p
Disk /dev/scsi/host0/bus0/target1/lun0/disc (SGI disk label): 141 heads, 62 sectors, 1016 cylindersUnits = cylinders of 8742 * 512 bytes
----- partitions -----Pt# Device Info Start End Sectors Id System 9: /dev/sda1 0 4 10240 0 SGI volhdr11: /dev/sda2 0 1015 35803136 6 SGI volume----- Bootinfo -----Bootfile: /unix----- Directory Entries -----
Notice that Partition 9 starts from Cylinder 0 and Ends at Cylinder 4 and is known as SGI volume header. Another Partition, #11, spans the entire disk and is called SGI volume.
Step#2: Modify the size of Partition #9 (SGI Volhdr)This step tries to modify the partition #9 to make it right size for the gentoo boot loader and multiple kernel images to fit in.Due to some odd fdisk behaviour, it is not possible to adjust the size of partition # 9 directly. Therefore, first we create Partition #1.
Command (m for help): nPartition number (1-16): 1First cylinder (5-1015, default 5): 51 Last cylinder (51-1015, default 8682): 985
(Notice how fdisk only allows Partition #1 to be re-created starting at a )(minimum of cylinder 5? Had you attempted to delete & re-create the SGI )(Volume Header this way, this is the same issue you would have encountered. )(In our example, we want / to be 3.89 GB, so we start it at cylinder 51 (the )(Volume Header needs to start at cylinder 0, remember?), and set its ending )(cylinder to 985 Now, we delete partition # 9. and recreate it. Notice that on re-creating #9, the cylinders now are in range 0-50.
Command (m for help): dPartition number (1-16): 9
(Delete Partition #9 (SGI Volume Header))
Command (m for help): nPartition number (1-16): 9First cylinder (0-50, default 0): 0 Last cylinder (0-50, default 50): 50
(Re-Create Partition #9, ending just before Partition #1)
Step #3: Create swap partition and change its type to 'Linux Swap'
Command (m for help): nPartition number (1-16): 2First cylinder (986-1015, default 986): Last Cylinder (986-1015, default 1015):
This creates the swap partition of about 123.78 MB. Now, to change its type Command (m for help): tPartition number (1-16): 2Hex code (type L to list codes): 82Changed system type of partition 2 to 82 (Linux swap)Command (m for help): p
Disk /dev/scsi/host0/bus0/target1/lun0/disc (SGI disk label): 141 heads, 62 sectors, 1016 cylindersUnits = cylinders of 8742 * 512 bytes
----- partitions -----Pt# Device Info Start End Sectors Id System 1: /dev/scsi/host0/bus0/target1/lun0/part1 boot 51 985 8602128 83 Linux native 2: /dev/scsi/host0/bus0/target1/lun0/part2 swap 986 1015 262260 82 Linux swap 9: /dev/scsi/host0/bus0/target1/lun0/part3 0 50 17484 0 SGI volhdr11: /dev/scsi/host0/bus0/target1/lun0/part4 0 1015 8881872 6 SGI volume----- Bootinfo -----Bootfile: /unix----- Directory Entries -----
Command (m for help): w
w command writes out the created partitions to the disk.
The partition table has been altered!
Calling ioctl() to re-read partition table.Syncing disks.
#Step # 3: Formatting the Partitions and mounting
The root partition is partitioned as ext3 and the swap partition as made as swap.
# mke2fs -j /dev/sda1# mkswap /dev/sda2# swapon /dev/sda2mount /dev/sda1 /mnt/gentoo
We will also have to mount the proc filesystem (a virtual interface with the kernel) on /proc. But first we will need to place our files on the partitions.
Step # 4: Installing the base system
(a) Set the date date MMDDhhmmYYYY syntax # date 032916212005
(b) Copying the Stage3 and Portage filesA stage3 tarball is available in the /stages folder of live cd that is built with gcc-4.1.1 and targetted for the MIPS-III ISA. A Portage snapshot dated October 2nd, 2006 is also available in the /snapshots folder of live cd. These two files were copied to the hard disk and untarred. Later on, there was a step in chapter 7 to install the sources. On giving the command:# emerge mips-sources "The error message returned was !!! ARCH is not set--. Are you missing the /etc/make.profile Symlink? Is the Symlink correct? Is your Portage tree complete?"
The next line in just after this command notes that for O2, a 64 bit kernel is required therefore, you should emerge kgcc64 to create cross-compiler for building 64-bit kernels.The following settings were used in make.conf
ARCH="mips" PROFILE_ARCH="mips64" CHOST="mips64-unknown-linux-gnu" CFLAGS="-O2 -Pipe -march=mips3 -mabi=n32"
# emerge kgcc64

ALERT! : This might have been the problem..wrong tarball for the ISA level. SGI O2 uses Nevada R 5000 CPU which is 'Big Endian' and whoose ISA level is 4 (mips4), whereas I have used the tarball present in live cd which is targetted at mips3 architecture. Therefore, the correct tarball needs to be downloaded from the gentoo mirrors (see chapter 5). Also, the same settings need to be reflected in make.conf. This might be the reason for installation to fail.
INSTALLATION OF DEBIAN LINUX ON O2

O2 work station Technical Details

General information
The Silicon Graphics O2, introduced in 1996, is the successor to the Indy workstation. It comes in two flavours: the R5000/RM5271/RM7000 and the R10000/R12000. The former has space for two harddrives and the latter only for one, due to the size of the CPU heatsink. It is possible to put a R10000/R12000 into some R5k O2's by removing the metal separator between the mainboard and the harddrives, however, on some earlier models the separator is part of the chassis and cannot be removed short of cutting it out with a hacksaw.
The O2 was re-introduced with slight modifications as the O2+ in August 2001; the case colours were changed, a DVDROM came as standard, the serial port controller was improved, and the baseline CPU was replaced with the R7000/350MHz, though a recall of some early versions of this CPU is thought to have led to the O2's end of presence in the product line, afterwhich it was not replaced (the Fuel, released in January 2002, was not a replacement for O2; Fuel was intended purely to be a single-CPU mid-range system).
System architecture
The O2 features a proprietary high-bandwidth Unified Memory Architecture (UMA) that connects the various system components. A PCI bus is bridged onto the UMA with one slot available. It has a designer case and an internal modular construction. It has space for two SCSI drives mounted on special sleds (1 in the later R10000/R12000 models) and an optional video capture / sound cassette mounted on the far left side. Further information on the design and construction of the O2 can be found in SGI service manuals on Techpubs.
The O2 comes in two distinct CPU flavours; the low-end MIPS 180-350 MHz R5000/R7000 based units and the higher-end 150-400 MHz R10000/R12000 based units. The 200 MHz R5000 CPUs with 1 MB L2-cache are generally noticeably faster than the 180 MHz R5000s with only 512 KB L2-cache. Also of note is that there is no 300 Mhz R5000 CPU, the O2 will incorrectly report the RM5200 CPU as an R5000.
O2: 32 bit or 64 bit
R5000 is a real 64bit
processor. The O2 under IRIX ran as a 32bit, however under Linux, we use a 64bit kernel, but there is a catch: The IP32 PROM can't boot true 64bit kernels (hereby referred to as n64. So, we use a hack that's found in gcc/binutils called the o64 ABI, which is defined as the default 32bit ABI (o32) "extended" to 64bits. This builds an object file that looks like a 32bit file to the "file" utility, but really contains 64bit code.
Memory subsystem
The motherboard has 8 proprietary 278-pin (139 per side) slots on the motherboard, accepting 4 paired sets of memory, referred to and sold as kits. The individual SDRAM DIMM modules come in 16 MB, 32 MB, 64 MB, and 128 MB sizes. The banks must be filled in order, and larger modules should be put in first. The O2 is expandable to 1 GB using 4 2x128 MB kits.
Original SGI DIMMs are either single-sided (SS) with memory chips on only one side of the module or double-sided (DS), and come color-coded to assist you in identifying what is installed. 3rd party DIMMs may or may not follow these conventions. Knowing the current memory configuration is important as DIMMs must be installed according to a number of specific rules.

· The DIMMs in slots 1 and 2 make up Bank A. DIMMs in slots 3 and 4 make up Bank B, and so on.
· A bank of two slots must have a DIMM in each slot or be empty (except for slots 1 and 2, Bank A, which must always be populated.)
· The two DIMMs in any bank must be of the same size and type.
· The largest size DIMMs must be in Bank A.
· DIMM banks must be filled sequentially, beginning with bank A.
· Equal or smaller size DIMMs must be in Bank B, and so on.
· Do not skip banks, or the memory will not be recognized.
To install high density (128 MB) DIMMs, PROM revision 4.4 or higher is required. With older PROM revisions maximum memory is 256 MB. For IRIX 6.3 there are patches to upgrade the PROM, for IRIX 6.5 PROM images come with the operating system and overlays CD sets.

Graphics subsystem
· The CRM chipset that SGI developed for the O2, shares OpenGL calculations between CPU and chip. Due to the unified memory architecture, framebuffer memory comes from main memory, and there is effectively an 'unlimited' amount of texture memory. Another useful feature is that any incoming video data from the Audio/Video option can be used directly as an OpenGL texture without having to perform a copy or move.
· ICE (Image Compression Engine -- a dedicated 64-bit R4000-based processor containing a 128-bit SIMD unit running at 66 MHz, which is used to accelerate various image and video operations)
· OpenGL 1.1 + ARB image extensions
O2 Video System
The O2 Video system simultaneously supports two input video streams to memory and one output video stream from memory which can be seperated into two outputs, one carrying pixel information, the other carrying alpha (key) information.
Using the O2 Video system, it is possible to capture live video into the computer's memory which can then be displayed in a graphics window on the screen or further processed by an application. It is also possible to generate video output from images in memory, which can be displayed on a standard video monitor, or recorded to a VTR. Using the VL programming library , a program can capture video in either the RGB or YCrCb color spaces, and either full or reduced size formats, and in a format usable for input to the compressor/decompressor, display on the graphics screen, or as an input to a graphics processing and/or texture operation.
SGI offered 2 video options for the O2/O2+: the AV1 interface and the AV2 interface.
· The AV1 interface supports Composite and SVideo (Y/C) (both analog), and Digital I/O via the Camera/Digital Video port. The analog I/O jacks are for use with standard analog video equipment, supporting both PAL and NTSC video formats. There are a variety of controls available that allow the user or programmer to set various parameters used for the decoding and encoding of the video signals. The digital input of the AV1 is for use with the O2 Digital System Camera, or can be connected to an optional digital video input and output adapter to interface to standard SMPTE259M serial digital video devices.
· The AV2 interface supports two ITU-601 (CCIR-601) serial digital video
INSTALLATION OF DEBIAN LINUX
The Debian MIPS team recommends net booting approach. A guide is also given in Martin Michmayr http://www.cyrius.com/debian/o2/. The instllation images and other required info was obtained from his site.
Netbooting the O2 using a DHCP/TFTP server:-
A laptop running Ubuntu Linux was configured as DHCP/TFTP server. The Boot image was downloaded from ftp://ftp.nl.debian.org/debian/dists/lenny/main/installer-mips/current/images/r5k-ip32/. This image was copied to /var/lib/tftpboot folder of the laptop and all necessary permissions were given.
After installation of TFTP service, using sudo apt-get install tftpd-hpa on the ubuntu laptop, the configuration file for tftp was edited and the path for the tftp boot image was corrected as /var/lib/tftpboot. The DHCP service was instaled using sudo apt-get install dhcp3-server
Checking if dhcp and tftp services are running:
Check for TFTP:
# netstat -al grep ^ UDP
Should return this line:
UDP 0 *; tftp *.*
If not, try this command:-
# /etc/init.d/inetd reload
Check for DHCP:
# ps -ax grep DHCP
should return some entry named dhcp along with the process id.
If the service is not running:-
# /etc/init.d/dhcpd3-server restart
Setting up the dhcp server:-
The settings of the dhcp server are controlled by dhcpd.conf in /etc folder. Include the following in dhcpd.conf :-

host o2 {
option tftp-server-name "192.168.2.104";
next-server 192.168.2.104;
filename "o2-boot.img";
hardware ethernet 08:00:69:0E:94:CF;
fixed-address 192.168.2.106;
nameserver 218.248.240.79;
}
Line # 1 is the ip address of the laptop, the same ip address is repeated in line # 2. Line#3 is the name of the boot image stored in /var/lib/tftpboot. Notice that the path is relative, therefore, full path is not necessary. The full path is picked up from the tftp config file. Line#4 is the MAC address of O2 which we are trying to boot. The MAC address can be got from hinv or ifconfig. On some O2s, it is also written on the base of the machine. Line # 5 is the IP address which we want to give to the O2. Since we were using a setup with broadband router and a broadband modem, the setup is shown below, we are using the 192.168.2 network for the dhcp server and the O2. Line # 6 is optional, it is the IP address of DNS server of the broadband ISP. It may be necessary in some situations when the O2 is not able to resolve the ftp address(s) to download the remaining files for complete installation.
Some /proc corrections
The netboot server replies on some higher ports, which the O2 PROM is not able to listen to, therefore, the port range has to be restricted on the tftp server to 32767:-
echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range

Also, O2 PROM does not support MTU discovery, therefore, this line is to be added to the tftp server:-
echo "1" > /proc/sys/net/ipv4/ip_no_pmtu_disc
NETBOOTING PROCEDURE
After checking that tftp and dhcp services are up and running on the laptop, ping the DNS IP to check if internet is up and running. Now, boot the O2 and when the PROM screen comes up, click on 'Stop for Maintenance' button, and then click on command monitor button to arrive at > command prompt. give the folowing command:-
> setenv netaddr 192.168.2.106
>bootp()
If everything is correct, the O2 will download the boot image via tftp and after 2-3 seconds, you should be able to see the familiar tux logo with SGI written on it and the booting will start.



Issues encountered while netbooting (given in sequence as encountered):
(a) After giving bootp(), returns error, unable to find the boot file.
The /var/log/messages in the ubuntu laptop shows that O2 is trying to connect to the laptop and the laptop is responding to the request. However, no further details are evident. Finally, it was resolved to be permissions problem in the /var/lib/tftpboot folder. necesary read and write permissions were given.
(b) Next, it was giving TFTP error index 4. everything looked allright, the tftp and dhcp services were running in laptop, so, rebooted the o2 using the init command and then tried bootp():-
>init
>setenv netaddr 192.168.2.106
>bootp()

(c) If the ports are not restricted to 32767 and MTU discovery is not turned off on the tftp server, O2 does not boot on giving bootp(): command. It just returns an error: invalid argument.
Now, things started working smoothly.After booting, O2 was able to connect to the ftp sites to download and complete the rest of installation as described in below:-

The following guide is copied from the excellent work done by Jiann-Ming Su 's detailed work (http://js1.kicks-ass.org/~js1/debianO2.html).I have just reproduced his guide below:-
Choose a language. English only if you are using the serial console.
Choose a language:

Albanian #
Arabic #
Basque #
Bosnian #
Bulgarian #
Catalan #
Chinese (Simplified) #
Chinese (Traditional) #
Croatian #
Czech #
Danish #
Dutch #
English #



Choose a country

Based on your language, you are probably located in one of these
countries or regions.

Choose a country, territory or area:

Denmark #
Hong Kong #
India #
Ireland #
New Zealand #
Philippines #
Singapore #
South Africa #
United Kingdom #
United States #



In graphical install, it may complain about the keyboard layout. Ignore the error and skip to Detect network hardware and select eth0.
Configure the network... dhcp should work automagically based on the previous steps.
Hostname

Please enter the hostname for this system.

The hostname is a single word that identifies your system to the
network. If you don't know what your hostname should be, consult your
network administrator. If you are setting up your own home network,
you can make something up here.

Hostname:

o2___________________________________________________________________



Domain name

The domain name is the part of your Internet address to the right of
your host name. It is often something that ends in .com, .net, .edu,
or .org. If you are setting up a home network, you can make
something up, but make sure you use the same domain name on all your
computers.

Domain name:

somedomain.bogus_____________________________________________________



Select a convenient mirror.
Select United States

The goal is to find a mirror of the Debian archive that is close to
you on the network -- be aware that nearby countries, or even your
own, may not be the best choice.

Debian archive mirror country:

Sweden #
Singapore #
Slovenia #
Slovakia #
Thailand #
Turkey #
Taiwan #
Ukraine #
United States #



Select ftp.us.debian.org

Please select a Debian archive mirror. You should use a mirror in
your country or region if you do not know which mirror has the best
Internet connection to you.

Usually, ftp..debian.org is a good choice.

Debian archive mirror:

debian.oregonstate.edu #
ftp.us.debian.org #
archive.progeny.com #
ftp.debian.org #
mirrors.kernel.org #
wuarchive.wustl.edu #
mirrors.rcn.net #



No Proxy

If you need to use a HTTP proxy to access the outside world, enter
the proxy information here. Otherwise, leave this blank.

The proxy information should be given in the standard form of
"http://[[user][:pass]@]host[:port]/"

HTTP proxy information (blank for none):

___________________________________________________________________



All relevant modules are compiled in. Select Yes to continue without loading modules.

No kernel modules were found. This probably is due to a mismatch
between the kernel used by this version of the installer and the
kernel version available in the archive.

If you're installing from a mirror, you can work around this problem
by choosing to install a different version of Debian. The install
will probably fail to work if you continue without kernel modules.

Continue the install without loading kernel modules?



Partition the disk. This step is very important. The GUI does not partition the disks properly, so the disk(s) need to be partitioned manually.
Select No to continue. Note: You will only need to do this if you do not see this screen.

This partitioner doesn't have information about the default type of
+ the partition tables on your architecture. Please send an e-mail
message to debian-boot@lists.debian.org with information.

Please note that if the type of the partition table is unsupported by
libparted, then this partitioner will not work properly.

+ Continue with partitioning?



Select Partition a hard drive

This is the main menu for the Debian installer.

Choose the next step in the install process:

Choose language #
Choose country or region #
Select a keyboard layout #
Detect network hardware #
Configure the network #
Choose a mirror of the Debian archive #
Download installer components #
Detect hardware #
Partition disks #
Partition a hard drive #
Configure and mount partitions #

Select the drive you want to partition.

Please choose one of the listed disks, to create partitions on it.

Disk to partition:

/dev/scsi/host0/bus0/target1/lun0/disc (SGI SEAGATE ST34572W/ 434
Finish

This should get you to a fdisk prompt. Type p to print the drive stats. Pay close attention to the cylinder size.
Command (m for help): p
Disk /dev/scsi/host0/bus0/target1/lun0/disc (SGI disk label): 141 heads, 62 sectors, 1016 cylinders
Units = cylinders of 8742 * 512 bytes
----- partitions -----
Pt# Device Info Start End Sectors Id System
1: /dev/scsi/host0/bus0/target1/lun0/part1 boot 18 985 8462256 83 Linux native
2: /dev/scsi/host0/bus0/target1/lun0/part2 swap 986 1015 262260 82 Linux swap
9: /dev/scsi/host0/bus0/target1/lun0/part3 0 17 157356 0 SGI volhdr
11: /dev/scsi/host0/bus0/target1/lun0/part4 0 1015 8881872 6 SGI volume
----- Bootinfo -----
Bootfile: /unix
----- Directory Entries -----
The example above shows a drive that's properly partitioned. We'll pretend it's not and walk through how to properly partition the disk.
Notice the Units = ... line. What this line indicates is (8742*512) bytes/cylinder or roughly 4.48MB/cylinder. This may vary across different disks.
Go into expert mode (x), and create a SGI partition table. Note, if it already has an SGI label, you will not have access to expert mode. Use {{r} to return to non-expert mode.
Command (m for help): x
Expert command (m for help): g
Building a new SGI disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content will be unrecoverably lost.

Expert command (m for help): r
Command (m for help): p
Disk /dev/scsi/host0/bus0/target1/lun0/disc (SGI disk label): 141 heads, 62 sectors, 1016 cylinders
Units = cylinders of 8742 * 512 bytes
----- partitions -----
Pt# Device Info Start End Sectors Id System
9: /dev/scsi/host0/bus0/target1/lun0/part1 0 4 43710 0 SGI volhdr
11: /dev/scsi/host0/bus0/target1/lun0/part2 0 1015 8881872 6 SGI volume
----- Bootinfo -----
Bootfile: /unix
----- Directory Entries -----
Command (m for help):
The default SGI volhdr is too large. It only needs to be big enough to hold the arcboot image, which is only about 250kB. From the Units = ... line, we know that each cylinder is rougly 4.48MB/cylinder. For this disc, the first cylinder should be enough to hold the arcboot image. Leaving it as default is also safe. Thanks to Ladislav Michl and Thiemo Seufer for clarifying this point.
Command (m for help): d
Partition number (1-16): 9
Command (m for help): n
Partition number (1-16): 9
First cylinder (0-1015, default 0):
Using default value 0
Last cylinder (0-1015, default 1015): 1
Command (m for help): p
Disk /dev/scsi/host0/bus0/target1/lun0/disc (SGI disk label): 141 heads, 62 sectors, 1016 cylinders
Units = cylinders of 8742 * 512 bytes
----- partitions -----
Pt# Device Info Start End Sectors Id System
9: /dev/scsi/host0/bus0/target1/lun0/part1 0 1 17484 0 SGI volhdr
11: /dev/scsi/host0/bus0/target1/lun0/part2 0 1015 8881872 6 SGI volume
----- Bootinfo -----
Bootfile: /unix
----- Directory Entries -----
Now create the root (/) and swap partitions. The following example will create a ~4.0GB root partition and a ~128MB swap partition.
Command (m for help): n
Partition number (1-16): 1
First cylinder (2-1015, default 2):
Using default value 2
Last cylinder (2-1015, default 1015): 985
Command (m for help): n
Partition number (1-16): 2
First cylinder (986-1015, default 986):
Using default value 986
Last cylinder (986-1015, default 1015):
Using default value 1015
Command (m for help): t
Partition number (1-16): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)
Command (m for help): p
Disk /dev/scsi/host0/bus0/target1/lun0/disc (SGI disk label): 141 heads, 62 sectors, 1016 cylinders
Units = cylinders of 8742 * 512 bytes
----- partitions -----
Pt# Device Info Start End Sectors Id System
1: /dev/scsi/host0/bus0/target1/lun0/part1 boot 2 985 8602128 83 Linux native
2: /dev/scsi/host0/bus0/target1/lun0/part2 swap 986 1015 262260 82 Linux swap
9: /dev/scsi/host0/bus0/target1/lun0/part3 0 1 17484 0 SGI volhdr
11: /dev/scsi/host0/bus0/target1/lun0/part4 0 1015 8881872 6 SGI volume
----- Bootinfo -----
Bootfile: /unix
----- Directory Entries -----
Command (m for help): w
Select Finish.

Please choose one of the listed disks, to create partitions on it.

Disk to partition:

/dev/scsi/host0/bus0/target1/lun0/disc (SGI SEAGATE ST34572W/ 434
Finish

Select the first partition.

These are the partitions that were detected in your system. Please
select a partition to configure. No actual changes will be made until
you select "Finish". If you select "Abort", no changes will be made.

The information shown is, in order: device name, size, file system,
and mount point.

Select a partition

SCSI1 (0,1,0) part. 1 4.0 GiB n/a
SCSI1 (0,1,0) part. 2 128 MiB n/a
Finish
Abort



Create an ext3 filesystem.

This partition does not seem to have a file system. You can create a
file system or swap space on it.

Action on /dev/scsi/host0/bus0/target1/lun0/part1:

Create ext3 file system
Create ext2 file system
Create swap space



Mount it as /.

When a partition is mounted, it is available to the users of the
system. You always need a root ("/") partition, and it's often good
to have a separate partition for /home.

Mount point for /dev/scsi/host0/bus0/target1/lun0/part1:

/
/usr
/boot
/home
/var
/tmp
Don't mount it
Enter manually



Select the second partition.

These are the partitions that were detected in your system. Please
select a partition to configure. No actual changes will be made until
you select "Finish". If you select "Abort", no changes will be made.

The information shown is, in order: device name, size, file system,
and mount point.

Select a partition

SCSI1 (0,1,0) part. 1 4.0 GiB ext3 /
SCSI1 (0,1,0) part. 2 128 MiB n/a
Finish
Abort



Create a swap space.

This partition does not seem to have a file system. You can create a
file system or swap space on it.

Action on /dev/scsi/host0/bus0/target1/lun0/part2:

Create ext3 file system
Create ext2 file system
Create swap space



Select Finish

These are the partitions that were detected in your system. Please
select a partition to configure. No actual changes will be made until
you select "Finish". If you select "Abort", no changes will be made.

The information shown is, in order: device name, size, file system,
and mount point.

Select a partition

SCSI1 (0,1,0) part. 1 4.0 GiB ext3 /
SCSI1 (0,1,0) part. 2 128 MiB swap
Finish
Abort



Select Yes to create and mount the new filesystems.

File systems will be created and partitions mounted.

WARNING: This will destroy all data on the partitions you have
assigned file systems to.

Ready to create file systems and mount partitions?



You may run into the following message when the installer tries to mount the partitions. Select No to continue.

Since the partitions have already been mounted, you cannot do any
changes.

Do you want to unmount the partitions so you can make changes?



After partitioning, the base system should install over the network.
Finishing the installation.
If the boot loader is able to install during the installation flow, Click here to skip the manual installation of the bootloader.
Boot loader. Select Continue.
No boot loader installed
No boot loader has been installed, either because you chose not to or
because your specific architecture doesn't support a boot loader yet.

You will need to boot manually with the /vmlinux kernel on partition
/dev/sda1 and root=/dev/sda1 passed as kernel argument.



If you get the above message saying no boot loader was installed, select Go Back
+ Installation complete
Installation is complete, so it is time to boot into your new Debian
system. Make sure to remove the installation media (CD-ROM,
floppies), so that your system boots from the disk to which Debian
was installed.

+

Install the bootloader manually. Select Excute a shell

This is the main menu for the Debian installer.

Choose the next step in the install process:

Detect hardware #
Partition disks #
Partition a hard drive #
Configure and mount partitions #
Install the base system #
Continue without boot loader #
Finish the installation #
Change debconf priority #
Save debug logs #
Execute a shell #
Abort the installation #

Select Continue
Interactive shell
After this message, you will be running "ash", a Bourne-shell clone.

The root filesystem is a RAM disk. The hard disk file systems are
mounted on "/target". The editor available to you is nano. It's very
small and easy to figure out. To get an idea of what Unix utilities
are available to you, use the "help" command.

Use the "exit" command to return to the installation menu.



The newly installed filesystem should be mounted as /target. Chroot to it, mount /proc, and install arcboot with apt-get.
BusyBox v1.00-pre10 (Debian 20040623-1) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
~ # df
Filesystem 1k-blocks Used Available Use% Mounted on
tmpfs 102400 20736 81664 20% /
/dev/scsi/host0/bus0/target1/lun0/part1 4143076 253836 3678780 6% /target
~ # chroot /target
sh-2.05b# mount /proc
sh-2.05b# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw)
sh-2.05b# apt-get install arcboot
The default /dev/sda should be fine.
Arcboot must be put into the volume header of a disk with a SGI
disklabel. Usually the volume header of /dev/sda is used. Please give
the device name of the disk you want to put arcboot onto.

Where to put arcboot?

/dev/sda_______________________________________________________________


If arcboot was installed automatically during the flow of the install process, you get the following message. Select Continue. The installation will finish and reboot automatically.
Setting PROM variables for Arcboot
If this is the first Linux installation on this machine, or if the #
hard drives have been repartitioned, some variables need to be set in #
the PROM before the system is able to boot normally. #
#
At the end of this installation stage, the system will reboot. After #
this, enter the command monitor from the "Stop for Maintenance" #
option, and enter the following commands: #
#
setenv SystemPartition scsi(0)disk(1)rdisk(0)partition(8) #
setenv OSLoadPartition scsi(0)disk(1)rdisk(0)partition(0) #
setenv OSLoader arcboot #
setenv OSLoadFilename Linux #
#
You will only need to do this once. Afterwards, enter the "boot" #
command or reboot the system to proceed to the next Debian #



Otherwise, if you are having to install arcboot manually, continue on...
If arcboot installed properly, it should look as follows. Note arcboot.ip32. ip32 is the O2 architecture.
Selecting previously deselected package arcboot.
(Reading database ... 8492 files and directories currently installed.)
Unpacking arcboot (from .../arcboot_0.3.8.6_mips.deb) ...
Setting up arcboot (0.3.8.6) ...
Putting arcboot.ip32 into the volume header of /dev/sda...done.
Take a look at /etc/arcboot.conf and take note of the label= line.
sh-2.05b# cat /etc/arcboot.conf
# arcboot.conf
#
label=linux
image=/vmlinux
append="root=/dev/sda1"
Exit the shell
sh-2.05b# exit
exit
~ # exit
Select Finish the installation

This is the main menu for the Debian installer.

Choose the next step in the install process:

Choose a mirror of the Debian archive #
Download installer components #
Detect hardware #
Partition disks #
Partition a hard drive #
Configure and mount partitions #
Install the base system #
Continue without boot loader #
Finish the installation #
Change debconf priority #
Save debug logs #

Select Continue
+ Installation complete
Installation is complete, so it is time to boot into your new Debian
system. Make sure to remove the installation media (CD-ROM,
floppies), so that your system boots from the disk to which Debian
was installed.

+

Making Linux boot automatically. In System Maintenance Menu, select Enter Command Monitor. The OSLoadFilename environment variable should match the label= from the previous step. If arcboot installed automatically for you, just cut and paste the lines from Setting PROM variables for Arcboot dialog. It is case sensitive.
Running power-on diagnostics...


Starting up the system...
To perform system maintenance instead, press

System Maintenance Menu
1) Start System
2) Install System Software
3) Run Diagnostics
4) Recover System
5) Enter Command Monitor
Option? 5
Command Monitor. Type "exit" to return to the menu.
> setenv OSLoader arcboot
> setenv SystemPartition scsi(0)disk(1)rdisk(0)partition(8)
> setenv OSLoadPartition scsi(0)disk(1)rdisk(0)partition(0)
> setenv OSLoadFilename linux
> exit
Restart the system, and debian should start loading. If the GUI (X) does not start, edit the file /etc/xorg.conf with the settings as shown below:-
# XF86Config-4 (XFree86 X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the XF86Config-4 manual page.
# (Type "man XF86Config-4" at the shell prompt.)
#
# This file is automatically updated on xserver-xfree86 package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xfree86
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following commands as root:
#
# cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.custom
# md5sum /etc/X11/XF86Config-4 >/var/lib/xfree86/XF86Config-4.md5sum
# dpkg-reconfigure xserver-xfree86
Section "Files"
FontPath "unix/:7100" # local font server
# if the local font server has problems, we can fall back on these
FontPath "/usr/lib/X11/fonts/misc"
FontPath "/usr/lib/X11/fonts/cyrillic"
FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/Type1"
FontPath "/usr/lib/X11/fonts/CID"
FontPath "/usr/lib/X11/fonts/Speedo"
FontPath "/usr/lib/X11/fonts/100dpi"
FontPath "/usr/lib/X11/fonts/75dpi"
EndSection
Section "Module"
Load "GLcore"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "speedo"
Load "type1"
Load "vbe"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Scroll Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/psaux"
Option "Protocol" "IMPS/2"
Option "Emulate3Buttons" "false"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "SGI Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/psaux"
Option "Protocol" "PS/2"
Option "Emulate3Buttons" "false"
EndSection
Section "Device"
Identifier "Generic Video Card"
Driver "fbdev"
Option "UseFBDev" "true"
EndSection
Section "Monitor"
Identifier "LCD Monitor"
VendorName "Dell"
ModelName "2001fp"
HorizSync 31.0-80.0
VertRefresh 56.0-76.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "SGI Monitor"
VendorName "SGI"
ModelName "GDM-5011p"
HorizSync 30-117
VertRefresh 50-180
Option "DPMS"
EndSection
Section "Screen"
Identifier "Default Screen"
Device "Generic Video Card"
Monitor "SGI Monitor"
DefaultDepth 15
SubSection "Display"
Depth 15
Modes "1600x1200"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "SGI Mouse"
EndSection
Section "DRI"
Mode 0666
EndSection

It was an enjoyable and learning experience installing linux on O2 worksttion!