Bug 12087 - SqueezeCenter fails to update my SqueezeBox
: SqueezeCenter fails to update my SqueezeBox
Status: CLOSED FIXED
Product: SB 1
Classification: Unclassified
Component: Firmware
: unspecified
: PC Ubuntu Linux
: P1 critical (vote)
: 7.3.3
Assigned To: Squeezebox QA Team email alias
http://forums.slimdevices.com/showthr...
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-05-18 01:46 UTC by vb.slim.bugs
Modified: 2009-06-17 09:37 UTC (History)
1 user (show)

See Also:
Category: ---


Attachments
squeezecenter server log file (10.11 KB, text/plain)
2009-05-18 01:46 UTC, vb.slim.bugs
Details

Note You need to log in before you can comment on or make changes to this bug.
Description vb.slim.bugs 2009-05-18 01:46:12 UTC
Created attachment 5236 [details]
squeezecenter server log file

(I've set this as critical because I can't currently use my squeezebox. I realise in the grand, cosmic scheme of things it's not exactly life-and-death, but there you go).

Overview:

SqueezeCenter is failing to update a rather old model SqueezeBox

Steps to reproduce:

I've been running a squeezebox with slimserver on Suse9.0 quite happily for a while now.

I don't know what version Squeezebox it is. The label just says "Model: Squeezebox" and "S/N: 2023540". The manufacturer is listed as "SLIM DEVICES" rather than "Logitech". I've had it for a few years now, and it's been a long time since I did any firmware update.

I upgraded my server to Ubuntu 9.04, and upgraded to SqueezeCenter 7.3.2 via the .deb package from your download page.

After the server upgrade, when the SqueezeBox next powered up, it said 'Software update. Press and hold brightness to begin', which I did, and it showed 'Ready to update this squeezebox' along with its own IP address (DHCP).

Then,..... nothing.

So, I do a couple of searches, and find out about the 'firmware.html' URL. I use this, type in the IP of the squeezebox, and still nothing. The web page waits around and eventually the browser gives up ('Done' appears on the status line).

The 'Ready to update' message on the squeezebox remains unchanged.

Build date & platform:

No idea on the build date. It's the official 7.3.2 release.
Platform is Ubuntu 9.04:

$ uname -a
Linux reyes 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:57:59 UTC 2009 i686 GNU/Linux
$ cat /etc/issue
Ubuntu 9.04 \n \l


Additional Information:

I ran tcpdump on the server. While the squeezebox is showing the 'hold brightness' message, it's constantly sending packets to the server, and the server is sending ACK replies.

After I hold the brightness button for 5 seconds, the squeezebox sends a RST packet and the traffic stops.

Then I type the IP address into the 'firewall.html' URL, and..... nothing again. The server makes no attempt to send a packet to the squeezebox.


I checked the squeezecenter log file: (I've attached the full version)

[09-05-17 10:15:37.5001] Slim::Networking::IO::Select::select (271) Error: Selec
t task failed: Undefined subroutine &Slim::Player::Squeezebox1::catdir called at
 /usr/share/perl5/Slim/Player/Squeezebox1.pm line 328.
[09-05-17 10:27:51.9626] Slim::Networking::IO::Select::select (271) Error: Selec
t task failed: Undefined subroutine &Slim::Player::Squeezebox::upgradeFirmware c
alled at /usr/share/perl5/Slim/Web/Pages.pm line 692.

Looking at /usr/share/perl5/Slim/Player/ there's a Squeezebox.pm, Squeezebox1.pm and Squeezebox2.pm

# grep 'sub upgradeFirmware' /usr/share/perl5/Slim/Player/Squeezebox*.pm
/usr/share/perl5/Slim/Player/Squeezebox1.pm:sub upgradeFirmware {
/usr/share/perl5/Slim/Player/Squeezebox2.pm:sub upgradeFirmware {
/usr/share/perl5/Slim/Player/Squeezebox.pm:sub upgradeFirmware_SDK5 {

Why would there be a specific call to Slim::Player::Squeezebox::upgradeFirmware if that subroutine doesn't exist there? The surrounding code hints that an attempt is being made to upgrade my squeezebox to a minimum level (version 10?) using an older method (SDK4) before performing another update using a newer method. Is this a typo in Slim/Web/Pages.pm?
Comment 1 Michael Herger 2009-05-18 08:37:40 UTC
Would the following patch work? I'm having a hard time understanding when this URL is called at all. Must be a SB1 which has not been connected to anything in years...


Index: server/Slim/Web/Pages.pm
===================================================================
--- server/Slim/Web/Pages.pm	(revision 26659)
+++ server/Slim/Web/Pages.pm	(working copy)
@@ -689,7 +689,7 @@
 sub update_firmware {
 	my ($client, $params) = @_;
 
-	$params->{'warning'} = Slim::Player::Squeezebox::upgradeFirmware($params->{'ipaddress'}, 10) 
+	$params->{'warning'} = Slim::Player::Squeezebox1::upgradeFirmware($params->{'ipaddress'}, 10) 
 		|| string('UPGRADE_COMPLETE_DETAILS');
 	
 	return Slim::Web::HTTP::filltemplatefile("update_firmware.html", $params);
Comment 2 Michael Herger 2009-05-18 09:51:20 UTC
change 26670 - function had moved to Squeezebox1 ages ago. This should now be fixed. But I can't really test it, as all my SB1 are at firmware 40, and this would only be triggered with firmware < 10...
Comment 3 James Richardson 2009-05-18 10:22:38 UTC
QA to verify fix
Comment 4 James Richardson 2009-05-18 15:11:27 UTC
vb.slim.bugs@gmail.com: Can you download the latest 7.3.3 r26670 beta build and give it a try, let me know if that solved the issue for you
Comment 5 vb.slim.bugs 2009-05-18 16:01:34 UTC
I've grabbed the Zipped version. I'll remove the 7.3.2 .deb package and read up how to install this 7.3.3 release, and let you know how it goes. Thanks for the speedy response.
Comment 6 Michael Herger 2009-05-18 22:12:17 UTC
> I've grabbed the Zipped version. I'll remove the 7.3.2 .deb package and

Don't take the .ZIP file if you're on Windows. Use the tar ball instead.  
.zip is Windows only and does not come with the source files.
Comment 7 vb.slim.bugs 2009-05-19 00:56:27 UTC
Can you post a link? I followed the download page to here:

http://downloads.slimdevices.com/nightly/7.3/sc/26670/

But there's only windows stuff there. No tarball.

This URL: http://downloads.slimdevices.com/nightly/?ver=7.3 shows no release 26670 for linux.
Comment 8 James Richardson 2009-05-19 06:33:43 UTC
Please try again, it should be there today.
Comment 9 vb.slim.bugs 2009-05-20 05:31:13 UTC
And we have a winner!

It seems to have updated the firmware (without requiring the use of the firmware.html URL) to release 40. The SB1 now works.

Thanks very much for the help.
Comment 10 Michael Herger 2009-05-20 06:32:19 UTC
thanks for the feedback. Closing this bug.
Comment 11 James Richardson 2009-06-17 09:37:35 UTC
This bug has been fixed in the 7.3.3 release version of SqueezeCenter!

If you haven't already. please download the new version from http://www.logitechsqueezebox.com/support/download-squeezecenter.html 

If you are still experiencing this problem, feel free to reopen the bug with your new comments and we'll have another look.