The Synology DS-101g+ can run Debian quite well. However the installation is a bit cumbersome, since a patched Kernel is needed.
Basically a Debian-Installer initrd must be modified and then, together with the kernel image, uploaded over the serial connection to the DS-101g+'s bootloader.
PrerequisitesFor the installation a serial connection to the DS-101g+ is required. To compile PowerPC binaries you probably need a Cross compiler (see emdebian).
mkimage makes the PPCBoot images for the PPCBoot bootloader of the DS-101g+.
Install it ( [Binary] [.sig] [Source] ) in
/usr/local/bin. It is also available from my Debian etch repository.
initrdGet the Debian-Installer initrd. Unpack it with:
Remove the kernel modules in
sudo gunzip -c initrd.gz | cpio -i PATH_TO_INITRD/
Apply this patch to the Debian 2.6.18 kernel. Make sure you get the current Kernel with all security patches.
You may want to change the hardcoded ethernet address at line 975 of the
CONFIG_CMDLINE to the root device you want to boot
from after the installation. [sample
Do not enable MPC10x store gathering, it will cause mysterious SATA failures.To configure and compile the kernel, execute:
in its directory.
export CROSS_COMPILE=powerpc-linux-gnu- export ARCH=ppc make menuconfig make
The kernel PPCBoot image is now in:
ModulesInstall the modules in the unpacked initrd:
sudo INSTALL_MOD_PATH=PATH_TO_INITRD make modules_install
Install ethtoolCopy ethtool into the initrd directory. [Binary powerpc] [.sig] [Source]
initrd ImageIn the initrd directory, repack the Debian-Installer initrd with:
Now make a PPCBoot image:
sudo find ./ | cpio -H newc -o | gzip > ../initrd_new.gz
mkimage -A ppc -O linux -T ramdisk -C gzip -d initrd_new.gz initrd-diskstation-di
You can use the kermit script to upload and boot the kernel and initrd PPCBoot images. The kermit script installs the PPCBoot images in the RAM, leaving the flash untouched. It's gone after the next reboot; or should be. Anyway: use at your on risk.If your serial connection is not on
/dev/ttyS0you have to change it in the script. To upload; run the script with
and while it waits for the PPCBoot prompt, power cycle the DS-101g+. The upload takes about 10 minutes, afterwards the kernel is booted.
./image.ksc uImage initrd-diskstation-di
skgeIt appears that TCP will not work if you don't run:
as root. To do this, interrupt the Debian-Installer and execute a shell.
ethtool -K eth0 tx off ethtool -K eth0 rx off
The command disables offload for checksumming, i.e. the CPU now has to do the work.
Prepare For Reboot
CONFIG_CMDLINE is set in the kernel config. You
may need to adjust the
root=/dev/FOO part. Recompile the
kernel if necessary.
Copy the kernel modules from the initrd or e.g. get them with wget to
Install ethtool and add this
mount -t proc proc /target/proc chroot /target
iface eth0 inet dhcp pre-up ethtool -K eth0 tx off; ethtool -K eth0 rx off
If you want a initrd, e.g. because the root file system is on a LVM, you have to create it now in the chroot.
Install initramfs-tools and create the initrd with
update-initramfs -ck all
Now get the initrd (
onto your computer and make an image with mkimage.
mkimage -A ppc -O linux -T ramdisk -C gzip -d initrd.img-2.6.18-diskstation1 initrd-diskstation1
The reboot will not work; prepare to upload or flash the kernel and
optionally the new initrd image (
initrd-diskstation1), then power cycle the DS-101g+. The
installed Debian should boot.
ttyS1is not detected
- Reboot, LEDs and buttons do not work
- No RTC, time is not accurate (ntp has trouble keeping sync)