Manually Updating Firmware: Difference between revisions

From QNAPedia
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
Regarding how to update the firmware manually via command line, you will have to upload the firmware image (e.g. <span style="color: rgb(255, 0, 0);">TS-209_2.1.2_build1031.img</span>) to a shared folder in the NAS (e.g. Public) first, and then execute&nbsp;several commands with SSH/Telnet.<br>
We would recommend that reboot the NAS first before starting to do the manual firmware update.&nbsp;


If the firmware file is a zip file, then wherever you have copied it to on the server, firstly unzip it:
Regarding how to update the firmware manually via command line, you will have to upload the firmware image (e.g. <span style="color: rgb(255, 0, 0);">TVS-X63_20151118-4.2.0.img</span>) to a shared folder in the NAS (e.g. Public) first, and then execute&nbsp;several commands with SSH/Telnet.


# unzip TS-410_3.5.2_Build1126.zip
If the firmware file is a zip file, please unzip the file first&nbsp;on your PC/Mac and&nbsp;then copy it to the server.


You will get some minimal output with the above command:
'''[Two important checks]'''


Archive: TS-410_3.5.2_Build1126.zip
(1) Please make sure the folder&nbsp;/mnt/HDA_ROOT/update exists.
inflating: TS-410_3.5.2_Build1126.img


'''[Two important checks]'''<br>  
If it does not exist, create it using
<pre># mkdir /mnt/HDA_ROOT/update</pre>


(1) Please make sure there is /mnt/HDA_ROOT/update folder.  
(2) Confirm no /mnt/update file or folder and no /tmp/update_process file exist.


If it does not exist, create it using<br>
If it exists, you need to delete it using:
<pre># mkdir /mnt/HDA_ROOT/update</pre>  
<pre># rm -rf /mnt/update</pre>
(2) Confirm no /mnt/update file or folder.
<pre style="line-height: 20.8px;"># rm -f /tmp/update_process</pre>


If it exists, you need to delete it using:<br>
<br/>After the above two checks, execute the commands below to perform the update. If updating from 4.0.x to 4.0.5, 4.0.6, 4.0.7, 4.1 or newer, do not copy or move the image to HDA_ROOT/update, let's make a work copy on public. This is required avoid any "System update failed. No enough space on RAM/ disk available for firmware update." errors:
<pre># rm -rf /mnt/update</pre>
if you get a message saying:  


"rm: unable to remove '/mnt/update': Device or resource busy", unmount the folder and try the rm line above again. To unmount use:
#Copy the image file to the normal update location:<pre># cp /share/Public/TVS-X63_20151118-4.2.0.img /share/Public/TVS-X63_20151118-4.2.0-work.img</pre>
<pre># umount /mnt/update
</pre>
<br> After the above two checks, execute the commands below to perform the update. If updating from 4.0.x to 4.0.5, 4.0.6, 4.0.7, 4.1 or newer, do not copy or move the image to HDA_ROOT/update, let's make a work copy on public. This is required avoid any "System update failed. No enough space on RAM/ disk available for firmware update." errors:


#Copy the image file to the normal update location:<pre># cp /share/Public/TS-119_20131219-4.1.0.img /share/Public/TS-119_20131219-4.1.0-work.img</pre>
#Create a link to the /mnt/update location:<pre># ln -sf /mnt/HDA_ROOT/update /mnt/update</pre>
#Create a link to the /mnt/update location: <pre># ln -sf /mnt/HDA_ROOT/update /mnt/update</pre>
#Run the update script: <pre># /etc/init.d/update.sh /share/Public/TS-119_20131219-4.1.0-work.img</pre>


<br> Keeping the "original" procedure here - not to be repeated when doing the above 1-2-3. After the above two checks, execute the commands below to perform the update.  
#Run the update script:<pre># /etc/init.d/update.sh /share/Public/TVS-X63_20151118-4.2.0-work.img</pre>


#Copy the image file to the normal update location:<pre># mv /share/Public/TS-209_2.1.2_build1031.img /mnt/HDA_ROOT/update/</pre>  
<br/>'''Note:'''&nbsp;While the update script runs, you will get some output feedback in the terminal, similar to the following. This particular update was conducted on a TVS-463, with update package as shown, TVS-463_20151118-4.2.0.img, so here, as with any update, the various commands listed above which reference a particular update image would change with whichever update image you need to use:
#Create a link to the /mnt/update location: <pre># ln -sf /mnt/HDA_ROOT/update /mnt/update</pre>
#Run the update script: <pre># /etc/init.d/update.sh /mnt/HDA_ROOT/update/TS-209_2.1.2_build1031.img</pre>


'''Note''' while the update script runs, you will get some output feedback in the terminal, similar to the following. This particular update was conducted on a TS-410, with update package as shown, TS-410_3.5.2_Build1126.img, so here, as with any update, the various commands listed above which reference a particular update image would change with whichever update image you need to use:
'''If you get some error&nbsp;similar with: "undefined symbol: lock_system_update"<br/>then run the command below and do the update procedure again'''
<pre>rm /sbin/lock_system_update; echo '#!/bin/sh' &gt; /sbin/lock_system_update; chmod +x /sbin/lock_system_update</pre>
<pre>[/] # /etc/init.d/update.sh /mnt/HDA_ROOT/update/TS-410_3.5.2_Build1126.img  
</pre>


'''If you get some error&nbsp;similar with: "undefined symbol: lock_system_update"<br>then run the command below and do the update procedure again<br>'''
&lt;p&gt;cksum=1727365263 Using 120-bit encryption - (QNAPNASVERSION4) len=1048576 model name = TVS-X63&nbsp;version = 4.2.0&nbsp;16+0 records in 16+0 records out 3.5.2OLD MODEL NAME = TVS-X63&nbsp;Allow upgrade boot/ config/ fw_info initrd.boot initrd.boot.cksum qpkg.tar qpkg.tar.cksum rootfs2.img rootfs2.img.cksum rootfs_ext.tgz rootfs_ext.tgz.cksum uImage uImage.cksum update/ update_check update_img.sh tune2fs 1.41.4 (27-Jan-2009) Setting maximal mount count to -1 Setting interval between checks to 0 seconds Update image using HDD ... Update Kernel ... 4030+1 records in 4030+1 records out Update Basic RootFS ... 17353+1 records in 17353+1 records out Update Basic RootFS2 ... 6144+0 records in 6144+0 records out 1+0 records in 1+0 records out Update Finished. set cksum [1727365263] [/] # &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;
<pre>rm /sbin/lock_system_update; echo '#!/bin/sh' &gt; /sbin/lock_system_update; chmod +x /sbin/lock_system_update</pre> <pre>[/] # /etc/init.d/update.sh /mnt/HDA_ROOT/update/TS-410_3.5.2_Build1126.img


&lt;p&gt;cksum=1727365263
Using 120-bit encryption - (QNAPNASVERSION4)
len=1048576
model name = TS-410
version = 3.5.2
16+0 records in
16+0 records out
3.5.2OLD MODEL NAME = TS-410
Allow upgrade
boot/
config/
fw_info
initrd.boot
initrd.boot.cksum
qpkg.tar
qpkg.tar.cksum
rootfs2.img
rootfs2.img.cksum
rootfs_ext.tgz
rootfs_ext.tgz.cksum
uImage
uImage.cksum
update/
update_check
update_img.sh
tune2fs 1.41.4 (27-Jan-2009)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds
Update image using HDD ...
Update Kernel ...
4030+1 records in
4030+1 records out
Update Basic RootFS ...
17353+1 records in
17353+1 records out
Update Basic RootFS2 ...
6144+0 records in
6144+0 records out
1+0 records in
1+0 records out
Update Finished.
set cksum [1727365263]
[/] #
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;




</pre>
Then reboot the system after manually updating the firmware:
Then reboot the system after manually updating the firmware:  


  # reboot
  # reboot
[[Category:Servicing]]
[[Category:Servicing]]

Revision as of 17:02, 25 November 2015

We would recommend that reboot the NAS first before starting to do the manual firmware update. 

Regarding how to update the firmware manually via command line, you will have to upload the firmware image (e.g. TVS-X63_20151118-4.2.0.img) to a shared folder in the NAS (e.g. Public) first, and then execute several commands with SSH/Telnet.

If the firmware file is a zip file, please unzip the file first on your PC/Mac and then copy it to the server.

[Two important checks]

(1) Please make sure the folder /mnt/HDA_ROOT/update exists.

If it does not exist, create it using

# mkdir /mnt/HDA_ROOT/update

(2) Confirm no /mnt/update file or folder and no /tmp/update_process file exist.

If it exists, you need to delete it using:

# rm -rf /mnt/update
# rm -f /tmp/update_process


After the above two checks, execute the commands below to perform the update. If updating from 4.0.x to 4.0.5, 4.0.6, 4.0.7, 4.1 or newer, do not copy or move the image to HDA_ROOT/update, let's make a work copy on public. This is required avoid any "System update failed. No enough space on RAM/ disk available for firmware update." errors:

  1. Copy the image file to the normal update location:
    # cp /share/Public/TVS-X63_20151118-4.2.0.img /share/Public/TVS-X63_20151118-4.2.0-work.img
  1. Create a link to the /mnt/update location:
    # ln -sf /mnt/HDA_ROOT/update /mnt/update
  1. Run the update script:
    # /etc/init.d/update.sh /share/Public/TVS-X63_20151118-4.2.0-work.img


Note: While the update script runs, you will get some output feedback in the terminal, similar to the following. This particular update was conducted on a TVS-463, with update package as shown, TVS-463_20151118-4.2.0.img, so here, as with any update, the various commands listed above which reference a particular update image would change with whichever update image you need to use:

If you get some error similar with: "undefined symbol: lock_system_update"
then run the command below and do the update procedure again

rm /sbin/lock_system_update; echo '#!/bin/sh' > /sbin/lock_system_update; chmod +x /sbin/lock_system_update
[/] # /etc/init.d/update.sh /mnt/HDA_ROOT/update/TS-410_3.5.2_Build1126.img 

<p>cksum=1727365263 Using 120-bit encryption - (QNAPNASVERSION4) len=1048576 model name = TVS-X63 version = 4.2.0 16+0 records in 16+0 records out 3.5.2OLD MODEL NAME = TVS-X63 Allow upgrade boot/ config/ fw_info initrd.boot initrd.boot.cksum qpkg.tar qpkg.tar.cksum rootfs2.img rootfs2.img.cksum rootfs_ext.tgz rootfs_ext.tgz.cksum uImage uImage.cksum update/ update_check update_img.sh tune2fs 1.41.4 (27-Jan-2009) Setting maximal mount count to -1 Setting interval between checks to 0 seconds Update image using HDD ... Update Kernel ... 4030+1 records in 4030+1 records out Update Basic RootFS ... 17353+1 records in 17353+1 records out Update Basic RootFS2 ... 6144+0 records in 6144+0 records out 1+0 records in 1+0 records out Update Finished. set cksum [1727365263] [/] # </p><p><br /> </p>


Then reboot the system after manually updating the firmware:

# reboot