顯示具有 google earth 標籤的文章。 顯示所有文章
顯示具有 google earth 標籤的文章。 顯示所有文章

2012年11月21日 星期三

google earth 7

中文版請看這裡
I'm running openSUSE 12.2 x86_64 system with nvidia proprietary driver
$  uname -r
3.4.11-2.16-desktop
$ rpm -qa | grep nvidia
nvidia-gfxG02-kmp-desktop-304.43_k3.4.6_2.10-19.1.x86_64
nvidia-computeG02-304.43-20.1.x86_64
x11-video-nvidiaG02-304.43-20.1.x86_64

Download Google Earth from http://www.google.com/intl/zh-TW/earth/index.html
Use zypper to install it
# zypper in google-earth-stable_current_x86_64.rpm 
正在載入套件庫資料...
讀取已安裝的套件...
正在解決套件相依性...

將會安裝下列新的套件:
  google-earth-stable 

1  新套件將被安裝.
全部下載大小: 39.3 MiB。 完成操作後,將增加 126.0 MiB 的使用。
要繼續嗎? [y/n/?] (y): y
正在取出 套件 google-earth-stable-7.0.1.8244-0.x86_64
                                   (1/1),  39.3 MiB (已解開 126.0 MiB)
正在取出 套件 google-earth-stable-7.0.1.8244-0.x86_64
                                   (1/1),  39.3 MiB (已解開 126.0 MiB)
正在安裝: google-earth-stable-7.0.1.8244-0 ....................[完成]
其他 rpm 輸出:
warning: commands will be executed using /bin/sh
job 3 at 2012-11-21 00:23
Can't open /var/run/atd.pid to signal atd. No atd running?


Run google-earth in konsole (or other terminal)
$ google-earth
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/ray122/.googleearth/crashlogs/crashlog-50abae63.txt

Please include this file if you submit a bug report to Google.


See debugging deta
$ cat /home/ray122/.googleearth/crashlogs/crashlog-50abae63.txt
Major Version 7
Minor Version 0
Build Number 0001
Build Date Oct 29 2012
Build Time 19:13:39
OS Type 3
OS Major Version 3
OS Minor Version 4
OS Build Version 11
OS Patch Version 16
Crash Signal 11
Crash Time 1353428579
Up Time 0.073919

Stacktrace from glibc:
./libgoogleearth_free.so(+0x1e9cfb)[0xf7572cfb]
./libgoogleearth_free.so(+0x1e9f43)[0xf7572f43]
linux-gate.so.1(__kernel_sigreturn+0x0)[0xf771d400]


Debugging
$ cd /opt/google/earth/free/


$ export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

$ gdb ./googleearth-bin
GNU gdb (GDB) SUSE (7.4.50.20120603-2.1.2)
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-suse-linux".
For bug reporting instructions, please see:
...
Reading symbols from /opt/google/earth/free/googleearth-bin...(no debugging symbols found)...done.
(gdb) r
Starting program: /opt/google/earth/free/googleearth-bin 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0xf42fd0c8 in ?? () from /usr/lib/libexpat.so.1
Missing separate debuginfos, use: zypper install google-earth-stable-debuginfo-7.0.1.8244-0.x86_64
(gdb) bt
#0  0xf42fd0c8 in ?? () from /usr/lib/libexpat.so.1
#1  0xf42fd203 in ?? () from /usr/lib/libexpat.so.1
#2  0xf42fd23c in ?? () from /usr/lib/libexpat.so.1
#3  0xf42ffb69 in ?? () from /usr/lib/libexpat.so.1
#4  0xf4300c11 in ?? () from /usr/lib/libexpat.so.1
#5  0xf4301ab2 in ?? () from /usr/lib/libexpat.so.1
#6  0xf4305e0e in XML_ParseBuffer () from /usr/lib/libexpat.so.1
#7  0xf6fea471 in FcConfigParseAndLoad ()
   from /usr/lib/libfontconfig.so.1
#8  0xf6fea761 in FcConfigParseAndLoad ()
   from /usr/lib/libfontconfig.so.1
#9  0xf6feaa17 in ?? () from /usr/lib/libfontconfig.so.1
#10 0xf4300815 in ?? () from /usr/lib/libexpat.so.1
#11 0xf4301ab2 in ?? () from /usr/lib/libexpat.so.1
#12 0xf43036b0 in ?? () from /usr/lib/libexpat.so.1
#13 0xf4303e52 in ?? () from /usr/lib/libexpat.so.1
#14 0xf4305e0e in XML_ParseBuffer () from /usr/lib/libexpat.so.1
#15 0xf6fea471 in FcConfigParseAndLoad ()
   from /usr/lib/libfontconfig.so.1
#16 0xf6fdee46 in FcInitLoadConfig ()
   from /usr/lib/libfontconfig.so.1
#17 0xf6fdef69 in FcInitLoadConfigAndFonts ()
   from /usr/lib/libfontconfig.so.1
#18 0xf6fdf1ed in FcInit () from /usr/lib/libfontconfig.so.1
#19 0xf739202f in qt_init(QApplicationPrivate*, int, _XDisplay*, unsigned long, unsigned long) () from ./libQtGui.so.4
#20 0xf730cb2a in QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) () from ./libQtGui.so.4
#21 0xf730da53 in QApplication::QApplication(int&, char**, int) ()
   from ./libQtGui.so.4
#22 0xf7ec1e79 in earth::client::Application::Application(int&, char**) () from ./libgoogleearth_free.so
---Type  to continue, or q  to quit---
#23 0xf7e2e7ff in ?? () from ./libgoogleearth_free.so
#24 0xf7e2ebb9 in earthmain () from ./libgoogleearth_free.so
#25 0x0804877b in ?? ()
#26 0xf50ff3d5 in __libc_start_main () from /lib/libc.so.6
#27 0x080486c1 in ?? ()
(gdb)

We need some debuginfo packages
make sure you have enabled debug repos
#  zypper in libexpat1-debuginfo-32bit fontconfig-debuginfo-32bit

yes, you need 32-bit packages even you are running a 64-bit system

run gdb again
$ gdb ./googleearth-bin
GNU gdb (GDB) SUSE (7.4.50.20120603-2.1.2)
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-suse-linux".
For bug reporting instructions, please see:
...
Reading symbols from /opt/google/earth/free/googleearth-bin...(no debugging symbols found)...done.
(gdb) r
Starting program: /opt/google/earth/free/googleearth-bin 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
poolGrow (pool=pool@entry=0x808e7b0) at lib/xmlparse.c:6215
6215    lib/xmlparse.c: 沒有此一檔案或目錄.
Missing separate debuginfos, use: zypper install google-earth-stable-debuginfo-7.0.1.8244-0.x86_64
(gdb) bt
#0  poolGrow (pool=pool@entry=0x808e7b0) at lib/xmlparse.c:6215
#1  0xf42fd203 in poolAppend (pool=pool@entry=0x808e7b0, enc=enc@entry=0xf4f46c00, 
    ptr=ptr@entry=0x8093383 "pixelsize\" compare=\"less_eq\">\n\t\t\t\t0\n\t\t


\n", ' ' , "\n", ' ' , "false\n", ' ' , "\n", ' ' , "    end=end@entry=0x809338c "\" compare=\"less_eq\">\n\t\t\t\t0\n\t\t\n", ' ' , "\n", ' ' , "false\n", ' ' , "\n", ' ' , "\n"...) at lib/xmlparse.c:6148
#2  0xf42fd23c in poolStoreString (pool=pool@entry=0x808e7b0, enc=enc@entry=0xf4f46c00, 
    ptr=0x8093383 "pixelsize\" compare=\"less_eq\">\n\t\t\t\t0\n\t\t\n", ' ' , "\n", ' ' , "false\n", ' ' , "\n", ' ' , "    end=0x809338c "\" compare=\"less_eq\">\n\t\t\t\t0\n\t\t\n", ' ' , "\n", ' ' , "false\n", ' ' , "\n", ' ' , "\n"...) at lib/xmlparse.c:6201
#3  0xf42ffb69 in storeAtts (parser=parser@entry=0x808e610, enc=enc@entry=0xf4f46c00, 
    attStr=0x8093377 "\n\t\t\t\t0\n\t\t\n", ' ' , "\n", ' ' , "false\n", ' ' , "\n", ' ' , "#4  0xf4300c11 in doContent (parser=parser@entry=0x808e610, startTagLevel=startTagLevel@entry=0, enc=0xf4f46c00, 
    s=0x8093377 "\n\t\t\t\t0\n\t\t\n", ' ' , "\n", ' ' , "false\n", ' ' , "\n", ' ' , "    s@entry=0x80932b8 ' ' , "Lucida Sans Typewriter\n", ' ' , "Lucida Sans\n", ' ' , "Lucida Bright\n", ' ' , "\n\t\t#5  0xf4301ab2 in contentProcessor (parser=0x808e610, 
    start=0x80932b8 ' ' , "Lucida Sans Typewriter\n", ' ' , "Lucida Sans\n", ' ' , "Lucida Bright\n", ' ' , "\n\t\t#6  0xf4305e0e in XML_ParseBuffer (parser=parser@entry=0x808e610, len=len@entry=2812, isFinal=isFinal@entry=0) at lib/xmlparse.c:1651
#7  0xf6fea471 in IA__FcConfigParseAndLoad (config=config@entry=0x8080b50, name=0x808e3b0 "/etc/fonts/conf.d/11-suse-hinting.conf", complain=complain@entry=0) at fcxml.c:2782
#8  0xf6fea761 in FcConfigParseAndLoadDir (complain=0, dir=0x8084f30 "/etc/fonts/conf.d", name=0xffffb99c "conf.d", config=0x8080b50) at fcxml.c:2668
#9  IA__FcConfigParseAndLoad (config=0x8080b50, name=name@entry=0xffffb99c "conf.d", complain=0) at fcxml.c:2718
#10 0xf6feaa17 in FcParseInclude (parse=0xffffb8c0) at fcxml.c:1849
#11 FcEndElement (userData=0xffffb8c0, name=0x80807a8 "include") at fcxml.c:2387
#12 0xf4300815 in doContent (parser=parser@entry=0x8080f20, startTagLevel=startTagLevel@entry=0, enc=0xf4f46c00, 
    s=0x808218e "\n\n\n\n\t/var/cache/fontconfig\n\t~/.fontconfig\n\n\t\n\n\n\n\n\n\n<!--\n\tDO NOT EDIT THIS FILE.\n\tIT WILL BE REPLACED WHEN "..., end=0x8082f00 "", nextPtr=0x8080f38) at lib/xmlparse.c:3739
#16 0xf4305e0e in XML_ParseBuffer (parser=parser@entry=0x8080f20, len=len@entry=5320, isFinal=isFinal@entry=0) at lib/xmlparse.c:1651
#17 0xf6fea471 in IA__FcConfigParseAndLoad (config=config@entry=0x8080b50, name=name@entry=0x0, complain=complain@entry=1) at fcxml.c:2782
#18 0xf6fdee46 in IA__FcInitLoadConfig () at fcinit.c:67
#19 0xf6fdef69 in IA__FcInitLoadConfigAndFonts () at fcinit.c:101
#20 0xf6fdf1ed in IA__FcInit () at fcinit.c:124
#21 0xf739202f in qt_init(QApplicationPrivate*, int, _XDisplay*, unsigned long, unsigned long) () from ./libQtGui.so.4
#22 0xf730cb2a in QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) () from ./libQtGui.so.4
#23 0xf730da53 in QApplication::QApplication(int&, char**, int) () from ./libQtGui.so.4
#24 0xf7ec1e79 in earth::client::Application::Application(int&, char**) () from ./libgoogleearth_free.so
#25 0xf7e2e7ff in ?? () from ./libgoogleearth_free.so
#26 0xf7e2ebb9 in earthmain () from ./libgoogleearth_free.so
---Type  to continue, or q  to quit---
#27 0x0804877b in ?? ()
#28 0xf50ff3d5 in __libc_start_main () from /lib/libc.so.6
#29 0x080486c1 in ?? ()
(gdb)

You can see the some fonconfig settings make the Segmentation fault
in #7 ...   "/etc/fonts/conf.d/11-suse-hinting.conf"
Remove the file /etc/fonts/conf.d/11-suse-hinting.conf
# rm  /etc/fonts/conf.d/11-suse-hinting.conf

run gdb again you can see /etc/fonts/conf.d/65-fonts-persian.conf will need to be deleted
# rm  /etc/fonts/conf.d/65-fonts-persian.conf

keep debugging till google-earth works

Some screenshots:
Startup:
 
 Panoramio photo:

 Street view:

Flight simulator:

Navigating sky:

3D building:


Fonts looks good, libQT* need no more replacement.
Non-latin characters can show-up properly.

Also some  defects:
1. some pictures can't be seen

2. almost all links in pop-up windows can't click to link to target
You have to right click the link, choose "open in new window" to link to the target

3. flash is not working
4. crash sometimes...

google 地球 7

Read English version Here
系統: openSUSE 12.2 x86_64 使用 nvidia 專利驅動程式
$  uname -r
3.4.11-2.16-desktop
$ rpm -qa | grep nvidia
nvidia-gfxG02-kmp-desktop-304.43_k3.4.6_2.10-19.1.x86_64
nvidia-computeG02-304.43-20.1.x86_64
x11-video-nvidiaG02-304.43-20.1.x86_64

http://www.google.com/intl/zh-TW/earth/index.html下載 Google Earth
使用 zypper 安裝
# zypper in google-earth-stable_current_x86_64.rpm 
正在載入套件庫資料...
讀取已安裝的套件...
正在解決套件相依性...

將會安裝下列新的套件:
  google-earth-stable 

1  新套件將被安裝.
全部下載大小: 39.3 MiB。 完成操作後,將增加 126.0 MiB 的使用。
要繼續嗎? [y/n/?] (y): y
正在取出 套件 google-earth-stable-7.0.1.8244-0.x86_64
                                   (1/1),  39.3 MiB (已解開 126.0 MiB)
正在取出 套件 google-earth-stable-7.0.1.8244-0.x86_64
                                   (1/1),  39.3 MiB (已解開 126.0 MiB)
正在安裝: google-earth-stable-7.0.1.8244-0 ....................[完成]
其他 rpm 輸出:
warning: commands will be executed using /bin/sh
job 3 at 2012-11-21 00:23
Can't open /var/run/atd.pid to signal atd. No atd running?


在終端機執行 google-earth
$ google-earth
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/ray122/.googleearth/crashlogs/crashlog-50abae63.txt

Please include this file if you submit a bug report to Google.


檢視偵錯資料
$ cat /home/ray122/.googleearth/crashlogs/crashlog-50abae63.txt
Major Version 7
Minor Version 0
Build Number 0001
Build Date Oct 29 2012
Build Time 19:13:39
OS Type 3
OS Major Version 3
OS Minor Version 4
OS Build Version 11
OS Patch Version 16
Crash Signal 11
Crash Time 1353428579
Up Time 0.073919

Stacktrace from glibc:
./libgoogleearth_free.so(+0x1e9cfb)[0xf7572cfb]
./libgoogleearth_free.so(+0x1e9f43)[0xf7572f43]
linux-gate.so.1(__kernel_sigreturn+0x0)[0xf771d400]


開始偵錯
$ cd /opt/google/earth/free/


$ export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

$ gdb ./googleearth-bin
GNU gdb (GDB) SUSE (7.4.50.20120603-2.1.2)
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-suse-linux".
For bug reporting instructions, please see:
...
Reading symbols from /opt/google/earth/free/googleearth-bin...(no debugging symbols found)...done.
(gdb) r
Starting program: /opt/google/earth/free/googleearth-bin 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0xf42fd0c8 in ?? () from /usr/lib/libexpat.so.1
Missing separate debuginfos, use: zypper install google-earth-stable-debuginfo-7.0.1.8244-0.x86_64
(gdb) bt
#0  0xf42fd0c8 in ?? () from /usr/lib/libexpat.so.1
#1  0xf42fd203 in ?? () from /usr/lib/libexpat.so.1
#2  0xf42fd23c in ?? () from /usr/lib/libexpat.so.1
#3  0xf42ffb69 in ?? () from /usr/lib/libexpat.so.1
#4  0xf4300c11 in ?? () from /usr/lib/libexpat.so.1
#5  0xf4301ab2 in ?? () from /usr/lib/libexpat.so.1
#6  0xf4305e0e in XML_ParseBuffer () from /usr/lib/libexpat.so.1
#7  0xf6fea471 in FcConfigParseAndLoad ()
   from /usr/lib/libfontconfig.so.1
#8  0xf6fea761 in FcConfigParseAndLoad ()
   from /usr/lib/libfontconfig.so.1
#9  0xf6feaa17 in ?? () from /usr/lib/libfontconfig.so.1
#10 0xf4300815 in ?? () from /usr/lib/libexpat.so.1
#11 0xf4301ab2 in ?? () from /usr/lib/libexpat.so.1
#12 0xf43036b0 in ?? () from /usr/lib/libexpat.so.1
#13 0xf4303e52 in ?? () from /usr/lib/libexpat.so.1
#14 0xf4305e0e in XML_ParseBuffer () from /usr/lib/libexpat.so.1
#15 0xf6fea471 in FcConfigParseAndLoad ()
   from /usr/lib/libfontconfig.so.1
#16 0xf6fdee46 in FcInitLoadConfig ()
   from /usr/lib/libfontconfig.so.1
#17 0xf6fdef69 in FcInitLoadConfigAndFonts ()
   from /usr/lib/libfontconfig.so.1
#18 0xf6fdf1ed in FcInit () from /usr/lib/libfontconfig.so.1
#19 0xf739202f in qt_init(QApplicationPrivate*, int, _XDisplay*, unsigned long, unsigned long) () from ./libQtGui.so.4
#20 0xf730cb2a in QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) () from ./libQtGui.so.4
#21 0xf730da53 in QApplication::QApplication(int&, char**, int) ()
   from ./libQtGui.so.4
#22 0xf7ec1e79 in earth::client::Application::Application(int&, char**) () from ./libgoogleearth_free.so
---Type  to continue, or q  to quit---
#23 0xf7e2e7ff in ?? () from ./libgoogleearth_free.so
#24 0xf7e2ebb9 in earthmain () from ./libgoogleearth_free.so
#25 0x0804877b in ?? ()
#26 0xf50ff3d5 in __libc_start_main () from /lib/libc.so.6
#27 0x080486c1 in ?? ()
(gdb)

我們需要一些 debuginfo 套件
請確認已啟用 debug 套件庫
#  zypper in libexpat1-debuginfo-32bit fontconfig-debuginfo-32bit

沒錯,即使是 64 位元的系統,您仍需要 32位元的套件

再次執行 gdb
$ gdb ./googleearth-bin
GNU gdb (GDB) SUSE (7.4.50.20120603-2.1.2)
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-suse-linux".
For bug reporting instructions, please see:
...
Reading symbols from /opt/google/earth/free/googleearth-bin...(no debugging symbols found)...done.
(gdb) r
Starting program: /opt/google/earth/free/googleearth-bin 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
poolGrow (pool=pool@entry=0x808e7b0) at lib/xmlparse.c:6215
6215    lib/xmlparse.c: 沒有此一檔案或目錄.
Missing separate debuginfos, use: zypper install google-earth-stable-debuginfo-7.0.1.8244-0.x86_64
(gdb) bt
#0  poolGrow (pool=pool@entry=0x808e7b0) at lib/xmlparse.c:6215
#1  0xf42fd203 in poolAppend (pool=pool@entry=0x808e7b0, enc=enc@entry=0xf4f46c00, 
    ptr=ptr@entry=0x8093383 "pixelsize\" compare=\"less_eq\">\n\t\t\t\t0\n\t\t


\n", ' ' , "\n", ' ' , "false\n", ' ' , "\n", ' ' , "    end=end@entry=0x809338c "\" compare=\"less_eq\">\n\t\t\t\t0\n\t\t\n", ' ' , "\n", ' ' , "false\n", ' ' , "\n", ' ' , "\n"...) at lib/xmlparse.c:6148
#2  0xf42fd23c in poolStoreString (pool=pool@entry=0x808e7b0, enc=enc@entry=0xf4f46c00, 
    ptr=0x8093383 "pixelsize\" compare=\"less_eq\">\n\t\t\t\t0\n\t\t\n", ' ' , "\n", ' ' , "false\n", ' ' , "\n", ' ' , "    end=0x809338c "\" compare=\"less_eq\">\n\t\t\t\t0\n\t\t\n", ' ' , "\n", ' ' , "false\n", ' ' , "\n", ' ' , "\n"...) at lib/xmlparse.c:6201
#3  0xf42ffb69 in storeAtts (parser=parser@entry=0x808e610, enc=enc@entry=0xf4f46c00, 
    attStr=0x8093377 "\n\t\t\t\t0\n\t\t\n", ' ' , "\n", ' ' , "false\n", ' ' , "\n", ' ' , "#4  0xf4300c11 in doContent (parser=parser@entry=0x808e610, startTagLevel=startTagLevel@entry=0, enc=0xf4f46c00, 
    s=0x8093377 "\n\t\t\t\t0\n\t\t\n", ' ' , "\n", ' ' , "false\n", ' ' , "\n", ' ' , "    s@entry=0x80932b8 ' ' , "Lucida Sans Typewriter\n", ' ' , "Lucida Sans\n", ' ' , "Lucida Bright\n", ' ' , "\n\t\t#5  0xf4301ab2 in contentProcessor (parser=0x808e610, 
    start=0x80932b8 ' ' , "Lucida Sans Typewriter\n", ' ' , "Lucida Sans\n", ' ' , "Lucida Bright\n", ' ' , "\n\t\t#6  0xf4305e0e in XML_ParseBuffer (parser=parser@entry=0x808e610, len=len@entry=2812, isFinal=isFinal@entry=0) at lib/xmlparse.c:1651
#7  0xf6fea471 in IA__FcConfigParseAndLoad (config=config@entry=0x8080b50, name=0x808e3b0 "/etc/fonts/conf.d/11-suse-hinting.conf", complain=complain@entry=0) at fcxml.c:2782
#8  0xf6fea761 in FcConfigParseAndLoadDir (complain=0, dir=0x8084f30 "/etc/fonts/conf.d", name=0xffffb99c "conf.d", config=0x8080b50) at fcxml.c:2668
#9  IA__FcConfigParseAndLoad (config=0x8080b50, name=name@entry=0xffffb99c "conf.d", complain=0) at fcxml.c:2718
#10 0xf6feaa17 in FcParseInclude (parse=0xffffb8c0) at fcxml.c:1849
#11 FcEndElement (userData=0xffffb8c0, name=0x80807a8 "include") at fcxml.c:2387
#12 0xf4300815 in doContent (parser=parser@entry=0x8080f20, startTagLevel=startTagLevel@entry=0, enc=0xf4f46c00, 
    s=0x808218e "\n\n\n\n\t/var/cache/fontconfig\n\t~/.fontconfig\n\n\t\n\n\n\n\n\n\n<!--\n\tDO NOT EDIT THIS FILE.\n\tIT WILL BE REPLACED WHEN "..., end=0x8082f00 "", nextPtr=0x8080f38) at lib/xmlparse.c:3739
#16 0xf4305e0e in XML_ParseBuffer (parser=parser@entry=0x8080f20, len=len@entry=5320, isFinal=isFinal@entry=0) at lib/xmlparse.c:1651
#17 0xf6fea471 in IA__FcConfigParseAndLoad (config=config@entry=0x8080b50, name=name@entry=0x0, complain=complain@entry=1) at fcxml.c:2782
#18 0xf6fdee46 in IA__FcInitLoadConfig () at fcinit.c:67
#19 0xf6fdef69 in IA__FcInitLoadConfigAndFonts () at fcinit.c:101
#20 0xf6fdf1ed in IA__FcInit () at fcinit.c:124
#21 0xf739202f in qt_init(QApplicationPrivate*, int, _XDisplay*, unsigned long, unsigned long) () from ./libQtGui.so.4
#22 0xf730cb2a in QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) () from ./libQtGui.so.4
#23 0xf730da53 in QApplication::QApplication(int&, char**, int) () from ./libQtGui.so.4
#24 0xf7ec1e79 in earth::client::Application::Application(int&, char**) () from ./libgoogleearth_free.so
#25 0xf7e2e7ff in ?? () from ./libgoogleearth_free.so
#26 0xf7e2ebb9 in earthmain () from ./libgoogleearth_free.so
---Type  to continue, or q  to quit---
#27 0x0804877b in ?? ()
#28 0xf50ff3d5 in __libc_start_main () from /lib/libc.so.6
#29 0x080486c1 in ?? ()
(gdb)

您可以看見某些 fonconfig 的設定造成了程式區段記憶體錯誤
在 #7 ...   "/etc/fonts/conf.d/11-suse-hinting.conf"
請移除檔案 /etc/fonts/conf.d/11-suse-hinting.conf
# rm  /etc/fonts/conf.d/11-suse-hinting.conf

再次執行 gdb 您也可以發現 /etc/fonts/conf.d/65-fonts-persian.conf 也需要刪除
# rm  /etc/fonts/conf.d/65-fonts-persian.conf

繼續偵錯直到 google-earth 正確啟動

螢幕抓圖:
啟動:
 
 Panoramio 相片:

 街景:

飛行模擬模式:

瀏覽星空:

3D 建築:


字體看起來不錯,不再需要取代 libQT*
非拉丁字元也可以正確顯示

也有些問題待解決:
1. 有些圖片看不見

2. 幾乎所有跳出視窗中的連結都沒辦法按一下就連結到目標
您必須在連結上按右鍵,選擇 "open in new window" 以連結到目標

3. flash 無法運作
4. 有時會崩潰...

2011年5月26日 星期四

在 openSUSE 上跑 Google Earth 6

English version Here
1. 如何安裝 google earth ?
http://www.google.com/earth/index.html 下載最新的穩定版 google earth,
請選擇專為 Fedora/openSUSE 準備的 rpm 格式套件。

您會得到一個 google-earth-stable_current_*.rpm 的檔案,
在終端機輸入命令即可安裝:
$ sudo rpm -ivh google-earth-stable_current_*.rpm


$ sudo zypper in google-earth-stable_current_*.rpm

您也可以就直接點擊該檔案,使用 "安裝/移除軟體" 來安裝他。
這個套件會自動在您的系統新增一個軟體套件庫,
以後您可以使用這個套件庫來更新您的 google earth。


2. 啟動 Google Earth
您可以在您的主選單中找到 Google Earth :
開始 -> 網際網路 -> 其他 -> Google Earth(3D planet viewer)
或用命令啟動
$ google-earth

google earth (英文版)

google earth (繁體中文版, zh_TW)

google earth (日文版)

你會看見很醜的介面字型,而且非拉丁字元變成方塊或看不見,
google earth rpm 所提供的 qt4 函式庫不支援 fontconfig 以及反鋸齒,
我們必須手動修正。

3. 使用系統的 qt4 函式庫
Google Earth 5.1.x 刪除了 googleearth 目錄中的 libQt* 檔案後,可以在 openSUSE 正常運作,
http://swyear.blogspot.com/2009/04/google-earth-50.html
但是從 5.2.x 開始就行不通了。
如果您移除了 googleearth 目錄中的 libQt* ,
GE 就不會動了:
$ sudo rm /opt/google/earth/free/libQt*
$ google-earth
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/****/.googleearth/crashlogs/crashlog-4dda74ff.txt

Please include this file if you submit a bug report to Google.

但這紀錄檔中實在沒什麼太多訊息:
$ cat /home/****/.googleearth/crashlogs/crashlog-4dda74ff.txt
Major Version 6
Minor Version 0
Build Number 0003
Build Date May 17 2011
Build Time 00:40:40
OS Type 3
OS Major Version 2
OS Minor Version 6
OS Build Version 37
OS Patch Version 6
Crash Signal 11
Crash Time 1306162431
Up Time 0.453146

Stacktrace from glibc:
./libgoogleearth_free.so(+0xab953)[0xf7715953]
./libgoogleearth_free.so(+0xabad3)[0xf7715ad3]
[0xffffe400]


但是 Ubuntu 仍可以使用這種方法來使用系統 qt4 函式庫跑 google-earth :
http://blog.slps.tp.edu.tw/00086/?p=275 (中文版)
http://people.debian.org.tw/~chihchun/2010/09/12/google-earth-for-linux/ (中文版)

4. Debug google earth
您需要啟用偵錯(Debug)套件庫安裝一些 debuginfo 套件
$ cd /opt/google/earth/free/
$ export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
$ gdb ./googleearth-bin
GNU gdb (GDB) SUSE (7.2-3.3)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-suse-linux".
For bug reporting instructions, please see:
...
Reading symbols from /opt/google/earth/free/googleearth-bin...(no debugging symbols found)...done.
(gdb) r
Starting program: /opt/google/earth/free/googleearth-bin
[Thread debugging using libthread_db enabled]
Missing separate debuginfo for /usr/lib/libstdc++.so.6
Try: zypper install -C "debuginfo(build-id)=ca1ade9217cff47a2dc7f94eac086d6bfc524f2b"
Missing separate debuginfo for /lib/libgcc_s.so.1
Try: zypper install -C "debuginfo(build-id)=be962e2ce565653c0dc2c21bebdfde348c81d3b9"

Program received signal SIGSEGV, Segmentation fault.
poolGrow (pool=0x80a31d8) at lib/xmlparse.c:6103
warning: Source file is more recent than executable.
6103 pool->freeBlocks = pool->freeBlocks->next;
(gdb) bt
#0 poolGrow (pool=0x80a31d8) at lib/xmlparse.c:6103
#1 0xf497a17e in poolAppend (pool=0x80a31d8, enc=0xf5497e20,
ptr=0x80ae641 "family\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t<edit name=\""...,
end=0x80ae647 "\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t<edit name=\"family"...) at lib/xmlparse.c:6036
#2 0xf497a1af in poolStoreString (pool=0x80a31d8,
enc=<value optimized out>,
ptr=0x80ae641 "family\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t<edit name=\""...,
end=0x80ae647 "\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t<edit name=\"family"...) at lib/xmlparse.c:6089
#3 0xf497c682 in storeAtts (parser=0x80a3038, enc=0xf5497e20,
attStr=0x80ae635 "<test name=\"family\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t"..., tagNamePtr=0x80a4bbc,
bindingsPtr=0x80a4bdc) at lib/xmlparse.c:2706
#4 0xf497dddf in doContent (parser=<value optimized out>, startTagLevel=0,
enc=0xf5497e20,
s=0x80ae635 "<test name=\"family\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t"..., end=0x80aeaf6 "", nextPtr=0x80a3050,
haveMore=1 '\001') at lib/xmlparse.c:2356
#5 0xf497ece2 in contentProcessor (parser=0x80a3038,
start=0x80ae458 "</alias>\n\n\t<!-- Persian fantasy fonts -->\n\t<alias>\n\t\t<family>fantasy</family>\n\t\t<accept>\n\t\t\t<family>Homa</family>\n\t\t\t<family>Kamran</family>\n\t\t\t<family>Fantezi</family>\n\t\t\t<family>Tabassom</family>\n\t\t"..., end=0x80aeaf6 "", endPtr=0x80a3050)

您可以看見裏面有些關於 persian font 的字串...
所以這些字型設定檔可能有問題。
試著移除 /etc/fonts/conf.d/65-fonts-persian.conf 的連結
$ sudo rm /etc/fonts/conf.d/65-fonts-persian.conf

然後 GE 就可以啟動了,而且字型也會有反鋸齒效果。
但是,有些圖片不見了...
Google Earth 使用反鋸齒字型的效果(英文)

Google Earth 使用反鋸齒字型的效果(中文)

Google Earth 使用反鋸齒字型的效果(日文)


遵照上面 Ubuntu 教學的連結,您還需要 libfreeimage3 套件。
您可以在 http://software.opensuse.org 搜尋並下載 libfreeimage3
您需要的是 libfreeimage3-*.i586.rpm, 因為 googleearth 是一個 32位元的應用程式
即使您使用 x86_64 系統,您還是需要這個 i586 套件!
下載套件並使用命令安裝
# rpm -ivh libfreeimage3*.rpm

然後編輯 googleearth script 加上
"export LD_PRELOAD=/usr/lib/libfreeimage.so.3" :
cd $script_path;
export LD_PRELOAD=/usr/lib/libfreeimage.so.3
LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./googleearth-bin "$@"

重新啟動 google-earth :
小圖示可以在左方圖層框中顯示了,
但不是所有的圖片都能正常顯示:



而且所有跳出視窗 (Panoramio 和 360Cities) 或內建瀏覽器的照片都會看不到:


但是使用您的瀏覽器 (firefox) 可以顯示您應該看到像這樣才對:

這是因為不相容函式庫的關係 (libqjpeg.so, libqgif.so)

5. 還要再做些處理
rmtk313 在
http://www.google.com/support/forum/p/earth/thread?tid=3fe67ea84f63bcd8&hl=en
發現到,您最好要使用
Qt libraries from Qt4.6.3 ,
(64-bit system need libphonon.so.4)
and libqjpeg.so libqgif.so from Google Earth 5.2 ,
and libfreeimage.so.3 ver 3.1.3

而且 rmtk313 把這些檔案都替我們打包了起來 放在這裡
下載 replacement.7z (7z 格式),
您需要 p7zip 套件來解壓縮並取出檔案
(您可以用 zypper in p7zip 來安裝)
$ 7z x replacement.7z

(如果您已經安裝了 p7zip ,您只要點擊 replacement.7z 這個檔案,
Ark 或 File-roller 會啟用一個圖形使用者介面幫您解開檔案)
在 rmtk313 包裹中的檔案:
googleearth -- 啟動 scripts
libphonon.so.4 -- 由 Debain Sqeeze 取得的函式庫
libQtGui.so.4 -- 由 Debain Sqeeze 取得的 Qt 函式庫(4.6.3 版)
libQtWebKit.so.4 -- 由 Debain Sqeeze 取得的 Qt 函式庫(4.6.3 版)
libfreeimage.so.3 -- 由 Ubuntu Maverick 取得的函式庫(3.13.1 版)
libQtCore.so.4 -- 由 Debain Sqeeze 取得的 Qt 函式庫(4.6.3 版)
libQtNetwork.so.4 -- 由 Debain Sqeeze 取得的 Qt 函式庫(4.6.3 版)
plugins -- 由 google earth 5.2.x 取得的,包含 libqgif.so 和 libqjpeg.so 的目錄

您可能不需要所有的檔案
在我的 openSUSE 11.3 x86 系統,
在完成上面做的事後,
我只需要在 plugins/imageformat/目錄中的 (libqjpeg.so libqgif.so)
使用這些檔案來取代 google-earth 中的
$ sudo cp plugins/imageformat/libq* /opt/google/earth/free/plugins/imageformats/

然後所有在 Panoramio 和 360Cities 中的照片就可以正常顯示了。


但是在我的 openSUSE 11.4 x86_64 筆記型電腦上,
如果我用這些從 5.2 取得的 libqjpeg.so libqgif.so 來取代原本的,
GE6 就會崩潰 (卡住不動),
我必須使用 rmtk313 所提供的所有檔案,
然後 Google Earth 6 才能跑。

6. 從 openSUSE 11.3 取得所需的檔案
使用 rmtk313 的檔案測試成功後,
我覺得若用 openSUSE 的函式庫應該會更相容
在此分享:
http://dl.dropbox.com/u/6331820/ge6_replacement_opensuse.tar.gz
使用這些檔案取代 google-earth 中內建的檔案
下載這團球球並解壓縮,然後執行 install.sh
$ tar -zxvf ge6_replacement_opensuse.tar.gz
ge6_replacement_opensuse/
ge6_replacement_opensuse/libQtWebKit.so.4
ge6_replacement_opensuse/googleearth
ge6_replacement_opensuse/libQtGui.so.4
ge6_replacement_opensuse/install.sh
ge6_replacement_opensuse/plugins/
ge6_replacement_opensuse/plugins/imageformats/
ge6_replacement_opensuse/plugins/imageformats/libqjpeg.so
ge6_replacement_opensuse/plugins/imageformats/libqgif.so
ge6_replacement_opensuse/libQtNetwork.so.4
ge6_replacement_opensuse/libQtCore.so.4
ge6_replacement_opensuse/libfreeimage.so.3
$ cd ge6_replacement_opensuse/
$ ./install.sh

install.sh script 會
(1) 移除 /etc/fonts/conf.d/65-fonts-persian.conf
(2) 安裝 libphonon 以及相關的套件
(3) 備份檔案,複製 googleearth(已加入了libfreeimage 的東東), libQt*, libfreeimage.* (由 openSUSE 11.3 取得的) 和 plugins/imageformats/libq* (由 GE 5.2 取得的) 到 google-earth-目錄
底下是這個 install.sh 的內容
#!/bin/bash
echo "This script will copy needed files for Google Earth 6"
echo "You have to install Google Earth before running this script"
echo "Need root password !"
#Remove buggy link
test -e /etc/fonts/conf.d/65-fonts-persian.conf && sudo rm /etc/fonts/conf.d/65-fonts-persian.conf
#Check architecture
rpmlist=""
arch=$(uname -m)
if [ "$arch" == 'x86_64' ]
then
test -e /usr/lib/libphonon.so.4 || rpmlist="libphonon4-32bit"
test -e /usr/lib/libaudio.so.2 || rpmlist="$rpmlist libaudio2-32bit"
test -e /usr/lib/libpulse-mainloop-glib.so.0 || rpmlist="$rpmlist libpulse-mainloop-glib0-32bit"
else
test -e /usr/lib/libphonon.so.4 || rpmlist="libphonon4"
test -e /usr/lib/libaudio.so.2 || rpmlist="$rpmlist libaudio2"
test -e /usr/lib/libpulse-mainloop-glib.so.0 || rpmlist="$rpmlist libpulse-mainloop-glib0"
fi
#Install needed packages
if [ "$rpmlist" != "" ]
then
echo "$rpmlist will be install"
sudo zypper in $rpmlist
fi
#Copy all files to googleearth_dir
FILEDIR=$(cd `dirname $0` && pwd)
sudo rm -r /opt/google/earth/free/*-orig
for qtfile in /opt/google/earth/free/libQt*.4
do
sudo mv $qtfile $qtfile-orig
done
sudo mv /opt/google/earth/free/googleearth /opt/google/earth/free/googleearth-orig
sudo mv /opt/google/earth/free/plugins /opt/google/earth/free/plugins-orig
sudo cp -r $FILEDIR/* /opt/google/earth/free/
sudo rm /opt/google/earth/free/install.sh
echo "Done! Have a lot of fun!"


再次執行 google-earth ,幾乎所有功能都正常了:
啟動

Panoramio 跳出視窗

您可以上傳照片到 Panoramio

使用內建瀏覽器檢視照片

360cities

3D 建築物,您可以在搜尋框中輸入中文

歡迎到台中玩

街景

使用日文介面啟動

Mt. Fuji 富士山·ふじさん

使用英文介面啟動

大峽谷 Grand Canyon

大峽谷的 360 cities 照片之一

缺點:
flash 無法在內嵌的跳出視窗中運作真的蠻冏的

點擊影片螢幕視窗可以使用內建的瀏覽器中由 youtube 觀賞


Youtube 圖層也是使用 flash

所以必須直接連到網站來看


7. 小提醒
(1). 如果相關的 bug 還沒解決,更新 google-earth 或 fontconfig 之後,你必須重新執行安裝 script
(2). 在 openSUSE 11.3 x86 系統與 openSUSE 11.4 x84_64 系統測試成功
(3). Ubuntu 使用者可以用 rmtk313 提供的檔案試試看

2011年5月21日 星期六

Run Google Earth 6 on openSUSE

中文版在此
1. How to install google earth ?
Go to http://www.google.com/earth/index.html download the stable verion of google earth.
Choose rpm format package for Fedora/openSUSE.

You will get a google-earth-stable_current_*.rpm file,
install this file in terminal with command:
$ sudo rpm -ivh google-earth-stable_current_*.rpm

or
$ sudo zypper in google-earth-stable_current_*.rpm

or just click on the file use "Install/Remove software" to install it.
This rpm will creat a software repository automatically,
with this repo, you can update your google earth to new version if available.


2. Start Google Earth
You can find Google Earth in your main menu:
Start -> Network -> Other -> Google Earth(3D planet viewer)
or start it use command
$ google-earth

google earth (english)

google earth (traditional Chinese, zh_TW)

google earth (Japanese)

You can see ugly interface fonts and missing fonts for non-latin languages,
The qt4 libraries supplied by googleearth rpm did not support fontconfig and antialias,
so we have to fix this mamually.

3. Use system qt4 libraries
Google Earth 5.1.x works fine on openSUSE after deleting libQt* files in googleearth directory,
http://swyear.blogspot.com/2009/04/google-earth-50.html
but fail since 5.2.x
Remove libQt* in googleearth directory,
GE won't start:
$ sudo rm /opt/google/earth/free/libQt*
$ google-earth
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/****/.googleearth/crashlogs/crashlog-4dda74ff.txt

Please include this file if you submit a bug report to Google.

But there's not much message in that log file:
$ cat /home/****/.googleearth/crashlogs/crashlog-4dda74ff.txt
Major Version 6
Minor Version 0
Build Number 0003
Build Date May 17 2011
Build Time 00:40:40
OS Type 3
OS Major Version 2
OS Minor Version 6
OS Build Version 37
OS Patch Version 6
Crash Signal 11
Crash Time 1306162431
Up Time 0.453146

Stacktrace from glibc:
./libgoogleearth_free.so(+0xab953)[0xf7715953]
./libgoogleearth_free.so(+0xabad3)[0xf7715ad3]
[0xffffe400]


But Ubuntu can use similar method to run google-earth with system qt4 libraries:
http://blog.slps.tp.edu.tw/00086/?p=275 (written in Chinese)
http://people.debian.org.tw/~chihchun/2010/09/12/google-earth-for-linux/ (written in Chinese)

4. Debug google earth
You need some debuginfo packages from Debug repo
$ cd /opt/google/earth/free/
$ export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
$ gdb ./googleearth-bin
GNU gdb (GDB) SUSE (7.2-3.3)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-suse-linux".
For bug reporting instructions, please see:
...
Reading symbols from /opt/google/earth/free/googleearth-bin...(no debugging symbols found)...done.
(gdb) r
Starting program: /opt/google/earth/free/googleearth-bin
[Thread debugging using libthread_db enabled]
Missing separate debuginfo for /usr/lib/libstdc++.so.6
Try: zypper install -C "debuginfo(build-id)=ca1ade9217cff47a2dc7f94eac086d6bfc524f2b"
Missing separate debuginfo for /lib/libgcc_s.so.1
Try: zypper install -C "debuginfo(build-id)=be962e2ce565653c0dc2c21bebdfde348c81d3b9"

Program received signal SIGSEGV, Segmentation fault.
poolGrow (pool=0x80a31d8) at lib/xmlparse.c:6103
warning: Source file is more recent than executable.
6103 pool->freeBlocks = pool->freeBlocks->next;
(gdb) bt
#0 poolGrow (pool=0x80a31d8) at lib/xmlparse.c:6103
#1 0xf497a17e in poolAppend (pool=0x80a31d8, enc=0xf5497e20,
ptr=0x80ae641 "family\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t<edit name=\""...,
end=0x80ae647 "\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t<edit name=\"family"...) at lib/xmlparse.c:6036
#2 0xf497a1af in poolStoreString (pool=0x80a31d8,
enc=<value optimized out>,
ptr=0x80ae641 "family\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t<edit name=\""...,
end=0x80ae647 "\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t<edit name=\"family"...) at lib/xmlparse.c:6089
#3 0xf497c682 in storeAtts (parser=0x80a3038, enc=0xf5497e20,
attStr=0x80ae635 "<test name=\"family\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t"..., tagNamePtr=0x80a4bbc,
bindingsPtr=0x80a4bdc) at lib/xmlparse.c:2706
#4 0xf497dddf in doContent (parser=<value optimized out>, startTagLevel=0,
enc=0xf5497e20,
s=0x80ae635 "<test name=\"family\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t"..., end=0x80aeaf6 "", nextPtr=0x80a3050,
haveMore=1 '\001') at lib/xmlparse.c:2356
#5 0xf497ece2 in contentProcessor (parser=0x80a3038,
start=0x80ae458 "</alias>\n\n\t<!-- Persian fantasy fonts -->\n\t<alias>\n\t\t<family>fantasy</family>\n\t\t<accept>\n\t\t\t<family>Homa</family>\n\t\t\t<family>Kamran</family>\n\t\t\t<family>Fantezi</family>\n\t\t\t<family>Tabassom</family>\n\t\t"..., end=0x80aeaf6 "", endPtr=0x80a3050)

There're some strings about persian font...
so maybe something wrong about the fontsetting file.
I try to remove the link /etc/fonts/conf.d/65-fonts-persian.conf
$ sudo rm /etc/fonts/conf.d/65-fonts-persian.conf

Then GE can start, and fonts are antialias.
BUT, some graphics are missing...
Google Earth with antialias fonts(en)

Google Earth with antialias fonts(Chinese)

Google Earth with antialias fonts(Japanese)


Follow the Ubuntu's instructing link above, you need libfreeimage3 package.
You can search and download this package from http://software.opensuse.org
You need libfreeimage3-*.i586.rpm, cause googleearth is a 32bit application
even if you are using x86_64 system, you still need this i586 package!
Download the package, install with command
# rpm -ivh libfreeimage3*.rpm

Then edit googleearth script add
"export LD_PRELOAD=/usr/lib/libfreeimage.so.3" :
cd $script_path;
export LD_PRELOAD=/usr/lib/libfreeimage.so.3
LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./googleearth-bin "$@"

Start google-earth again:
icons had shown up in left Layer frame,
BUT not all the graphics show up properly:



and ALL the photos from any popup window (Panoramio and 360Cities) or buildin browser are missing:


Open with your browser (firefox) shows that should be like this:

These things are cause by incompatible libraries (libqjpeg.so, libqgif.so)

5. Something more to do
rmtk313 in
http://www.google.com/support/forum/p/earth/thread?tid=3fe67ea84f63bcd8&hl=en
found that you'd better use
Qt libraries from Qt4.6.3 ,
(64-bit system need libphonon.so.4)
and libqjpeg.so libqgif.so from Google Earth 5.2 ,
and libfreeimage.so.3 ver 3.1.3

and rmtk313 had packed these files for us HERE.
Download the file replacement.7z (7z format),
You will need p7zip package to uncompress and extract files
(you can install it with zypper in p7zip)
$ 7z x replacement.7z

(you can just click on replacement.7z if you had p7zip installed,
Ark or File-roller will start a GUI to extract these files)
file list in rmtk313's package:
googleearth -- startup scripts
libphonon.so.4 -- library from Debain Sqeeze
libQtGui.so.4 -- Qt library from Debain Sqeeze (version 4.6.3)
libQtWebKit.so.4 -- Qt library from Debain Sqeeze (version 4.6.3)
libfreeimage.so.3 -- library from Ubuntu Maverick (version 3.13.1)
libQtCore.so.4 -- Qt library from Debain Sqeeze (version 4.6.3)
libQtNetwork.so.4 -- Qt library from Debain Sqeeze (version 4.6.3)
plugins -- directory contains libqgif.so and libqjpeg.so from google earth 5.2.x

You may not need all the files
On my openSUSE 11.3 x86 system,
After doing things above,
I only need files (libqjpeg.so libqgif.so) in plugins/imageformat/ directory.
Use these files replace the ones from google-earth
$ sudo cp plugins/imageformat/libq* /opt/google/earth/free/plugins/imageformats/

then all the photos from Panoramio and 360Cities can showup properly.


But on my openSUSE 11.4 x86_64 laptop,
GE6 will crash (freeze) if replace libqjpeg.so libqgif.so with files from 5.2
I have to replace all the files from rmtk313
and Google Earth 6 works.

6. Needed files for Google Earth 6 from openSUSE 11.3
Test OK with rmtk313's files,
I think it might be more compatible with openSUSE's libraries
Share:
http://dl.dropbox.com/u/6331820/ge6_replacement_opensuse.tar.gz
Use these files to replace the files from google-earth
Download the tarball and uncompress, and run install.sh
$ tar -zxvf ge6_replacement_opensuse.tar.gz
ge6_replacement_opensuse/
ge6_replacement_opensuse/libQtWebKit.so.4
ge6_replacement_opensuse/googleearth
ge6_replacement_opensuse/libQtGui.so.4
ge6_replacement_opensuse/install.sh
ge6_replacement_opensuse/plugins/
ge6_replacement_opensuse/plugins/imageformats/
ge6_replacement_opensuse/plugins/imageformats/libqjpeg.so
ge6_replacement_opensuse/plugins/imageformats/libqgif.so
ge6_replacement_opensuse/libQtNetwork.so.4
ge6_replacement_opensuse/libQtCore.so.4
ge6_replacement_opensuse/libfreeimage.so.3
$ cd ge6_replacement_opensuse/
$ ./install.sh

install.sh script will
(1) remove /etc/fonts/conf.d/65-fonts-persian.conf
(2) install libphonon and relative packages
(3) backup files, copy googleearth (libfreeimage script added), libQt*, libfreeimage.* (from openSUSE 11.3) and plugins/imageformats/libq* (from GE 5.2) to google-earth-dir
Here's the contents of install.sh
#!/bin/bash
echo "This script will copy needed files for Google Earth 6"
echo "You have to install Google Earth before running this script"
echo "Need root password !"
#Remove buggy link
test -e /etc/fonts/conf.d/65-fonts-persian.conf && sudo rm /etc/fonts/conf.d/65-fonts-persian.conf
#Check architecture
rpmlist=""
arch=$(uname -m)
if [ "$arch" == 'x86_64' ]
then
test -e /usr/lib/libphonon.so.4 || rpmlist="libphonon4-32bit"
test -e /usr/lib/libaudio.so.2 || rpmlist="$rpmlist libaudio2-32bit"
test -e /usr/lib/libpulse-mainloop-glib.so.0 || rpmlist="$rpmlist libpulse-mainloop-glib0-32bit"
else
test -e /usr/lib/libphonon.so.4 || rpmlist="libphonon4"
test -e /usr/lib/libaudio.so.2 || rpmlist="$rpmlist libaudio2"
test -e /usr/lib/libpulse-mainloop-glib.so.0 || rpmlist="$rpmlist libpulse-mainloop-glib0"
fi
#Install needed packages
if [ "$rpmlist" != "" ]
then
echo "$rpmlist will be install"
sudo zypper in $rpmlist
fi
#Copy all files to googleearth_dir
FILEDIR=$(cd `dirname $0` && pwd)
sudo rm -r /opt/google/earth/free/*-orig
for qtfile in /opt/google/earth/free/libQt*.4
do
sudo mv $qtfile $qtfile-orig
done
sudo mv /opt/google/earth/free/googleearth /opt/google/earth/free/googleearth-orig
sudo mv /opt/google/earth/free/plugins /opt/google/earth/free/plugins-orig
sudo cp -r $FILEDIR/* /opt/google/earth/free/
sudo rm /opt/google/earth/free/install.sh
echo "Done! Have a lot of fun!"


Run google-earth again, almost everything is fine:
Start up

Panoramio popup window

You can upload your photos to Panoramio

use buildin browser to view photos

360cities

3D buildings, You can type Chinese character in serch area

Welcome to Taichung

Street view

Start up with Japanese UI

Mt. Fuji 富士山·ふじさん

Start up with EN UI

Grand Canyon

One of 360 cities photos of Grand Canyon

Defect:
It's sad that flash can't work properly with embedded pop-up window


Click on video screen window to watch from youtube in build-in browser


Youtube layer also use flash

Have to link to website


7. Note
(1). If relative bug not solved yet, after updating google-earth or fontconfig,You must re-run that script again
(2). Tested OK on openSUSE 11.3 x86 system and openSUSE 11.4 x84_64 system
(3). Ubuntu user can try rmtk313's package