P89626

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

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:

Unterseiten

Es gibt noch eine Reihe Unterseiten:

(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:

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:

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

Test der 2TB Version