Inhalt
Inhaltsverzeichnis
- NAS ZYXEL NSA-310
- Voraussetzungen
- Vorbereitung der Installation
- Debian Installation
- Debian System anpassen
- Bewährte Software & Tools installieren
- Spezielle Software je nach Einsatzgebiet
- Weiterführende Informationen
- Weitere Hardware
- ToDo-Liste - Ausblick - Wünsche
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
1x ZYXEL NSA-310 oder NSA-320
- 1x Schlitzschraubendreher
- 1x Kreuzschlitzschraubendreher
- Serielle Schnittstelle mit Pegelwandler, z.B.
- Terminalprogramm
- USB-Stick
3. Vorbereitung der Installation
3.1. Demontage
- Die große Schlitzschraube unter der Frontplatte lösen.
- Frontplatte nach unten ziehen und dann abnehmen.
- Die vier kurzen Kreuzschlitzschrauben, mit dem der Platinenträger am Gehäuse befestigt ist, lösen.
- Die vier langen Kreuzschlitzschrauben, mit dem die Rückseite am Gehäuse befestigt ist, lösen.
- Gehäuserückseite annehmen und in das Gehäuse legen (dorthin, wo später sich später die Festplatte befindet).
- Platinenträger nun nach vorne herausziehen.
- 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.
screen /dev/ttyUSB1 115200 8N1
picocom -b 115200 /dev/ttyUSB1
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
- USB-Stick ziehen und neu einstecken
oder
sfdisk -R /dev/sdc
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
- USB-Stick ziehen und neu einstecken
oder
sfdisk -R /dev/sdc
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 |
bb1c8187673750cf1eb008e276c0333f |
2012-03-28 |
|
|
initrd.gz |
bdd50cf5aff28d0155efc2ad656cdebb |
2012-03-28 |
|
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
- NSA ausschalten (Stromversorgung trennen)
- Stick auf der Rückseite einstecken
- NSA einschalten
- Bootvorgang durch Drücken einer Taste erneut abbrechen
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
- Bootvorgang durch Drücken einer Taste erneut abbrechen
- USB-Unterstützung starten
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
- SBSHOST: euer Squeezebox-Server
- SSMAC: MAC des Players, dient zur Unterscheidung, wenn ihr mehrere habt
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
https://github.com/peeter123/NSA310-320-debian/blob/master/README
http://technerd.de/zyxel-nas-nsa-310-hack-mod-auf-debian-steht-an_230.html
8.2. Informationen zum Bootloader U-Boot
http://plugcomputer.org/plugwiki/index.php/U-Boot_Quick_Reference
http://www.wehavemorefun.de/fritzbox/index.php/Serielle_Konsole
8.3. Debian auf ARM-Systemen
http://www.cyrius.com/debian/kirkwood/sheevaplug/install.html
http://www.cyrius.com/debian/kirkwood/sheevaplug/troubleshooting.html
9. Weitere Hardware
Es muss nicht immer gleich ein NAS sein.
10. ToDo-Liste - Ausblick - Wünsche
10.1. smartmontools
- Automatische Tests
10.2. Mailversand
- Via postfix und smarthost
10.3. OpenVPN
- Anbindung an Server via OpenVPN
10.4. Sonstiges
Nützliches Scripte aus debian-webmail übernehmen.
- (ich hab debian-webmail geschrieben, also script bin ich nicht, nur konfiguration)