Bugzilla – Bug 12087
SqueezeCenter fails to update my SqueezeBox
Last modified: 2009-06-17 09:37:35 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?
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);
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...
QA to verify fix
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
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.
> 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.
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.
Please try again, it should be there today.
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.
thanks for the feedback. Closing this bug.
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.