Giter VIP home page Giter VIP logo

seagate-blackarmor-nas's Introduction

seagate-blackarmor-nas

Preamble

Some years ago I reverse engineered the Seagate Blackarmor NAS 220 and found a convenient way on how to enable SSH on the device. Later, the same mechanism was used to install an alternative Linux firmware (Debian 5 Lenny). Obviously, Debian 5 Lenny has reached end of life and should not be used in production anymore.

With the following instructions you'll manage to install a fully updateable Debian GNU/Linux system to the NAS (kernel and initrd stored in NAND flash, updated via flash-kernel package).

Please do me a favor: 👍 If you use any information or code you find here, please link back to this page. ⭐ Also, please consider to star this project. I really like to keep track of who is using this to do creative things, especially if you are from other parts of the world. 😃 You are welcome to open an issue to report on your personal success project and share it with others.

Hardware

All Blackarmor NAS devices are based on the Marvell 88F6000 SoC series with Sheeva CPU Technology, which has been released in 2008.

NAS 110

Quick specs: 800 Mhz CPU (Marvell 88F6192), 128MB RAM, 1 USB port, 1 network interface, max 1 drive. Motherboard codename 'Mono'.

User luctrev reports a successful installation on his NAS 110, so the hardware of the NAS 110 and 220 seems to be reasonable compatible.

NAS 220

Quick specs: 800 Mhz CPU (Marvell 88F6192), 128MB RAM, 2 USB ports, 1 network interface, max 2 drives. Motherboard codename 'Lassen', based on Marvell DB-88F6192A-BP development board.

This script has been developed and tested on the Blackarmor NAS 220. There haven't been any error reports for a long time, so I consider the system as stable.

NAS 400 / 420 / 440

Quick specs: 1.2 Ghz CPU (Marvell 88F6281), 256MB RAM, 4 USB ports, 2 network interfaces, max 4 drives. Motherboard codename 'Shasta', based on Marvell DB-88F6281A-BP development board.

All the NAS 4XX series products have the same motherboard and 4-bay enclosure. The second digit in this number scheme refers to the number of drives that ship with the device: no drives (NAS 400), 2 drives RAID 1 (NAS 420) and 4 drives RAID 5 (NAS 440).

⚠️ Warning: The use of hard disk slots 1 and 2 of the NAS 4XX is currently experimental! To date, these slots only work at all if you limit drive speed to 1.5Gb/s by setting a jumper on the back of the drive - see details. Hard disk slots 3 and 4 work properly, but the functionality, data integrity and reliability of slots 1 and 2 have not been tested.

Install Debian GNU/Linux

Warning

This completely removes the Seagate firmware and bootloader -- and there is no easy way of going back. There is a risk of bricking your device (but there is usually a viable way to revive it). You have been warned.

Special note for NAS110 and NAS220

It is possible to install Debian 11 on a NAS110 or NAS220, but during the installation process a low memory warning is displayed. It seems safe to ignore this warning. During the installation process you have to manually load the installer components sata-modules-*-marvell-di, partman-ext3, partman-auto and parted-udeb into the installer via the menu item Download installer components.

When installing Debian 9 or 10 (default for NAS110 and NAS220), this warning does not occur.

Prerequisites

Setup a serial terminal (115200 baud 8N1 e.g. by using sudo screen /dev/ttyUSB0 115200) by connecting a 3.3V serial cable like this:

Blackarmor NAS110 serial port Blackarmor NAS220 serial port Blackarmor NAS440 serial port

Preparing kernel and initrd images

This script generally supports installing Debian 9 (Stretch), Debian 10 (Buster, default for NAS110 and NAS220) and Debian 11 (Bullseye, default for NAS440).

Changing the default and installing Debian 11 (Bullseye) on the NAS110 and NAS220 is a bit more work due to the limited RAM of only 128MB, check this note first.

Use your favourite Linux workstation to execute blackarmor-nas-debian-prep.sh to download and prepare Das U-Boot bootloader and kernel image:

$ ./blackarmor-nas-debian-prep.sh
Usage: ./blackarmor-nas-debian-prep.sh [--rebuild] <nas110|nas220|nas440>
$ ./blackarmor-nas-debian-prep.sh nas220
NAS model set to: nas220
Using Debian dist 'buster' with kernel 4.9.0-8 for installation.
mkdir: created directory 'blackarmor-nas220-debian'
URL:https://raw.githubusercontent.com/hn/seagate-blackarmor-nas/master/u-boot-nas220.kwb [553356/553356] -> "u-boot-nas220.kwb" [1]
URL:https://raw.githubusercontent.com/hn/seagate-blackarmor-nas/master/u-boot-env.bin [65536/65536] -> "u-boot-env.bin" [1]
URL:https://cdn-fastly.deb.debian.org/debian/dists/stretch/main/installer-armel/current/images/kirkwood/netboot/initrd.gz [11703715/11703715] -> "initrd.gz" [1]
URL:https://cdn-fastly.deb.debian.org/debian/dists/stretch/main/installer-armel/current/images/kirkwood/netboot/vmlinuz-4.9.0-8-marvell [2056160/2056160] -> "vmlinuz-4.9.0-8-marvell" [1]
URL:https://cdn-fastly.deb.debian.org/debian/dists/stretch/main/installer-armel/current/images/kirkwood/device-tree/kirkwood-blackarmor-nas220.dtb [10756/10756] -> "kirkwood-blackarmor-nas220.dtb" [1]

Image Name:   Linux-4.9.0-8 + nas220.dtb
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    2066916 Bytes = 2018.47 kB = 1.97 MB
Load Address: 00040000
Entry Point:  00040000

Image Name:   Debian stretch netboot initrd
Image Type:   ARM Linux RAMDisk Image (uncompressed)
Data Size:    11703715 Bytes = 11429.41 kB = 11.16 MB
Load Address: 00000000
Entry Point:  00000000

u-boot-nas220.kwb file size (512-byte aligned): 0x87200
u-boot-env.bin file size (512-byte aligned): 0x10000

Execute the following commands on the Blackarmor NAS:

usb start
fatload usb 0:1 0x800000 u-boot-nas220.kwb
nand erase 0x0 0x87200
nand write 0x800000 0x0 0x87200
fatload usb 0:1 0x800000 u-boot-env.bin
nand erase 0xA0000 0x10000
nand write 0x800000 0xA0000 0x10000

Copy the files u-boot-nas220.kwb, u-boot-env.bin, uImage-dtb and uInitrd from directory blackarmor-nas220-debian to a FAT formatted USB stick. Carefully examine the flash commands shown at the end of the script output.

Flashing Das U-Boot bootloader

This step is only necessary for the very first installation. If you're updating or re-installing Debian, directly skip to Starting Debian installation.

Use the serial terminal to stop the Seagate boot process and to show the ethernet MAC address:

         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_
| | | |___|  _ \ / _ \ / _ \| __|
| |_| |___| |_) | (_) | (_) | |_
 \___/    |____/ \___/ \___/ \__|  ** uboot_ver:v0.1.7 **

 ** MARVELL BOARD: LASSEN LE

U-Boot 1.1.4 (Aug 17 2009 - 10:16:51) Marvell version: 3.4.14
U-Boot code: 00600000 -> 0067FFF0  BSS: -> 006CDE60

Soc: 88F6192 A0 (DDR2)
CPU running @ 800Mhz L2 running @ 400Mhz
SysClock = 200Mhz , TClock = 166Mhz

DRAM CAS Latency = 3 tRP = 3 tRAS = 8 tRCD=3
DRAM CS[0] base 0x00000000   size 128MB
DRAM Total size 128MB  16bit width
Found ADT7473, program PWM1 ... OK
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
NAND:32 MB

Marvell Serial ATA Adapter
Integrated Sata device found

CPU : Marvell Feroceon (Rev 1)
Scanning partition header:
Found sign PrEr at c0000
Found sign KrNl at 2c0000
Found sign RoOt at 540000

Streaming disabled
Write allocate disabled

USB 0: host mode
PEX 0: interface detected no Link.
Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  0
Marvell>>
Marvell>> printenv ethaddr
ethaddr=00:10:75:42:42:42
Marvell>> printenv eth1addr	# NAS440 only
eth1addr=00:10:75:42:ca:fe

Write down the MAC adress, you'll need it later. Connect the USB stick to port 1 of the NAS and flash the new bootloader (enter usb start ... nand write commands exactly as shown during preparation phase):

Marvell>> 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
Marvell>>
Marvell>> fatload usb 0:1 0x800000 u-boot-nas220.kwb
reading u-boot-nas220.kwb
.............................................................
553356 bytes read
Marvell>> nand erase 0x0 0x87200
NAND erase: device 0 offset 0x0, size 0x87200
Erasing at 0x84000 -- 100% complete.
OK
Marvell>> nand write 0x800000 0x0 0x87200
NAND write: device 0 offset 0x0, size 0x87200
 553472 bytes written: OK
Marvell>>
Marvell>> fatload usb 0:1 0x800000 u-boot-env.bin
reading u-boot-env.bin
.............
65532 bytes read
Marvell>> nand erase 0xA0000 0x10000
NAND erase: device 0 offset 0xA0000, size 0x10000
Erasing at 0x84000 -- 100% complete.
OK
Marvell>> nand write 0x800000 0xA0000 0x10000
NAND write: device 0 offset 0xA0000, size 0x10000
 65532 bytes written: OK
Marvell>>
Marvell>> reset

Make sure to restart the NAS via reset command after flashing the bootloader!

If your nas just restarts with the error message cpu reset after the fatload usb 0:1 0x800000 u-boot-nas220.kwb command try to format the usb stick to ext2 and use ext2load ... instead.

Starting Debian installation

After resetting the NAS, connect a network cable to the NAS and execute run bootcmd_usb to start the Debian netboot installation:

U-Boot 2017.11 (Dec 18 2018 - 09:52:13 +0100)
NAS 220

SoC:   Kirkwood 88F6281_A0
DRAM:  128 MiB
WARNING: Caches not enabled
NAND:  32 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
88E1116 Initialized on egiga0
IDE:   Bus 0: not available  Bus 1: not available
nas220>
nas220> run bootcmd_usb
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
reading uImage-dtb
2066980 bytes read in 148 ms (13.3 MiB/s)
reading uInitrd
11703779 bytes read in 672 ms (16.6 MiB/s)
## Booting kernel from Legacy Image at 00040000 ...
   Image Name:   Linux-4.9.0-8+nas220-dtb
   Created:      2018-12-18  19:16:01 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2066916 Bytes = 2 MiB
   Load Address: 00040000
   Entry Point:  00040000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 00800000 ...
   Image Name:   netboot-initrd
   Created:      2018-12-19   9:26:51 UTC
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    11703715 Bytes = 11.2 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
   Loading Ramdisk to 07009000, end 07b325a3 ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.0-8-marvell ([email protected]) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 Debian 4.9.1
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=0005397f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] OF: fdt:Machine model: Seagate Blackarmor NAS220
...

Proceed with Debian installation as usual (configure RAID, select packages, ...). Ignore the No installable kernel was found and No boot loader installed warnings (Continue without installing a kernel?=Yes and Continue), but do not reboot yet!

Finishing Debian installation

Before rebooting the installation system (the Installation complete screen appears) select the Go Back button. Select Execute a shell (second last option in main menu) and chroot to the target system:

# mount -o bind /proc /target/proc
# mount -o bind /sys /target/sys
# chroot /target
# cd /tmp

Download and execute blackarmor-nas-debian-postinstall.sh like this:

# wget https://raw.githubusercontent.com/hn/seagate-blackarmor-nas/master/blackarmor-nas-debian-postinstall.sh
# chmod +x blackarmor-nas-debian-postinstall.sh
# ./blackarmor-nas-debian-postinstall.sh
Reading package lists... Done 
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  busybox device-tree-compiler devio initramfs-tools initramfs-tools-core
  klibc-utils libklibc liblzo2-2 linux-base mtd-utils
Suggested packages:
  sharutils-doc bsd-mailx | mailx
The following NEW packages will be installed:
  busybox device-tree-compiler devio flash-kernel initramfs-tools
  initramfs-tools-core klibc-utils libklibc liblzo2-2 linux-base mtd-utils
  sharutils u-boot-tools
0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
Need to get 1737 kB of archives. 
After this operation, 5340 kB of additional disk space will be used.
...
The following additional packages will be installed:
  firmware-linux-free linux-image-4.9.0-8-marvell
Suggested packages:                          
  linux-doc-4.9 debian-kernel-handbook
The following NEW packages will be installed:
  firmware-linux-free linux-image-4.9.0-8-marvell linux-image-marvell
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 22.0 MB of archives.
After this operation, 91.3 MB of additional disk space will be used.
...
Preparing to unpack .../firmware-linux-free_3.4_all.deb ...
Unpacking firmware-linux-free (3.4) ...                   
Selecting previously unselected package linux-image-4.9.0-8-marvell.
Preparing to unpack .../linux-image-4.9.0-8-marvell_4.9.130-2_armel.deb ...
Unpacking linux-image-4.9.0-8-marvell (4.9.130-2) ...
...
Using DTB: kirkwood-blackarmor-nas220.dtb
Installing /usr/lib/linux-image-4.9.0-8-marvell/kirkwood-blackarmor-nas220.dtb into /boot/dtbs/4.9.0-8-marvell/kirkwood-blackarmor-nas220.dtb
Taking backup of kirkwood-blackarmor-nas220.dtb.
Installing new kirkwood-blackarmor-nas220.dtb.
flash-kernel: installing version 4.9.0-8-marvell   
flash-kernel: appending /usr/lib/linux-image-4.9.0-8-marvell/kirkwood-blackarmor-nas220.dtb to kernel
Generating kernel u-boot image... done.
Erasing 16 Kibl (using 2066980/5242880 bytes)...
...
Writing data to block 124 at offset 0x1f0000
Writing data to block 125 at offset 0x1f4000
Writing data to block 126 at offset 0x1f8000
done.

Set ethernet MAC address and enable autoboot (only needed after flashing Das U-Boot bootloader):

# fw_setenv ethaddr 00:10:75:42:42:42	# YOUR mac address as noted above
# fw_setenv eth1addr 00:10:75:42:ca:fe	# NAS440 only (dual NIC)
# fw_setenv bootdelay 3
# exit
# exit

Exit the shell, remove USB stick and reboot the system via the Debian installer main menu. Don't forget the Finish installation item last or you won't be able to login later!

Additional tuning

  • As Moritz suggests it is advisable to install the lm-sensors and hdparm packages.

  • With hwmon you can adjust the fan speed automatically. This script installs a corresponding template file in /etc/sysfs.d.

Revive a bricked device

The Marvell SoC waits in a very early boot phase on the serial port for a special "magic" sequence, and when this is received, it accepts to transfer the boot loader via Xmodem. The kwboot tool can be used if your device is bricked or if you want to test an U-Boot image before actually flashing to NAND. Simply set up the serial port like this:

$ kwboot -b u-boot-nas440.kwb -p -t /dev/ttyS8
Sending boot message. Please reboot the target.../
Sending boot image...
  0 % [......................................................................]
  1 % [......................................................................]
  3 % [......................................................................]
 ...
 95 % [......................................................................]
 97 % [......................................................................]
 99 % [....................................]
[Type Ctrl-\ + c to quit]

U-Boot 2017.11 (May 20 2021 - 11:42:00 +0200)
NAS 440

SoC:   Kirkwood 88F6281_A1
DRAM:  256 MiB
WARNING: Caches not enabled
NAND:  32 MiB
In:    serial
Out:   serial
Err:   serial

nas440>

To permanently flash the bootloader to NAND, follow the steps described in Flashing Das U-Boot bootloader.

NAS 440 patch details

This patch fully implements support for the NAS440 board and peripherals within U-Boot. With the Linux kernel however there are problems, this is is work-in-progress:

  • 👷 Hard disk drives 1 and 2 are connected to a 88SE6121 SATA-II controller, which is connected via PCIe. The controller basically works, unfortunately the hard drives are not correctly beeing detected within the Linux kernel (ahci module error failed to IDENTIFY).
    Update: Most drives work if you limit drive speed to 1.5Gb/s by setting a jumper on the back of the hard drive (limiting interface link speed by software with libata.force=1.5G kernel option unfortunately does not help to solve this problem).
    Interestingly, with U-Boot or older Linux kernels (< v3.16), the drives work without a speed limit jumper. This has been discussed as a problem with the MVEBU PCIe driver or the SATA interface.

  • Hard disk drives 3 and 4 are connected to the 88F6281 SoC (on chip peripherals, OCP) and working. HDD power (12V) for drives 3 and 4 can be controlled via GPIO pin 28.

  • The LCD has a HD44780 compatible controller communicating via 12 GPIO pins (8 bit data width). Support within U-Boot has been implemented (see lcd_* functions in nas440.c).

  • The LEDs are connected via an 8-bit serial-in/parallel-out 74AHC164 shift register. Support within U-Boot has been implemented (see led_* functions in nas440.c).

  • Various buttons (power, reset, LCD pageup/down) are connected via GPIO pins (see GPIO_* definitions in nas440.h).

Credits

This project is based on the work of several dedicated people:

Misc

seagate-blackarmor-nas's People

Contributors

hn avatar mjseeley avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

seagate-blackarmor-nas's Issues

Ramdisk image is corrupt or invalid

I ran through the entire process in the readme.md twice but get an error after the final reboot. The bootloader upgrade, Debian install and post install script seem to run without error. Any ideas?

U-Boot 2017.11 (Dec 18 2018 - 09:52:13 +0100)
NAS 220

SoC: Kirkwood 88F6281_A1
DRAM: 128 MiB
WARNING: Caches not enabled
NAND: 32 MiB
In: serial
Out: serial
Err: serial
Net: egiga0
88E1116 Initialized on egiga0
IDE: Bus 0: .........OK Bus 1: not available
Device 0: Model: Hitachi HDS721075KLA330 Firm: GK8OA97A Ser#: GTF202P8H9AH2F
Type: Hard Disk
Supports 48-bit addressing
Capacity: 715404.8 MB = 698.6 GB (1465149168 x 512)
Hit any key to stop autoboot: 0

NAND read: device 0 offset 0xc0000, size 0x500000
5242880 bytes read: OK

NAND read: device 0 offset 0x5c0000, size 0x1a40000
Attempt to read outside the flash area
0 bytes read: ERROR

Booting kernel from Legacy Image at 00040000 ...

Image Name: kernel 4.19.0-6-marvell
Created: 2020-01-08 5:19:45 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2056282 Bytes = 2 MiB
Load Address: 00040000
Entry Point: 00040000
Verifying Checksum ... OK
Wrong Ramdisk Image Format
Ramdisk image is corrupt or invalid
nas220>

bug in post install script?

Installing on NAS220
It appears all goes well except line 113 of blackarmor-nas-debian-postinstall.sh ...... I get a message "ls: binary operator expected"

Failed step: Make system bootable

Hello, i got NAS220 and i'm trying to install Debian on it. At first i had issue with detection of my usb stick in u-boot but i loaded new u-boot via TFTP and flashed it without issues. I'm trying now to install debian, i loaded uImage-dtb and uInitrd via TFTP, I am experience problem when installer go to step "Make system bootable" - it just fails.

I tried to ignore error and continue installation, but when i'm in chroot and execute post install script it fail writing to flash.
Log:

Reading package lists... 0%  
Reading package lists... 100%  
Reading package lists... Done  
Building dependency tree... 0%
Building dependency tree... 0%
Building dependency tree... 50%
Building dependency tree... 50%
Building dependency tree... 65%
Building dependency tree... 92%
Building dependency tree       
Reading state information... 0%
Reading state information... 0%
Reading state information... Done
flash-kernel is already the newest version (3.99).
sharutils is already the newest version (1:4.15.2-4).
u-boot-tools is already the newest version (2019.01+dfsg-7).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
E: Can not write log (Is /dev/pts mounted?) - posix_openpt (19: No such device)
Setting up initramfs-tools (0.133+deb10u1) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.133+deb10u1) ...
update-initramfs: Generating /boot/initrd.img-4.19.0-6-marvell
UUID d32eba12-964a-4bb5-b971-bb05156cb73c doesn't exist in /dev/disk/by-uuid
Warning: root device /dev/disk/by-uuid/d32eba12-964a-4bb5-b971-bb05156cb73c does
�[23;80Hs not exist
Using DTB: kirkwood-blackarmor-nas220.dtb
Installing /usr/lib/linux-image-4.19.0-6-marvell/kirkwood-blackarmor-nas220.dtb 
�[23;80H into /boot/dtbs/4.19.0-6-marvell/./kirkwood-blackarmor-nas220.dtb
Taking backup of kirkwood-blackarmor-nas220.dtb.
Installing new kirkwood-blackarmor-nas220.dtb.
Installing /usr/lib/linux-image-4.19.0-6-marvell/kirkwood-blackarmor-nas220.dtb 
�[23;80H into /boot/dtbs/4.19.0-6-marvell/./kirkwood-blackarmor-nas220.dtb
Taking backup of kirkwood-blackarmor-nas220.dtb.
Installing new kirkwood-blackarmor-nas220.dtb.
flash-kernel: installing version 4.19.0-6-marvell
Cannot find mtd partition 'uimage'
run-parts: /etc/initramfs/post-update.d//flash-kernel exited with return code 1
dpkg: error processing package initramfs-tools (--configure):
 installed initramfs-tools package post-installation script subprocess returned 
�[23;80H error exit status 1
Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

Is there a solution for that?

NAS 400 != 440 ?

Hi !

Is the NAS 400 the same as NAS 440 ? i.e. does the "Warning: Support for the NAS 440 is currently alpha quality! Things are incomplete, buggy and unstable" also apply to NAS 400 ?

Thanks,
KK

Installer could not detect any HDD

Hi,
I am trying to install Debian 10 on nas200. Everything goes smoothly until the installer tries to detect the hard drive. I got "No partitionable media were found":
hdd

This is a little bit strange because on boot I saw that my HDD is detected:

boot

I would appreciate any help.

APT Source List

The source list at /etc/apt/sources.list needs to be updated to point to archive.debian.org:

deb http://archive.debian.org/debian/ lenny main contrib non-free
deb-src http://archive.debian.org/debian/ lenny main contrib non-free

deb http://archive.debian.org/debian-security lenny/updates main contrib non-free
deb-src http://archive.debian.org/debian-security lenny/updates main contrib non-free

deb http://archive.debian.org/debian-volatile lenny/volatile main contrib non-free
deb-src http://archive.debian.org/debian-volatile lenny/volatile main contrib non-free

NAS440 Post Install

Hi,

I'm stuck with the post install script on nas440. Is it possible to have a new script for this nas ?

Thanks for the work.

Allowing drives from other manufacturers?

I apologize for logging this as an issue but I cant any other way to contact you. What in the device determines that a Seagate drive is installed? Is that check made in the Kernel? I want to fork off your code and remove this check thus allowing large drives from any manufacturer.

By the way, your firmware SP works on the BA 110 as well :) I tested it yesterday.

NAS 220 ext2 USB "Unable to read '...' from usb0:1"

Reproducing:

  1. Format USB as ext2 in gparted
  2. Copy files to USB, chmod 777 -R *'ing those files
  3. Run usb start, finding 3 devices, and 1 storage, then ext2load usb 0:1 0x800000 u-boot-nas220.kwb
  • USB formatted as ext2 after a FAT format run was not working
  • USB plugged into port 1
  • Afterwards, running usb start displays 1 USB devices found, 0 storage devices found

CPU reset when loading bootloader/kernel on BA110

Hello

I'm facing a problem with BA110. When I try to load de bootloader/kernel I get a data abort and a CPU reset:


Marvell>> 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
Marvell>> fatls usb 0:1
553356 u-boot.kwb
65536 u-boot-env.bin
2053978 uimage-dtb
12457575 uinitrd

4 file(s), 0 dir(s)

Marvell>> fatload usb 0:1 0x40000 uImage-dtb
reading uImage-dtb
data abort
pc : [<006488b4>] lr : [<0063ee88>]
sp : 005fdb04 ip : 005fda24 fp : 005fdb20
r10: 0000009b r9 : 00040000 r8 : 005fffcc
r7 : 005fdb70 r6 : 0000009b r5 : 005fdb70 r4 : 00000000
r3 : 005fdddc r2 : 00000c00 r1 : 00000000 r0 : 00000006
Flags: nZCv IRQs off FIQs off Mode SVC_32
Resetting CPU ...


Marvell>> 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
Marvell>> fatls usb 0:1
553356 u-boot.kwb
65536 u-boot-env.bin
2053978 uimage-dtb
12457575 uinitr*
d

4 file(s), 0 dir(s)

Marvell>> fatload usb 0:1 0x800000 uInitrd
reading uInitrd
data abort
pc : [<006488b4>] lr : [<0063ee88>]
sp : 005fdb04 ip : 005fda24 fp : 005fdb20
r10: 00000291 r9 : 00800000 r8 : 005fffcc
r7 : 005fdb70 r6 : 00000291 r5 : 005fdb70 r4 : 00000000
r3 : 005fe5b4 r2 : 00000c00 r1 : 00000000 r0 : 00000006
Flags: nZCv IRQs off FIQs off Mode SVC_32
Resetting CPU ...


Could you help me?

Bests.

UART is not working?

Hi,

Has anybody experienced any issues with the UART? In the past i was able to connect to the UART interface and get access to Linux as well as see the u-boot logs while booting. Today i tried to get UART access in order to flash my device with Debian as described in this repo but i realized that there are no data present on the UART TX. The line is always high. My device is a Blackarmor NAS 220 with 4 pins connector for UART. I think that i have upgraded my device since then and i'm wondering if they have completely disabled the serial interface for security reasons after the release of the web exploit for ssh enable.

Does BA support drives larger than 3TB?

Hi,
Thanks a lot for your guide, it made me want to get my hands on a BA 220 to play around with. My concern is, would the BA support drives > 3TB . Do you have any info on this or tried it yourself?
Seagate explicitly mentions 3TB max capacity per drive, which may have been OK back when this NAS was released, but isn't even close to enough these days. So before I buy this NAS, I'm wondering if it would be usable for me since I'd like to put at least 6-8TB drives inside it. Preferably I'd like to put 2x18TB seagate exos drives, which would make the whole experiment worthwhile since that would give me enough storage for an external cold backup of my main NAS. I can't find any info on this online, so hopefully someone here tried this and could give me some tips on whether this would work (or not work)

Seagate BlackArmor 220 flash u-boot from Linux (no pins to do it)

Hello,
I want to know if there is a possibilty to flash the u-boot from the Linux kernel directly ? I had an Seagate NAS 220 but no male pins to connect to the uboot serial and I want to flash the OpenWRT u-boot on it.
Thanks for any kind of help or advise. (yes I've changed my message)

Building this kernel

Greetings there!

I'm also trying to install a custom debian on my NAS. It has the same chip as yours, the 88F6-LG02. However, when I boot your image on the NAS it fails to boot, because it hits a kernel exception. So can you please provide me how you built your kernel, step-by-step?

Thank You

Nas 220 Debian 10 install

Hi all, I have a nas 220 and i want to install debian 10 , i used successfully the rs232 interface and i can complete the installation ( more or less 1 hour :( ).
when i reboot the unit i have this message on monitor :
......
Wrong Ramdisk Image Format
Ramdisk image is corrupt or invalid

So I googled some, and someone said:

You need to enable CONFIG_LEGACY_IMAGE_FORMAT in U-Boot:
Go to the u-boot source directory.
Type: $ make menuconfig
In Boot images -> Enable support for the legacy image format
Exit and save, then build U-Boot again
Now it will be able to load your uRamdisk :-)

where I can rebuild uboot ?
Can i Do it by myself ?

Many thanks in advance

gigirock

NAS 220 Upgrade from Debian-Armel 2.6.22.18 to Debian 10 Buster

Hello Hojo @hn

Many thanks for your reply. I'm sorry for leaving a comment under your original code changes. I am new to Github, not familiar with those functions, sorry for that.

I have a BlackArmor NAS220 and installed the Debian-Armel 2.6.22.18 by using your previous fw manual upgrade method due to I don't have a serial cable. My issues are:

  1. Is it possible to upgrade the debian-armel 2.6.22.18 to latest debian 10 buster without using a serial cable?
  2. If it is possible, Could you teach me how to upgrade?
  3. The main reason I install debian in my nas220 is planing to install OpenMediaVault in my nas220, is it possible to install OMV after installed debian 10 buster?

Many thanks for your time to answer my questions.

Test on Seagate 110 NAS - SUCCESS

Hello

I have a problem here!
I'm trying to install Debian 9 Stretch on a NAS110, but after successfully performed the Flashing Das U-Boot bootloader. When I try start the Debian installation I get the following error message:

nas220> fatload usb 0:1 0x40000 uImage-dtb
** Unable to read file uImage-dtb **
nas220> fatload usb 0:1 0x800000 uInitrd
** Unable to read file uInitrd **

Could reading failure be caused by a problem with my USB stick (FAT formatted)? Does anyone have a guess?

Here the full terminal output:

U-Boot 2017.11 (Dec 18 2018 - 09:52:13 +0100)
NAS 220

SoC: Kirkwood 88F6281_A0
DRAM: 128 MiB
WARNING: Caches not enabled
NAND: 32 MiB
In: serial
Out: serial
Err: serial
Net: egiga0
88E1116 Initialized on egiga0
IDE: ide_preinit failed
nas220> setenv bootargs console=ttyS0,115200
nas220> usb start
starting USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 3 USB Device(s) found
scanning usb for storage devices... 1 Storage Device(s) found
nas220> fatload usb 0:1 0x40000 uImage-dtb
** Unable to read file uImage-dtb **
nas220> fatload usb 0:1 0x800000 uInitrd
** Unable to read file uInitrd **
nas220>

PS:

  • I performed the kernel and initrd images preparation step on a Debian i386 32bits
  • I tried with and without the HD

cheers
LST

Post install, booting can't mount anything under /root

I have a BlackArmor 440 so I know things aren't exactly stable. I am here to help try and get this thing going nicely for everyone.

Installation seemed to go over without a hitch. Post install as the NAS is booting failures occur attempting to mount anything under the /root directory.

Warning: fsck not present, so skipping root file system
[   22.435780] BTRFS info (device md1): flagging fs with big metadata feature
[   22.442743] BTRFS info (device md1): disk space caching is enabled
[   22.448974] BTRFS info (device md1): has skinny extents
done.
Begin: Running /scripts/local-bottom ... done.
Begin: Running /scripts/init-bottom ... mount: mounting /dev on /root/dev failed: No such file or directory
mount: mounting /dev on /root/dev failed: No such file or directory
done.
mount: mounting /run on /root/run failed: No such file or directory
run-init: can't execute '/sbin/init': No such file or directory
Target filesystem doesn't have requested /sbin/init.
run-init: can't execute '/sbin/init': No such file or directory
run-init: can't execute '/etc/init': No such file or directory
run-init: can't execute '/bin/init': No such file or directory
run-init: can't execute '/bin/sh': No such file or directory
run-init: can't execute '': No such file or directory
chvt: can't open console
No init found. Try passing init= bootarg.


BusyBox v1.30.1 (Debian 1:1.30.1-6+b3) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs) ls
bin      dev      init     proc     run      scripts  tmp      var
conf     etc      lib      root     sbin     sys      usr
(initramfs) 

If I navigate into /root there is folder "@rootfs" which contains everything I would imagine should be there including the missing fsck binary.

Any idea why the root file system isn't being mounted properly?

Test on Seagate 440 NAS

Hi - I have a Seagate 440 NAS that I would like to try your latest codebase on. Happy to provide my findings here. Is there anything I should be checking beforehand?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.