Create a custom firmware image
From NAS-Central Buffalo - The Linkstation Wiki
(added wiki-page for creating a custom-firmware-image) |
m (Page is valid for LS Pro and LS Live) |
||
| (20 intermediate revisions not shown) | |||
| Line 1: | Line 1: | ||
| - | Most of this information was taken from the excellent [http://www.geishuettner.de/docs/Linkstation/Hacking%20Linkstation%20II.pdf hacking how-to] of [http://www.geishuettner.de/docs/Linkstation/ geishuettners page]. | + | {{Template:Articles|LSPro|LSLive|Software|Hacking|Opensource Firmware Updater}}Most of this information was taken from the excellent [http://www.geishuettner.de/docs/Linkstation/Hacking%20Linkstation%20II.pdf hacking how-to] of [http://www.geishuettner.de/docs/Linkstation/ geishuettners page]. |
---- | ---- | ||
| + | {{Warning|CAUTION: Experts only}} | ||
| + | {{Brick|}} | ||
| - | + | =General= | |
| - | + | ||
This is a description how someone can create a custom firmware image. | This is a description how someone can create a custom firmware image. | ||
| Line 10: | Line 11: | ||
(and of course - this was the way how telnet was added to the images) | (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'' | + | '''There is only one requirment''' ->''You have to know the password of image.dat/hddrootfs.img'' |
| + | Here all passwords are collected: | ||
| + | [[FAQ#What_is_the_password_for_the_powerpc-hdhlan_1.x_firmware_image.dat.3F|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''' | '''1) unzip the image.dat that resides in the zip-file of the base image with the right password''' | ||
| Line 32: | Line 45: | ||
'''3) modify the image as you like ''' | '''3) modify the image as you like ''' | ||
| - | + | Advice: use relative paths if you create symlinks. absolute paths won`t work.<br> | |
| + | For example you could add telnet as outlined below. | ||
'''4) create the tmpimage.tgz again''' | '''4) create the tmpimage.tgz again''' | ||
| Line 42: | Line 56: | ||
mv tmpimage.tgz tmpimage-old.tgz | mv tmpimage.tgz tmpimage-old.tgz | ||
mv tmpimage-new.tgz tmpimage.tgz | mv tmpimage-new.tgz tmpimage.tgz | ||
| - | |||
'''5) create the image.dat again''' | '''5) create the image.dat again''' | ||
| Line 54: | Line 67: | ||
you should have a custom image.dat afterwards :) | 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 <foldername> | ||
| + | cd <foldername> | ||
| + | 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.<br> | ||
| + | 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/<br> | ||
| + | <br> | ||
| + | '''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]] | ||
Latest revision as of 19:38, 20 April 2010
Most of this information was taken from the excellent hacking how-to of geishuettners page.
|
Contents |
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 <foldername> cd <foldername> 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 <foldername> cd <foldername> 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


