NSLU2

From YobiWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

http://www.andreabeggi.net/wp-content/53006-nslu2.jpg

Intro

  • XScale processor from Intel (ARM) at 266MHz (133MHz before hacking...)
  • 32Mb SDRAM
  • 8Mb Flash
  • 2 USB 2.0 ports

Links

Todo

  • Mine came with
    • Server Name: LKG63472F
    • Version: V2.3RA5
  • Connect USB printer?
  • Install backuppc -> I tried but slug is really too slow for that :-(
  • Connect Tuxdroid dongle

Debian

Installation

To install, follow the howto, here are the big steps:

  • Get Debian 4.0r0 firmware from http://www.slug-firmware.net/ and unzip it
  • Power the NSLU2 and wait a bit (green light) before plugging it to the network if you've a DHCP, so the NSLU2 will choose itself IP 192.168.1.77, otherwise look to your DHCP server logs to find the IP attribution
  • Go to the admin webpage, tab administration, login admin/admin
  • Configure ALL network params if you don't have DHCP
  • Go to the admin webpage, tab administration, login admin/admin, tab advanced, tab upgrade
  • Upload di-nslu2.bin, start upgrade
  • Wait for "upgrading ok" (5mins) -> wait for 3 bips (5-10mins)
  • This is the last moment to plug an external USB mass-storage if you didn't do so yet
  • Login via ssh installer@192.168.1.77 (or another IP got by DHCP...) pwd "install"
    • I did it from an xterm but exported term mode is pure console so it's better to login from a real text console otherwise the ncurses menu is a bit broken (but still usable)
  • Start installation, manually load the following modules:
    • ext3-modules-2.6.18-4-ixp4xx-di
    • partman-auto
    • partman-ext3
    • scsi-core-modules-2.6.18-4-ixp4xx-di
    • usb-storage-modules-2.6.18-4-ixp4xx-di
  • Whatever system you choose to partition your disk, be sure to have at least 128M of swap, I've set up 512M on my 400G drive.
  • In total it took about 100 mins to complete
  • If you need a console, start a second ssh connection and choose to obtain a shell
  • On tasksel, I chose absolutely nothing, I prefer to take only what I need later

After first reboot

  • dpkg --get-selections|wc -l
142
  • du -hs /
179M
  • dmesg:
Linux version 2.6.18-4-ixp4xx (Debian 2.6.18.dfsg.1-12) (waldi@debian.org) (gcc versi
on 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 Tue Mar 27 18:01:56 BST 2007
CPU: XScale-IXP42x Family [690541f1] revision 1 (ARMv5TE), cr=0000397f
Machine: Linksys NSLU2
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 8192
  DMA zone: 8192 pages, LIFO batch:1
CPU0: D VIVT undefined 5 cache
CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
Built 1 zonelists.  Total pages: 8192
Kernel command line: console=ttyS0,115200 rtc-x1205.probe=0,0x6f noirqdebug
IRQ lockup detection disabled
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 32MB = 32MB total
Memory: 25780KB available (1948K code, 496K data, 92K init)
Calibrating delay loop... 132.71 BogoMIPS (lpj=663552)
...
  • hdparm -tT /dev/sda
/dev/sda:
Timing cached reads:    86 MB in  2.04 seconds =  42.20 MB/sec
Timing buffered disk reads:   28 MB in  3.12 seconds =   8.98 MB/sec

Tweaks

  • Ok so our NSLU2 is well underclocked, let's restore its full speed following this howto
Calibrating delay loop... 266.24 BogoMIPS (lpj=1331200)

Much better :-)

/dev/sda:
Timing cached reads:    90 MB in  2.00 seconds =  44.98 MB/sec
Timing buffered disk reads:   32 MB in  3.03 seconds =  10.56 MB/sec

A bit better but nothing fantastic...

  • Setup static network parameters
    • apt-get install resolvconf
    • edit /etc/network/interfaces
allow-hotplug eth0
iface eth0 inet static
   address 192.168.1.77
   netmask 255.255.255.0
   gateway 192.168.1.1
   dns-nameservers 192.168.1.2 192.168.1.1
  • From /usr/share/doc/nslu2-utils/README.Debian:
    • sed -i 's/^FSCKFIX=.*$/FSCKFIX=yes/' /etc/default/rcS
    • sed -i 's/^BOOTLOGD_ENABLE=.*$/BOOTLOGD_ENABLE=yes/' /etc/default/bootlogd
    • Reorder the booting sequence to get ssh up earlier:
ls -l /etc/rcS.d/
S21resolvconf -> ../init.d/resolvconf
S22ifupdown -> ../init.d/ifupdown
S23networking -> ../init.d/networking
S23ssh -> ../init.d/ssh
    • By default the power button restarts the slug, change the call to shutdown in /etc/inittab:
ca:12345:ctrlaltdel:/sbin/shutdown -h now

Devel

Be prepared to do some native compilation...

  • apt-get install build-essential

Tuxdroid

Basics

  • apt-get install subversion libusb-dev libglib2.0-dev ipython
  • mkdir /home/tuxdroid; cd /home/tuxdroid
  • svn co http://svn.tuxisalive.com tuxdroid-svn
  • cd tuxdroid-svn/daemon/trunk
  • make
  • mkdir -p /opt/tuxdroid/api
  • ln -s /home/tuxdroid/tuxdroid-svn/software /opt/tuxdroid/api/python
  • mkdir -p /opt/tuxdroid/bin
  • ln -s /home/tuxdroid/tuxdroid-svn/daemon/trunk/tuxdaemon /opt/tuxdroid/bin
  • ln -s /opt/tuxdroid/bin/tuxdaemon /usr/local/bin/tuxdaemon
  • echo -e "#/bin/bash\npython -i /opt/tuxdroid/api/python/tux.py" > /opt/tuxdroid/bin/tuxsh
  • chmod 755 /opt/tuxdroid/bin/tuxsh
  • ln -s /opt/tuxdroid/bin/tuxsh /usr/local/bin/tuxsh

Flashing tools

Audio

  • apt-get install alsa-utils mpg321
  • cat /proc/asound/cards
0 [Droid          ]: USB-Audio - Tux Droid
                     Kysoh Tux Droid at usb-0000:00:01.0-1, full speed
  • with a more recent firmware you get:
0 [default        ]: USB-Audio - TUX RF DONGLE
                     C2ME BELGIUM TUX RF DONGLE  at usb-0000:00:01.0-1, full speed

For oss layer:

  • modprobe snd_pcm_oss
  • modprobe snd_mixer_oss

Webradio

Status

  • compiling tuxdaemon OK
  • running tuxdaemon FAIL
    • USB part seems ok (displays tux events properly) but not TCP part, seems not to be listening on port
  • compiling tuxup OK
  • compiling dfu-programmer OK
  • compiling svncrev OK
  • compiling tuxcore tuxaudio OK
  • flashing tuxcore.hex tuxcore.eep tuxaudio.hex tuxaudio.eep OK
  • sound PARTLY
    • ALSA and OSS-emulation layers are up
    • the sound is quite hashed and lot of "alsa underrun" msgs, slightly better results through oss than alsa
    • recording at 8000 Hz mono is very poor (played on host)
    • playing at 8000 Hz mono is poor (recorded on host)
    • madplay -b8 -R8000 ...mp3 is correct

Misc

Boot diagnostics

From /usr/share/doc/nslu2-utils/README.Debian but in case of problems I prefer to have the text here :-)

Some of the led states during boot include:
- Cycling down all the leds from top to bottom: The APEX boot loader.
- Amber status led: Initramfs is running, mounting root filesystem.
- Disk 1 on, status slowly switching between amber and green: Root
  filesystem mounted, system booting.
- Disk 1 on, status green, with fast double amber flashes: System is booted
  and running. The frequency of the amber flashes indicates the system's
  one minute load average; faster flashes denote higher load.
- Disk 1 on, status quickly flashing between black/green and black/amber.
  Single user mode. Again the flash interval denotes load.
- Disk 1 on, status slowly switching beteween amber and red: Shutdown in
  progress.

tests

apt-get install locales
apache2-mpm-prefork - Traditional model for Apache HTTPD 2.1
apache2-mpm-worker - High speed threaded model for Apache HTTPD 2.1