{"id":25146930,"url":"https://github.com/hn/seagate-blackarmor-nas","last_synced_at":"2025-04-28T13:08:29.009Z","repository":{"id":41458015,"uuid":"56096530","full_name":"hn/seagate-blackarmor-nas","owner":"hn","description":"Technical data (reverse engineered) and an alternative firmware (Debian GNU/Linux) for the Seagate Blackarmor NAS","archived":false,"fork":false,"pushed_at":"2024-01-27T07:36:19.000Z","size":85894,"stargazers_count":89,"open_issues_count":4,"forks_count":21,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-28T13:08:18.432Z","etag":null,"topics":["marvell","nas","seagate","u-boot"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-12T20:46:14.000Z","updated_at":"2025-03-26T18:20:14.000Z","dependencies_parsed_at":"2025-02-08T20:38:56.176Z","dependency_job_id":null,"html_url":"https://github.com/hn/seagate-blackarmor-nas","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hn%2Fseagate-blackarmor-nas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hn%2Fseagate-blackarmor-nas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hn%2Fseagate-blackarmor-nas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hn%2Fseagate-blackarmor-nas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hn","download_url":"https://codeload.github.com/hn/seagate-blackarmor-nas/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251319606,"owners_count":21570426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["marvell","nas","seagate","u-boot"],"created_at":"2025-02-08T20:28:03.262Z","updated_at":"2025-04-28T13:08:28.856Z","avatar_url":"https://github.com/hn.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# seagate-blackarmor-nas\n\n## Preamble\nSome years ago [I reverse engineered](archive/seagate-blackarmor-nas.txt) the Seagate Blackarmor NAS 220 and found a convenient way on [how to enable SSH on the device](archive/sg2000-2000.1337.sp42.img). Later, the same mechanism was used to install an [alternative Linux firmware (Debian 5 Lenny)](archive/custom-sg2000-2000.1337.sp99.img). Obviously, Debian 5 Lenny has reached end of life and should not be used in production anymore.\n\nWith the following instructions you'll manage to install a fully updateable Debian GNU/Linux system\nto the NAS (kernel and initrd stored in NAND flash, updated via [flash-kernel package](https://packages.debian.org/stable/flash-kernel)).\n\nPlease do me a favor: :thumbsup: If you use any information or code you find here, please link back to this page.\n:star: 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.\n:smiley: You are welcome to open an issue to report on your personal success project and share it with others.\n\n## Hardware\n\nAll Blackarmor NAS devices are based on the Marvell 88F6000 SoC series with Sheeva CPU Technology,\nwhich has been [released in 2008](https://www.marvell.com/company/newsroom/marvell-introduces-socs-to-boost-digital-home-gateway-and-pc-performance.html).\n\n### NAS 110\n\nQuick specs: 800 Mhz CPU (Marvell 88F6192), 128MB RAM, 1 USB port, 1 network interface, max 1 drive. Motherboard\ncodename '[Mono](https://en.wikipedia.org/wiki/Mono_Lake)'.\n\nUser [luctrev](https://github.com/luctrev) reports [a successful installation on his NAS 110](https://github.com/hn/seagate-blackarmor-nas/issues/6), so the hardware of the NAS 110 and 220 seems to be reasonable compatible.\n\n### NAS 220\n\nQuick specs: 800 Mhz CPU (Marvell 88F6192), 128MB RAM, 2 USB ports, 1 network interface, max 2 drives. Motherboard\ncodename '[Lassen](https://en.wikipedia.org/wiki/Lassen_Peak)', based on Marvell DB-88F6192A-BP development board.\n\nThis script has been developed and tested on the Blackarmor NAS 220. There\nhaven't been any error reports for a long time, so I consider the system as\nstable.\n\n### NAS 400 / 420 / 440\n\nQuick specs: 1.2 Ghz CPU (Marvell 88F6281), 256MB RAM, 4 USB ports, 2 network interfaces, max 4 drives. Motherboard\ncodename '[Shasta](https://en.wikipedia.org/wiki/Mount_Shasta)', based on Marvell DB-88F6281A-BP development board.\n\nAll the NAS 4XX series products have the same motherboard and 4-bay enclosure. The second digit in this number scheme refers to the\nnumber of drives that ship with the device: no drives (NAS 400), 2 drives RAID 1 (NAS 420) and 4 drives RAID 5 (NAS 440).\n\n:warning: Warning: The use of hard disk slots 1 and 2 of the NAS 4XX is currently experimental! To date, these slots only\nwork at all if you limit drive speed to 1.5Gb/s by setting a jumper on the back of the drive - [see details](#NAS-440-patch-details).\nHard disk slots 3 and 4 work properly, but the functionality, data integrity and reliability of slots 1 and 2 have not been tested.\n\n## Install Debian GNU/Linux\n\n### Warning\n\nThis completely removes the Seagate firmware and bootloader -- and there is no easy way of going back. There is a risk of bricking your device\n([but there is usually a viable way to revive it](#Revive-a-bricked-device)). You have been warned.\n\n### Special note for NAS110 and NAS220\n\nIt is possible to install Debian 11 on a NAS110 or NAS220, but during the installation\nprocess a `low memory` warning is displayed. It *seems* safe to ignore this warning.\nDuring the installation process you have to manually load the installer\ncomponents `sata-modules-*-marvell-di`, `partman-ext3`, `partman-auto` and\n`parted-udeb` into the installer via the menu item `Download installer components`.\n\nWhen installing Debian 9 or 10 (default for NAS110 and NAS220), this warning does not occur.\n\n### Prerequisites\n\nSetup a serial terminal (`115200 baud 8N1` e.g. by using `sudo screen /dev/ttyUSB0 115200`) by connecting a 3.3V serial cable like this:\n\n![Blackarmor NAS110 serial port](https://github.com/hn/seagate-blackarmor-nas/blob/master/blackarmor-nas110-debian-serialport.jpg \"NAS 110 serial port\")\n![Blackarmor NAS220 serial port](https://github.com/hn/seagate-blackarmor-nas/blob/master/blackarmor-nas220-debian-serialport.jpg \"NAS 220 serial port\")\n![Blackarmor NAS440 serial port](https://github.com/hn/seagate-blackarmor-nas/blob/master/blackarmor-nas440-debian-serialport.jpg \"NAS 440 serial port\")\n\n### Preparing kernel and initrd images\n\nThis script generally supports installing Debian 9 (Stretch), Debian 10\n(Buster, default for NAS110 and NAS220) and Debian 11 (Bullseye, default for NAS440).\n\nChanging the default and installing Debian 11 (Bullseye) on the NAS110 and NAS220 is a bit more work\ndue to the limited RAM of only 128MB, check [this note](#Special-note-for-NAS110-and-NAS220) first.\n\nUse your favourite Linux workstation to execute [`blackarmor-nas-debian-prep.sh`](https://raw.githubusercontent.com/hn/seagate-blackarmor-nas/master/blackarmor-nas-debian-prep.sh) to download and prepare Das U-Boot bootloader and kernel image:\n\n```\n$ ./blackarmor-nas-debian-prep.sh\nUsage: ./blackarmor-nas-debian-prep.sh [--rebuild] \u003cnas110|nas220|nas440\u003e\n$ ./blackarmor-nas-debian-prep.sh nas220\nNAS model set to: nas220\nUsing Debian dist 'buster' with kernel 4.9.0-8 for installation.\nmkdir: created directory 'blackarmor-nas220-debian'\nURL:https://raw.githubusercontent.com/hn/seagate-blackarmor-nas/master/u-boot-nas220.kwb [553356/553356] -\u003e \"u-boot-nas220.kwb\" [1]\nURL:https://raw.githubusercontent.com/hn/seagate-blackarmor-nas/master/u-boot-env.bin [65536/65536] -\u003e \"u-boot-env.bin\" [1]\nURL:https://cdn-fastly.deb.debian.org/debian/dists/stretch/main/installer-armel/current/images/kirkwood/netboot/initrd.gz [11703715/11703715] -\u003e \"initrd.gz\" [1]\nURL:https://cdn-fastly.deb.debian.org/debian/dists/stretch/main/installer-armel/current/images/kirkwood/netboot/vmlinuz-4.9.0-8-marvell [2056160/2056160] -\u003e \"vmlinuz-4.9.0-8-marvell\" [1]\nURL:https://cdn-fastly.deb.debian.org/debian/dists/stretch/main/installer-armel/current/images/kirkwood/device-tree/kirkwood-blackarmor-nas220.dtb [10756/10756] -\u003e \"kirkwood-blackarmor-nas220.dtb\" [1]\n\nImage Name:   Linux-4.9.0-8 + nas220.dtb\nImage Type:   ARM Linux Kernel Image (uncompressed)\nData Size:    2066916 Bytes = 2018.47 kB = 1.97 MB\nLoad Address: 00040000\nEntry Point:  00040000\n\nImage Name:   Debian stretch netboot initrd\nImage Type:   ARM Linux RAMDisk Image (uncompressed)\nData Size:    11703715 Bytes = 11429.41 kB = 11.16 MB\nLoad Address: 00000000\nEntry Point:  00000000\n\nu-boot-nas220.kwb file size (512-byte aligned): 0x87200\nu-boot-env.bin file size (512-byte aligned): 0x10000\n\nExecute the following commands on the Blackarmor NAS:\n\nusb start\nfatload usb 0:1 0x800000 u-boot-nas220.kwb\nnand erase 0x0 0x87200\nnand write 0x800000 0x0 0x87200\nfatload usb 0:1 0x800000 u-boot-env.bin\nnand erase 0xA0000 0x10000\nnand write 0x800000 0xA0000 0x10000\n```\n\nCopy 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.\n\n### Flashing Das U-Boot bootloader\n\nThis step is only necessary for the very first installation. If you're updating or re-installing\nDebian, directly skip to [Starting Debian installation](#Starting-Debian-installation).\n\nUse the serial terminal to stop the Seagate boot process and to show the ethernet MAC address:\n\n```\n         __  __                      _ _\n        |  \\/  | __ _ _ ____   _____| | |\n        | |\\/| |/ _` | '__\\ \\ / / _ \\ | |\n        | |  | | (_| | |   \\ V /  __/ | |\n        |_|  |_|\\__,_|_|    \\_/ \\___|_|_|\n _   _     ____              _\n| | | |   | __ )  ___   ___ | |_\n| | | |___|  _ \\ / _ \\ / _ \\| __|\n| |_| |___| |_) | (_) | (_) | |_\n \\___/    |____/ \\___/ \\___/ \\__|  ** uboot_ver:v0.1.7 **\n\n ** MARVELL BOARD: LASSEN LE\n\nU-Boot 1.1.4 (Aug 17 2009 - 10:16:51) Marvell version: 3.4.14\nU-Boot code: 00600000 -\u003e 0067FFF0  BSS: -\u003e 006CDE60\n\nSoc: 88F6192 A0 (DDR2)\nCPU running @ 800Mhz L2 running @ 400Mhz\nSysClock = 200Mhz , TClock = 166Mhz\n\nDRAM CAS Latency = 3 tRP = 3 tRAS = 8 tRCD=3\nDRAM CS[0] base 0x00000000   size 128MB\nDRAM Total size 128MB  16bit width\nFound ADT7473, program PWM1 ... OK\nAddresses 8M - 0M are saved for the U-Boot usage.\nMem malloc Initialization (8M - 7M): Done\nNAND:32 MB\n\nMarvell Serial ATA Adapter\nIntegrated Sata device found\n\nCPU : Marvell Feroceon (Rev 1)\nScanning partition header:\nFound sign PrEr at c0000\nFound sign KrNl at 2c0000\nFound sign RoOt at 540000\n\nStreaming disabled\nWrite allocate disabled\n\nUSB 0: host mode\nPEX 0: interface detected no Link.\nNet:   egiga0 [PRIME]\nHit any key to stop autoboot:  0\nMarvell\u003e\u003e\nMarvell\u003e\u003e printenv ethaddr\nethaddr=00:10:75:42:42:42\nMarvell\u003e\u003e printenv eth1addr\t# NAS440 only\neth1addr=00:10:75:42:ca:fe\n```\n\nWrite 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):\n\n```\nMarvell\u003e\u003e usb start\n(Re)start USB...\nUSB:   scanning bus for devices... 3 USB Device(s) found\n       scanning bus for storage devices... 1 Storage Device(s) found\nMarvell\u003e\u003e\nMarvell\u003e\u003e fatload usb 0:1 0x800000 u-boot-nas220.kwb\nreading u-boot-nas220.kwb\n.............................................................\n553356 bytes read\nMarvell\u003e\u003e nand erase 0x0 0x87200\nNAND erase: device 0 offset 0x0, size 0x87200\nErasing at 0x84000 -- 100% complete.\nOK\nMarvell\u003e\u003e nand write 0x800000 0x0 0x87200\nNAND write: device 0 offset 0x0, size 0x87200\n 553472 bytes written: OK\nMarvell\u003e\u003e\nMarvell\u003e\u003e fatload usb 0:1 0x800000 u-boot-env.bin\nreading u-boot-env.bin\n.............\n65532 bytes read\nMarvell\u003e\u003e nand erase 0xA0000 0x10000\nNAND erase: device 0 offset 0xA0000, size 0x10000\nErasing at 0x84000 -- 100% complete.\nOK\nMarvell\u003e\u003e nand write 0x800000 0xA0000 0x10000\nNAND write: device 0 offset 0xA0000, size 0x10000\n 65532 bytes written: OK\nMarvell\u003e\u003e\nMarvell\u003e\u003e reset\n```\n\nMake sure to restart the NAS via `reset` command after flashing the bootloader!\n\nIf 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.\n\n### Starting Debian installation\n\nAfter resetting the NAS, connect a network cable to the NAS and execute `run bootcmd_usb` to start the Debian netboot installation:\n\n```\nU-Boot 2017.11 (Dec 18 2018 - 09:52:13 +0100)\nNAS 220\n\nSoC:   Kirkwood 88F6281_A0\nDRAM:  128 MiB\nWARNING: Caches not enabled\nNAND:  32 MiB\nIn:    serial\nOut:   serial\nErr:   serial\nNet:   egiga0\n88E1116 Initialized on egiga0\nIDE:   Bus 0: not available  Bus 1: not available\nnas220\u003e\nnas220\u003e run bootcmd_usb\nstarting USB...\nUSB0:   USB EHCI 1.00\nscanning bus 0 for devices... 3 USB Device(s) found\n       scanning usb for storage devices... 1 Storage Device(s) found\nreading uImage-dtb\n2066980 bytes read in 148 ms (13.3 MiB/s)\nreading uInitrd\n11703779 bytes read in 672 ms (16.6 MiB/s)\n## Booting kernel from Legacy Image at 00040000 ...\n   Image Name:   Linux-4.9.0-8+nas220-dtb\n   Created:      2018-12-18  19:16:01 UTC\n   Image Type:   ARM Linux Kernel Image (uncompressed)\n   Data Size:    2066916 Bytes = 2 MiB\n   Load Address: 00040000\n   Entry Point:  00040000\n   Verifying Checksum ... OK\n## Loading init Ramdisk from Legacy Image at 00800000 ...\n   Image Name:   netboot-initrd\n   Created:      2018-12-19   9:26:51 UTC\n   Image Type:   ARM Linux RAMDisk Image (uncompressed)\n   Data Size:    11703715 Bytes = 11.2 MiB\n   Load Address: 00000000\n   Entry Point:  00000000\n   Verifying Checksum ... OK\n   Loading Kernel Image ... OK\n   Loading Ramdisk to 07009000, end 07b325a3 ... OK\n\nStarting kernel ...\n\nUncompressing Linux... done, booting the kernel.\n[    0.000000] Booting Linux on physical CPU 0x0\n[    0.000000] Linux version 4.9.0-8-marvell (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 Debian 4.9.1\n[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=0005397f\n[    0.000000] CPU: VIVT data cache, VIVT instruction cache\n[    0.000000] OF: fdt:Machine model: Seagate Blackarmor NAS220\n...\n```\n\nProceed 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!\n\n### Finishing Debian installation\n\nBefore 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:\n\n```\n# mount -o bind /proc /target/proc\n# mount -o bind /sys /target/sys\n# chroot /target\n# cd /tmp\n```\n\nDownload and execute [`blackarmor-nas-debian-postinstall.sh`](https://raw.githubusercontent.com/hn/seagate-blackarmor-nas/master/blackarmor-nas-debian-postinstall.sh) like this:\n\n```\n# wget https://raw.githubusercontent.com/hn/seagate-blackarmor-nas/master/blackarmor-nas-debian-postinstall.sh\n# chmod +x blackarmor-nas-debian-postinstall.sh\n# ./blackarmor-nas-debian-postinstall.sh\nReading package lists... Done \nBuilding dependency tree\nReading state information... Done\nThe following additional packages will be installed:\n  busybox device-tree-compiler devio initramfs-tools initramfs-tools-core\n  klibc-utils libklibc liblzo2-2 linux-base mtd-utils\nSuggested packages:\n  sharutils-doc bsd-mailx | mailx\nThe following NEW packages will be installed:\n  busybox device-tree-compiler devio flash-kernel initramfs-tools\n  initramfs-tools-core klibc-utils libklibc liblzo2-2 linux-base mtd-utils\n  sharutils u-boot-tools\n0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 1737 kB of archives. \nAfter this operation, 5340 kB of additional disk space will be used.\n...\nThe following additional packages will be installed:\n  firmware-linux-free linux-image-4.9.0-8-marvell\nSuggested packages:                          \n  linux-doc-4.9 debian-kernel-handbook\nThe following NEW packages will be installed:\n  firmware-linux-free linux-image-4.9.0-8-marvell linux-image-marvell\n0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 22.0 MB of archives.\nAfter this operation, 91.3 MB of additional disk space will be used.\n...\nPreparing to unpack .../firmware-linux-free_3.4_all.deb ...\nUnpacking firmware-linux-free (3.4) ...                   \nSelecting previously unselected package linux-image-4.9.0-8-marvell.\nPreparing to unpack .../linux-image-4.9.0-8-marvell_4.9.130-2_armel.deb ...\nUnpacking linux-image-4.9.0-8-marvell (4.9.130-2) ...\n...\nUsing DTB: kirkwood-blackarmor-nas220.dtb\nInstalling /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\nTaking backup of kirkwood-blackarmor-nas220.dtb.\nInstalling new kirkwood-blackarmor-nas220.dtb.\nflash-kernel: installing version 4.9.0-8-marvell   \nflash-kernel: appending /usr/lib/linux-image-4.9.0-8-marvell/kirkwood-blackarmor-nas220.dtb to kernel\nGenerating kernel u-boot image... done.\nErasing 16 Kibl (using 2066980/5242880 bytes)...\n...\nWriting data to block 124 at offset 0x1f0000\nWriting data to block 125 at offset 0x1f4000\nWriting data to block 126 at offset 0x1f8000\ndone.\n```\n\nSet ethernet MAC address and enable autoboot (only needed after flashing Das U-Boot bootloader):\n\n```\n# fw_setenv ethaddr 00:10:75:42:42:42\t# YOUR mac address as noted above\n# fw_setenv eth1addr 00:10:75:42:ca:fe\t# NAS440 only (dual NIC)\n# fw_setenv bootdelay 3\n# exit\n# exit\n```\n\nExit 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!\n\n### Additional tuning\n\n- As Moritz [suggests](http://wiki.ccc-ffm.de/projekte:diverses:seagate_blackarmor_nas_220_debian#tuning) it is advisable to install the `lm-sensors` and `hdparm` packages.\n\n- With [hwmon](https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface) you can adjust the fan\n  speed automatically. This script installs a [corresponding template file](blackarmor-nas220-fan.conf) in `/etc/sysfs.d`.\n\n## Revive a bricked device\n\nThe Marvell SoC waits in a very early boot phase on the serial port for a\nspecial \"magic\" sequence, and when this is received, it accepts to transfer the boot loader via\n[Xmodem](https://en.wikipedia.org/wiki/XMODEM). The `kwboot` tool can be used if your device\nis bricked or if you want to test an U-Boot image before actually flashing to NAND. Simply\nset up the serial port like this:\n\n```\n$ kwboot -b u-boot-nas440.kwb -p -t /dev/ttyS8\nSending boot message. Please reboot the target.../\nSending boot image...\n  0 % [......................................................................]\n  1 % [......................................................................]\n  3 % [......................................................................]\n ...\n 95 % [......................................................................]\n 97 % [......................................................................]\n 99 % [....................................]\n[Type Ctrl-\\ + c to quit]\n\nU-Boot 2017.11 (May 20 2021 - 11:42:00 +0200)\nNAS 440\n\nSoC:   Kirkwood 88F6281_A1\nDRAM:  256 MiB\nWARNING: Caches not enabled\nNAND:  32 MiB\nIn:    serial\nOut:   serial\nErr:   serial\n\nnas440\u003e\n```\n\nTo permanently flash the bootloader to NAND, follow the steps described\nin [Flashing Das U-Boot bootloader](#Flashing-Das-U-Boot-bootloader).\n\n## NAS 440 patch details\n\nThis [patch fully implements support for the NAS440 board and peripherals](u-boot-2022.04-nas440.diff)\nwithin U-Boot. With the Linux kernel however there are problems, this is is work-in-progress:\n\n- :construction_worker: Hard disk drives 1 and 2 are connected to a 88SE6121 SATA-II\n  controller, which is connected via PCIe. The controller basically works, unfortunately\n  the hard drives are _not_ correctly beeing detected within the Linux kernel (`ahci` module error `failed to IDENTIFY`).  \n  Update: Most drives work if you [limit drive speed to 1.5Gb/s by setting a jumper on the back of the hard drive](https://en.wikipedia.org/wiki/SATA#SATA_1.5_Gbit/s_and_SATA_3_Gbit/s)\n  (limiting interface link speed by software with `libata.force=1.5G` kernel option unfortunately does _not_ help to solve this problem).  \n  Interestingly, with U-Boot or older Linux kernels (\u003c v3.16), the drives work without a speed limit jumper.\n  This has been discussed as [a problem with the MVEBU PCIe driver](https://bugzilla.kernel.org/show_bug.cgi?id=216094) or the [SATA interface](https://marc.info/?l=linux-ide\u0026m=167465298000579).\n\n- Hard disk drives 3 and 4 are connected to the 88F6281 SoC (on chip peripherals, OCP)\n  and working. HDD power (12V) for drives 3 and 4 can be controlled via GPIO pin 28.\n\n- The LCD has a HD44780 compatible controller communicating via 12 GPIO pins (8 bit data\n  width). Support within U-Boot has been implemented (see `lcd_*` functions in `nas440.c`).\n\n- The LEDs are connected via an 8-bit serial-in/parallel-out 74AHC164 shift register.\n  Support within U-Boot has been implemented (see `led_*` functions in `nas440.c`).\n\n- Various buttons (power, reset, LCD pageup/down) are connected via GPIO pins\n  (see `GPIO_*` definitions in `nas440.h`).\n\n## Credits\n\nThis project is based on the work of several dedicated people:\n\n- Evgeni Dobrev created a [kernel patch to include hardware support for the Blackarmor 220 in the mainline linux\n  kernel](https://lore.kernel.org/patchwork/patch/529020/).\n\n- Moritz Rosenthal has released detailed docs on [how to update the NAS 220 with an up-to-date linux kernel and Debian\n  distribution](http://wiki.ccc-ffm.de/projekte:diverses:seagate_blackarmor_nas_220_debian).\n\n- [Andreas Fischer](https://github.com/bantu) did [groundbreaking work](https://gist.github.com/bantu/d456865b91be6c99320b)\n  in providing an initial [U-Boot](https://github.com/bantu/u-boot/compare/master...sg-ba-440) and\n  [kernel patch](https://github.com/bantu/linux/compare/master...kw-ba-400-dts) for the NAS 440.\n\n- [Tony Dinh](https://mibodhi.blogspot.com/) has put enormous work into providing\n  [U-Boot](https://forum.doozan.com/read.php?3,12381) and [Linux kernel and rootfs](https://forum.doozan.com/read.php?2,12096)\n  binaries for other kirkwood-based devices.\n\n## Misc\n\n- Seagate publishes the GPL source code as a download at\n  [NAS110](https://www.seagate.com/files/staticfiles/blackarmor/downloads/BA_NAS_1xx_GPL.ZIP),\n  [NAS220](https://www.seagate.com/files/staticfiles/blackarmor/downloads/BA_NAS_2xx_GPL.ZIP),\n  [NAS440](https://www.seagate.com/files/staticfiles/support/products/blackarmor/downloads/BA_NAS_4xx_GPL.zip).\n\n- Marvell [Kirkwood CPU Functional Specifications](https://web.archive.org/web/20160428220449/http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf)\n  offers all the details you never dared to ask (794 pages PDF) about the 88F6192 and 88F6281.\n  See also Product Brief and Hardware Spec at [Marvell Kirkwood Homepage](https://web.archive.org/web/20160513194943/http://www.marvell.com/embedded-processors/kirkwood/)\n  and [Linux Kernel Marvell ARM SoC Support](https://www.kernel.org/doc/html/latest/arm/marvell.html).\n\n- The Blackarmor NAS motherboard code names are likely inspired by\n  lake '[Mono](https://en.wikipedia.org/wiki/Mono_Lake)' (NAS110),\n  '[Lassen](https://en.wikipedia.org/wiki/Lassen_Peak)' peak (NAS220) and\n  mount '[Shasta](https://en.wikipedia.org/wiki/Mount_Shasta)' (NAS440).\n  All of them are located in [California](https://en.wikipedia.org/wiki/California) within the [Cascade Range](https://en.wikipedia.org/wiki/Cascade_Range).\n\n- The Iomega ix4-200d has very simliar hardware to the NAS440 (88F6281 SoC with 88SE6121 SATA via PCIe).\n  Lenovo publishes the [GPL source code](http://download.lenovo.com/nas/foss/lenovoemc-lifeline-fosskit-20120827.zip)\n  and [1000001101000](https://github.com/1000001101000) did further [research on the device](https://github.com/1000001101000/ix4-200d-research).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhn%2Fseagate-blackarmor-nas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhn%2Fseagate-blackarmor-nas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhn%2Fseagate-blackarmor-nas/lists"}