Create a custom firmware image

Most of this information was taken from the excellent hacking how-to of geishuettners page.

=General= This is a description how someone can create a custom firmware image.

This is also the way any special distribution (Projects/OpenLink,Projects/FreeLink,Projects/GenLink) gets developed. (and of course - this was the way how telnet was added to the images)

There is only one requirment ->You have to know the password of image.dat/hddrootfs.img

Here all passwords are collected: FAQ

Collected passwords
copied from http://www.terastation.org/wiki/Firmware_password

NFM_TUPSBHFNFM_TUPSBHF 1NIf_2yUOlRDpYZUVNqboRpMBoZwT4PzoUvOPUp6l aAhvlM1Yp7_2VSm6BhgkmTOrCN1JyE0C5Q6cB3oBB YvSInIQopeipx66t_DCdfEvfP47qeVPhNhAuSYmA4 IeY8omJwGlGkIbJm2FH_MV4fLsXE8ieu0gNYwE6Ty

Old Variants - LS1/LS2/HG/HS
1) unzip the image.dat that resides in the zip-file of the base image with the right password

unzip image.dat

provide the right password for the firmware.

the result of this is a tmpimage.tgz...this is the tared root-filesystem of the firmware image.

2) create a folder where you want to untar the image and untar it

mkdir cd  tar -vxz --numeric-owner -p -f ../tmpimage.tgz

now you can see the root-filesystem which normaly resides on /dev/hda1 (or / )

3) modify the image as you like  Advice: use relative paths if you create symlinks. absolute paths won`t work. For example you could add telnet as outlined below.

4) create the tmpimage.tgz again

(you should be in the folder where you extracted the image)

tar -vczf ../tmpimage-new.tgz. cd .. mv tmpimage.tgz tmpimage-old.tgz mv tmpimage-new.tgz tmpimage.tgz

5) create the image.dat again

CAUTION: if you use the wrong password, the firmware updater / the linkstation will fail to unzip the image.dat.....this means you will have a wiped /dev/hda1 with no files on it.

Opening the case will be the only possible solutions.

zip -e image.dat tmpimage.tgz

you should have a custom image.dat afterwards :)

New Variant - LSPro/LSLive
Note: For the LS Pro (LS-GL), image.dat is called hddrootfs.img and the tarball of the root file system is called hddrootfs.buffalo.updated.

1) unzip the hddrootfs.img unzip hddrootfs.img

provide the right password for the firmware.

the result of this is a hddrootfs.buffalo.updated...this is the tared root-filesystem of the firmware image.

2) create a folder where you want to untar the rootfs and untar it

mkdir cd  tar -vxz --numeric-owner -p -f ../hddrootfs.buffalo.updated

now you can see the root-filesystem which normaly resides on /dev/sda2 (or / )

3) modify the image as you like  Advice: use relative paths if you create symlinks. absolute paths won`t work. For example you could add telnet as outlined below.

4) create the hddrootfs.buffalo.updated again (you should be in the folder where you extracted the image)

Note: The LS-GL must be tared with the -C flag

tar -vczf ../hddrootfs.buffalo.updated-new -C /absolute/pathe/to/extracted_image dir1 dir2 dir1, dir2, and so forth are the directories located under the extracted image folder (i.e. bin, dev, etc, home, lib, ...)

cd .. mv hddrootfs.buffalo.updated hddrootfs.buffalo.updated-old mv hddrootfs.buffalo.updated-new hddrootfs.buffalo.updated

5) create the hddrootfs.img again

CAUTION: if you use the wrong password, the firmware updater / the linkstation will fail to unzip the hddrootfs.img.....this means you will have a wiped /dev/sda2 with no files on it.

Opening the case will be the only possible solutions.

zip -e hddrootfs.img hddrootfs.buffalo.updated

you should have a custom hddrootfs.img afterwards :)

=Howto enable telnet=

1) place PPC: http://downloads.nas-central.org/Uploads/OldUploads/LS1-HG-HS_PPC/BINARIES/utelnetd MIPSel: ? to sbin and PPC: http://downloads.nas-central.org/ArchIndependent/Scripts/startscripts/generation_2/utelnetd

MIPSel: ? to etc/init.d/ 2) create the symlink so telnetd starts at startup cd etc/rc.d/rc2.d ln -s ../../init.d/utelnetd S07utelnetd 3) modify additional stuff or go on with point 4 of the general article

= Links =
 * Examine ARM9 Firmware without Updating