Journal Tentative d'upgrade d'un vieux NAS sous ARM/Linux [episode 1]

Posté par (page perso) . Licence CC by-sa
22
29
jan.
2016

Il y a quelques années, j'avais acheté un Western Digital My Book World Edition 1To, petit luxe, mais grosse déception…

Le débit d’écriture était affreusement lent, environ 2MiB/s…

Donc, il a passé une partie de sa vie éteint !

Maintenant remplacé par un glorieux Synology DS215j avec le disque du WD et un disque neuf, que faire de cet ancien matos ?

Il marche, oui, et les sources du bouzin sont toujours disponibles !

Pourquoi ne pas faire :
- Un portage propre sur un linux récent (c'est mon métier, autant en profiter !)
- Y installer une solution de NAS plus moderne (OpenMediaVault, d'autres options ?)

Donc, je m'y suis mis :
- Le kernel d'origine est un 2.6.24.4, ça aurait pu être pire
- Le SoC est un OX810SE donc la boite a été rachetée par PLX Tech et maintenant Avago, et c'est plus maintenu du tout
- Il y a un portage dans OpenWRT pour le OX820 qui est un dual ARM11 alors que le mien est un simple Arm926ej-s
- Il démarre directement sur le disque, il télécharge u-boot sur une adresse fixe du disque SATA, pourquoi pas…

Comment procéder :
- Arriver a prendre la main sur le boot, facile, c'est u-boot avec support ethernet
- Faire un portage minimal : IRQ, Timer + UART

Heureusement, il y avait de quoi prendre la main sur le port série, et internet m'a fourni ou me connecter…

Me voila arrivé a la fin de ma première étape :

Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0x0
Linux version 4.4.0+ (narmstrong@zoidberg) (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29) ) #35 Fri Jan 29 17:15:41 CET 2016
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
CPU: VIVT data cache, VIVT instruction cache
Machine model: Western Digital My Book World Edition
bootconsole [earlycon0] enabled
Memory policy: Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: console=ttyS1,115200n8 earlyprintk=serial
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 126056K/131072K available (1563K kernel code, 64K rwdata, 580K rodata, 1524K init, 60K bss, 5016K reserved, 0K cma-reserved)
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xc8800000 - 0xff800000   ( 880 MB)
    lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
    modules : 0xbf000000 - 0xc0000000   (  16 MB)
      .text : 0xc0008000 - 0xc0220060   (2145 kB)
      .init : 0xc0221000 - 0xc039e000   (1524 kB)
      .data : 0xc039e000 - 0xc03ae290   (  65 kB)
       .bss : 0xc03ae290 - 0xc03bd378   (  61 kB)
NR_IRQS:16 nr_irqs:16 16
Registered 32 rps interrupts
sched_clock: 24 bits at 1562kHz, resolution 640ns, wraps every 5368708800ns
clocksource: rps_clocksource_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 4778150833 ns
rps: Registered clocksource rate 1562500Hz
rps: Registered clock event rate 25000000Hz prescaler 1 period 250000
Console: colour dummy device 80x30
Calibrating delay loop... 182.68 BogoMIPS (lpj=913408)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0x48008400 - 0x4800843c
devtmpfs: initialized
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
pinctrl core: initialized pinctrl subsystem
DMA: preallocated 256 KiB pool for atomic coherent allocations
OXNAS Device Tree boot
vgaarb: loaded
clocksource: Switched to clocksource rps_clocksource_timer
futex hash table entries: 256 (order: -1, 3072 bytes)
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
console [ttyS1] disabled
44300000.uart: ttyS1 at MMIO 0x44300000 (irq = 17, base_baud = 11458333) is a 16550A
console [ttyS1] enabled
console [ttyS1] enabled
bootconsole [earlycon0] disabled
bootconsole [earlycon0] disabled
Freeing unused kernel memory: 1524K (c0221000 - c039e000)
Starting logging: OK
Initializing random number generator... random: dd urandom read with 0 bits of entropy available
done.
Starting network...
ip: socket: Function not implemented
ip: socket: Function not implemented

Welcome to Buildroot
buildroot login: root
Jan  1 00:00:06 login[46]: root login on 'console'
# cat /proc/cpuinfo 
processor   : 0
model name  : ARM926EJ-S rev 5 (v5l)
BogoMIPS    : 182.68
Features    : swp half thumb fastmult edsp java 
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant : 0x0
CPU part    : 0x926
CPU revision    : 5

Hardware    : PLX OxNas Family
Revision    : 0000
Serial      : 0000000000000000
#

Les sources du kernel : https://github.com/superna9999/linux/tree/topic/ox810se

Bientôt la suite :
- le reste avec la gestion des clocks, des resets
- l'USB
- l'ethernet
- le SATA
- y faire tourner debian et OpenMediaVault
- faire un upstream des sources !

;-)

  • # NTFS ?

    Posté par . Évalué à 4.

    Je vais peut-être dire une bêtise, mais es-tu sûr que l'ancien n'était pas formaté en NTFS ? Il est normal que tu aies des débits moisis en FUSE.

    • [^] # Re: NTFS ?

      Posté par . Évalué à 1.

      je pense qu'il se connectait sur ce NAS par le réseau et non pas en direct (USB par exemple) non ?

      • [^] # Re: NTFS ?

        Posté par (page perso) . Évalué à 2.

        Exact, c'est le seul moyen de connexion, mais le cpu est trop juste meme s'il peut être épaulé par un coeur LEON2.

        Le formatage est en ext2 avec une gestion LVM pour faire du raid dans la version 2 disques, avec le version 1 disque, ca n'a aucun sens…

    • [^] # Re: NTFS ?

      Posté par . Évalué à 0.

      Il me semble aussi que les disques des NAS western digital sont chiffrés même si l'utilisateur ne le demande pas. Est-ce que ça pourrait avoir un impact sur les performances d'écriture ?

      J'ai le même équipement sur un réseau gigabits et le réseau n'est clairement pas le facteur limitant lorsqu'on écrit sur le NAS.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.