P89626
Alles über den MEDION LIFE P89626 (MD 86407) NAS den es im Dez.2011 bei Aldi-Süd für 99€ gab
Nummern von Medion: MD 86407 - MSN: 50039627
Desweiteren kann dies größtenteils auch auf den P89630 NAS von Medion angewandt werden, welcher lediglich eine größere Festplatte besitzt (2TB). Sämtliche andere Eigenschaften sind exakt gleich.
Beitrag im Forum
extern:
- http://forum.nas-portal.org/forumdisplay.php?135-Medion
- http://forums.whirlpool.net.au/archive/1817691
Unterseiten
Es gibt noch eine Reihe Unterseiten:
- P89626/UART - Alles rund um die UART-Schnittstelle
- P89626/debootstrap - NAS mit Debian betreiben
- P89626/ArchLinuxARM - NAS mit ArchLinuxARM betreiben
- P89626/dropbear - SSH Server mit dropbear einrichten
- P89626/usb key func - In den Boot-Prozess reinhacken
(Alle Seiten sollten in der Kategorie "P89626" sein!)
Technische Daten
- Dual Core ARM PLX-NAS7820 750 MHz (Achtung: Offizielle Firmware bis Version 1.01 nutzt nur einen CPU-Kern! Siehe P89626#Single_Core_Problem)
- 128 MB RAM
- 1.50 TB (1.36 TiB) Seagate Barracuda Green ST1500DL003-9VT1 SATA-HD
- 2 x USB 2.0
- 1 x Gigabit LAN (Realtek RTL8211E)
Netzteil:
- Eingang: 100-240 V, 50/60 Hz, 0,4 A
- Ausgang: 12 V, 1,5 A Gleichspannung
Single-Core-Problem
!Die aktuelle Firmware 1.01 nutzt nun beide Kerne der CPU!
In der Box steckt zwar ein Dual-Core, doch entgegen der Werbeaussage wird bei der aktuellen Firmware 1.00(UZD.2) (cat /zyxel/mnt/info/fwversion) nur ein CPU-Kern genutzt!
Hier ein paar Indizien, die das belegen sollen (Bitte ergänzen):
Dateien/Unterverzeichnisse existieren in /sys/devices/system/cpu/cpu0, aber /sys/devices/system/cpu/cpu1 ist leer (siehe http://www.mikrocontroller.net/topic/240238?page=2#2448859 )
Außerdem, zeigt es der Inhalt dieser Dateien an (siehe http://www.mikrocontroller.net/topic/240238?goto=2469569#2469802 ):
/sys/devices/system/cpu/kernel_max -> 1 /sys/devices/system/cpu/offline -> 1 /sys/devices/system/cpu/online -> 0 /sys/devices/system/cpu/possible -> 0-1 /sys/devices/system/cpu/present -> 0-1
offline: cpus that are not online because they have been HOTPLUGGED off or exceed the limit of cpus allowed by the kernel configuration (kernel_max above). Quelle: http://www.kernel.org/doc/Documentation/ABI/testing/sysfs-devices-system-cpu
Original-System zeit per #dmesg:
Brought up 1 CPUs SMP: Total of 1 processors activated (299.00 BogoMIPS).
ArchLinuxARM zeigt das an:
[ 0.630000] Brought up 2 CPUs [ 0.640000] SMP: Total of 2 processors activated (598.83 BogoMIPS).
Wenn du das NAS P89626 oder P89630 hast, schreib Aldi an und mache sie auf das Problem aufmerksam. Vielleicht erstellt Medion dann eine neue Firmware, wobei sie z.Z. das Problem abstreiten (siehe: http://www.mikrocontroller.net/topic/240238?goto=2468866#2468866 ) Kontakt zu Aldi:
Anmerkung: Das Sourcecode-Archiv ist der eindeutigste Hinweis, da hier eben der Startup des zweiten Kerns unterbunden worden ist.
hier die Infos zu den Stellen der Deaktivierung:
- http://www.mikrocontroller.net/topic/240238?goto=2470122#2470122
- http://www.mikrocontroller.net/topic/240238?goto=2470148#2470148
und hier das Ergebnis beim Entfernen dieser Zeilen.
Ubuntu 14.04 Verbindungsabbrüche
Ein Fehler in der aktuellen Firmware verursacht unter Ubuntu 14.04 Verbindungsabbrüche mit der Meldung:
Das Programm verursachte den Abbruch der Verbindung
bzw.
software caused connection abort
Bei simultanen Operationen kommt es zu einen Verbindungsabbruch. Die Anzahl dieser simultanen Operationen von Samba lässt auf eins beschränken indem in der Datei /etc/samba/smb.conf unter [global] der Eintrag max mux = 1 hinzugefügt wird. Der Samba Dienst muss anschließen neugestartet werden:
/etc/init.d/samba.sh restart
Die Samba Konfiguration wird dynamisch erstellt. Somit ist die Veränderung nach einem Neustart, oder einer Änderung über das Webinterface, verloren. Abhilfe hierzu schafft ein Script, welches nach einem Neustart automatisch ausgeführt wird und die Anpassung vornimmt.
Siehe auch: http://forum.ubuntuusers.de/topic/dateien-auf-dem-nas-server-nicht-lesbar/#post-7051548
Festplattentemperatur
Die Box neigt mit ihrem lüfterlosen Design dazu, sich unter Last stark aufzuheizen. Forennutzer berichten von Festplattentemperaturen über 55°C (auslesbar mit smartmontools) [1]. Seagate spezifiziert für die Platte eine Betriebstemperatur bis 60°C und eine maximale Temperaturänderung im Betrieb von 20°C pro Stunde [2]. Um die Einhaltung dieser Vorgaben zu garantieren, bieten sich zwei Möglichkeiten an:
- Verwendung eines Lüfters mit externer Stromversorgung. Anbringung an Ober-/Unterseite des Gehäuses oder Montage eines Radiallüfters im Gehäuseinnern.
- Entfernen des schwarzen Kunststoffgehäuses (senkt die Temperatur der Festplatte unter Last auf etwa 40°C).
Eine Anleitung zur Lüftermontage findet sich in: [3]
Ähnliche Geräte
Systeme, die den gleichen SoC-"NAS 7820"-Prozessor nutzen:
- MEDION LIFE P89631 (MD 86729) (gleiche Box, nur mit 3-TB-Laufwerk)
- MEDION LIFE P89630 (MD 86587) (gleiche Box, nur mit 2-TB-Laufwerk)
- MEDION LIFE P89636 (gleiche Box, nur mit 1-TB-Laufwerk)
- Pogoplug Pro/Video/v3
- Iomega Home Media Network Hard Drive, Cloud Edition
- Open Source Paket: https://iomega-eu-en.custhelp.com/app/answers/detail/a_id/26776
- Level One GNS-1001
Demontage
Die Demontage und das Wechseln der S-ATA-Festplatte sind sehr einfach für Schrauber möglich: Unter den Gummifußflächen sind zwei Schrauben zu lösen, dann kann man das Gehäuse aus zwei Schalen recht einfach auseinandernehmen. Festplatte und Elektronik sind mit weiteren zwei Schrauben vom Gehäusedeckel zu lösen. Festplatte ist mit drei Schrauben an dem Platinenteil befestigt. Alles ohne große Probleme zu lösen und wieder zusammenzubauen...
Bilder der Platine gibt es u.a. hier:
sowie hier: [4], [5], [6], [7]
cpuinfo
~ # cat /proc/cpuinfo Processor : ARMv6-compatible processor rev 5 (v6l) processor : 0 BogoMIPS : 299.00 Features : swp half thumb fastmult edsp java CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xb02 CPU revision : 5 Hardware : Oxsemi NAS Revision : 0000 Serial : 0000000000000000
/proc/modules
ntfs 106132 0 - Live 0xbf015000 gmac 47336 0 - Live 0xbf004000 mii 6764 1 gmac, Live 0xbf000000
lsmod
/ # lsmod gmac 47336 0 - Live 0xbf004000 mii 6764 1 gmac, Live 0xbf000000
mtd
~ # cat /proc/mtd dev: size erasesize name mtd0: 08000000 00020000 "NAND 128MiB 3,3V 8-bit" mtd1: 00040000 00020000 "stage1" mtd2: 00380000 00020000 "uboot" mtd3: 00080000 00020000 "uboot_env" mtd4: 00a00000 00020000 "kernel" mtd5: 00a00000 00020000 "etc" mtd6: 00a00000 00020000 "info" mtd7: 05dc0000 00020000 "sysdisk"
Weitere Details dazu: http://www.mikrocontroller.net/topic/240238?goto=2471725#2471733
Speicherinformationen
mount-Punkte
~ # mount rootfs on / type rootfs (rw) /proc on /proc type proc (rw,relatime) /sys on /sys type sysfs (rw,relatime) none on /proc/bus/usb type usbfs (rw,relatime) devpts on /dev/pts type devpts (rw,relatime,mode=600) /dev/mtdblock6 on /zyxel/mnt/info type yaffs2 (ro,relatime) /dev/mtdblock7 on /zyxel/mnt/sysdisk type yaffs2 (ro,relatime) /dev/loop0 on /ram_bin type ext2 (ro,relatime,errors=continue) /dev/loop0 on /usr type ext2 (ro,relatime,errors=continue) /dev/loop0 on /lib/security type ext2 (ro,relatime,errors=continue) /dev/loop0 on /lib/modules type ext2 (ro,relatime,errors=continue) /dev/ram0 on /tmp/tmpfs type tmpfs (rw,relatime,size=5120k) /dev/ram0 on /usr/local/etc type tmpfs (rw,relatime,size=5120k) /dev/ram0 on /usr/local/var type tmpfs (rw,relatime,size=5120k) /dev/mtdblock5 on /etc/zyxel type yaffs2 (rw,relatime) /dev/md4 on /i-data/6764ac2f type xfs (rw,relatime,nouuid,attr2,nobarrier,usrquota) /dev/md4 on /usr/local/zy-pkgs type xfs (rw,relatime,nouuid,attr2,nobarrier,usrquota) /dev/md4 on /etc/zyxel/zy-pkgs type xfs (rw,relatime,nouuid,attr2,nobarrier,usrquota) /dev/md4 on /usr/local/apache/htdocs/adv,/pkg type xfs (rw,relatime,nouuid,attr2,nobarrier,usrquota) /dev/md4 on /usr/local/apache/web_framework/data/cache type xfs (rw,relatime,nouuid,attr2,nobarrier,usrquota) /dev/mtdblock5 on /usr/local/apache/web_framework/data/config type yaffs2 (rw,relatime)
Freier Plattenplatz
Ursprungszustand:
~ # df -h Filesystem Size Used Available Use% Mounted on /dev/mtdblock6 10.0M 804.0K 9.2M 8% /zyxel/mnt/info /dev/mtdblock7 93.8M 86.8M 7.0M 93% /zyxel/mnt/sysdisk /dev/loop0 83.3M 75.5M 7.8M 91% /ram_bin /dev/loop0 83.3M 75.5M 7.8M 91% /usr /dev/loop0 83.3M 75.5M 7.8M 91% /lib/security /dev/loop0 83.3M 75.5M 7.8M 91% /lib/modules /dev/ram0 5.0M 4.0K 5.0M 0% /tmp/tmpfs /dev/ram0 5.0M 4.0K 5.0M 0% /usr/local/etc /dev/ram0 5.0M 4.0K 5.0M 0% /usr/local/var /dev/mtdblock5 10.0M 1.4M 8.6M 14% /etc/zyxel /dev/md4 1.4T 519.0M 1.4T 0% /i-data/6764ac2f /dev/md4 1.4T 519.0M 1.4T 0% /usr/local/zy-pkgs /dev/md4 1.4T 519.0M 1.4T 0% /etc/zyxel/zy-pkgs /dev/md4 1.4T 519.0M 1.4T 0% /usr/local/apache/htdocs/adv,/pkg /dev/md4 1.4T 519.0M 1.4T 0% /usr/local/apache/web_framework/data/cache /dev/mtdblock5 10.0M 1.4M 8.6M 14% /usr/local/apache/web_framework/data/config
hdparm
hdparm (siehe http://www.mikrocontroller.net/topic/240238?page=2#2453618 ):
... Configuration: Logical max current cylinders 16383 16383 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 16514064 LBA user addressable sectors: 268435455 LBA48 user addressable sectors: 2930277168 Logical Sector size: 512 bytes (*) Physical Sector size: 4096 bytes (*) Logical Sector-0 offset: 0 bytes device size with M = 1024*1024: 1430799 MBytes device size with M = 1000*1000: 1500301 MBytes (1500 GB) cache/buffer size = unknown Nominal Media Rotation Rate: 5900 ...
fdisk
/ # fdisk /dev/sda -l Disk /dev/sda: 1500.3 GB, 1500301910016 bytes 255 heads, 63 sectors/track, 182401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 64 514048+ 83 Linux /dev/sda2 65 182401 1464621952+ 9 AIX bootable ~ # fdisk -lu /dev/sda Disk /dev/sda: 2000.3 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System /dev/sda1 63 1028159 514048+ 83 Linux /dev/sda2 1028160 3907024064 1952997952+ 9 AIX bootable
uBoot
uBoot help
$ help ? - alias for 'help' base - print or set address offset bdinfo - print Board Info structure bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare cp - memory copy crc32 - checksum calculation echo - echo args to console exit - exit script go - start application at address 'addr' help - print online help iminfo - print header information for application image ledfail - Extinguish (0) or light (1) failure LED loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nand - NAND sub-system nboot - boot from NAND device nm - memory modify (constant address) nwboot - NAND Write boot information ping - send ICMP ECHO_REQUEST to network host printenv- print environment variables rarpboot- boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage setenv - set environment variables test - minimal test like /bin/sh tftpboot- boot image via network using TFTP protocol version - print monitor version
uBoot-boot-Ausgaben
Ausgaben über UART (mehr Info dazu auf P89626/UART), bis Ausgaben per dmesg einsehbar sind:
Stage-1 Bootloader Tue Aug 9 16:44:00 CST 2011 Attempting to set PLLA to 750MHz ... plla_ctrl0 : 0x0000000A plla_ctrl1 : 0x000F0000 plla_ctrl2 : 0x001D01A0 plla_ctrl3 : 0x00000017 PLLA Set Setup memory, testing Reading NAND, Image 0 Hdr len: 0x0001A94C Hdr CRC: 0xF0019DAC OK U-Boot 1.1.2 (Jun 24 2011 - 09:41:57) U-Boot code: 60D00000 -> 60D1A94C BSS: -> 60D1F004 RAM Configuration: Bank #0: 60000000 128 MB SRAM Configuration: 64KB at 0x50000000 NAND:128 MiB In: serial Out: serial Err: serial Setting Linux mem= boot arg value Hit any key to stop autoboot: 0 Loading from device 0: 128MiB 3,3V 8-bit (offset 0x440000) Image Name: Linux-2.6.31.14_SMP_820 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 5241420 Bytes = 5 MB Load Address: 60008000 Entry Point: 60008000 ## Booting image at 61000000 ... Image Name: Linux-2.6.31.14_SMP_820 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 5241420 Bytes = 5 MB Load Address: 60008000 Entry Point: 60008000 Verifying Checksum ... OK OK Starting kernel ... Uncompressing Linux... .......................... ... done, booting the kernel. Linux version 2.6.31.14_SMP_820 (root@Neo) (gcc version 4.3.2 (crosstool-NG-1.8.0) ) #2 SMP Wed Oct 5 21:54:14 CST 2011 ...
dmesg
~ # dmesg Linux version 2.6.31.14_SMP_820 (root@Neo) (gcc version 4.3.2 (crosstool-NG-1.8.0) ) #2 SMP Wed Oct 5 21:54:14 CST 2011 CPU: ARMv6-compatible processor [410fb025] revision 5 (ARMv7), cr=00c5387f CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache Machine: Oxsemi NAS 1 memory region Ignoring unrecognised tag 0x00000000 Memory policy: ECC disabled, Data cache writealloc On node 0 totalpages: 32768 free_area_init_node: node 0, pgdat c07be3a0, node_mem_map c07e6000 Normal zone: 256 pages used for memmap Normal zone: 0 pages reserved Normal zone: 32512 pages, LIFO batch:7 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 Kernel command line: console=ttyS0,115200 elevator=cfq mac_adr=0x00,0x30,0xe0,0x00,0x00,0x01 mem=128M poweroutage=yes PID hash table entries: 512 (order: 9, 2048 bytes) Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 128MB = 128MB total Memory: 121656KB available (5340K code, 338K data, 2264K init, 0K highmem) Hierarchical RCU implementation. NR_IRQS:96 OX820_RPS_init_irq: interrupts 64 to 96 ox820_clocksource_init() Timer 2 running at 390625 Hz Console: colour dummy device 80x30 console [ttyS0] enabled Calibrating delay loop... 299.00 BogoMIPS (lpj=1495040) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok Calibrating local timer... 374.49MHz. Brought up 1 CPUs SMP: Total of 1 processors activated (299.00 BogoMIPS). NET: Registered protocol family 16 Number of DMA channels = 4, version = 4 Allocating 303 SRAM generic DMA descriptors bio: create slab <bio-0> at 0 SCSI subsystem initialized libata version 3.00 loaded. usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) Switched to NOHz mode on CPU #0 TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 3, 32768 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered NET: Registered protocol family 1 Create fragment cache MitraStar NAS GPIO driver/controller 1.00 Initialize LEDs o SYS LED o COPY LED o Quota 4 LED Initialize buzzer Initialize buttons o Copy Button o Reset Button nas_gpio: Register a char device 254:0 audit: initializing netlink socket (disabled) type=2000 audit(0.880:1): initialized VFS: Disk quotas dquot_6.5.2 Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) Installing knfsd (copyright (C) 1996 okir@monad.swb.de). fuse init (API version 7.12) SGI XFS with security attributes, large block/inode numbers, no debug enabled SGI XFS Quota Management subsystem yaffs built Oct 5 2011 21:42:41 Installing. YAFFS-WARNING CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED selected. msgmni has been set to 237 alg: No test for stdrng (krng) io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered (default) Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled serial8250: ttyS0 at MMIO 0x44200000 (irq = 55) is a 16550A brd: module loaded loop: module loaded ox820sata: OX820 sata core. scsi0 : oxnassata scsi1 : oxnassata ata1: SATA max UDMA/133 irq 50 ata2: SATA max UDMA/133 irq 50 ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ox820sata_qc_issue: Core busy, returning an error. ata1.00: failed to IDENTIFY (I/O error, err_mask=0x100) ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ox820sata_qc_issue: Core busy, returning an error. ata1.00: failed to IDENTIFY (I/O error, err_mask=0x100) ata1: limiting SATA link speed to 1.5 Gbps ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310) ox820sata_qc_issue: Core busy, returning an error. ata1.00: failed to IDENTIFY (I/O error, err_mask=0x100) ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310) ata1: exception Emask 0x10 SAct 0x0 SErr 0x0 action 0x9 t4 ata1: hard resetting link ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata1.00: ATA-8: ST1500DL003-9VT16L, CC4A, max UDMA/133 ata1.00: 2930277168 sectors, multi 0: LBA48 NCQ (depth 0/32) ata1.00: configured for UDMA/133 ata1: exception Emask 0x10 SAct 0x0 SErr 0x0 action 0x9 t3 ata1.00: configured for UDMA/133 ata1: EH complete ata2: SATA link down (SStatus 0 SControl 300) scsi 0:0:0:0: Direct-Access ATA ST1500DL003-9VT1 CC4A PQ: 0 ANSI: 5 sd 0:0:0:0: [sda] 2930277168 512-byte logical blocks: (1.50 TB/1.36 TiB) sd 0:0:0:0: [sda] 4096-byte physical blocks sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda: sd 0:0:0:0: Attached scsi generic sg0 type 0 sda1 sda2 PPP generic driver version 2.4.2 PPP Deflate Compression module registered PPP BSD Compression module registered sd 0:0:0:0: [sda] Attached SCSI disk PPP MPPE Compression module registered NET: Registered protocol family 24 PPPoL2TP kernel driver, V1.0 NAND device: Manufacturer ID: 0xad, Chip ID: 0xf1 (Hynix NAND 128MiB 3,3V 8-bit) Scanning device for bad blocks Bad eraseblock 17 at 0x000000220000 Bad eraseblock 282 at 0x000002340000 Creating 7 MTD partitions on "NAND 128MiB 3,3V 8-bit": 0x000000000000-0x000000040000 : "stage1" 0x000000040000-0x0000003c0000 : "uboot" 0x0000003c0000-0x000000440000 : "uboot_env" 0x000000440000-0x000000e40000 : "kernel" 0x000000e40000-0x000001840000 : "etc" 0x000001840000-0x000002240000 : "info" 0x000002240000-0x000008000000 : "sysdisk" ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver Start USB clocks oxnas-ehci oxnas-ehci.0: OXNAS EHCI Host Controller oxnas-ehci oxnas-ehci.0: new USB bus registered, assigned bus number 1 oxnas-ehci oxnas-ehci.0: irq 39, io mem 0x00000000 oxnas-ehci oxnas-ehci.0: USB 0.0 started, EHCI 1.00 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected usbcore: registered new interface driver usblp Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. usbcore: registered new interface driver ums-datafab usbcore: registered new interface driver ums-freecom usbcore: registered new interface driver ums-isd200 usbcore: registered new interface driver ums-jumpshot usbcore: registered new interface driver ums-sddr09 usbcore: registered new interface driver ums-sddr55 usbcore: registered new interface driver ums-usbat mice: PS/2 mouse device common for all mice md: linear personality registered for level -1 md: raid0 personality registered for level 0 md: raid1 personality registered for level 1 usbcore: registered new interface driver hiddev usbcore: registered new interface driver usbhid usbhid: v2.6:USB HID core driver TCP cubic registered NET: Registered protocol family 10 NET: Registered protocol family 17 RPC: Registered udp transport module. RPC: Registered tcp transport module. registered taskstats version 1 Freeing init memory: 2264K Probing for Synopsis GMAC, unit 0 eth0: Tuning GMAC 0 RGMII timings eth0: PHY is Realtek RTL8211E, type 0x001cc915 eth0: Disable EEE (Energy Efficient Ethernet 802.3az) eth0: Set SSC eth0: GMAC ver = 53, vendor ver = 18 at 0xed400000, IRQ 40 eth0: Found PHY at address 7, type 0x001cc915 -> 10/100/1000 eth0: Ethernet addr: 00:30:e0:00:00:00 probe() eth0: Leon x2 clock hw_set_mac_address() Storing port0 mac_adr in global array CoPro offload is active on egiga0 Alloc'ing ARM descs 8192 bytes Alloc'ing CoPro parameters 40 bytes gmac gmac.0: firmware: requesting gmac_copro_firmware CoPro: Programming start address as 0xd000e000 egiga0: Resetting GMAC egiga0: GMAC reset complete workaround step1 workaround step2 workaround finish hw_set_mac_address() Storing port0 mac_adr in global array egiga0: Setting Rx flow control thresholds for LAN port CoPro available SRAM end 0x00000001 Copro offload started Waiting for auto-negotiation to complete Waiting for auto-negotiation to complete egiga0: PHY is Realtek RTL8211E, type 0x001cc915 egiga0: Disable EEE (Energy Efficient Ethernet 802.3az) egiga0: Set SSC egiga0: link down egiga0: link up, 100Mbps, full-duplex, using pause, lpa 0x45E1 yaffs: dev is 32505862 name is "mtdblock6" ro yaffs: passed flags "" yaffs: Attempting MTD mount of 31.6,"mtdblock6" uncorrectable error : yaffs_read_super: isCheckpointed 0 yaffs: dev is 32505863 name is "mtdblock7" ro yaffs: passed flags "" yaffs: Attempting MTD mount of 31.7,"mtdblock7" block 9 is bad yaffs_read_super: isCheckpointed 0 REISERFS warning (device sda1): super-6502 reiserfs_getopt: unknown mount option "iocharset=utf8" FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive! hfs: unable to parse mount options udf: bad mount option "shortname=mixed" or missing value XFS: unknown mount option [iocharset]. yaffs: dev is 8388609 name is "sda1" ro yaffs: passed flags "iocharset=utf8,shortname=mixed" yaffs: Bad mount option "iocharset=utf8" yaffs: dev is 8388609 name is "sda1" ro yaffs: passed flags "iocharset=utf8,shortname=mixed" yaffs: Bad mount option "iocharset=utf8" REISERFS warning (device sda1): super-6502 reiserfs_getopt: unknown mount option "iocharset=utf8" FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive! hfs: unable to parse mount options udf: bad mount option "shortname=mixed" or missing value XFS: unknown mount option [iocharset]. yaffs: dev is 8388609 name is "sda1" ro yaffs: passed flags "iocharset=utf8,shortname=mixed" yaffs: Bad mount option "iocharset=utf8" yaffs: dev is 8388609 name is "sda1" ro yaffs: passed flags "iocharset=utf8,shortname=mixed" yaffs: Bad mount option "iocharset=utf8" yaffs: dev is 32505861 name is "mtdblock5" rw yaffs: passed flags "" yaffs: Attempting MTD mount of 31.5,"mtdblock5" yaffs: restored from checkpoint yaffs_read_super: isCheckpointed 1 NTFS driver 2.1.29 [Flags: R/O MODULE]. egiga0: no IPv6 routers present md: md4 stopped. md: bind<sda2> raid1: raid set md4 active with 1 out of 2 mirrors md4 using HW RAID-1 HW-RAID1 sda2, is read/write. HW-RAID1 using disk sda2 on port 0 mirror 0 md4: detected capacity change from 0 to 1499772813312 md4: unknown partition table Filesystem "md4": Disabling barriers, trial barrier write failed XFS mounting filesystem md4 Starting XFS recovery on filesystem: md4 (logdev: internal) Ending XFS recovery on filesystem: md4 (logdev: internal) Adding 524280k swap on /i-data/.system/swap_ul6545p. Priority:-1 extents:1 across:524280k
Software
Installiert ist die Firmware 1.00(UZD.2). Sie basiert offensichtlich auf der Firmware vom Zyxel NSA-210:
~ # cat /zyxel/mnt/info/fwversion 1.00(UZD.2) ~ # cat /zyxel/mnt/info/modelid AB03 ~ # cat /zyxel/mnt/info/revision 32694 ~ # zysh --version zysh: version 2.0.0 Build: 21:37:19 Oct 5 2011 # cat /etc/Zy_Private 52103jeenajevol8290i
modelid AB03 steht für STG212 (siehe /etc/init.d/rcS)
- Linux nas-server 2.6.31.14_SMP_820 #2 SMP Wed Oct 5 21:54:14 CST 2011 armv6l GNU/Linux
- cat /proc/version: Linux version 2.6.31.14_SMP_820 (root@Neo) (gcc version 4.3.2 (crosstool-NG-1.8.0) ) #2 SMP Wed Oct 5 21:54:14 CST 2011
- BusyBox v1.17.2
Paketverwaltung
Pakete und Updates der Firmware werden von download.medion.de gezogen. Genauen Link zu Firmware erhält man mit cat /etc/firmware_src_url
Pakete werden per ipkg v0.99.163 (/usr/bin/ipkg-cl) installiert und landen auf der Festplatte unter /i-data/md0/admin/package/ Dies ist anscheinend in der Datei /etc/zyxel/zy-pkg.conf festgelegt.
~ # ipkg-cl print_architecture arch all 1 arch noarch 1 arch arm 10
Konfiguration
Die meiste Konfigurationen (u.a. Name des NAS, existierende User und Freigaben) findet hier wieder:
- /etc/zyxel/conf/startup-config.conf
environment
/ # env USER=root LD_LIBRARY_PATH=/usr/local/zy-pkgs/lib OLDPWD=/usr/local/apache/cgi-bin HOME=/root LOGNAME=root PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/zyxel/sbin:/usr/local/zy-pkgs/bin:/zyxel/htp SHELL=/bin/sh PWD=/
uboot env
/ # fw_printenv bootargs= console=ttyS0,115200 elevator=cfq mac_adr=0x00,0x30,0xe0,0x00,0x00,0x01 bootcmd=run boot_nand bootdelay=2 baudrate=115200 ipaddr=192.168.50.100 serverip=192.168.50.59 autoload=n netmask=255.255.0.0 bootfile="uImage" load_nand=nboot 61000000 0 440000 boot=bootm 61000000 boot_nand=run load_nand boot MODEL_ID=AB03 PRODUCT_NAME=STG-212 VENDOR_NAME=MitraStar Technology Corp. ethaddr=00:11:41:xx:xx:xx
interessante Dateien/Pfade
NAS Speicher:
- /i-data/md0/
- /i-data/md0/public
- /i-data/md0/photo
- /i-data/md0/music
- usw.
Allgemeine Konfiguration:
- /etc/init.d/rcS - System-Start-Skript
- /usr/local/btn/ Spezielle Steuerungs-Skripte
Apache:
- /etc/service_conf/httpd.conf
- /etc/service_conf/httpd_zld.conf
- /etc/service_conf/httpd_special.conf
- /usr/local/apache/htdocs
- /usr/local/apache/cgi-bin
Aufspüren
Die Box bezieht sich vom vorhandenen DHCP Server eine IP. Meldet sich mit dem Namen nas-server. Somit sollte ein ping nas-server gehen und die IP ausspucken.
Zum Aufspüren kann man auch nmap benutzten. z.B. das ganze Subnetz scannen:
~$ sudo nmap -e eth1 -sP 169.254.xxx.0/24
Dienste
Auf der Box laufen einige Dienste im Ursprungszustand:
~$ nmap -sT nas-server PORT STATE SERVICE 21/tcp open ftp 80/tcp open http 139/tcp open netbios-ssn 443/tcp open https 631/tcp open ipp 3689/tcp open rendezvous 8082/tcp open blackice-alerts 9001/tcp open tor-orport
Dienste:
- Port 21 - pure-ftpd v1.0.21
- Port 80 und 8082 - Apache/2.2.9 (Unix) mod_ssl/2.2.9 OpenSSL/0.9.8o mod_wsgi/2.4 Python/2.6.2
- Port 139 - Samba v3.0.32
- Port 3689 - mt-daapd: 0.2.4.2
- Port 9001 - DLNA-Server Twonky Media 5.1.13
Einfacher Web Server
Html-Dateien, die man im Verzeichnis
/usr/local/apache/htdocs/adv,/pkg
ablegt, können im Browser über
http://nas-server/r32694,/adv,/pkg/
angezeigt werden. Geht auch secure mit https. Mit entsprechender Port-Freigabe kann man zumindest eine statische Website aufbauen.
seit FW-Version 1.01 lautet der Link http://nas-server/r34814,/adv,/pkg/
Die Verzeichnisse unter
/usr/local/apache
scheinen im nicht beschreibbaren Bereich zu liegen.
/usr/local/apache/htdocs/adv,/pkg
ist auf einen beschreibbaren Bereich gemappt.
Zugang
Wie bei vielen NAS läuft auch hier ein WebServer. Es gibt den Benutzer admin mit Passwort 1234, mit dem man sich anmelden kann.
Telnet
Telnet kann man mit dieser URL starten (wichtig ist, dass man sich vorher normal angemldet hat!):
http://nas-server/r32694,/adv,/cgi-bin/remote_help-cgi?type=backdoor
bzw.:
http://192.168.xxx.yyy/r32694,/adv,/cgi-bin/remote_help-cgi?type=backdoor
seit FW-Version 1.01 lautet der Link
http://nas-server/r34814,/adv,/cgi-bin/remote_help-cgi?type=backdoor
bzw.
http://192.168.xxx.yyy/r34814,/adv,/cgi-bin/remote_help-cgi?type=backdoor
Für FW 1.01(UZD.2) lautet der Link: ...r36258...
Die r-Nummer findet sich in jedem Link des Administrationsmenüs. Der o.g. Link muss dann nur entsprechend angepasst werden (z.B. für UZD.3)
Per Telnet kann man sich mit root Passwort 1234 (bzw. das Passwort vom User admin) verbinden.
Nach einem Reboot ist Telnet allerdings wieder aus!
Für das Starten von Telnet sind diese Dateien zuständig:
- /usr/local/apache/cgi-bin/remote_help-cgi
- /usr/local/btn/open_back_door.sh
Telnet-Zugang dauerhaft aktivieren
Eine Möglichkeit, den Telnet-Zugang bei jedem Booten des NAS automatisch zu starten, ist, ein neues Start-Skript anzulegen, z.B. so:
echo "/usr/local/btn/open_back_door.sh" > /usr/local/zy-pkgs/etc/init.d/starttelnet.sh chmod +x /usr/local/zy-pkgs/etc/init.d/starttelnet.sh
Siehe: http://www.mikrocontroller.net/topic/240238?goto=2457264#2457390
SSH-Server aktivieren
Es ist möglich, einen SSH-Server mit "dropbear" zu realisieren und direkt nach dem Booten zu starten. Siehe Beschreibung auf http://www.mikrocontroller.net/articles/P89626/dropbear
Dateien editieren
Auf der Box gibt es VI als Editor. Möchte man Dateien bequemer editieren, kann man dies über SMB, FTP oder NFS erledigen.
Einige Konfigurationsdateien scheinen eh auf der Platte im versteckten Verzeichnis .system gespeichert zu sein (z.B. .system/zy-pkgs/etc/exports) Wenn man /i-data/6764ac2f/ von außen erreichbar macht, kann man diese Dateien bequem editieren.
Eine Lösung wäre es, Dateien temporär in einen Share kopieren und wieder zurück, z.B.:
cp /etc/exports /i-data/6764ac2f/admin/
auf Client editieren und zurück:
cp /i-data/6764ac2f/admin/exports /etc/exports
Eine andere Lösung wäre, via telnet im admin share mit ln -s ../.system/ einen softlink auf das schreibbare Systemverzeichnis zu setzen, dann kann man das verzeichnis aus dem Samba-Share direkt erreichen.
NFS
Einen NFS-Server kann man über die Web-Oberfläche unter Admin/Applications/Package nachinstallieren.
Leider kann man über die Web-Oberfläche nur Exporte unterhalb von /i-data/6764ac2f/nfs/ freigeben. Jedoch liegt die Datei /etc/exports im beschreibbaren Bereich. Somit kann man sie nach Belieben anpassen, ohne daß es beim Neustart "zurückgesetzt" wird.
In der /etc/exports z.B. das eintragen:
/i-data/6764ac2f/ 192.168.1.0/24(rw,sync,no_subtree_check,wdelay,no_root_squash)
Mounten geht das z.B. so:
~$ sudo mkdir /media/nas-server ~$ sudo mount 192.168.xxx.yyy:/i-data/6764ac2f/ /media/nas-server
(IP-Bereich natürlich anpassen)
Backup des Flashspeichers
Mit diesen Skripten kann man den Flash-Speicher sichern. Dazu die Skripte z.B. im admin-share speichern und per Telnet ausführen.
Ruft man das Skript ein weiteres Mal auf, werden die MD5-Daten angezeigt.
Welcher mtd-Teil was speichert, erfährt man durch ein cat /proc/mtd (siehe oben)
raw dd
Sicherung mittels dd.
Zu beachten ist:
To create an image of mtd0, you need to dump the nand without ecc. using "dd if=/dev/mtd0 of=mtd0.DOESNOTWORK" will automatically do ecc for you and will result in a corrupt image.
(Hinweis von http://jeff.doozan.com/debian/uboot/build_uboot.htm unter "Backup /dev/mtd0")
#!/bin/sh dest=/i-data/6764ac2f/admin for mtd in `cd /dev && ls mtd?` do echo "____________________________________________________________________" echo "Backup von ${mtd}" outfile=${dest}/${mtd}.img if [ -f ${outfile} ]; then echo "Skip backup, outfile ${outfile} exist!" if [ -f ${outfile}.md5 ]; then echo "MD5 info:" ( set -x cat ${outfile}.md5 md5sum ${outfile} md5sum /dev/${mtd} ) fi else ( set -x dd if=/dev/${mtd} of=${outfile} ) if [ $? == 0 ]; then ( set -x md5sum ${outfile} > ${outfile}.md5 cat ${outfile}.md5 ) fi fi done
nanddump
Hier ein Script, welches nanddump von Jeff Doozan benutzt (siehe: http://jeff.doozan.com/debian/uboot/build_uboot.htm )
#!/bin/sh dest=/i-data/6764ac2f/admin if [ -f nanddump ]; then echo "nanddump found, ok." else ( set -x wget http://jeff.doozan.com/debian/uboot/nanddump chmod +x nanddump ) fi for mtd in `cd /dev && ls mtd?` do echo "____________________________________________________________________" mtd_info=`cat /proc/mtd | grep ${mtd}` if [ -z "${mtd_info}" ]; then echo "Skip ${mtd} because it's not in /proc/mtd" else echo "Backup ${mtd_info}" prefix=${dest}/${mtd} backup=${prefix}.backup oob=${backup}.oob if [ -f ${backup} ]; then echo "Skip backup: File ${backup} exist!" ( set -x cat ${backup}.md5 md5sum ${backup} cat ${oob}.md5 md5sum ${oob} ) else ( set -x ./nanddump -nof ${backup} /dev/${mtd} md5sum ${backup} > ${backup}.md5 cat ${backup}.md5 ./nanddump -nf ${oob} /dev/${mtd} md5sum ${oob} > ${oob}.md5 cat ${oob}.md5 ) fi fi done
Cross-Compiler
crosstool-ng
Auf dem Medion-Server ist die Original-Cross-Compiler-Umgebung für das NAS verfügbar. Mit der folgenden Anleitung wird die Toolchain unter Ubuntu 11.10 nach /opt installiert:
wget -c download2.medion.com/downloads/software/gpl_source_md86407.exe wine gpl_source_md86407.exe cd ~/.wine/drive_c/Medion/ tar -xvf x-tools.armv5v6.tar.gz sudo mv x-tools /opt export CC=/opt/x-tools/armv6_le/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc
hello.c:
#include <stdio.h>
int main(void)
{
printf("Hello world\n");
return 0;
}
arm-none-linux-gnueabi-gcc -Wall -g -o hello hello-c
ELDK
Da das ELDK nicht immer lauffähige Binaries erzeugt, sollte die crosstool-ng Toolchain eingesetzt werden.
(von http://www.mikrocontroller.net/topic/240238?goto=2446372#2442210 )
hier eine kleine Anleitung zur Installation eines Cross-Compilers unter Ubuntu 10.04/11.10:
$ sudo aptitude install ia32-libs # Nur für 64-Bit-Systeme $ sudo mkdir /opt/eldk42 $ wget http://ftp.denx.de/pub/eldk/4.2/arm-linux-x86/iso/arm-2008-11-24.iso $ sudo mount -t iso9660 -o loop -o exec arm-2008-11-24.iso /mnt $ cd /mnt $ sudo ./install -d /opt/eldk42/ armVFP
$ /opt/eldk42/usr/bin/armVFP-linux-gcc -Wall -g -o hello hello.c
.bashrc
# ELDK 4.2 ARM 11 (i.MX35) export ARCH=armVFP export CROSS_COMPILE=armVFP-linux- export CC=armVFP-linux-gcc export PATH=$PATH:/opt/eldk42/usr/bin:/opt/eldk42/bin export ROOT=/opt/eldk42/armVFP/
Beispiel dropbear compilieren:
wget http://matt.ucc.asn.au/dropbear/dropbear-2011.54.tar.gz tar -xvf dropbear-2011.54.tar.gz cd dropbear-2011.54/ ./configure --host=arm-linux make
SATA Boot
PLX7820-basierte Geräte können von SATA, SPI und NAND booten. Das SATA-Interface ist - dem Verwendungszweck des SoC entsprechend - immer vorhanden. Die beiden anderen Interfaces sind nicht in jedem Gerät implementiert. Die angegebene Reihenfolge stellt gleichzeitig die Priorität dar, mit der an den einzelnen Interfaces nach dem Bootloader gesucht wird.
Deshalb ist es möglich, durch spezielles Präparieren der angeschlossenen Festplatte von dieser zu booten. Der Inhalt des NAND braucht dafür nicht verändert zu werden. Nach Überschreiben der entsprechenden Stellen auf der Festplatte erfolgt der Boot-Vorgang wieder von NAND, wie in der Ausgangskonfiguration.
Die ersten 32 MB einer bootfähigen Festplatte können nicht für Partitionen genutzt werden, sondern enthalten folgende Daten (basiert auf der Tabbelle von iomega.nas-central.org):
Startblock (Blockgröße: 512 Bytes) | Größe (Bytes) | Inhalt | Kommentar |
0 | 512 | MBR | Die ersten 446 Bytes enthalten eine Art Startsequenz, in der unter anderem die Nummer des Startblocks des Stage-1-Bootloaders vorkommt (siehe forum und Wikipedia). Danach folgt die MBR-Partitionstabelle. |
1 | 1536 | GUID-Partitionstabelle | |
34 | 8736 | Stage-1-Bootloader | |
154 | 103552 | U-Boot | |
558 | At least 608 | U-Boot environment | |
1290 | 2189216 | uImage kernel | |
16674 | 2787216 | uImage initrd | |
57080 | 5 | 0x69 0xD3 0xAB 0x52 0x31 | Dies stellt möglicherweise eine Seriennummer dar. Die MAC-Adresse ist es nicht. |
57088 | 4640 | Stage-1-Bootloader | Kopie |
57208 | 103568 | U-Boot | Kopie |
58344 | 2189216 | uImage kernel | Kopie |
Twonky Media Server: Versteckte Konfigurationsseite
Der eingebaute Twonky Media Server hat eine versteckte Konfigurationsseite: http://nas-server:9001/config
Dort kann z.B. den Typen des Media-Receivers (TV) einstellen, um Videos zuverlässiger, mit mehr unterstützten Formaten abzuspielen.
Dazu einfach in der Liste der Media Receivers den Fernseher von "Generic Media Receiver" auf z.B. "Samsung TV" stellen.
Leider ist kein Knopf zum Speichern sichtbar. Dazu besser auf http://nas-server:9001/configpage/config-content.html gehen, da sind dann ganz oben Knöpfe zum Speichern etc.
Links
- http://forums.whirlpool.net.au/archive/1817691
- http://zyxel.nas-central.org/wiki/Category:NSA-212
- http://zyxel.nas-central.org/wiki/NZBGet
- http://zyxel.nas-central.org/wiki/SABnzdb
Test der 2TB Version