Difference between revisions of "LS-GL Custom Firmware Development"

From NAS-Central Buffalo - The Linkstation Wiki
Jump to: navigation, search
(Using the Firmware Updater)
m
 
(39 intermediate revisions by 14 users not shown)
Line 1: Line 1:
 
{{Articles|LSPro}}
 
{{Articles|LSPro}}
{| cellpadding="5" cellspacing="5" style="width:100%; border:1px solid #ddcef2; margin-bottom:0.5em; vertical-align:top; background-color:#f9f9f9;" | <span style="font-size:150%;"><center>'''LS-GL Custom Firmware Development'''</center></span><br />
+
 
| [[Image:LS-Pro-grey2.jpg|100px|right|Any questions?]]
+
 
 +
{| align=right cellpadding="5" cellspacing="5" style="width:100%; border:1px solid #ddcef2; margin-bottom:0.5em; vertical-align:top; background-color:#f9f9f9;"  
 +
|-
 +
|rowspan=2 width=50%| __TOC__
 +
|| [[Image:LS-Pro-grey2.jpg|100px|right|Any questions?]]
  
 
'''<big>LS-GL Custom Firmware Development</big>'''<br>
 
'''<big>LS-GL Custom Firmware Development</big>'''<br>
 
This wiki page is to document the work and progress in developing a custom firmware for the LS Pro (LS-GL)  The goal of this page is to sort out the roadmap and accomplishments towards creating an [[OpenLink]] and [[FreeLink]] for the LS-GL.  Though this page is mainly for developers, anyone is free to add their work.   
 
This wiki page is to document the work and progress in developing a custom firmware for the LS Pro (LS-GL)  The goal of this page is to sort out the roadmap and accomplishments towards creating an [[OpenLink]] and [[FreeLink]] for the LS-GL.  Though this page is mainly for developers, anyone is free to add their work.   
|}<br>
+
|-
 +
||
 +
 
 
{{Warning| The methods and information described below are intended for advanced users.  Much of the information has not been verified by the development team.  As a result, all users must exercise caution when performing any of the described methods.  Failure to do so may result in a bricked Linkstation.}}
 
{{Warning| The methods and information described below are intended for advanced users.  Much of the information has not been verified by the development team.  As a result, all users must exercise caution when performing any of the described methods.  Failure to do so may result in a bricked Linkstation.}}
 +
|}
 +
 +
'''Please fix and update these sections.  Also, please correct any grammar and spelling errors.  Thanks --- [[User:Jonli447|Jonli447]]
  
'''Please fix and update these sections.  Also, please correct any grammar and spelling errors.  Thanks -- jonli447'''
 
 
=Using the Firmware Updater=
 
=Using the Firmware Updater=
It is aparent, like all of the Linkstations, that the firmware does not want to update the firmware if the LS-GL reports the same firmware version as the the one to be that's to be sent to the LS-GL (i.e. a modified firmware).  The work around is to:
+
* <big>[[LS-Pro - Using the Firmware Updater]]</big>
*Add to lsupdater.ini
+
[SpecialFlags]
+
Debug
+
*Change in lsupdater.ini
+
VersionCheck = 1
+
to
+
VersionCheck = 0
+
*Open linkstation_version.txt in any text editor (i.e. vi).  Edit either the BOOT=, KERNEL=, INITRD=, or ROOTFS= (this is the main firmware and filesystem) to choose what to update by changing the version to a higher number.
+
**i.e. by setting rootfs to a higher number, the filesystem will get updated, but uboot, kernel, and initrd won't get updated.
+
* Steps originally drafted by Georg.
+
'''Note:''' We are not positive if only one segmet (i.e. rootfs) will get updated. This method must be fully tested to find this out.
+
 
+
''jonli, should I move the following more technical part about Erics great work into a separate section? - Georg''
+
* As EricC documented on the LS-GL side clientUtil_server handles the update process and replies to various "ACP"-Commands, which are similar for the LS-GL and the Kurobox:
+
 
+
*;LSP Commands
+
:8020 ACP_Discover
+
:8080 ACP_FIRMUP2
+
:80A0 ACP_??  Possible Password?
+
:8A10 ACP_CMD
+
:8B10 ACP_??  Sent after 8080 and contains the filename. TCP File transfer starts after reply
+
:8B20 ACP_??  Sent after TCP file transfer
+
*;LSP Responses
+
:C020 ACP_Discover_Reply
+
:COAO Reply of 80A0
+
:CA10 ACP_CMD_Reply
+
:CB10 ACP_??_Reply 8B10
+
:CB20 ACP_??_Reply 8B20
+
:CB21 Sent after CB20.  Same format with data changes Update complete?
+
*;KuroBox Commands
+
:8020 ACP_Discover
+
:8070 ACP_FIRMUP_END
+
:8080 ACP_FIRMUP2
+
:8090 ACP_Info_HDD
+
:8A10 ACP_CMD
+
*;KuroBox Responses
+
:C020 ACP_Discover_Reply
+
*;Looking at the command word:
+
:Bit 15 = 1
+
:Bit 14 is 0 for command and 1 for reply
+
:Bits 11 to 8 appear to be the command class
+
:Bits 7 to 4 appear to be the command in the class.
+
:Bits 3 to 0 appear to be a sequence number in the response.
+
 
+
*The updater on the LS-GL receives ziped images and tries unzip them by testing for the following passwords
+
**1NIf_2yUOlRDpYZUVNqboRpMBoZwT4PzoUvOPUp6l
+
**aAhvlM1Yp7_2VSm6BhgkmTOrCN1JyE0C5Q6cB3oBB
+
**YvSInIQopeipx66t_DCdfEvfP47qeVPhNhAuSYmA4
+
**IeY8omJwGlGkIbJm2FH_MV4fLsXE8ieu0gNYwE6Ty
+
 
+
=Telnet Access=
+
We have successfully managed to create a telnet-enabled firmware for the LS-GL.  Fortunately for us, the LS-GL already came with a telnet binary in the stock firmware.  Telnet can be enabled by uncommenting line 42 in /etc/init.d/rcS and repackaging hddrootfs.
+
 
+
There is a pre-made telnet enabled firmware available at [http://downloads.linkstationwiki.net/arm9-LS_Pro/telnet_enabled_no_root_password/LSPro-103.zip here].
+
 
+
'''Note:''' The above firmware package does not enable root access.  For users that already have root access, this firmware is fine.  There is testing being done for a telnet enabled firmware that includes root access.  See [http://linkstationwiki.net/index.php?title=LS-GL_Custom_Firmware_Development#Heinz.27_Method below].  Also, for repackaging the firmware, see [[Create_a_custom_firmware_image]].  The current firmware password is:
+
IeY8omJwGlGkIbJm2FH_MV4fLsXE8ieu0gNYwE6Ty
+
 
+
=Removing Root Password=
+
We are currently working on removing the Melco root password in the stock firmware.  Some users have managed to do this, but the development team as a whole has not agreed to which method to use.
+
===Manual Method===
+
The general idea is to open connect the sata drive to a desktop running a linux distribution (i.e. Knoppix or Ubuntu).  Then remove root password in /etc/shadow.
+
 
+
 
+
====Detailed Steps====
+
1) Connect the hard drive to a pc running Linux (i.e. Knoppix boots directly from cd/dvd)
+
 
+
2) Find out how it was recognized. (i.e. in Knoppix there are some shortcuts on the desktop).
+
 
+
3) Open a shell/commandline/terminal.
+
 
+
4) Mount the second partition of the sata hdd to somewhere.
+
 
+
5) Delete everything on the partition
+
 
+
6) Download the telnet enabled hddrootfs.img located in this [http://downloads.linkstationwiki.net/arm9-LS_Pro/telnet_enabled_no_root_password/LS-GL-103.zip zip]
+
 
+
7) Unzip hddrootfs.img...you will be prompted for a password.
+
it is:
+
IeY8omJwGlGkIbJm2FH_MV4fLsXE8ieu0gNYwE6Ty
+
 
+
8) Untar the resulting file to the second partition:
+
tar xzvf <file> <path_where_you_mounted_the_first_partition>
+
 
+
9*) mount /dev/sda1 (assuming the sata drive is the first special drive connected on the pc) somewhere
+
*extract conf_saved.tgz, remove password in etc/shadow to look like:
+
root::11009:0:99999:7:::
+
 
+
10*) re-tar the contents of conf_saved.tgz, replace conf_saved.tgz to /dev/sda1,
+
umount
+
 
+
 
+
(*)These steps still need to be tested further!!!
+
*Steps originally drafted by mindbender.
+
 
+
===Heinz' Method===
+
Heinz made a script to automatically convert a downloaded stock firmware into a telnet enabled firmware with root access.  The script is made for the German firmware.  The script is available [http://downloads.linkstationwiki.net/arm9-LS_Pro/telnet_enabled_no_root_password/enable-telnet.sh here].  Heinz also made a pre-made firmware package with his script.  It can be downloaded [http://downloads.linkstationwiki.net/arm9-LS_Pro/telnet_enabled_no_root_password/LS-GL_FW_103-modified.zip here].
+
*'''Testing Needed'''
+
 
+
The script mainly does the following things:
+
 
+
* retrieving the actual firmware update from the buffalo site.
+
* unzip the archive to a tmp directory
+
* modify linkstation_version, because the updater only updates "newer" firmwares. It seems this can be overwritten in the debug mode (see georg's changes)
+
* for modifing the installed image. it is unzipped (using the current password)
+
* then to start the (already installed) telnetd, some comments in the rcS script are removed.
+
* because the password of the root login is not known, it needs to be removed. Modifing /etc/shadow had not worked, so currently we change the web interface, which runs with root permissions, to do it for us.
+
* reverse the whole zip/tar process to create a useable firmware update again.
+
====Instructions====
+
===Georg's Method===
+
Georg modified Heinz' automatic script.  For those with access, the script it is available in [http://downloads.linkstationwiki.net/uploads/LS_Pro_temporary/telnet_enabled_no_root_password/ LS_Pro Temporary Upload Folder for Telnet Enabled Firmwares]
+
*'''Testing Needed'''
+
====Instructions====
+
 
+
 
=Toolchains=
 
=Toolchains=
===Cross Toolchain===
+
* <big>[[Precompiled C Cross-Toolchain]]</big>
*[http://www.codesourcery.com/gnu_toolchains/arm/releases/2005q3-2 Codesourcery for Arm version 2005q3-2] is suggested.  Please look at [http://forum.linkstationwiki.net/index.php?action=vthread&forum=16&topic=1535&page=0 Toolchain from codesourcery] for more information.
+
=Opened Firmwares=
 
+
==Telnet enabled firmware==
'''Todo:''' Import information from forum.
+
===Jtymod===
 
+
* <big>[[LS-Pro - jtymod telnet enabled firmware]]</big>
===Native Toolchain===
+
===Open Stock Firmware===
*Yugi has managed to get a working native toolchain.  It is available [http://downloads.linkstationwiki.net/uploads/LS_Pro_temporary/NativeToolchain/ls-gl-pro-native-toolchain.tar.gz here]
+
* <big>[[Open Stock Firmware]]</big>
 
+
==FreeLink==
'''Todo:''' Import information from forum here.
+
* <big>[[FreeLink for the Linkstation Pro]]</big>
 
+
=OpenLink=
+
*Development for the LS-GL is too young.  Official Openlink development has not started yet.
+
==Oh1jty's Firmware==
+
''version 1.03-0.50-jtymod3''
+
[[image:Buffalo4.jpg|200px|right|thumb|Home menu shows mem, load and uptime]]
+
[[image:Buffalo2.jpg|200px|right|thumb|Give shell commands]]
+
*'''Changelog:'''
+
** New debug menu
+
** Clear root password
+
** Give shell commands
+
** Home menu shows mem, load and uptime information
+
*'''Features'''
+
** Home menu shows mem, load and uptime information
+
** ssh enabled
+
** telnet disabled
+
** rsync enabled (via ssh) for /mnt/disk1
+
** joe editor added
+
** wget url fetcher added
+
** dd_rescue added
+
** dp500serv Kiss DP-x server added (not on by default, start with /etc/init.d/dp500serv.sh start or add dp500serv.sh to /etc/init.d/rcS)
+
** full version of ps, w, su, iostat and vmstat added
+
*'''Download from'''
+
** http://oh1jty.toimii.net/linkstation/LS-GL_FW_103-jtymod2.zip
+
** http://downloads.linkstationwiki.net/arm9-LS_Pro/LS-GL_FW_103-jtymod2.zip
+
*'''More info on this firmware'''
+
** [http://forum.linkstationwiki.net/index.php?action=vthread&forum=16&topic=1743 The Linkstation Community Forum / Linkstation Pro (arm9) / Firmware mods]
+
** http://oh1jty.toimii.net/linkstation/
+
 
+
=FreeLink=
+
lb_worm has managed to Debanize the LS-GL.  Though this is not an official FreeLink yet, it is a tremendous start.  See [http://forum.linkstationwiki.net/index.php?action=vthread&forum=16&topic=1535&page=0 Debian] for more information.
+
 
+
'''Todo:''' Import information from forum.
+
 
+
 
=Development Tools=
 
=Development Tools=
*For the same reasons as OpenLink, development tools has not been created yet.
+
* <big>[[Precompiled C development environment, running on the LS]]</big>
 
+
=GPL Kernel=
 +
<big>
 +
<dpl>
 +
category=LSPro
 +
category=Kernel
 +
</dpl>
 +
</big>
 
=Other Development=
 
=Other Development=
===GPL Kernel===
+
===chroot Arm Build Environment===
lb_worm is currently working on the kernel project.  See [http://forum.linkstationwiki.net/index.php?action=vthread&forum=18&topic=1548&page=0 Outlook on LS Pro Kernel Development]
+
* <big>[[LS-Pro - chroot Arm Build Environment]]</big>
 
+
'''Todo:''' Import information from forum.
+
 
+
===Custom Updater===
+
See [http://linkstationwiki.net/index.php?title=Category:Opensource_Firmware_Updater Opensource_Firmware_Updater] and [http://forum.linkstationwiki.net/index.php?action=vthread&forum=19&topic=1693 LS-GL Custom Updater Thread] for more information.
+
 
+
'''Todo:''' Import information from the forum here.
+
 
+
===IPKG Feed===
+
This is just idea at the moment.  See [http://forum.linkstationwiki.net/index.php?action=poll&pollaction=vote&pollID=12 Optware IPKG Feed Poll]
+
===Binaries===
+
Some binaries (i.e. wget) have been compiled for the LS-GL. 
+
 
+
Please post successfully binaries that should be included in an OpenLink here.
+
*wget
+
===User Accomplishments===
+
'''Please post accomplishments that don't fit into the above categories here'''
+
*Someone got ssh up and running (sorry, I can't remember who...please give credit if you know).
+
 
+
 
=Related Forum Topics=
 
=Related Forum Topics=
*[http://forum.linkstationwiki.net/index.php?action=vthread&forum=16&topic=1501 Telnet Access]
+
*[http://forum.nas-central.org/index.php?action=vthread&forum=16&topic=1501 Telnet Access]
*[http://forum.linkstationwiki.net/index.php?action=vthread&forum=19&topic=1599 Native Toolchain]
+
*[http://forum.nas-central.org/index.php?action=vthread&forum=19&topic=1599 Native Toolchain]
*[http://forum.linkstationwiki.net/index.php?action=vthread&forum=16&topic=1535&page=0 Codesourcery Toolchain]
+
*[http://forum.nas-central.org/index.php?action=vthread&forum=16&topic=1535&page=0 Codesourcery Toolchain]
*[http://forum.linkstationwiki.net/index.php?action=vthread&forum=19&topic=1693 Custom Updater]
+
*[http://forum.nas-central.org/index.php?action=vthread&forum=19&topic=1693 Custom Updater]
*[http://forum.linkstationwiki.net/index.php?action=vthread&forum=18&topic=1548 Kernel Development]
+
*[http://forum.nas-central.org/index.php?action=vthread&forum=18&topic=1548 Kernel Development]
*[http://forum.linkstationwiki.net/index.php?action=vthread&forum=16&topic=1535&page=0 Debian for LS-GL]
+
*[http://forum.nas-central.org/index.php?action=vthread&forum=16&topic=1535&page=0 Debian for LS-GL]
*[http://forum.linkstationwiki.net/index.php?action=poll&pollaction=vote&pollID=10 OpenLink for LS-GL Debate Poll]
+
*[http://forum.nas-central.org/index.php?action=poll&pollaction=vote&pollID=10 OpenLink for LS-GL Debate Poll]
*[http://forum.linkstationwiki.net/index.php?action=poll&pollaction=vote&pollID=12 Optware IPKG Feed Poll]
+
*[http://forum.nas-central.org/index.php?action=poll&pollaction=vote&pollID=12 Optware IPKG Feed Poll]
'''Todo:''' Add information to above sections.
+

Latest revision as of 02:39, 11 September 2007


Contents

Any questions?

LS-GL Custom Firmware Development
This wiki page is to document the work and progress in developing a custom firmware for the LS Pro (LS-GL) The goal of this page is to sort out the roadmap and accomplishments towards creating an OpenLink and FreeLink for the LS-GL. Though this page is mainly for developers, anyone is free to add their work.

Nuvola apps important.png 
WARNING!

The methods and information described below are intended for advanced users. Much of the information has not been verified by the development team. As a result, all users must exercise caution when performing any of the described methods. Failure to do so may result in a bricked Linkstation.


Please fix and update these sections. Also, please correct any grammar and spelling errors. Thanks --- Jonli447

Using the Firmware Updater

Toolchains

Opened Firmwares

Telnet enabled firmware

Jtymod

Open Stock Firmware

FreeLink

Development Tools

GPL Kernel

<dpl> category=LSPro category=Kernel </dpl>

Other Development

chroot Arm Build Environment

Related Forum Topics