Index: server/Slim/Utils/OS/SqueezeOS.pm =================================================================== --- server/Slim/Utils/OS/SqueezeOS.pm (revision 30728) +++ server/Slim/Utils/OS/SqueezeOS.pm (working copy) @@ -23,7 +23,7 @@ # Read MAC/UUID from cpuinfo open my $fh, '<', '/proc/cpuinfo' or die "Unable to read /proc/cpuinfo: $!"; while ( <$fh> ) { - if ( /^Serial\s+:\s+([0-9a-f]+)/ ) { + if ( /^Serial\s+:\s+([0-9a-f]+)/ && $1 ne '000000' ) { my $serial = $1; my $mac = '000420' . substr( $serial, -6, 6 ); $mac =~ s/(.{2})/$1:/g; @@ -38,6 +38,18 @@ } close $fh; } + + # fall back to reading the stored macaddress if an invalid Serial was stored in /proc/cpuinfo + if ( !main::SCANNER && !$class->{osDetails}->{mac} && -r '/etc/macaddress' ) { + open my $fh, '<', '/etc/macaddress'; + while (<$fh>) { + if ( /^([0-9a-f]{2}([:]|$)){6}$/i ) { + $class->{osDetails}->{mac} = $_; + last; + } + } + close $fh; + } return $class->{osDetails}; }