Linksys NSLU2 rulez ;)

Asszem ideje nekem is írnom valami blog-félét. :) Kezdjük mondjuk valami olyannal, ami mást is érdekelhet. :)

Vettem nemrégiben egy Linksys NSLU2-est, ami egy SOHO NAS-nak van a gyártó szerint pozícionálva. Mint már néhány Linksys routernél régebben megtörtént, a linuxos közösség szerint nem csak erre van pozícionálva, hanem sokkal többre. ;)

Egy openslugos kitérő után - azon nem volt meg mindenféle csomag, ami nekem kell majd - ma végre fölraktam a kütyüre egy DebianSlugot. Egy kis ízelítő, először egy dmesg:


Linux version 2.6.16 (slug@nudi) (gcc version 3.4.4) #1 PREEMPT Thu Jun 8 23:38:13 PDT 2006
CPU: XScale-IXP42x Family [690541f1] revision 1 (ARMv5TE)
Machine: Linksys NSLU2
Ignoring unrecognised tag 0x00000000
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 8192
  DMA zone: 8192 pages, LIFO batch:1
  DMA32 zone: 0 pages, LIFO batch:0
  Normal zone: 0 pages, LIFO batch:0
  HighMem zone: 0 pages, LIFO batch:0
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
Kernel command line: root=/dev/mtdblock4 rootfstype=jffs2 init=/linuxrc rtc-x1205.probe=0,0x6f  noirqdebug console=ttyS0,115200n8
PID hash table entries: 256 (order: 8, 4096 bytes)
IXP4xx: FREQ=66666600 COUNT=666665
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 32MB = 32MB total
Memory: 30188KB available (1925K code, 180K data, 92K init)
Calibrating delay loop... 266.24 BogoMIPS (lpj=1331200)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
IXP4xx: Using 16MiB expansion bus window size
PCI: IXP4xx is host
PCI: IXP4xx Using direct access for memory space
PCI: bus0: Fast back to back transfers disabled
IXP4xx: FREQ=66000000 COUNT=660001
dmabounce: registered device 0000:00:01.0 on pci bus
dmabounce: registered device 0000:00:01.1 on pci bus
dmabounce: registered device 0000:00:01.2 on pci bus
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
Initializing Cryptographic API
io scheduler noop registered
io scheduler deadline registered (default)
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xc8000000 (irq = 15) is a XScale
serial8250.0: ttyS1 at MMIO 0xc8001000 (irq = 13) is a XScale
RAMDISK driver initialized: 4 RAM disks of 10240K size 1024 blocksize
libata version 1.20 loaded.
ata1: PATA max PIO4 cmd 0xC2852003 ctl 0xC285201D bmdma 0x0 irq 12
scsi0 : ixp4xx
NFTL driver: nftlcore.c $Revision: 1.98 $, nftlmount.c $Revision: 1.41 $
IXP4XX-Flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
IXP4XX-Flash.0: Found an alias at 0x800000 for the chip at 0x0
 Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
cfi_cmdset_0001: Erase suspend on write enabled
erase region 0: offset=0x0,size=0x20000,blocks=64
Searching for RedBoot partition table in IXP4XX-Flash.0 at offset 0x7e0000
RedBoot directory 0x507e0000(0x20000) swapped
6 RedBoot partitions found on MTD device IXP4XX-Flash.0
Creating 6 MTD partitions on "IXP4XX-Flash.0":
0x00000000-0x00040000 : "RedBoot"
0x00040000-0x00060000 : "SysConf"
0x00060000-0x00160000 : "Kernel"
0x00160000-0x00180000 : "Ramdisk"
0x00180000-0x007e0000 : "Flashdisk"
0x007e0000-0x00800000 : "FIS directory"
Using configured DiskOnChip probe address 0x50000000
PCI: enabling device 0000:00:01.2 (0140 -> 0142)
ehci_hcd 0000:00:01.2: EHCI Host Controller
ehci_hcd 0000:00:01.2: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:01.2: irq 26, io mem 0x48002000
ehci_hcd 0000:00:01.2: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 5 ports detected
ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
PCI: enabling device 0000:00:01.0 (0140 -> 0142)
ohci_hcd 0000:00:01.0: OHCI Host Controller
ohci_hcd 0000:00:01.0: new USB bus registered, assigned bus number 2
ohci_hcd 0000:00:01.0: irq 28, io mem 0x48000000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 3 ports detected
PCI: enabling device 0000:00:01.1 (0140 -> 0142)
ohci_hcd 0000:00:01.1: OHCI Host Controller
ohci_hcd 0000:00:01.1: new USB bus registered, assigned bus number 3
ohci_hcd 0000:00:01.1: irq 27, io mem 0x48001000
usb 1-2: new high speed USB device using ehci_hcd and address 2
usb usb3: configuration #1 chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 2 ports detected
usb 1-2: configuration #1 chosen from 1 choice
USB Universal Host Controller Interface driver v2.3
Initializing USB Mass Storage driver...
scsi1 : SCSI emulation for USB Mass Storage devices
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usb-storage: device found at 2
usb-storage: waiting for device to settle before scanning
input: ixp4xx beeper as /class/input/input0
i2c /dev entries driver
x1205 0-006f: chip found, driver version 1.0.6
x1205 0-006f: rtc intf: sysfs
x1205 0-006f: rtc intf: proc
x1205 0-006f: rtc intf: dev (254:0)
x1205 0-006f: rtc core: registered x1205 as rtc0
Registered led device: ready
Registered led device: status
Registered led device: disk-1
Registered led device: disk-2
NET: Registered protocol family 2
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
x1205 0-006f: setting the system clock to 2006-06-14 11:54:04 (1150286044)
VFS: Mounted root (jffs2 filesystem) readonly.
Freeing init memory: 92K
  Vendor: WDC WD40  Model: 0VE-07HDT0        Rev: 09.0
  Type:   Direct-Access                      ANSI SCSI revision: 00
SCSI device sda: 78140160 512-byte hdwr sectors (40008 MB)
sda: Write Protect is off
sda: Mode Sense: 00 14 00 00
sda: assuming drive cache: write through
SCSI device sda: 78140160 512-byte hdwr sectors (40008 MB)
sda: Write Protect is off
sda: Mode Sense: 00 14 00 00
sda: assuming drive cache: write through
 sda: sda1 sda2
sd 1:0:0:0: Attached scsi disk sda
usb-storage: device scan complete
kjournald starting.  Commit interval 5 seconds
EXT3 FS on sda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
Adding 250872k swap on /dev/sda2.  Priority:-1 extents:1 across:250872k
EXT3 FS on sda1, internal journal
ixp400: no version for "struct_module" found: kernel tainted.
ixp400: no version magic, tainting kernel.
ixp400: module license 'unspecified' taints kernel.
ixp400: Module init.
ixp400_eth: no version magic, tainting kernel.
ixp400_eth: Initializing IXP400 NPE Ethernet driver software v. 1.5
ixp400_eth: CPU clock speed (approx) = 266 MHz
[message] ixEthMiiPhyScan, Mii 1: Mii PHY ID 00008201
ixp400_eth: Found PHY 0 at address 1
ixp400_eth: ethernet 0 using NPEB and the PHY at address 1
ixp400_eth: Use default MAC address 00:02:b3:01:01:01 for port 0
ixp400_eth: MAC address now set to 00:14:bf:63:3f:4e for port 0
ixp400_eth: Use default MAC address 00:02:b3:02:02:02 for port 1

Szar a Drupal, hogy a code címke lezárása után nem hagy itt ki egy sort? :I

Mint az a föntiekből is látható, a gépen egy WD400VE lóg, egy Canyon USB2-es tokban. Az időnkénti kaparászástól eltekintve, amit a fejmozgás okoz, a cucc teljesen hangtalan és gyakorlatilag alig fogyaszt valami áramot. Az egyik fő cél pont ez volt a megépítésénél, hogy szépen beinthessek az ELMŰ-nek, ennek ellenére legyen itthon egy 24 órában működő szerver. :))

Természetesen a gép overclockolva van (de szép magyar szó), az útmutatónak megfelelően levágtam a NYÁK-ról az R83-as ellenállást, és most 266 MHz-cel hasít. :)

További érdekességek:


bors:/# cat /proc/cpuinfo
Processor       : XScale-IXP42x Family rev 1 (v5l)
BogoMIPS        : 266.24
Features        : swp half thumb fastmult edsp
CPU implementer : 0x69
CPU architecture: 5TE
CPU variant     : 0x0
CPU part        : 0x41f
CPU revision    : 1
Cache type      : undefined 5
Cache clean     : undefined 5
Cache lockdown  : undefined 5
Cache format    : Harvard
I size          : 32768
I assoc         : 32
I line length   : 32
I sets          : 32
D size          : 32768
D assoc         : 32
D line length   : 32
D sets          : 32

Hardware        : Linksys NSLU2
Revision        : 0000
Serial          : 0000000000000000
bors:/# cat /proc/interrupts
           CPU0
  0:          0   osal
  1:         64   osal
  2:         13   osal
  3:          0   ixp400_eth
  5:     195696   IXP4xx Timer Tick
 11:        352   ixp4xx-beeper
 12:          0   libata
 15:        200   serial
 18:    7617458   ixp400_eth
 22:          0   NSLU2 power button
 26:      21834   ehci_hcd:usb1
 27:          0   ohci_hcd:usb3
 28:          0   ohci_hcd:usb2
 29:          0   NSLU2 reset button
Err:          0
bors:/# free
             total       used       free     shared    buffers     cached
Mem:         30300      22440       7860          0        896      14688
-/+ buffers/cache:       6856      23444
Swap:       250872       1192     249680
bors:/# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 09:54 ?        00:00:05 init [2]
root         2     1  0 09:54 ?        00:00:00 [ksoftirqd/0]
root         3     1  0 09:54 ?        00:00:00 [events/0]
root         4     1  0 09:54 ?        00:00:00 [khelper]
root         5     1  0 09:54 ?        00:00:00 [kthread]
root        16     5  0 09:54 ?        00:00:00 [kblockd/0]
root        19     5  0 09:54 ?        00:00:00 [khubd]
root        62     5  0 09:54 ?        00:00:00 [pdflush]
root        63     5  0 09:54 ?        00:00:00 [pdflush]
root        65     5  0 09:54 ?        00:00:00 [aio/0]
root        64     1  0 09:54 ?        00:00:00 [kswapd0]
root        83     5  0 09:54 ?        00:00:00 [ata/0]
root        85     5  0 09:54 ?        00:00:00 [scsi_eh_0]
root        88     1  0 09:54 ?        00:00:00 [mtdblockd]
root        89     1  0 09:54 ?        00:00:00 [nftld]
root       128     5  0 09:54 ?        00:00:00 [scsi_eh_1]
root       129     5  0 09:54 ?        00:00:01 [usb-storage]
root       190     1  0 09:54 ?        00:00:00 [kjournald]
root       508     1  0 09:55 ?        00:00:00 [IxOsal 1]
root       511     5  0 09:55 ?        00:00:00 [ixp400_eth]
root       514     5  0 09:55 ?        00:00:00 [ixp400_eth]
root       516     5  0 09:55 ?        00:00:00 [ixp400_eth]
root       520     1  0 09:55 ?        00:00:00 [ixp400 eth0]
root       608     1  0 09:55 ?        00:00:00 /sbin/syslogd
root       614     1  0 09:55 ?        00:00:00 /sbin/klogd -x
root       634     1  0 09:55 ?        00:00:00 /usr/sbin/sshd
root       651     1  0 09:55 ?        00:00:00 /usr/sbin/cron
root       677     1  0 09:55 ttyS0    00:00:00 /sbin/getty 115200 ttyS0
root       686   634  0 09:56 ?        00:00:02 sshd: root@pts/0
root       690   686  0 09:56 pts/0    00:00:00 -bash
root       827   634  0 10:06 ?        00:00:01 sshd: root@pts/1
root       831   827  0 10:06 pts/1    00:00:00 -bash
ntpd       843     1  0 10:08 pts/1    00:00:00 /usr/sbin/ntpd -s
root       844     1  0 10:08 ?        00:00:00 /usr/sbin/ntpd -s
root       901   690  0 10:28 pts/0    00:00:00 ps -ef
bors:/#

No, egyelőre ennyi. :)

Igen kellemes cucc, szívesen ajánlom mindenkinek, aki otthonra egy pici, hangtalan, áramot alig fogyasztó linuxos szervert akar magának összerakni. Én első körben ezekre tervezem használni:
- NFS szerver
- CUPS szerver, USB-n át egy Kyocera FS1010-est teszek majd rá
- UPS monitor
- kimenő SMTP szerver Postfixszel az itthoni gépeknek
- esetleg SANE-nel majd scannerszervernek is, ez még nem biztos

Hozzászólások

Tenyleg nagyon franko gep, raadasul a debian etch telepitoje mar gyarilag tamogatja!. Es csak kb 20kHUF.

Viszont tegnap szívtam vele egy sort, mert a default telepítésben nincsen sehol ARM little endian USB printer modul. Ezért kénytelen voltam a teljes GCC toolchaint lefordítani és egy 2.6.16-os kernelt is, modulokkal együtt.

De baromi jó fej vagyok, ezért a modult kiraktam ide:

http://www.adi.priv.hu/cucc/kernel-module-usblp_2.6.16-r6.4_ixp4xxle.ipk

Akinek kell, használja egészséggel! :)

Legyen még akkor pár angol kulcsszó is, hogy külföldi szerencsétlenek is megtalálják a Google-lel. :)

The USB lp / printer kernel module for kernel version 2.6.16, ARM, little endian (DebianSlug 3.10), is available on the link above for Linksys NSLU2. Just unpack the file and copy the usblp.ko under /lib/modules/2.6.16 and run depmod -a as root:

ar x kernel-module-usblp_2.6.16-r6.4_ixp4xxle.ipk
tar -xzf data.tar.gz 
mkdir -p /lib/modules/2.6.16/kernel/drivers/usb/class/
cp lib/modules/2.6.16/kernel/drivers/usb/class/usblp.ko /lib/modules/2.6.16/kernel/drivers/usb/class
depmod -a
modprobe usblp
echo "usblp" >> /etc/modules

This last line is only needed for reloading the module after reboot.

--
Sokan nincsenek tudatában annak, / hogy egyszer mindenki meghal. / Akik ráébrednek erre, / azonnal abbahagyják az ellenségeskedést.

Nos, pár hónapja én is szereztem egy ketyerét, nagyon baba. Debian-t tettem föl, az is csendesen elketyeg. Azonban a fönt lévő rtorrent elég régi, 0.6-os, ennél van újabb is, de az etch csak ezt kínálja föl.

Próbáltam apt-get-tel frissíteni a distro-t, de ennél nem történt újítás.

Kínomban már letöltöttem a forrást, és http://tutorialninjas.net/2007/05/07/upgrade-rtorrent-to-074/ szerint magam fordítom. A "libtorrent" könyvtár pöcre lefordult, fél nap alatt. Az új rtorrent (0.8.2) újabb fél nap darálás után elszállt fordítás közben (igen, megjegyezhettem volna, mit írt ki a hibaüzenet...). Nos, most estére még egyszer neki ugrasztom a gépet, de nincsenek nagy reményeim :-(

Ezért némi tanácsot, segítséget kérnék hasonló kisgéppel bíró kollégáktól: hogyan lehetne erre az arm-os platformra új rtorrent-et (binárisat) tenni? Ha valakinek lenne új, esetleg átküldené? Vagy fordítana egyet valami gyorsabb masinán?

Köszönöm!

Cözi

u.i. Igen, miért is kell új rtorrent kliens? Mert a 0.6-os nem seed-elt :-(