Revision as of 01:21, 16 September 2008

Originally by frontalot and nix from linkstationwiki.org. LS2 specific details and photos by Kuroguy

LS2 homemade serial level converter on top of J1 and a red jumper at J2 to enable the serial console. Electrical tape on the back of the level converter prevents short circuiting the main board. (Also on the picture installed JTAG header and R64.)

Serial port connector installed on the back of the LS2 below the red button.

Introduction

The console is the text output device for system administration messages. These messages come from the kernel, from the init system and from the system logger. On modern small computers the console is usually the computer's attached monitor and keyboard. The LinkStation, however, doesn't have monitor output; instead, it uses a serial connection for console output. Not only does the serial console provide valuable debugging output, it also allows root access!

Background

Most of the information on this page was originally only speculation, based on roughly deciphered information from a Japanes web page. At the end of 2006 the community bought a bricked LS2 and handed it over to Tampakuro aka Kuroguy for trying out various hardware modifications. While at it, kuroguy also verified the procedure for installing a serial console interface. This page has been updated with the information and photos he provided in Hardware Hacks for the LS2.

Prerequisites

(1)Electronic-grade soldering iron (think really small)

(1) 0.015", 1 oz solder

(1) 0.1” series PCB header plug, 4-pin (for the serial port on J1) the 90-degree bend type is nice if you want to attach it on the back of the board

(1) 0.1” series PCB header plug, 2-pin (for the enabling jumper on J2) 90-degree also nice here, same as above

(1) jumper for the header on J2 - the kind from an old IDE hdd is ideal

J1 Pinout

Enable Full Serial Tx/Rx

Install R186 using a 330 ohm resistor. Simply bridging R186 will stop the microcontroller from sending data to the CPU.

The Serial Converter

The serial port signals from the processor are only 3.3V. For proper RS-232 12V signaling, an RS-232 level shifter needs to be added. These are very common in PDA serial cables also, but can be purchased

Models other than KuroPro

If you are attaching a serial header pin onto the main board, you may want to consider:

Using the header pin unit with a 90 degree bend, or you might not be able to close the case

Soldering it with the pins toward the interior, rather than toward the case. This allows easier access, since if the pins face the case side they would be very close to the metal side. This would make access is so tight that one might end up taking the board out to get plug fitted on the pins.

Solder the 4-pin header to the board. Make sure you don't have shorts.

You will need to switch wires on the TTL-232R-3V3 cable. Use a sharp object to lift the plastic tabs and carefully pull the wires out. Rearrange them according to the table above (black, empty, orange, yellow, empty, empty) and slide those wires back in. Tape the other wires to make sure they don't short anything.

When plugging in the cable, make sure black aligns with GND, yellow with TXD, and orange with RXD.

Connect the USB cable to your computer, start a terminal program with the right settings.

Turn on the device, you should see output from the bootloader in couple seconds.

Enabling the Serial Console

Hardware

As the LS2 only has a single serial port which is used by the housekeeping microcontroller, it is necessary to enable the serial console. This is done by jumpering the pins of J2 and disabling the watchdog timer on startup (by pressing the red button and powering it up). It is easiest to install J2 on the back of the board as it will be accessible by removing the cover and not the board from the chassis I used a red jumper so it can be easily located. Another option to removing the cover is to drill a 3/8" hole in the case directly above J2 and make a handle for your jumper from a piece of tape.

Note that the jumper doesn't change the hardware configuration but its state can be read by the CPU using GPIO8 ("0" jumper on, "1" jumper off). The original Linux kernel registers the serial console if the jumper is on.

Software

Make sure that the distro you are booting actually has a some means to offer you a login window through the serial connection. A standard way of doing this would be to make sure that /etc/inittab has some line, perhaps at the end, like this:

T0:23:respawn:/sbin/getty -L ttyS0 57600

Also remember to switch output to the serial port with a bootargs statement such as :

setenv bootargs console=ttyS0 root=/dev/hda1 rw

instead of the netconsole= option.

Using the Serial Console

Of course you need a serial cable to connect to the serial port. Depending on how you wired the plug on the LS, you will need a null modem, too, or a null modem cable.

Windows

You may access the serial console using Windows HyperTerminal (included with Windows) or TeraTerm Pro terminal emulator.

classic Unix

If you have a classic Unix you should either have tip(1) or cu(1) (or both). They are suitable to set up a serial connection. Linux typically doesn't have these.

Linux

If you are on Linux, consider the trusted and tried miniterm terminal emulator. 'minicom' also works nicely.

Terminal

If you are the proud owner of a real oldschool terminal, this is your chance to make use of the old dust catcher :-)