debian on ss4000

Notes on installing Debian on an Intel ss4000-E arm NAS

A DL10 to DB9 (fe)male cable is needed.
A DL10 connector, a DB female or male connector depending on how you want to do it and a ribbon cable, actually three wires should be enough.

 
DL-10       DB9 Male
3     <->   2  RxD
5     <->   3  TxD
9     <->   5  GND


If you want to use a USB to serial adapter you may want to use a DB9 Female connector and switch 3 TxD with 2 RxD



During the installation I will take the new OS image files from an HTTP server in my network.
The squeeze arm iop32x network-console initrd.gz and zImage will be at http://10.21.241.5/ss4k/

Thanks to patience and the Internetz I found out that the wheezy images do not work on my ss4000-e and finally got a squeeze image found at http://ftp.nl.debian.org/debian/dists/squeeze/main/installer-armel/current/images/iop32x/network-console/ss4000e/ to work.

Get initrd.gz and zImage from there and put them in an HTTP server in your LAN.
Alternatively you may put them in the ss4000 flash through the serial interface, it should be slower.


Install minicom or cu
# apt-get install minicom


I am using a USB to serial converter based on the PL2303 Prolific chip
# lsusb |grep PL
Bus 004 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

that gives me a serial at /dev/ttyUSB0
# dmesg |tail -5
[457618.284273] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[457618.284281] usb 4-1: Product: USB-Serial Controller
[457618.284288] usb 4-1: Manufacturer: Prolific Technology Inc.
[457618.286317] pl2303 4-1:1.0: pl2303 converter detected
[457618.298540] usb 4-1: pl2303 converter now attached to ttyUSB0



Setup minicom ( If using a USB to serial converter )
# minicom -o -s
Choose 'Serial port setup'
Set A - Serial Device to '/dev/ttyUSB0'
Set F - Hardware Flow Control to 'No'
( E - Bps/Par/Bits should be by default set to `115200 8N1` which is fine )
Hit Enter
Select 'Save setup as ...' -> 'ss4K1'

Connect the cable from the es4000 to the serial or USB2serial converter and fireup a session
# minicom -o ss4K1


Power ON the ss4000 and hit Control-C to enter RedBoot
You have one second to hit Control-C, if you miss it, power cycle the ss4000 and try again.


Switch the bootloader to RAM mode and hit Ctrl-C to interrupt the RAM reboot.
RedBoot> fis load rammode
RedBoot> g
+Ethernet eth0: MAC address 00:0e:0c:e9:5c:42
IP: 10.9.9.1/255.255.255.0, Gateway: 10.9.9.1
Default server: 10.9.9.10, DNS server IP: 0.0.0.0

EM-7210 (RAM mode) 2005-12-22
== Executing boot script in 1.000 seconds - enter ^C to abort
^C
RedBoot>


Set up networking ( I had to use /24 masks because I could not set up other masks in Redboot )
RedBoot> ip_address -l 10.21.241.3 -h 10.21.241.5
Test Networking
RedBoot> ping -i 10.21.241.3 -h 10.21.241.5
Network PING - from 10.21.241.3 to 10.21.241.5
PING - received 10 of 10 expected


initrd.gz
RedBoot> load -v -r -b 0x01800000 -m http /ss4k/initrd.gz                                                                                   
/                                                                                                                                           
Raw file loaded 0x01800000-0x01d144ec, assumed entry at 0x01800000                                                                          
RedBoot> 


zImage
RedBoot> load -v -r -b 0x01008000 -m http /ss4k/zImage                                                                                      
\                                                                                                                                           
Raw file loaded 0x01008000-0x01164df7, assumed entry at 0x01008000                                                     
RedBoot>


Execute the new Linux kernel
RedBoot>exec -c "console=ttyS0,115200 rw root=/dev/ram mem=256M@0xa0000000" -r 0x01800000


Now the installer starts in the console.

After a few steps you should see something similar to the following
lqqqqqqqqqqqu [!!] Continue installation remotely using SSH tqqqqqqqqqqqk
   x                                                                       x
   x                               Start SSH                               x
   x To continue the installation, please use an SSH client to connect to  x
   x the IP address 192.168.1.77 and log in as the "installer" user. For   x
   x example:                                                              x
   x                                                                       x
   x    ssh installer@192.168.1.77                                         x
   x                                                                       x
   x The fingerprint of this SSH server's host key is:                     x
   x b1:4e:bc:b4:c1:d5:7b:10:6a:84:c4:b1:44:95:6a:4a                       x
   x                                                                       x
   x Please check this carefully against the fingerprint reported by your  x
   x SSH client.                                                           x
   x                                                                       x
   x                                                             x
   x                                                                       x
   mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj



ssh into 192.168.1.77 with user installer and password install and continue the installation

Set a caching nameserver and an Internet Gateway at 192.168.1.1

Choose a network mirror and continue the installation

Set RedBoot to boot the new debian system

Reboot and hit Control-C to enter RedBoot
RedBoot> fconfig boot_script_data
boot_script_data: 
.. fis load ramdisk.gz
.. fis load zImage
.. exec
Enter script, terminate with empty line
>> fis load -b 0x01800000 ramdisk.gz
>> fis load -b 0x01008000 zImage
>> exec -c "console=ttyS0,115200 rw root=/dev/ram mem=256M@0xa0000000" -r 0x01800000
>> 
Update RedBoot non-volatile configuration - continue (y/n)? y
... Unlock from 0xf1fc0000-0xf1fc1000: .
... Erase from 0xf1fc0000-0xf1fc1000: .
... Program from 0x0ffd2000-0x0ffd3000 at 0xf1fc0000: .
... Lock from 0xf1fc0000-0xf1fc1000: .
RedBoot>reset 



wait ...
Debian GNU/Linux 6.0 unassigned-hostname ttyS0

unassigned-hostname login: root
Password: 
Linux unassigned-hostname 2.6.32-5-iop32x #1 Tue Sep 24 05:31:45 UTC 2013 armv5tel

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

root@unassigned-hostname:~#


Setup network,hostname, etc ...

Check out specs
# cat /proc/cpuinfo
Processor : XScale-80219 rev 0 (v5l)
BogoMIPS : 398.95
Features : swp half thumb fastmult edsp 
CPU implementer : 0x69
CPU architecture: 5TE
CPU variant : 0x0
CPU part : 0x2e2
CPU revision : 0

Hardware : Lanner EM7210
Revision : 0000
Serial  : 0000000000000000



Lucky me, I found a 512MB DDR PC400 stick.
Install it and reboot to enter RedBoot to change the installation script
== Executing boot script in 1.000 seconds - enter ^C to abort
^C
RedBoot> fconfig boot_script_data
boot_script_data: 
.. fis load -b 0x01800000 ramdisk.gz
.. fis load -b 0x01008000 zImage
.. exec -c "console=ttyS0,115200 rw root=/dev/ram mem=256M@0xa0000000" -r 0x01800000
Enter script, terminate with empty line
>> fis load -b 0x01800000 ramdisk.gz
>> fis load -b 0x01008000 zImage
>> exec -c "console=ttyS0,115200 rw root=/dev/ram mem=512M@0xa0000000" -r 0x01800000
>> 
Update RedBoot non-volatile configuration - continue (y/n)? y
... Unlock from 0xf1fc0000-0xf1fc1000: .
... Erase from 0xf1fc0000-0xf1fc1000: .
... Program from 0x1ffd2000-0x1ffd3000 at 0xf1fc0000: .
... Lock from 0xf1fc0000-0xf1fc1000: .
RedBoot> reset



root@theano:~# free
             total       used       free     shared    buffers     cached
Mem:        516144      29680     486464          0       1996      16832
-/+ buffers/cache:      10852     505292
Swap:       749560          0     749560



Done.



Links :
http://download.intel.com/support/motherboards/server/ss4000-e/sb/ss4000e_tps_13.pdf
http://ecos.sourceware.org/docs-latest/redboot/redboot-guide.html
http://www.debian.org/releases/stable/armel/ch05s01.html.en
http://ftp.nl.debian.org/debian/dists/squeeze/main/installer-armel/current/images/iop32x/network-console/ss4000e/ http://d-i.debian.org/daily-images/armel/daily/iop32x/network-console/ss4000e




Put debian on an Intel SS400 How-To

apache2 rewrite

Apache 2 Rewrite

Enable the Apache2 rewrite Module on a debian system.
# cd /etc/apache2/mods-available/
# a2enmod rewrite
# service apache2 restart


Example of an .htaccess that forwards www.example.com to example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} www.example.com
RewriteRule ^(.*)$ http://example.com/$1 [R=permanent,L]


You may need to allow overwrite e.g.
<Directory "/sites/www.example.com/wwwroot">
  AllowOverride All
  Order allow,deny
  allow from all
</Directory>





Or skip the .htaccess in the wwwroot dir and just put the Rewrite rules in the apache host configuration file.
<Directory "/sites/www.example.com/wwwroot">
RewriteEngine on
RewriteCond %{HTTP_HOST} www.example.com
RewriteRule ^(.*)$ http://example.com/$1 [R=permanent,L]
</Directory>


The .htaccess is read by apache every time someone visits the URL. I would use it only if I was creting an apache host for someone who does not have root or someone who does not have experience with systems administration.



apache mod_rewrite manual



mod rewrite example