Inhalt

1. NAS ZYXEL NSA-310

Das Zyxel NSA-310 stellt eine interessante Plattform für einen energiesparenden Homeserver auf Debian-Basis dar.

In dieser Anleitung wird eine Installationsmöglichkeit beschrieben, die für mich funktioniert hat. Wenn ihr noch andere Möglichkeiten entdeckt habt, die benutzerfreundlicher sind, bitte ich diese auch hier zu beschreiben / zu verlinken.

2. Voraussetzungen

3. Vorbereitung der Installation

3.1. Demontage

  1. Die große Schlitzschraube unter der Frontplatte lösen.
  2. Frontplatte nach unten ziehen und dann abnehmen.
  3. Die vier kurzen Kreuzschlitzschrauben, mit dem der Platinenträger am Gehäuse befestigt ist, lösen.
  4. Die vier langen Kreuzschlitzschrauben, mit dem die Rückseite am Gehäuse befestigt ist, lösen.
  5. Gehäuserückseite annehmen und in das Gehäuse legen (dorthin, wo später sich später die Festplatte befindet).
  6. Platinenträger nun nach vorne herausziehen.
  7. Lüfterkabel abziehen (Anschluss J4, schwarzes Kabel an Pin 1).

Detailaufnahme zerlegtes Gehäuse inkl. benötigtem Werkzeug

3.2. Verbindung über serielle Konsole herstellen

3.2.1. An NSA-NAS anschließen

Bei der Verdrahtung muss die richtige Pinbelegung genau beachtet werden, sonst kann es zu Beschädigungen der angeschlossenen Geräte kommen.

Pinbelegung / verwendetes Gerät

Pins

Mainboard (Jumper 2 - J2)

1 *

2 *

3 *

4 -

5 *

Pinbelegung NSA-310

VCC

TxD

RxD

NC

GND

Pinbelegung an Foca

-

RxD

TxD

-

GND

Getestete Geräte, die über 3,3 V mit dem NSA-NAS kommunizieren können:

Gerätename

Besonderheiten

Bezugsquelle

Foca

Über Jumper können 3,3 V oder 5 V eingestellt werden. Kommunikation wird zudem über LED visualisiert

http://www.komputer.de/zen/index.php?main_page=product_info&cPath=22&products_id=83

Detailaufnahme serieller Anschluss

3.2.2. An PC anschließen

Zuerst muss festgestellt werden, welche Schnittstelle belegt wird. dmesg bringt folgende Ausgabe:

[420963.820036] usb 3-3: new full speed USB device using ohci_hcd and address 2
[420964.070128] ftdi_sio 3-3:1.0: FTDI USB Serial Device converter detected
[420964.070199] usb 3-3: Detected FT232RL
[420964.070205] usb 3-3: Number of endpoints 2
[420964.070210] usb 3-3: Endpoint 1 MaxPacketSize 64
[420964.070215] usb 3-3: Endpoint 2 MaxPacketSize 64
[420964.070220] usb 3-3: Setting MaxPacketSize 64
[420964.076152] usb 3-3: FTDI USB Serial Device converter now attached to ttyUSB1

Das Interface belegt in diesem Fall also /dev/ttyUSB1.

3.2.3. Terminalprogramm starten

Am einfachsten ist die Verbindung mit Programmen, denen man sämtliche Einstellungen als Parameter mitgeben kann.

3.2.4. Kontakt zum U-Boot

Nachdem das Terminalprogramm empfangsbereit ist, wird das NSA über den Taster an der Front eingeschaltet. Der Bootvorgang wird im Terminalprogramm sichtbar und kann durch einen beliebigen Tastendruck abgebrochen werden:

         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_
| | | |___|  _ \ / _ \ / _ \| __|
| |_| |___| |_) | (_) | (_) | |_
 \___/    |____/ \___/ \___/ \__|
 ** MARVELL BOARD: RD-88F6281A LE

U-Boot 1.1.4 (Feb 22 2011 - 10:31:35) Marvell version: 3.4.19

U-Boot code: 00600000 -> 0067FFF0  BSS: -> 006CFEE0

Soc: 88F6281 A1 (DDR2)
CPU running @ 1200Mhz L2 running @ 400Mhz
SysClock = 400Mhz , TClock = 200Mhz

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000   size 256MB
DRAM Total size 256MB  16bit width
Addresses 10M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (10M - 7M): Done
NAND:128 MB
Flash:  0 kB

CPU : Marvell Feroceon (Rev 1)
Kernel address is 0x4640000.

Streaming disabled
Write allocate disabled

Module 0 is RGMII
Module 1 is TDM

USB 0: host mode
PEX 0: PCI Express Root Complex Interface
PEX interface detected Link X1
Net:   egiga0, egiga1 [PRIME]
Hit any key to stop autoboot:  0
NSA310>>

Nun können diverse Befehle abgesetzt werden, um den Bootloader zu konfigurieren oder Informationen zu erhalten. Eine Übersicht der zur Verfügung stehenden Befehle wird durch den Eingabe von help ausgegeben:

NSA310>>  help
?       - alias for 'help'
base    - print or set address offset
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootext2    dev:boot_part1,boot_part2 addr boot_image linux_dev_name 
bootm   - boot application image from memory
bootp   - boot image via network using BootP/TFTP protocol
bubt    - Burn an image on the Boot Nand Flash.
chpart  - change active partition
cmp     - memory compare
cmpm    - Compare Memory
cp      - memory copy
cpumap - Display CPU memory mapping settings.
crc32   - checksum calculation
date    - get/set/reset date & time
dclk    - Display the MV device CLKs.
dhcp    - invoke DHCP client to obtain IP/boot params
diskboot- boot from IDE device
echo    - echo args to console
eeprom  - EEPROM sub-system
erase   - erase FLASH memory
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fi      - Find value in the memory.
flinfo  - print FLASH memory information
fsinfo  - print information about filesystems
fsload  - load binary file from a filesystem image
g       - start application at cached address 'addr'(default addr 0x40000)
go      - start application at address 'addr'
help    - print online help
icrc32  - checksum calculation
ide     - IDE sub-system
iloop   - infinite loop on address range
imd     - i2c memory display
iminfo  - print header information for application image
imm[.b, .s, .w, .l]     - i2c memory modify (auto-incrementing)
imw     - memory write (fill)
inm     - memory modify (constant address)
iprobe  - probe to discover valid I2C chip addresses
ir      - reading and changing MV internal register values.
loop    - infinite loop on address range
ls      - list files in a directory (default /)
map     - Diasplay address decode windows
md      - memory display
me      - PCI master enable
mm      - memory modify (auto-incrementing)
mmcinit - init mmc card
mp      - map PCI BAR
mtdparts- define flash/nand partitions
mtest   - simple RAM test
mw      - memory write (fill)
nand                   - NAND sub-system
nboot   - boot from NAND device
nbubt   - Burn a boot loader image on the Boot Nand Flash.
nm      - memory modify (constant address)
pci     - list and access PCI Configuration Space
phyRead - Read PCI-E Phy register
pciePhyWrite    - Write PCI-E Phy register
phyRead - Read Phy register
phyWrite        - Write Phy register
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
printinfo- print environment variables
protect - enable or disable FLASH write protection
rarpboot- boot image via network using RARP/TFTP protocol
rcvr    - Satrt recovery process (Distress Beacon with TFTP server)
reset   - Perform RESET of the CPU
resetenv        - Return all environment variable to default.
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
saveinfo - save environment variables to persistent storage
se      - PCI Slave enable
setenv  - set environment variables
setinfo  - set environment variables
sflash  - read, write or erase the external SPI Flash.
sg      - scanning the PHYs status
sp      - Scan PCI bus.
tftpboot- boot image via network using TFTP protocol
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor version

Version des Bootloaders:

NSA310>> version

U-Boot 1.1.4 (Feb 22 2011 - 10:31:35) Marvell version: 3.4.19

Systeminformationen:

NSA310>> printenv
bootargs=console=ttyS0,115200 mtdparts=nand_mtd:0x100000(uboot),0x80000(uboot_env),0x80000(key_store),0x80000(info),0xA00000(etc),0xA00000(kernel_1),0x2FC0000(rootfs1),0xA00000(kernel_2),0x2FC0000(rootfs2) root=/dev/nfs rw init=/init
bootcmd=nand read.e 0x2000000 $(kernel_addr) 0xA00000; bootm 0x2000000
bootdelay=2
baudrate=115200
loads_echo=0
eth1addr=00:19:CB:00:51:82
ipaddr=10.4.50.165
serverip=10.4.50.5
rootpath=/mnt/ARM_FS/
netmask=255.255.255.0
nandEcc=1bit
PRODUCT_NAME=NSA-310
FEATURE_BIT=00
CONTRY_TYPE=FF
VENDOR_NAME=ZyXEL Communications Corp.
run_diag=yes
ethaddr=50:67:F0:69:8B:DA
MODEL_ID=A203
stdin=serial
stdout=serial
stderr=serial
console=console=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x7f00000@0x100000(root)
mainlineLinux=no
CASset=min
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
ethprime=egiga1
netbsd_en=no
vxworks_en=no
bootargs_root=root=/dev/nfs rw
bootargs_end=:::DB88FXX81:eth0:none
image_name=uImage
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
disaMvPnp=no
ethmtu=1500
eth1mtu=1500
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
usb0Mode=host
yuk_ethaddr=00:00:00:EE:51:81
hddPowerCtrl=no
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
enaAutoRecovery=yes
kernel_addr=0x4640000
pcieTune=no
ethact=egiga1

Environment size: 1558/131068 bytes

Hieraus erhalten wir z.B. die MAC-Adresse 50:67:F0:69:8B:DA

3.3. Vorbereitung des USB-Sticks

Durch dmesg oder fdisk -lu wird das Device des USB-Sticks in Erfahrung gebracht. Danach wird er gelöscht und mit FAT16 formatiert. Da FAT16 nur Partitionsgrößen bis max. 4 GB unterstützt, muss bei größeren Stick eine Partition angelegt werden. Der Stick wird in beiden Fällen komplett gelöscht durch den Befehl dd!

3.3.1. Stick kleiner 4 GB ohne Partitionierung

dd if=/dev/zero of=/dev/sdc bs=2k count=1

Danach Kernel neue Partitionstabelle bekanntmachen durch

oder

mkdosfs -In nsa-stick -F 16 /dev/sdc
mount /dev/sdc /mnt/test && cd /mnt/test

3.3.2. Stick größer 4 GB mit Partitionierung

dd if=/dev/zero of=/dev/sdc bs=2k count=1
fdisk /dev/sdc
 c
 u
 o
 n
 p
 1
 <ENTER> für den Anfangswert
 +1G
 t
 6
 w

Danach Kernel neue Partitionstabelle bekanntmachen durch

oder

Stick formatieren und einhängen:

mkdosfs -In nsa-stick -F 16 /dev/sdc1
mount /dev/sdc1 /mnt/test && cd /mnt/test

3.3.3. Stick mit Daten füllen

Stick ist gemountet unter /mnt/test:

wget http://www.scintilla.utwente.nl/~petero/nsa310/uImage-3.2
wget http://www.scintilla.utwente.nl/~petero/nsa310/initrd.gz
cd ~
sync
umount /mnt/test

3.3.4. Geprüfte Kernel & RAM-Disks

Dateiname

Quelle

md5-Hash

Datum

Download

uImage-3.2

http://www.scintilla.utwente.nl/~petero/nsa310/uImage-3.2

bb1c8187673750cf1eb008e276c0333f

2012-03-28

uImage-3.2_2012-03-28.gz

initrd.gz

http://www.scintilla.utwente.nl/~petero/nsa310/initrd.gz

bdd50cf5aff28d0155efc2ad656cdebb

2012-03-28

initrd_2012-03-28.gz

3.4. Vorbereitung der Festplatte

Um während der Installation schnell voran zu kommen, bietet es sich an, die Festplatte zuvor an einem PC zu partitionieren. Dies ist insbesondere bei 4k-Festplatten von Vorteil, da man so besser auf das Alignment (Ausrichten der Partitionsgrenzen an Sektorengrenzen) achten kann.

Hier wird folgendes, klassisches Schema verwendet:

sda1

/boot

150 MiB

für Kernel

sda2

/

20 GiB

für System, ordentliche Reserven

sda3

SWAP

1 GiB

ordentliche Reserve

sda4

/srv

Rest

für Daten, Rest der Festplatte

Hierzu kann ein vorhandenes Linux-System oder eine Live-Distribution, wie z.B. grml genutzt werden.

Zum Partitionieren wird das Programm parted verwendet, welches nach dem Aufruf mittels

parted /dev/sdX

im Befehlsmodus auf weitere Eingaben wartet. Nachfolgend sind die benötigten Befehle ohne vorangestelltes (parted) aufgelistet. Dadurch werden vorhandene Partitionen gelöscht und eine neue Partitionstabelle samt Partitionen angelegt. Das verwendete MS-DOS Partitionierungsschema kann für Festplatten bis zu 2 TB verwendet werden. Bei größeren Festplatten wird eine GPT-Partitionstabelle benötigt.

mklabel msdos
unit MiB
mkpart primary ext2 1MiB 151MiB
mkpart primary ext4 151MiB 20631MiB 
mkpart primary linux-swap 20631MiB 21655MiB 
mkpart primary ext4 21655MiB 100%
toggle 1 boot

(parted) print                                                            
Model: ATA ST2000DL003-9VT1 (scsi)
Disk /dev/sda: 1907729MiB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start     End         Size        Type     File system     Flags
 1      1,00MiB   151MiB      150MiB      primary  ext2            boot
 2      151MiB    20631MiB    20480MiB    primary  ext4
 3      20631MiB  21655MiB    1024MiB     primary  linux-swap(v1)
 4      21655MiB  476940MiB  455285MiB  primary

(parted) unit s
(parted) print                                                            
Modell: ATA ST500DM002-1BC14 (scsi)
Festplatte  /dev/sdc:  976773168s
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos

Nummer  Anfang     Ende        Größe       Typ      Dateisystem  Flags
 1      2048s      309247s     307200s     primary  ext2
 2      309248s    42252287s   41943040s   primary
 3      42252288s  44349439s   2097152s    primary
 4      44349440s  976773119s  932423680s  primary

Für alle Partitionen durchführen:

align-check
alignment type(min/opt)  [optimal]/minimal?                               
Partitionsnummer? 4
4 aligned

4. Debian Installation

Variablen setzen:

setenv mainlineLinux yes
setenv arcNumber 3339
saveenv
reset

Ergibt:

NSA310>> setenv mainlineLinux yes
NSA310>> setenv arcNumber 3339
NSA310>> saveenv
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
NSA310>> reset

usb start

Ausgabe;

NSA310>> usb start
(Re)start USB...
USB:   scanning bus for devices... 3 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found

Kernel und Initrd vom Stick laden:

fatload usb 0 0x800000 uImage-3.2
fatload usb 0 0xb00000 initrd.gz

Ausgabe:

NSA310>> fatload usb 0 0x800000 uImage-3.2
reading uImage-3.2
...
...................................................................................................................................................................................................................................
..

2351984 bytes read
NSA310>> fatload usb 0 0xb00000 initrd.gz
reading initrd.gz
...
......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
...

9437184 bytes read

System starten:

setenv bootargs 'console=ttyS0,115200 root=/dev/ram initrd=0xb00000,0x900000 ramdisk=32768'
bootm 0x800000

4.1. Debian Installer

Da die Debianinstallation sehr umfangreich beschrieben wird, ist sie auf einer Unterseite zusammengefasst:

4.2. 1. Start

Da das gerade installierte Debian noch nicht automatisch gestartet wird, wird das System mit den nachfolgenden Befehlen manuell gebootet. Dazu muss der Bootvorgang wieder mit beliebiger Taste im Terminal abgebrochen werden, um dann folgende Befehle abzusetzen:

usb start
fatload usb 0 0×800000 uImage-3.2
setenv bootargs 'console=ttyS0,115200 root=/dev/sda2'
bootm 0×800000

Wenn Debian nun wieder startet und man zum Login Prompt gelangt, ist die Installation geglückt.

4.3. Debian automatisch booten

Im gebooteten Debian folgende Befehle absetzen, um den Kernel vom USB-Stick in die Boot-Partition zu kopieren:

mkdir /mnt/test
mount /dev/sdb /mnt/test
cp /mnt/test/uImage-3.2 /boot
cd /boot
ln -s uImage-3.2 uImage

Danach neustarten

shutdown -r now

U-Boot anhalten und die Boot-Partition dauerhaft festlegen:

setenv bootargs 'console=ttyS0,115200 root=/dev/sda2'
setenv bootcmd 'ide reset; ext2load ide 0:1 0x800000 /uImage; bootm 0x800000'
saveenv
boot

5. Debian System anpassen

5.1. Netzwerk richtig einrichten

Der Aufruf von ifconfig -a zeigt, dass eth1 mit einer dubiosen MAC-Adresse verwendet wird. Nachfolgend wird die Schnittstelle auf eth0 umbenannt und die zuvor erhobene MAC-Adresse gesetzt.

root@nsa-silo:~# ifconfig -a
eth1      Link encap:Ethernet  Hardware Adresse 00:00:00:00:00:30  
          inet Adresse:192.168.111.219  Bcast:192.168.111.255  Maske:255.255.255.0
          inet6-Adresse: fe80::200:ff:fe00:30/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX bytes:1106 (1.0 KiB)  TX bytes:1194 (1.1 KiB)
          Interrupt:9 Basisadresse:0x6000 

lo        Link encap:Lokale Schleife  
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:16436  Metrik:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0 
          RX bytes:560 (560.0 B)  TX bytes:560 (560.0 B)

sit0      Link encap:IPv6-nach-IPv4  
          NOARP  MTU:1480  Metrik:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@nsa-silo:~# 

Netzwerk auf eth0 einrichten (eth0 und eth1 tauschen):

vim /etc/udev/rules.d/70-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:00:00:00:00:30", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# Unknown net device (/devices/platform/mv643xx_eth_port.0/net/eth0) (mv643xx_eth_port)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="50:67:f0:69:8b:da", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Die MAC Adresse, die zu Beginn festgestellt wurde, bei jedem Start setzen lassen und aufgrund dem Tausch eth0 / eth1 DHCP für die richtige Schnittstelle setzen:

vim /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
    hwaddress ether 50:67:f0:69:8b:da  

5.2. LEDs

Folgende Zeilen am besten in /etc/rc.local ergänzen, um die nach dem Start blinkende "SYS"-LED zu stoppen:

# Config leds
echo 1 > /sys/class/leds/nsa310:green:System/brightness

5.3. Kernel panic vermeiden

Das Hinzufügen folgender Zeilen in /etc/sysctl.conf verhindert Kernel Panics:

# Set VM min memory
vm.min_free_kbytes=8192

6. Bewährte Software & Tools installieren

6.1. Standardtools

Grundlegende Software installieren:

aptitude install \
mc screen vim htop rsync smartmontools \
parted disktype mtools \
openssh-server \
rdiff-backup \
zsh \
build-essential

6.2. ZSH und andere bewährte Konfigs setzen

Pro User, bzw. nach Bedarf:

aptitude install zsh
mkdir ~/bin && cd ~/bin
wget http://grml.org/scripts/grml-config.sh
chmod 775 grml-config.sh
cd && ~/bin/grml-config.sh
wget -O .zshrc.local http://git.grml.org/f/grml-etc-core/etc/skel/.zshrc

chsh
 -> /bin/zsh

6.3. Webmin

Paketquellen für Webmin anlegen:

vim /etc/apt/sources.list.d/webmin

mit folgendem Inhalt:

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

Danach die Key für das Repository einbinden:

cd /root
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc

Und nun installieren:

aptitude update
aptitude install webmin

Nun kann per https auf dem Port 10000 das Webmininterface aufgerufen werden:

7. Spezielle Software je nach Einsatzgebiet

7.1. Musikwiedergabe allgemein

USB-Sound Adapter eingesteckt:

usb 1-1.2: new full-speed USB device number 4 using orion-ehci
usb_audio: Warning! Unlikely big volume range (=13568), cval->res is probably wrong.
usb_audio: [2] FU [PCM Playback Volume] ch = 2, val = 2560/16128/1
usb_audio: Warning! Unlikely big volume range (=6096), cval->res is probably wrong.
usb_audio: [5] FU [Mic Capture Volume] ch = 1, val = 0/6096/1
input: USB  AUDIO   as /devices/platform/orion-ehci.0/usb1/1-1/1-1.2/1-1.2:1.3/input/input1
generic-usb 0003:1130:F211.0001: input: USB HID v1.10 Device [USB  AUDIO  ] on usb-orion-ehci.0-1.2/input3
input: USB  AUDIO   as /devices/platform/orion-ehci.0/usb1/1-1/1-1.2/1-1.2:1.4/input/input2
generic-usb 0003:1130:F211.0002: input: USB HID v1.10 Device [USB  AUDIO  ] on usb-orion-ehci.0-1.2/input4

aptitude install alsa-base alsa-utils 
aptitude install madplay

madplay spielt super, mpg123 hat knacken?!?

Player

CPU

RAM

Sound

madplay

17%

0,8%

ok

mpg123

54%

0,9%

Knacken

7.2. Squeezebox Server / Client

7.2.1. Squeezeslave

mkdir -p ~/install/tar/squeezeslave && cd ~/install/tar/squeezeslave
wget http://downloads.sourceforge.net/project/softsqueeze/squeezeslave/squeezeslave-1.2.311/squeezeslave-1.2-311-armel-lnx26.tar.gz
tar xvzf squeezeslave-1.2-311-armel-lnx26.tar.gz
cp squeezeslave /usr/local/bin

cd ~
root@nsa-silo ~ # squeezeslave -L
Output devices:
  0: (ALSA) USB  AUDIO: USB Audio (hw:0,0) (10/42)
  1: (ALSA) front (10/42)
  2: (ALSA) surround40 (10/42)
  3: (ALSA) iec958 (10/42)
  4: (ALSA) spdif (10/42)
* 5: (ALSA) default (42/46)
  6: (ALSA) dmix (42/42)
  7: (OSS) /dev/dsp (11/46)

Mittel des Parameters -F verbindet sich der Player mit dem verfügbaren Squeezebox Server:

root@nsa-silo ~ # squeezeslave -F

Via Weboberfläche des Squeezebox Servers ist der Player erreichbar und kann auch umbenannt werden.

ABER: Auch hier ist das selbe Knacken wie bei mpg123 zu hören!

7.2.1.1. Analyse

Player

CPU

RAM

Sound

madplay

17%

0,8%

ok (Ausgabe über ?)

mpg123

54%

0,9%

Knacken (Ausgabe über ?)

squeezeslave -F -o 7

51%

2,6%

ok (Ausgabe über OSS)

squeezeslave -F

4%

2,8%

Knacken! (Ausgabe über ALSA)

7.2.1.2. Squeezeslave automatisch starten

Wo liegt unser Programm?

root@nsa-silo ~ # which squeezeslave
/usr/local/bin/squeezeslave

cd /etc/init.d
wget http://squeezeslave.googlecode.com/svn/squeezeslave/trunk/squeezeslave/config/squeezeslave.init.debian -O squeezeslave
chmod 755 /etc/init.d/squeezeslave
update-rc.d squeezeslave defaults

Einstellungen übertragen durch Editieren der Datei squeezeslave

PATH=/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
...
DAEMON=/usr/local/bin/$NAME
...
SSMAC="00:00:00:00:01:01"
SBSHOST="ops.local.hom"
SSOPTIONS="-o 7"

Logfile wird in SSLOG=/var/log/squeezeslave.log definiert.

Dann neustarten und schon sollte die squeezeslave-Instanz in der Weboberläche des Squeezebox-Server auftauche. Über die Einstellungen dort kann auch der Name angepasst werden.

Beim Abspielen eines Lieds sieht das dann in htop so aus:

1535 root      21   1 51876  6804  1548 S 51.0  2.7  1:37.32 /usr/local/bin/squeezeslave -R -M/var/log/squeezeslave.log -o 7 -m00:00:00:00:01:01 ops

7.2.2. Squeezeserver installieren

7.2.2.1. Installation

mkdir -p /root/install/deb/squeezeserver
cd /root/install/deb/squeezeserver
wget http://downloads.slimdevices.com/LogitechMediaServer_v7.7.2/logitechmediaserver_7.7.2_all.deb
dpkg -i logitechmediaserver_7.7.2_all.deb

Vormals abgewähltes Paket logitechmediaserver wird gewählt.
(Lese Datenbank ... 29046 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacken von logitechmediaserver (aus logitechmediaserver_7.7.2_all.deb) ...
logitechmediaserver (7.7.2) wird eingerichtet ...
Lege Systembenutzer »squeezeboxserver« (UID 104) an ...
Lege neuen Benutzer »squeezeboxserver« (UID 104) mit Gruppe »nogroup« an ...
Erstelle Home-Verzeichnis »/usr/share/squeezeboxserver« nicht.
Making sure that Logitech Media Server is not running first: No process in pidfile '/var/run/logitechmediaserver.pid' found running; none killed.
Starting Logitech Media Server.
dpkg -i logitechmediaserver_7.7.2_all.deb  12,54s user 9,37s system 26% cpu 1:22,79 total

8. Weiterführende Informationen

8.1. Grundlage für diese Anleitung

8.2. Informationen zum Bootloader U-Boot

8.3. Debian auf ARM-Systemen

9. Weitere Hardware

Es muss nicht immer gleich ein NAS sein.

http://soekris.com/

10. ToDo-Liste - Ausblick - Wünsche

10.1. smartmontools

10.2. Mailversand

10.3. OpenVPN

10.4. Sonstiges

ZYXEL NSA-310 (zuletzt geändert am 2013-12-31 11:54:04 durch RalfMoll)