NSLU2

From YobiWiki
Revision as of 22:33, 24 November 2010 by <bdi>PhilippeTeuwen</bdi> (talk | contribs) (Reverted edits by Etegohy (Talk) to last revision by PhilippeTeuwen)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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