Sun Netra X1 and experience in its administration

Greetings readers! An interesting specimen came into my hands – the Netra X1 server from Sun Microsystems. I was attracted to this device by its Sparc architecture, which I have rarely seen anywhere before. The device is certainly old, but it works flawlessly. This is where the idea of ​​installing a BBS and the Debian operating system was born. So to speak, “A ready-made museum exhibit.”

Preface

Task: install the Debian operating system and BBS software.

I’ll tell you a little about the server itself and the software. The only thing I would like to highlight about the server is the sparc architecture and the lack of graphical output. The server is controlled exclusively through the A/LOM and B console interfaces.

Lights-Out Management (LOM) – allows you to manage the state of the server without connecting power, which literally translates as “without light”.

Bulletin Board System (BBS) – electronic bulletin board. A method used in the WEB 1.0 era for computer users to communicate through switched telephone networks. At its core, a BBS is the seed from which the entire Internet grew.

I won’t go into the history of its creation, but will tell you about the main features that the BBS carried:

  • file sharing,

  • Email,

  • echo conferences,

  • games,

  • chat with users.

We see all these functions every day, but on the Internet.

I’ll tell you a little about the workplace, which includes:

  • the host on which all manipulations with the server will be performed (Ubuntu 18.04 OS),

  • a switch that connects to the Internet,

  • The Sun Netra x1 server itself.

Preparing to install the OS

The server architecture is specific and it would be more reasonable to use Solaris, but the task is to install Debian.

Sun Netra x1 uses two interfaces ttyA and ttyB. To manage the server from the console, use the minicom utility. I connect the “RJ-45 to DB-9 RS232” cable to the A/LOM port and launch minicom on the host. The connection parameters are as follows: 9600 8N1

In order to configure minicom, do the following:

  1. # minicom -s

  2. Select the item “Setting up a serial port” and carry out the settings according to the image below;

  3. Select “Save settings as df1” and exit.

Setting up minicom

Setting up minicom

We launch the minicom utility (via sudo, of course), press Enter and get to the “lom” command line.

We write the command to turn on the server:

lom> poweron

Launching the minicom utility and turning on the server

Launching the minicom utility and turning on the server

After switching on, initialization and loading of OpenBoot (in other words, BIOS in the Sun Microsystems world) begins. Next, the command line “ok” appears. If the command line “lom” remains, you need to enter this command:

lom> break

The server supports installation from optical disk and installation over a network. We will consider the option of installing over a network, which includes 2 stages:

  1. obtaining an IP address,

  2. receiving installer files.

I suggest considering the following options for obtaining an IP address:

  1. using RARP,

  2. using DHCP.

Obtaining an IP address using RARP

Address Resolution Protocol (ARP) is a protocol designed to convert an IP address to a MAC address.

Reverse ARP (RARP) is a protocol that learns the IP address from an existing MAC address. A broadcast request is sent to the network searching for a RARP server, which will match the MAC address and send the found IP address to the client.

Sending an ARP/RARP request

Sending an ARP/RARP request

We install the rarpd package on the host, which performs RARP functions. To compile MAC addresses and IP addresses, the following file is used:

/etc/ethers

We make an entry like: . Save and restart the rarpd daemon.

Note: The MAC address can be found when starting the server. You need to bring it to the form:

It was – 0:3:BA:5:20:28, it became – 00:03:BA:05:20:28

Obtaining an IP address using DHCP

Note: A local network is required, so it is better to turn off the Internet. The DHCP configured on the router will interfere.

The isc-dhcp-server package is required for implementation.

The configuration is not very difficult and contains the following items:

  • subnet in which IP addresses will be issued,

  • a specific IP address to a specific MAC address,

  • the name of the file that needs to be loaded.

The configuration file is located here:

/etc/dhcp/dhcpd.conf

subnet 192.168.1.0 netmask 255.255.255.0 {

            range 192.168.1.200 192.168.1.210;

            option routers 192.168.1.1;

            option broadcast-address 192.168.1.255;

}

group {

            host-cli {

                        filename “boot.img”;

                        hardware ethernet 00:03:BA:05:20:28;

                        fixed-address 192.168.1.105;

            }

}

The file contains the following parameters: “”

  • “subnet” – branch responsible for the subnet,

  • “range” – range of issued addresses,

  • “option routers” – default gateway (you can write any one),

  • “option broadcast-address” – broadcast address,

  • “group { host-cli” – branch responsible for issuing a specific IP address to a specific ethernet address,

  • “filename” – the name of the file that will be downloaded, but more on that later,

  • “hardware ethernet” – MAC address,

  • “fixed-address” – IP address.

The question arises: why create a pool of issued addresses if you only need to assign a specific IP to a specific device? The subnet branch tells the client receiving the IP address what network it is on, and also contains the gateway and broadcast address parameters. If you remove this branch, the isc-dhcp-server.service daemon simply won’t work.

Note: it is necessary to set a static IP address on the host from the pool of issued addresses

Setting up file transfer over the network

In order for the file to be delivered over the network to the server, I will use the TFTP protocol.

TFTP (Trivial File Transfer Protocol) is a simple file transfer protocol. Used primarily for initial booting of diskless workstations. TFTP, unlike FTP, does not contain authentication capabilities (although filtering by IP address is possible) and is based on the UDP transport protocol.

The package is called tftpd-hpa. The configuration file is located here:

/etc/default/tftpd-hpa

We make changes:

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/srv/tftp"

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="--secure --create"

I will highlight some parameters in the configuration file:

  • TFTP_DIRECTORY – the directory where the download files are stored (I created a new directory and specified it in the file),

  • TFTP_ADDRESS – access from which addresses to allow and port,

  • TFTP_OPTIONS – additional parameters,

  • “–secure” is the default option,

  • “–create” – allows creating new files

Obtaining installer files

Debian has stopped supporting stable releases under the Sparc architecture, the only latest version being Debian 7 Wheezy. We go to the archive ftp server to the directory with the Debian 7 Wheezy installers and download the image for network boot to the directory specified when setting up TFTP:

# cd /srv/tftp

# wget https://archive.debian.org/debian/dists/wheezy/main/installer-sparc/current/images/netboot/boot.img

Let me explain the differences between the network boot image and the CD image. The standard Debian CD image is too large, and the network installation image contains the temporary initramfs file system and the Debian installer. It turns out about 8MB.

Depending on the choice of method for obtaining an IP address, we perform the following manipulations:

  1. when using the RARP method, you need to rename the resulting network boot image file to look like:

    IP address presented in hexadecimal form, for example: 192.168.1.105 – C0A80169

    # cd /srv/tftp

    # mv boot.img C0A80169

  2. when using the DHCP method, it is necessary in the configuration file
    /etc/dhcp/dhcpd.conf in the “filename” parameter specify the name of the file located in
    TFTP directory.

OS installation

Let me remind you that if you use the method of obtaining an IP address via DHCP, you need to turn off the Internet and issue the host an IP address from the DHCP pool.

Restart the daemons on the host:

We start the server, wait for initialization and the command line “ok”. We enter the following command when using RARP:

ok boot net

or, if DHCP is used:

ok boot net:dhcp

And we are waiting for the installation to begin.

Note: as soon as the installer screen appears, you need to check that there is Internet access on the network.

I think it’s not worth talking about every installation step, so I’ll only talk about the key points.

At the stage of selecting a mirror from the network, you need to manually specify:

  • archive.debian.org

  • /debian/

Selecting an archive mirror

Selecting an archive mirror

The installation will proceed normally until the installation of the base system, and specifically at the very end, when the installation of busybox and the kernel takes place. The fact is that Debian 7 lost support a long time ago and the signing keys are no longer valid, so the installation cannot continue.

Error Screen

Error Screen

You need to do the following:

  1. From the main menu of the installer, launch the command line

    Command line selection item in the installer menu

    Command line selection item in the installer menu

  2. We write:

    # chroot /target bash

    in order to find yourself inside an almost installed system.

  3. Disable signature verification

    # nano /etc/apt/apt.d/99myown

    APT::Get::AllowUnauthenticated "true";

  4. Save and exit (CTRL+X -> “y”)

  5. We leave the environment and return to the installer

    # exit

    # exit

Next, select the base system installation option again and continue the installation.

There are no special features in the installation, except that you don’t need to select the graphical interface installation option, which is obvious why.

When the installation is complete, return to the menu and launch the command line (I’ll describe what to do there below).

The fact is that in the Linux system, devices in the /dev/tty1, /dev/tty2, and so on directory are used to output information to the console. But in the case of a server, the output device will not be tty1, for example, but ttyS0, which means Serial. Therefore, it is required to specify this parameter in the file that is responsible for initializing the OS during startup.

  1. We go into the environment of the installed OS

    # chroot /target bash

  2. Editing the file

    # nano /etc/inittab

    Save and exit (CTRL+X, “y”)

  3. It is necessary to comment out all lines containing tty1, tty2… and remove comments in line ttyS0.

  4. Exit the environment and complete the installation

    # exit

    # exit

    Item “Abort installation”

If these actions had not been performed, the picture would have been that the OS was initialized, but there was no prompt for user input.

When you restart the server, it will boot from the last selected device, specifically over the network, so it is better to turn off and turn on the server manually. It reaches the command line “ok”, enter boot disk2 (there may be a different number) and the operating system starts.

I recommend installing an SSH server and setting up login as a root user. All further actions should be carried out via SSH.

BBS selection

In search of various options for implementing BBS, I highlighted these systems:

  • Synchronet BBS

  • Maximus BBS,

  • Mystic BBS,

  • Enigma BBS,

  • WIVV BBS,

  • MBSE BBS.

The selection was based on the following criteria:

  1. easy to use and configure,

  2. has source code for assembly,

  3. there is documentation.

If everything is clear with criteria 1 and 3, then why have the source code? The source code allows you to build a program for almost any architecture.

But during the installation of these BBSes there were always problems. Either the source code is not designed for Sparc, or Debian 7 is too old, or the installation documentation was broken.

In the end, there was only one implementation left – MBSE BBS.

This BBS implementation supports all the features that I described above. By the way, this is one of the first BBSs on Unix-like systems to use a daemon to run and monitor its state.

BBS installation

The project is distributed on both sourceforge and github. I will describe the installation from github.

But before installing the BBS, you need to install some packages and libraries to build, compile and use the BBS. But before that, let’s edit the package manager file to install some packages not from the stable branch.

# nano /etc/apt/sources.list

deb http://archive.debian.org/debian/ wheezy non-free

# apt-get update

And install the packages

# apt-get install xinetd libc6-dev libz-dev libbz2-dev automake telnetd arj rar lha arc zoo lrzsz joe gcc gpp build-essential git

Now let’s download the files from github to a temporary directory:

# cd /tmp

# git clone https://github.com/bbs-io/mbse.git

Next, I will describe the commands and give small explanations.

# cd mbse/

# ./SETUP.sh

The command above creates a new user “mbse”. You need to log in to it.

# su - mbse

After logging in, you need to copy the mbse folder from the temporary directory to the home directory of the new user

# cp -r /tmp/mbse/ ~

Continue with installation

# cd mbse/

# ./configure

# make

Switch to root

# su

# make install

# exit

We run a script that will allow you to launch the BBS when the OS starts

# ./CRON.sh

The installation is complete. Management is carried out exclusively through the user “mbse”. Let’s launch the BBS:

# cd bin/

# ./mbtask

Launching a BBS

Launching a BBS

Before checking the connection, you need to remove the comments in the /etc/inittab file that are responsible for initializing /dev/tty1, /dev/tty2… Reboot the server

We check the connection via telnet.

# telnet localhost

To start registration you need to log in as the user “bbs”, there is no password.

Connect to localhost and login under bbs

Connect to localhost and login under bbs

BBS registration

BBS registration

BBS operating documentation is located in the github repository.

This is where my experience ended. I completed my tasks. But before writing this article, a lot of time and attempts were spent installing other BBSes. By the way, this fact prompted me to write an article.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *