LS-Pro - 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: [SpecialFlags] Debug = 1 VersionCheck = 1 to VersionCheck = 0 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.
 * Add to lsupdater.ini
 * Change in lsupdater.ini
 * 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.

''jonli, should I move the following more technical part about Erics excellent work into a separate section? - Georg''

Updater Specifications

 * 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 to unzip them by testing for the following passwords
 * 1NIf_2yUOlRDpYZUVNqboRpMBoZwT4PzoUvOPUp6l
 * aAhvlM1Yp7_2VSm6BhgkmTOrCN1JyE0C5Q6cB3oBB
 * YvSInIQopeipx66t_DCdfEvfP47qeVPhNhAuSYmA4
 * IeY8omJwGlGkIbJm2FH_MV4fLsXE8ieu0gNYwE6Ty

Custom Updater
See Opensource_Firmware_Updater and LS-GL Custom Updater Thread for more information.

Todo: Import information from the forum here.

=Toolchains=
 * Precompiled C Cross-Toolchain

= Links =
 * Examine ARM9 Firmware without Updating