Recent Linux on the Raidsonic IB-4220-B NAS
(Last boot on 2026-01-25 using OpenWrt HEAD with kernel v6.12.67)

Raidsonic IB-4220-B

Raidsonic IB-4220-B.

A gemini-based NAS from Raidsonic.

Installing OpenWrt Snapshot

Obviously to do this at your own risk but given how old this NAS is and how many security bugs and performance bottlenecks the old kernel has, what choice do you really have...

What you want for a NAS is not a default OpenWrt build. What differs from upstream OpenWrt is the following:

Here are my tested images per 2026-01-25, built from a snapshot upstream OpenWrt base:

Set up OpenWrt after install

OpenWrt is designed for routers, not NAS devices. This means it needs a bit of reconfiguration after installation. The following is just a suggestion, but this probably works for you too!

Plug it into some ethernet port on your LAN that will provide DHCP for devices, and it should happily connect to that network and come up. You need to figure out the IP address but usually you can check what devices have appeared on your network in your main DHCP server/router. It will take some time before the network comes up on the device, a minute or two.

You can ssh root@<IP_NUMBER> or surf to the LuCI interface using http://<IP_NUMBER>

The default user and password in LuCI is simply root and root. (You should change this.)

Disable unused services

Do the following from the command line as root to disable unnecessary services (an alternative is of course to build the image without these components by removing them during menuconfig):

UART Access

Raidsonic IB-4220-B UART pins

UART location inside the IB-4220-B.

The device comes with a pin header on the board where you can simply connect the UART pins.

Numbered facing the board from the front of the device (powerbutton) toward the rear (fan):

  9     7     5     3     1

+---------------------------+
| o     o     o     o     o |
|                           |
| o     o     o     o     o |
+---------------------------+

 10     8     6     4     2


2 = RXD
3 = TXD
5 = GND
10 = 3V3

See the picture for pin layout.

I have noticed that connecting the PWR pin to the UART converter is not optional input (TX) to the device will not work or the device will not even power on unless you connect the power.

The device uses 19200N8 serial settings.

Flash View

The RedBoot boot loader is resident on these systems and cannot be easily replaced, so we don't.

Instead the boot loader and the kernel have different views of the flash. Essentially RedBoot sees this:

0x000000000000-0x000000020000 : "BOOT"
0x000000020000-0x000000320000 : "Kern"
0x000000320000-0x000000920000 : "Ramdisk"
0x000000920000-0x0000009a0000 : "Application"
0x000000f20000-0x000000f40000 : "VCTL"
0x000000f40000-0x000000fe0000 : "CurConf"
0x000000fe0000-0x000001000000 : "FIS directory"

Whereas the Linux kernel sees this:

0x000000000000-0x000000020000 : "BOOT"
0x000000020000-0x000000f20000 : "firmware"
0x000000f20000-0x000000f40000 : "VCTL"
0x000000f40000-0x000000fe0000 : "CurConf"
0x000000fe0000-0x000001000000 : "FIS directory"

This is done so that the available flash blocks can be used optimally: the kernel sees the space used by the three RedBoot partions "Kern", "Ramdisk" and "Application" as one chunk called "firmware".

Inside "firmware", the kernel, the initramfs (not initrd) and the root file system are catenated and then split by the kernel to find the read-only and read/writeable part of the rootfs at runtime.

When performing firmware upgrades, all of the "firmware" partition is replaced.

When the system boots, it has the RedBoot view of the flash memory but that is OK: we load "Kern" and "Ramdisk" into the memory and execute it, which is fine since we put the kernel first in the firmware partition, which corresponds to "Kern" and "Ramdisk".

Device Info

Bootlog with no harddrive attached

Kernel TODO

  • TBD

OpenWrt TODO

  • Fix installation procedure and flash layout.
  • Create a ugly kernel module to handle the SSP PWM fan. This just cannot be upstreamed.

Links