SnakeOS and the NS-K330 “NAS”

I recently discovered the NS-K330 “NAS”  — a tiny device with one 10/100Mbps LAN port and two USB 2.0 ports, intended for home use as a cheap Network Attached Storage unit and file download client. I received mine December 30th 2010, and have been poking at it the past few days. This post describes my initial experiments after upgrading the firmware to SnakeOS (Linux-based firmware for “wlxkj652, ns-k330 and others NAS based on str8132 family of SoC”).

The details

The NS-K330 has 32MB RAM, 8MB Flash and is based on a 250MHz Cavium Networks “CNS2132” ARM processor. The CPU is reported by the OS as “FA526id(wb)(ARMv4)”, and the chip itself is marked “CNS2132-250FP128-AEFF-G”. This is a member of the CNS2XXX branch of Cavium Network’s ECONA-ARM line of processors.

The factory firmware is regarded as woeful in most discussion forums — the universal recommendation is to upgrade to SnakeOS.

SnakeOS is nice because the current image for this little box supports ssh, sftp, ftp, telnet, rsync, samba (amongst other stuff) and can read/write ntfs, fat, ext2, and ext3 formats on drives plugged into the two USB ports.

Installing SnakeOS 1.2.0
At the time, SnakeOS 1.2.0 was the “official” release (21 June 2010) and could be downloaded from here. (An unofficial 1.3.2 release existed at the time, but I did not try it.) I flashed the NS-K330 to SnakeOS 1.2.0 using the initial firmware’s WebGUI (“Tools->Upgrade”) option, and selecting snakeos-V1.2.0-20100621-from-original.bin as the new firmware image. This was successful and the unit automatically rebooted.

(In both cases, orginal and first SnakeOS installation, the unit will utilise DHCP to get an IP address if you have a DHCP server on your network.)

Useful username / password combinations:

  • admin/admin (factory firmware WebGUI)
  • admin/snake (SnakeOS WebGUI)
  • root/snake (ssh into SnakeOS)

NOTE: Make sure you use “-from-original” versions when initially flashing your unit to SnakeOS from the original OS. Otherwise badness happens and you end up with a non-functional device.

From the web gui immediately after the firmware was flashed to SnakeOS:

    Kernel version:	2.6.16-gazineu
    NAS version:	SNAKE OS V1.2.0 (20100621)
    Storage Name:	snake
    LAN IP Address:	10.1.1.51
    LAN MAC Address:	AC:DE:48:4E:FD:B1
    Physical RAM:	Total: 30444KB - Free: 22980KB
    Swapfile:	Total: 0KB - Free: 0KB
    Uptime:	1 min

System log after first SnakeOS boot

Below is the System Log from the webGUI after the first SnakeOS boot on my NS-K330 after flashing from original OS to SnakeOS 1.2.0

Dec 31 02:38:34 boot-kernel: PCI Bridge not found
Dec 31 02:38:34 boot-kernel: PCI map irq: 00:00.00 slot 0, pin 1, irq: 0
Dec 31 02:38:34 boot-kernel: SCSI subsystem initialized
Dec 31 02:38:34 boot-kernel: usbcore: registered new driver usbfs
Dec 31 02:38:34 boot-kernel: usbcore: registered new driver hub
Dec 31 02:38:34 boot-kernel: str8100_led_init: Registered NAS 652 led device driver.
Dec 31 02:38:34 boot-kernel: NetWinder Floating Point Emulator V0.97 (extended precision)
Dec 31 02:38:34 boot-kernel: JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
Dec 31 02:38:34 boot-kernel: fuse init (API version 7.8)
Dec 31 02:38:34 boot-kernel: fuse distribution version: 2.7.4
Dec 31 02:38:34 boot-kernel: io scheduler noop registered
Dec 31 02:38:34 boot-kernel: io scheduler cfq registered (default)
Dec 31 02:38:34 boot-kernel: str8100_rtc.o: rtc module version 1.0.0
Dec 31 02:38:34 boot-kernel: str8100_wdt.o: watchdog module version 1.0.1
Dec 31 02:38:34 boot-kernel: Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
Dec 31 02:38:34 boot-kernel: serial8250: ttyS0 at MMIO 0x78000000 (irq = 9) is a 16550A
Dec 31 02:38:34 boot-kernel: serial8250: ttyS1 at MMIO 0x78800000 (irq = 10) is a 16550A
Dec 31 02:38:34 boot-kernel: loop: loaded (max 8 devices)
Dec 31 02:38:34 boot-kernel: Star NIC Driver(for Linux Kernel 2.6) - Star Semiconductor
Dec 31 02:38:34 boot-kernel: rxring.vir_addr=0xFFC00000 rxring.phy_addr=0x00390000
Dec 31 02:38:34 boot-kernel: txring.vir_addr=0xFFC01000 txring.phy_addr=0x00391000
Dec 31 02:38:34 boot-kernel: Star Internal PHY
Dec 31 02:38:34 boot-kernel: MAC Addr: 08:0a:0b:0c:0d:0e
Dec 31 02:38:34 boot-kernel:
Dec 31 02:38:34 boot-kernel: star_nic_init_module: internal phy patch included.
Dec 31 02:38:34 boot-kernel: star_nic_init_module: scatter/gather enabled.
Dec 31 02:38:34 boot-kernel:
Dec 31 02:38:34 boot-kernel: STR8100 SPI: init
Dec 31 02:38:34 boot-kernel: m25p80 spi1.0: m25p64 (8192 Kbytes)
Dec 31 02:38:34 boot-kernel: Creating 6 MTD partitions on "m25p80":
Dec 31 02:38:34 boot-kernel: 0x00000000-0x00040000 : "BOOT"
Dec 31 02:38:34 boot-kernel: 0x00040000-0x00060000 : "CFG"
Dec 31 02:38:34 boot-kernel: 0x00060000-0x00150000 : "KERNEL"
Dec 31 02:38:34 boot-kernel: 0x00150000-0x003f0000 : "INITRD"
Dec 31 02:38:34 boot-kernel: 0x00000000-0x003f0000 : "WEB"
Dec 31 02:38:35 boot-kernel: 0x00000000-0x003f0000 : "ALL"
Dec 31 02:38:35 boot-kernel: str8100-ehci str8100-ehci: str8100-ehci
Dec 31 02:38:35 boot-kernel: str8100-ehci str8100-ehci: new USB bus registered, assigned bus number 1
Dec 31 02:38:35 boot-kernel: str8100-ehci str8100-ehci: irq 24, io mem 0xcc000000
Dec 31 02:38:35 boot-kernel: str8100-ehci str8100-ehci: USB 0.0 started, EHCI 1.00, driver 10 Dec 2004
Dec 31 02:38:35 boot-kernel: usb usb1: configuration #1 chosen from 1 choice
Dec 31 02:38:35 boot-kernel: hub 1-0:1.0: USB hub found
Dec 31 02:38:35 boot-kernel: hub 1-0:1.0: 2 ports detected
Dec 31 02:38:35 boot-kernel: ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (STR8100)
Dec 31 02:38:35 boot-kernel: str8100-ohci str8100-ohci: str8100-ohci
Dec 31 02:38:35 boot-kernel: str8100-ohci str8100-ohci: new USB bus registered, assigned bus number 2
Dec 31 02:38:35 boot-kernel: str8100-ohci str8100-ohci: irq 23, io mem 0xc4000000
Dec 31 02:38:35 boot-kernel: usb usb2: configuration #1 chosen from 1 choice
Dec 31 02:38:35 boot-kernel: hub 2-0:1.0: USB hub found
Dec 31 02:38:35 boot-kernel: hub 2-0:1.0: 2 ports detected
Dec 31 02:38:35 boot-kernel: ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
Dec 31 02:38:35 boot-kernel: usbcore: registered new driver usblp
Dec 31 02:38:35 boot-kernel: drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
Dec 31 02:38:35 boot-kernel: Initializing USB Mass Storage driver...
Dec 31 02:38:35 boot-kernel: usbcore: registered new driver usb-storage
Dec 31 02:38:35 boot-kernel: USB Mass Storage support registered.
Dec 31 02:38:35 boot-kernel: NET: Registered protocol family 2
Dec 31 02:38:35 boot-kernel: IP route cache hash table entries: 512 (order: -1, 2048 bytes)
Dec 31 02:38:35 boot-kernel: TCP established hash table entries: 2048 (order: 1, 8192 bytes)
Dec 31 02:38:35 boot-kernel: TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
Dec 31 02:38:35 boot-kernel: TCP: Hash tables configured (established 2048 bind 2048)
Dec 31 02:38:35 boot-kernel: TCP reno registered
Dec 31 02:38:35 boot-kernel: TCP bic registered
Dec 31 02:38:35 boot-kernel: NET: Registered protocol family 1
Dec 31 02:38:35 boot-kernel: NET: Registered protocol family 17
Dec 31 02:38:35 boot-kernel: Empty flash at 0x00296914 ends at 0x0029fff0
Dec 31 02:38:35 boot-kernel: VFS: Mounted root (jffs2 filesystem) readonly.
Dec 31 02:38:35 boot-kernel: Freeing init memory: 76K
Dec 31 02:38:35 boot-kernel: Reset config: NO
Dec 31 02:38:35 boot-kernel: MAC Addr: ac:de:48:4e:fd:b1
Dec 31 02:38:35 boot-kernel: eth0:star_nic_lan_open
Dec 31 02:38:35 boot-kernel: star_nic_enable: starting patch check.
Dec 31 02:38:35 kernel: klogd started: BusyBox v1.14.2 (2010-06-21 19:41:28 BRT)
Dec 31 02:38:35 kernel: Linux version 2.6.16-gazineu (root@snaker01) (gcc version 3.4.6) #13 Mon Jun 21 21:43:59 BRT 2010
Dec 31 02:38:35 kernel: CPU: FA526id(wb) [66015261] revision 1 (ARMv4)
Dec 31 02:38:35 kernel: Machine: STAR STR8100
Dec 31 02:38:35 kernel: Warning: bad configuration page, trying to continue
Dec 31 02:38:35 kernel: Ignoring unrecognised tag 0x00000000
Dec 31 02:38:35 kernel: Memory policy: ECC disabled, Data cache writeback
Dec 31 02:38:35 kernel: On node 0 totalpages: 8192
Dec 31 02:38:35 kernel: DMA zone: 8192 pages, LIFO batch:1
Dec 31 02:38:35 kernel: DMA32 zone: 0 pages, LIFO batch:0
Dec 31 02:38:35 kernel: Normal zone: 0 pages, LIFO batch:0
Dec 31 02:38:35 kernel: HighMem zone: 0 pages, LIFO batch:0
Dec 31 02:38:35 kernel: CPU0: D VIVT write-back cache
Dec 31 02:38:35 kernel: CPU0: I cache: 8192 bytes, associativity 2, 16 byte lines, 256 sets
Dec 31 02:38:35 kernel: CPU0: D cache: 8192 bytes, associativity 2, 16 byte lines, 256 sets
Dec 31 02:38:35 kernel: PLL clock at 250MHz
Dec 31 02:38:35 kernel: CPU clock at 250MHz
Dec 31 02:38:35 kernel: AHB clock at 125MHz
Dec 31 02:38:35 kernel: APB clock at 62MHz
Dec 31 02:38:35 kernel: Built 1 zonelists
Dec 31 02:38:35 kernel: Kernel command line: mtdparts=m25p80:256k(boot)ro,128k(config),960k(kernel)ro,2688k(initrd)ro,4032k@0x0000(web),4032k@0x0000(flash) root=31:03 ro rootfstype=jffs2
Dec 31 02:38:35 kernel: PID hash table entries: 256 (order: 8, 4096 bytes)
Dec 31 02:38:35 kernel: Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Dec 31 02:38:35 kernel: Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Dec 31 02:38:35 kernel: Memory: 32MB = 32MB total
Dec 31 02:38:35 kernel: Memory: 30348KB available (1808K code, 160K data, 76K init)
Dec 31 02:38:35 kernel: Calibrating delay loop... 192.51 BogoMIPS (lpj=962560)
Dec 31 02:38:35 kernel: Mount-cache hash table entries: 512
Dec 31 02:38:35 kernel: CPU: Testing write buffer coherency: ok
Dec 31 02:38:35 kernel: NET: Registered protocol family 16
Dec 31 02:38:35 kernel: PCI clock at 33M
Dec 31 02:38:35 kernel: PCI: bus0: Fast back to back transfers disabled
Dec 31 02:38:35 kernel: PCI Bridge not found
Dec 31 02:38:35 kernel: PCI map irq: 00:00.00 slot 0, pin 1, irq: 0
Dec 31 02:38:35 kernel: SCSI subsystem initialized
Dec 31 02:38:35 kernel: usbcore: registered new driver usbfs
Dec 31 02:38:35 kernel: usbcore: registered new driver hub
Dec 31 02:38:35 kernel: str8100_led_init: Registered NAS 652 led device driver.
Dec 31 02:38:35 kernel: NetWinder Floating Point Emulator V0.97 (extended precision)
Dec 31 02:38:35 kernel: JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
Dec 31 02:38:35 kernel: fuse init (API version 7.8)
Dec 31 02:38:35 kernel: fuse distribution version: 2.7.4
Dec 31 02:38:35 kernel: io scheduler noop registered
Dec 31 02:38:35 kernel: io scheduler cfq registered (default)
Dec 31 02:38:35 kernel: str8100_rtc.o: rtc module version 1.0.0
Dec 31 02:38:35 kernel: str8100_wdt.o: watchdog module version 1.0.1
Dec 31 02:38:35 kernel: Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
Dec 31 02:38:35 kernel: serial8250: ttyS0 at MMIO 0x78000000 (irq = 9) is a 16550A

First ssh into NS-K330

Here’s what I saw when ssh’ing into the SnakeOS box for the first time after flashing the firmware and plugging in a 500G Iomega USB drive.

      [gja@gjadesktop]/home/gja(103)% ssh root@10.1.1.51
      root@10.1.1.51's password:

				__
	      (\   .-.   .-.   /_")
	      \\_//^\\_//^\\_//
	  jgs   `"`   `"`   `"`

      ----------------------------------
      Star Nas Altered Killer Edition OS

      SNAKE OS V1.2.0 (20100621)
      ----------------------------------

      BusyBox v1.14.2 (2010-06-21 19:41:28 BRT) built-in shell (ash)
      Enter 'help' for a list of built-in commands.

      # uname -a
      Linux snake 2.6.16-gazineu #13 Mon Jun 21 21:43:59 BRT 2010 armv4l GNU/Linux
      #
      # ps
	PID USER       VSZ STAT COMMAND
	  1 root       928 S    init
	  2 root         0 SWN  [ksoftirqd/0]
	  3 root         0 SW<  [events/0]
	  4 root         0 SW<  [khelper]
	  5 root         0 SW<  [kthread]
	12 root         0 SW<  [kblockd/0]
	15 root         0 SW<  [khubd]
	43 root         0 SW   [pdflush]
	44 root         0 SW   [pdflush]
	46 root         0 SW<  [aio/0]
	45 root         0 SW   [kswapd0]
	181 root         0 SW<  [cqueue/0]
	198 root         0 SW   [mtdblockd]
	201 root         0 SW<  [str8100_spi]
	389 root      1360 S    nmbd -D
	416 root       916 S    /sbin/syslogd -S -O /var/messages
	524 root       916 S    /sbin/klogd
	544 root       928 S    init
	547 root       936 S    /usr/sbin/crond -c /etc/cron.d
	555 root       916 S    /usr/sbin/telnetd
	560 root       920 S    httpd -c /etc/httpd.conf -h /usr/share/www -p 80 -r S
	562 root      1704 S    smbd -D
	570 root       852 S    dropbear
      2355 root         0 SW<  [scsi_eh_0]
      2356 root         0 SW<  [usb-storage]
      2390 root      1420 S <  ntfs-3g /dev/sda1 /usb/sda1 -o noatime,recover
      2722 root       900 S    dropbear
      2723 root       928 S    -sh
      2733 root       920 R    ps
      # df -h
      Filesystem                Size      Used Available Use% Mounted on
      /dev/root                 2.6M      2.6M         0 100% /
      tmpfs                     2.0M     36.0K      2.0M   2% /var
      tmpfs                     2.0M         0      2.0M   0% /tmp
      tmpfs                     1.0M         0      1.0M   0% /usb
      mdev                      1.0M         0      1.0M   0% /dev
      tmpfs                     1.0M    192.0K    832.0K  19% /etc
      /dev/sda1               465.8G     79.0M    465.7G   0% /usb/sda1
      #
      # ifconfig
      eth0      Link encap:Ethernet  HWaddr AC:DE:48:4E:FD:B1
		inet addr:10.1.1.51  Bcast:10.1.1.255  Mask:255.255.255.0
		UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
		RX packets:13795 errors:0 dropped:0 overruns:0 frame:0
		TX packets:2772 errors:0 dropped:0 overruns:0 carrier:0
		collisions:0 txqueuelen:1000
		RX bytes:3950062 (3.7 MiB)  TX bytes:1068515 (1.0 MiB)
		Base address:0x2000

      lo        Link encap:Local Loopback
		inet addr:127.0.0.1  Mask:255.0.0.0
		UP LOOPBACK RUNNING  MTU:16436  Metric:1
		RX packets:0 errors:0 dropped:0 overruns:0 frame:0
		TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
		collisions:0 txqueuelen:0
		RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

      #
      # rsync --version
      rsync  version 3.0.6  protocol version 30
      Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
      Web site: http://rsync.samba.org/
      Capabilities:
	  64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
	  no socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
	  append, no ACLs, xattrs, no iconv, no symtimes

      rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
      are welcome to redistribute it under certain conditions.  See the GNU
      General Public Licence for details.
      #

External Storage

I successfully plugged in and utilised two drives and a memory stick at different times:

  • 500G Iomega with NTFS
  • 320G Samsung G2 with FAT32
  • 512MB Kensington memory stick with FAT32

Iomega 500G USB drive

The drive was immediately recognised and mounted, with the following syslog messages:

Dec 31 15:53:39 kernel: usb 1-2: new high speed USB device using str8100-ehci and address 2
Dec 31 15:53:39 kernel: usb 1-2: configuration #1 chosen from 1 choice
Dec 31 15:53:39 kernel: scsi0 : SCSI emulation for USB Mass Storage devices
Dec 31 15:53:39 kernel: usb-storage: device found at 2
Dec 31 15:53:39 kernel: usb-storage: waiting for device to settle before scanning
Dec 31 15:53:44 kernel:   Vendor: ST950032  Model: 5AS               Rev:
Dec 31 15:53:44 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 02
Dec 31 15:53:44 kernel: SCSI device sda: 976773168 512-byte hdwr sectors (500108 MB)
Dec 31 15:53:44 kernel: sda: Write Protect is off
Dec 31 15:53:44 kernel: sda: Mode Sense: 28 00 00 00
Dec 31 15:53:44 kernel: sda: assuming drive cache: write through
Dec 31 15:53:44 kernel: SCSI device sda: 976773168 512-byte hdwr sectors (500108 MB)
Dec 31 15:53:44 kernel: sda: Write Protect is off
Dec 31 15:53:44 kernel: sda: Mode Sense: 28 00 00 00
Dec 31 15:53:44 kernel: sda: assuming drive cache: write through
Dec 31 15:53:44 kernel:  sda: sda1
Dec 31 15:53:44 kernel: sd 0:0:0:0: Attached scsi disk sda
Dec 31 15:53:44 kernel: sd 0:0:0:0: Attached scsi generic sg0 type 0
Dec 31 15:53:44 kernel: usb-storage: device scan complete
Dec 31 15:53:51 ntfs-3g[2390]: Version 2009.4.4 integrated FUSE 27
Dec 31 15:53:51 ntfs-3g[2390]: Mounted /dev/sda1 (Read-Write, label "Iomega_HDD", NTFS 3.1)
Dec 31 15:53:51 ntfs-3g[2390]: Cmdline options: noatime,recover
Dec 31 15:53:51 ntfs-3g[2390]: Mount options: silent,allow_other,nonempty,noatime,fsname=/dev/sda1,blkdev,blksize=4096

And appeared as a mounted FS:

# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 2.6M      2.6M         0 100% /
tmpfs                     2.0M     36.0K      2.0M   2% /var
tmpfs                     2.0M         0      2.0M   0% /tmp
tmpfs                     1.0M         0      1.0M   0% /usb
mdev                      1.0M         0      1.0M   0% /dev
tmpfs                     1.0M    192.0K    832.0K  19% /etc
/dev/sda1               465.8G     79.0M    465.7G   0% /usb/sda1
#

Samsung 320G USB drive

I then removed the Iomega drive using the WebGUI’s Disks->Partition->Unmount sda1 option and pulled the drive’s USB plug.

Plugged in the Samsung 320G drive, which was immediately recognised and mounted with the following syslog messages:

Dec 31 16:26:14 kernel: usb 1-1: new high speed USB device using str8100-ehci and address 4
Dec 31 16:26:14 kernel: usb 1-1: configuration #1 chosen from 1 choice
Dec 31 16:26:14 kernel: scsi1 : SCSI emulation for USB Mass Storage devices
Dec 31 16:26:14 kernel: usb-storage: device found at 4
Dec 31 16:26:14 kernel: usb-storage: waiting for device to settle before scanning
Dec 31 16:26:20 kernel:   Vendor: Samsung   Model: G2 Portable       Rev:
Dec 31 16:26:20 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 02
Dec 31 16:26:20 kernel: SCSI device sda: 625142448 512-byte hdwr sectors (320073 MB)
Dec 31 16:26:20 kernel: sda: Write Protect is off
Dec 31 16:26:20 kernel: sda: Mode Sense: 3c 00 00 00
Dec 31 16:26:20 kernel: sda: assuming drive cache: write through
Dec 31 16:26:20 kernel: SCSI device sda: 625142448 512-byte hdwr sectors (320073 MB)
Dec 31 16:26:20 kernel: sda: Write Protect is off
Dec 31 16:26:20 kernel: sda: Mode Sense: 3c 00 00 00
Dec 31 16:26:20 kernel: sda: assuming drive cache: write through
Dec 31 16:26:20 kernel:  sda: sda1
Dec 31 16:26:20 kernel: sd 1:0:0:0: Attached scsi disk sda
Dec 31 16:26:20 kernel: sd 1:0:0:0: Attached scsi generic sg0 type 0
Dec 31 16:26:20 kernel: usb-storage: device scan complete

# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 2.6M      2.6M         0 100% /
tmpfs                     2.0M     40.0K      2.0M   2% /var
tmpfs                     2.0M         0      2.0M   0% /tmp
tmpfs                     1.0M         0      1.0M   0% /usb
mdev                      1.0M         0      1.0M   0% /dev
tmpfs                     1.0M    192.0K    832.0K  19% /etc
/dev/sda1               298.0G     63.7G    234.3G  21% /usb/sda1
#

Kingston 512MB USB memory stick

Tried an old 512MB USB memory stick.

Dec 31 17:01:35 kernel: usb 1-2: new high speed USB device using str8100-ehci and address 5
Dec 31 17:01:36 kernel: usb 1-2: configuration #1 chosen from 1 choice
Dec 31 17:01:36 kernel: scsi2 : SCSI emulation for USB Mass Storage devices
Dec 31 17:01:36 kernel: usb-storage: device found at 5
Dec 31 17:01:36 kernel: usb-storage: waiting for device to settle before scanning
Dec 31 17:01:41 kernel:   Vendor: Kingston  Model: DataTraveler 2.0  Rev: 1.00
Dec 31 17:01:41 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 02
Dec 31 17:01:41 kernel: SCSI device sdb: 1001472 512-byte hdwr sectors (513 MB)
Dec 31 17:01:41 kernel: sdb: Write Protect is off
Dec 31 17:01:41 kernel: sdb: Mode Sense: 0b 00 00 08
Dec 31 17:01:41 kernel: sdb: assuming drive cache: write through
Dec 31 17:01:41 kernel: SCSI device sdb: 1001472 512-byte hdwr sectors (513 MB)
Dec 31 17:01:41 kernel: sdb: Write Protect is off
Dec 31 17:01:41 kernel: sdb: Mode Sense: 0b 00 00 08
Dec 31 17:01:41 kernel: sdb: assuming drive cache: write through
Dec 31 17:01:41 kernel:  sdb: sdb1
Dec 31 17:01:41 kernel: sd 2:0:0:0: Attached scsi removable disk sdb
Dec 31 17:01:41 kernel: sd 2:0:0:0: Attached scsi generic sg1 type 0
Dec 31 17:01:41 kernel: usb-storage: device scan complete

# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 2.6M      2.6M         0 100% /
tmpfs                     2.0M     40.0K      2.0M   2% /var
tmpfs                     2.0M         0      2.0M   0% /tmp
tmpfs                     1.0M         0      1.0M   0% /usb
mdev                      1.0M         0      1.0M   0% /dev
tmpfs                     1.0M    196.0K    828.0K  19% /etc
/dev/sda1               298.0G     63.7G    234.3G  21% /usb/sda1
/dev/sdb1               487.9M     21.0M    466.9M   4% /usb/sdb1
#

Rsync from USB drive to remote destination

Tried an rsync _from_ the NAS to gjabkup2 of a large file off the Samsung 320GB USB drive:

# ls -alh
drwxrwxrwx    3 root     root        32.0K May 21  2010 .
drwxrwxrwx   12 root     root        32.0K Jan  1  1970 ..
	[..]
-rwxrwxrwx    1 root     root       173.9M Jul 21 00:57 PCBSD8.1-x64-bootonly.iso
	[..]
# rsync --progress PCBSD8.1-x64-bootonly.iso gja@10.1.1.12:
Login for gja@10.1.1.12
Password:
PCBSD8.1-x64-bootonly.iso
     9895936   5%  632.10kB/s    0:04:32
	[..]
   105152512  57%  627.45kB/s    0:02:03
	[..]
   182386688 100%  450.99kB/s    0:06:34 (xfer#1, to-check=0/1)
sent 182409038 bytes  received 31 bytes  454318.98 bytes/sec
total size is 182386688  speedup is 1.00
#

And so forth (although it froze briefly around the 27% mark, and RAM usage went almost up to 100%). Basically, roughly 610 – 630kByte/sec throughout most of the transfer — ~5Mbit/sec. (The final aggregate bytes/sec above reflects the tens of seconds of pause — no traffic — during the middle of the transfer.)

An rsync of data off the Kingston memory stick saw similar 500-600KByte/sec throughputs. So not exactly a speedy device!

Use USB memory stick for Swapfile

NS-K330 doesn’t have any local swapfile. SnakeOS allows (and recommends) creating a 256M swapfile on an attached storage device (do this via the SnakeOS WebGUI Services->Swapfile option).  I selected to swap from the Kingston drive (sdb1).

Behind the scenes it runs “dd if /dev/zero of /usb/sdb1/swapfile bs 1024 count 262144” to create a swapfile. After completion, the System->Status reports:

  Kernel version:	2.6.16-gazineu
  NAS version:	SNAKE OS V1.2.0 (20100621)
  Storage Name:	snake
  LAN IP Address:	10.1.1.51
  LAN MAC Address:	AC:DE:48:4E:FD:B1
  Physical RAM:	Total: 30444KB - Free: 1572KB
  Swapfile:	Total: 262136KB - Free: 262136KB
  Uptime:	3:42

(Note that when I rebooted the box, and removed the 320G USB drive, the 512MB USB stick became /dev/sda1 even though it was still physically in “USB2” port. Consequently the NS-K330 / SnakeOS complained about having no swap as the swap was previously on a file under /dev/sdb1 not /dev/sda1.)

Heat

A number of online comments mention heat dissipation as an issue. So far the unit has been on here for 3 hours and only slightly warm on top but reasonably hot underneath (while sitting on desk top). Not too hot that I can’t hold my hand on the hottest part for many tens of seconds, though.

Conclusion

Bottom line is, this looks like a cute little box for sharing files off USB drives. Apparently SnakeOS also supports some form of printer sharing, but I have not yet tried it.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: