Google Earth 5.2.1.1588 was the last version of Google Earth for Linux that worked on my main laptop running 64-bit Gentoo Linux. Even the Panoramio photos were displayed (a common complaint amongst users of Google Earth for Linux). But every subsequent version crashed when I launched it. The latest version, 7.1.2.2041, is no exception:
$ googleearth
[0403/012031:ERROR:net_util.cc(2195)] Not implemented reached in bool net::HaveOnlyLoopbackAddresses()
[0403/012033:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0403/012033:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0403/012033:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0403/012033:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0403/012033:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0403/012033:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0403/012033:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0403/012033:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0403/012033:WARNING:backend_impl.cc(1875)] Destroying invalid entry.
[0403/012033:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0403/012033:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0403/012033:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
[0403/012033:ERROR:nss_ocsp.cc(581)] No URLRequestContext for OCSP handler.
Google Earth has caught signal 11.
We apologize for the inconvenience, but Google Earth has crashed.
This is a bug in the program, and should never happen under normal
circumstances. A bug report and debugging data have been written
to this text file:
/home/fitzcarraldo/.googleearth/crashlogs/crashlog-533ca953.txt
Please include this file if you submit a bug report to Google.
Now, the Google Earth installation package bundles the libraries it needs, so they are used instead of the ‘native’ libraries installed on your machine. A Linux user going by the moniker amirpli worked out how to enable Google Earth for Linux to use the native Qt libraries rather than the Qt libraries bundled with Google Earth, and posted instructions for a number of distributions (see, for example, Comment 9 in Gentoo Bugzilla Bug Report No. 490066). However, even if I apply amirpli‘s fix, Google Earth on my main laptop crashed with almost the same error message as above. Looking through the crash log file that Google Earth generates, I see the following line, which makes me suspect that Google Earth cannot work with the closed-source AMD ATI Catalyst driver (a.k.a. FGLRX):
./libbase.so(_ZN5earth15GfxCardInfoUnix25GetGraphicsCardMemoryInMBERi+0xe)[0x7f011b3e654e]
I noticed a few posts by users of other distributions in various forums saying that they had installed the 32-bit version of Google Earth in their 64-bit (multilib) installations, so I decided to try that in Gentoo. I hacked the ebuild of version 7.1.2.2041 to force it to install the 32-bit version of Google Earth on my 64-bit multilib installation, and installed it via a local overlay.
The hacked ebuild has the following changes from the stock 7.1.2.2041 ebuild:
a) Replace:
SRC_URI="x86? ( http://dl.google.com/dl/earth/client/current/google-earth-stable_current_i386.deb
-> GoogleEarthLinux-${PV}_i386.deb )
amd64? ( http://dl.google.com/dl/earth/client/current/google-earth-stable_current_amd64.deb
-> GoogleEarthLinux-${PV}_amd64.deb )"
with:
SRC_URI="http://dl.google.com/dl/earth/client/current/google-earth-stable_current_i386.deb
-> GoogleEarthLinux-${PV}_i386.deb"
b) Replace:
unpack_deb GoogleEarthLinux-${PV}_$(usex amd64 "amd64" "i386").deb
with:
unpack_deb GoogleEarthLinux-${PV}_i386.deb
c) Replace:
patchelf --set-interpreter /lib/ld-linux$(usex amd64 "-x86-64" "").so.2 ${PN}-bin || die "patchelf failed"
with:
patchelf --set-interpreter /lib/ld-linux.so.2 ${PN}-bin || die "patchelf failed"
If you have not used a local overlay before, it is not difficult — just follow the steps given below.
1. If you have not done it before, tell Portage the location of the local overlay:
# echo 'PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage/"' >> /etc/make.conf
2. If you have not done it before, give your local overlay a name:
# mkdir /usr/local/portage/profiles
# echo "local_overlay" > /usr/local/portage/profiles/repo_name
3. Create the directories for the local overlay’s Google Earth ebuild and its associated files:
# mkdir -p /usr/local/portage/sci-geosciences/googleearth/files
4. Uninstall the non-functioning 64-bit version of Google Earth that you installed from the Portage main tree:
# emerge -C googleearth
5. Copy the main tree’s ebuild and associated files to the local overlay and edit the ebuild as per the changes I listed above:
# cp /usr/portage/sci-geosciences/googleearth/googleearth-7.1.2.2041.ebuild /usr/local/portage/sci-geosciences/googleearth/
# cp /usr/portage/sci-geosciences/googleearth/files/* /usr/local/portage/sci-geosciences/googleearth/files/
# cd /usr/local/portage/sci-geosciences/googleearth/
# nano googleearth-7.1.2.2041.ebuild
6. Create the manifest for the ebuild and associated files:
# ebuild googleearth-7.1.2.2041.ebuild manifest
7. Finally, install the package:
# emerge googleearth::local_overlay
The 32-bit version of Google Earth works fine in my 64-bit multilib installation, although the Panoramio photos are not displayed, but then Linux users are used to that :-/. Come on Google, you can do better than this!
Update (March 2, 2015): See my post Getting Google Earth in Gentoo Linux to display Panoramio photos for a way to get Google Earth in Gentoo Linux to display the Panoramio photos.