in Others

Kernel for NAS ZyXEL NSA310

There are some kernels for this NAS on the web (binaries and configs), but everything I could find was super old (like kernel 3.6.9 old). Because I’ve been able to successfully build current longterm version of Linus tree kernel, here is me sharing my solution.

It is based on this instruction. The kirkwood_defconfig was merged with mvebu_v5_defconfig so we are using the second one instead. I’ve pushed my config, patches and cross-compilation script to my github: There is everything explained in, I won’t repeat myself here. I’ll try to keep this repository up to date with Linus kernel as long as I am using this NAS myself.

And here are binaries (uImage with modules):

Write a Comment


  1. Hello.

    I am sorry for bothering you, but i have big problem with my NSA-310.
    I have try to install linux on this device, so i need newer kernel. I have downloaded your precompilled image and boot as describet here:
    Unfortunatelly, i got this message:
    ## Booting image at 00800000 …
    Image Name: Linux-3.18.18
    Created: 2015-11-13 6:26:22 UTC
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 4183944 Bytes = 4 MB
    Load Address: 00008000
    Entry Point: 00008000
    Verifying Checksum … Bad Data CRC

    I have tried to crosscompile my own uImage as you describe, there were no problems with it, bud after loading same error message was shown.

    Can you help me with this problem?
    Thank you.


  2. That strange. Maybe you have some strange u-boot version installed? Did you try to boot this uImage in a different way? Maybe different partition on pendrive (FAT and EXT2/3 should be supported) or by TFTP?

  3. Thanx for answwer.
    Unfortunately I dont know, how to boot uImage in a different way. I have tried another pendrives (FAT or EXT formatted) but without success.
    I am not shure, but i think, that NAND flash is corrupted.
    The best way will be reflash whole NAND to orginal, but i dont know why.
    Only way, that I can boot NAS is from flash with old 3.2 or 3.5.1 uImage and initrd.gz file on it and manual boot. But I cannt install linux due to old kernel :-/
    Can you compile new kernel with standard settings for me? Maybe i make some mistake with compiling, but dont know where…


  4. Ah, sorry for mistakes.
    “The best way will be reflash whole NAND to orginal, but i dont know why.” Have to by dont know HOW 🙂


  5. So did you flashed your NAND? Why don’t you install it on HDD?
    Did you made a backup of your NAND?

  6. Nie da się wrzucić nowego kernela od razu bo większy niż ten 3.5.1. Wydaje mi się że wrzucając initrd.gz nadpisuje się końcówka kernela 3.18.21, dlatego później przy ładowaniu wyskakuje błąd CRC.

    PS. Na 3.18.21 nie działa fancontrol. Jak sterować wiatraczkiem?

  7. That’s right, this instruction advice is to load uImage at 0x800000 and initrd at 0xb00000 – there is about 3 MB for uImage. That must be corrected to load bigger kernel.
    I am using sensors, don’t know fancontrol.