|
m |
| (39 intermediate revisions 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.
| + | |