More on Linux and the New Internet Computer (NIC)

or How to Get a Cheap Server with one port of Dial-up Internet Access

First look at the warning here.

After reading Bill Ball's very good review of the New Internet Computer in the February 2001 issue of Linux Journal, I decided to rise to his challenge to hardware hackers. I immediately placed an order for a NIC via the World Wide Web where they are available for $199.99 plus shipping. After about a week, my wife telephoned at work to say that a box arrived from the New Internet Computer Company.

To find out all of the details of the NIC, please reference the full review of it by Bill Ball in the February 2001 issue of Linux Journal or have a look [here] and [here]. Also, you may want to check out George Pajari's FAQ-o-Matic site [here]. In summary of that review, the New Internet Computer is a network appliance that is designed to provide a very low cost, primarily Netscape interface to the Internet over a variety of connection mechanisms.

Upon unpacking my new NIC computer, I proceeded immediately to the 'three screws to remove the cover' portion of Bill's review without even plugging it in. The NIC consists of a single board computer with a fan cooled Cyrix M II running at 200 Mhz (even though the NIC specs say 266 MHZ). Following is the /proc/cpuinfo for this machine:

dpsims@nic:/proc$ more cpuinfo
processor       : 0
vendor_id       : CyrixInstead
cpu family      : 6
model           : 2
model name      : M II 3x Core/Bus Clock
stepping        : 8
cpu MHz         : 200.456
fdiv_bug        : no
hlt_bug         : no
sep_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu de tsc msr cx8 mtrr pge cmov mmx
bogomips        : 399.77

The other hardware included consists of:
- a 100 watt switching power supply 110/230V 50/60 Hz
- a 24x CDROM (OIP-SD2400A from Delta Electronics in Taiwan)
- a 64Mb PC-100 DIMM memory stick and socket
- a SiS900 10/100 Mb autosensing ethernet chip and RJ45 female connector
- a single SiS 85C5513 PCI based IDE controller
- a 3 Mb IDE flash memory based disk
- a SiS 7001 USB controller with two external USB connections
- a SiS 5597/5598 Super-VGA video controller with 512 Kbytes of memory
- a C-Media CMI8738 Audio/Modem ASIC supporting a PC-TEL modem interface
- a PC-TEL Codec/DAA daughterboard
- a nice black metal case with two switches (on/off and reset) and a light
It only required two more screws to remove the CDROM from the case after unplugging the IDE ribbon cable and power cable. This exposed the 3Mb flash disk which consists of a small 1" x 2" board with a male 40 pin header (prongs on both sides of the board) which adapts the female motherboard IDE socket to the female CDROM ribbon cable socket.

The objective of this exercise was to find a way to install a 2.5" laptop harddrive in the NIC in place of the flash memory disk in order to use the NIC as a small, cheap workgroup server.

Hacking the Hardware

A quick trip to the electronic parts store (Electronic Parts Outlet in Houston, Texas) followed by a trip to the hardware store (Bering Hardware in Houston, Texas) resulted in the necessary parts to do the trick. The parts I acquired were:

- 40 pin to 44 pin adapter for the laptop HD ($5.00)
- a standard dual device IDE ribbon cable ($3.00)
- some 3/4" cylindrical standoffs ($.50)
- some long screws to fit the HD mounting threads ($.50)
- a 40 pin circuit board solder-on male header ($.50)


I already had a spare IBM-DYLA-28100 8Gb harddrive from a previous laptop disk upgrade.

Upon returning home, I used an IDE ribbon cable and a vise to reorient the pins in the solder-on male header. These headers have gold plated pins with a thin plastic matrix holding them together like so:

||||||||||||||||||||
||||||||||||||||||||  <---- This side normally plugs into a ribbon cable
||||||||||||||||||||
====================
||||||||||||||||||||  <---- this side solders onto a circuit board


By plugging the short pins into a ribbon cable and clamping the header and ribbon cable in a vise, you can push the pins through the matrix so that the pins more or less stick out each side an equal amount like so:

||||||||||||||||||||
||||||||||||||||||||
====================
||||||||||||||||||||
||||||||||||||||||||
This makes a perfect adapter to take the place of the 3Mb flash disk in the NIC and turns the motherboard's female IDE socket into a normal male socket that a normal IDE ribbon cable will plug onto.

The CDROM drive in the NIC is from Delta Electronics of Taiwan. It does not have a jumper to select master/slave, and uses firmware for device selection. Delta readily provided a flash utility and firmware to set the CDROM drive to master or slave, but it has to be run from DOS, so a spare PC is quite handy when converting the NIC from client to server. The NIC has no floppy drive and no controller to plug one into.

Thus, I used a spare computer and the 40 to 44 pin disk adapter to load my favorite distribution (Slackware 7.1) of Linux on the laptop HD and to confirm that it would boot. I then downloaded the latest 2.2.x kernel and installed the kernel source code on the laptop HD in order to get support for the SiS900 10/100 Ethernet chipset. After configuring a minimal kernel, compiling it, installing it and confirming that it would boot, I installed the HD in the NIC using the dual device ribbon cable and home made gender changer already described.

The motherboard of the NIC has three strategically located holes just behind the CDROM drive. Using the .75" standoffs which I had to cut down to .5" so the disk would clear the modem daughterboard, I mounted the HD to the motherboard using .75" screws through the motherboard from the bottom and the .5" standoffs through the two holes nearest the edge of board. I had previously installed a third standoff to the board which the end of the HD away from the IDE interface could rest on.

Once this was done, I confirmed that the NIC would boot from the HD! So far, so good! It booted right up and I was able to login and configure the ethernet interface which also came right up on a static address! At this point I could now login to the NIC either from the console or from another workstation via telnet! Real progress!!

Having achieved a level of success, my batteries were charged and I went back to the spare PC and installed the NIC's CDROM drive on the spare IDE interface. Then I booted up with DOS 6.22 and used the flasher and firmware obtained from Delta Electronics to configure the CDROM as a 'slave' IDE device. This required a bit of fritzing (the documentation doesn't tell you that the appropriate command is 'mktflash 4 W slave.hex') but finally worked like a charm and upon rebooting the spare PC the CDROM was recognized by the BIOS as the slave device instead of the master. Reinstalling the CDROM drive in the NIC was a simple matter of plugging it in and installing two screws. After another reboot of the NIC I had a server with ethernet, 8 Gb harddisk and CDROM drive. Almost there!!

Next I started to investigate the audio chipset and modem daughter- board. After a few google searches I found a website that seemed to have exactly waht I needed. So I downloaded the ECS_drivers.tar.gz file and after untarring, built kernel modules in support of the audio chip and modem daughterboard. You can also find this driver code [here]. I did edit the code for the modem to change the major device number from 62 to 4 which is the standard serial device in Linux (#define PCTEL_MAJOR 4 /* was 62 */). After building the kernel modules and installing them in the kernel, low and behold I had a 56 Kb modem at /dev/ttyS15 !! It took another couple of hours to work through the Serial HOW-TO and the PPP HOW-TO before I had the NIC answering the telephone and offering an IP address to a remote host via PPP.

At this point I had acheived my objective, so I put the covers back onto the NIC and stood it on end on the handy feet that come with it. After connecting the power cord, an ethernet cable and a telephone line, I had a the beginnings of a workgroup server with support for a dial-in PPP session that cost on the order of $400 and had the requisite horsepower to reliably support 50 users or more. At this point I began configuring serices such as Appletalk, SMB support (via Samba), DNS, mail, user accounts, POP3 and a POP password changing facility so that users can change their passwords using the client utility built into the popular Eudora mail client.

For other people that choose to go down this path, you can find all of the requisite software components [here]. I will add photos of the hardware as soon as I can borrow a digital camera. My hat is off the the New Internet Computer Company for developing this low cost platform. The only thing that could be better would be for them to make and sell a $400 server to go with their $200 client. It can be done. I have done it.

There is more to do though and in the same spirit that Bill Ball raised a challenge to the 'hardware hackers' out there, I would like to raise a challenge to those other Linux hackers to take up where I have left off; get the USB port working and supporting a large number of devices as well as getting the joy stick port and sound ports working. I will be happy to support a website on hacking the NIC so if you do decide to rise to the challenge, please send me an email with the details. Also, someone needs to figure out what to do with the left over 3 Mb flash disk I have. :)

David Sims
Houston, Texas
http://www.virtualdave.com
dpsims@virtualdave.com