似乎自從上一次的系統全面套件更新後,系統中的Picasa就開始不太正常了。發生了無法啟動的現象,因為在XWindow下看不到任何的錯誤訊息,只能
確認一件事,就是他掛了,無法正常啟動。改由console指令模式來呼叫,通常想知道程式的錯誤訊息,只要透過console來執行大都可以得到一些訊
息。經由console執行picasa的結果,果然出現錯誤訊息,如下:
/usr/bin/picasa: line 139: 18028 程式記憶體區段錯誤
"$PIC_BINDIR"/wrapper check_dir.exe.so
/usr/bin/picasa: line 175:
18135 程式記憶體區段錯誤
"$PIC_BINDIR/wrapper" regedit /E $registry_export
HKEY_USERS\\S-1-5-4\\Software\\Google\\Picasa\\Picasa2\\Preferences\\
“程
式記憶體區段錯誤”,一看到這個資訊,直覺告訴我可能是Picasa的檔案有損毀造成的,於是試著把Picasa套件從系統中
移除再重新安裝一次。不過很可惜並沒有成功,依舊是如此。我的picasa是裝google提供的linux下的版本,並不是使用windows下的版
本。所以picasa自己使用著另外一套wine套件,並沒有和我系統中的wine共用,所以第二個懷疑的便是wine是否出了問題,透過google查
詢找到了一件有趣的事情,資
料就在wine的官方網站上。這個bug就發生在最近,系統更新完後我的kernel和wine也一起更新了,就出問題了。雖然官方
網站上顯示的錯誤訊息和我得到的並不相同,
preloader: Warning: failed to reserve range 00000000-60000000
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space,
please report
但似乎是相同的原因導致的,估且一試,果然是可以的。只要在執行picasa之前,先執行一次以下的指令,就可以正常的啟動Picasa了。
有
些網友反應一但發現有這個問題時,千萬不要使用root權限去執行,據說一旦在有問題的情況下使用root執行了picasa,將會導致picasa無法
再使用。我運氣好,沒有用root來試軟體的習慣,不過也不敢試,因為手邊只有這一台NB,如果玩掛了,手邊現在沒有充足的資源可以修復系統,將會很慘
的。還請各位朋友注意一下這一點。
$ sudo
/sbin/sysctl -w vm.mmap_min_addr=0
/sbin/sysctl -w vm.mmap_min_addr=0
如果不想在每次執行前都這麼做的話,可以依照以下的步驟做變更,之後開機後系統就會自行幫你做這個動作。
$ sudo
gedit /etc/sysctl.conf
gedit /etc/sysctl.conf
修改/etc/sysctl.cof這個檔案。在檔案中尋找以下這行:
vm.mmap_min_addr
= 65536
= 65536
改成以下這行
vm.mmap_min_addr = 0
把這個值改成0的話,似乎是對系統的安全性降低了一些些,但影響不算大,但目前暫時只能用這個解決,期待下一版的wine可以解決掉這個問題,就不用再改
動這值了。
PS. 如果改好之後picasa還是不能正常執行的話,再附加上一個動作。把個人目錄下的.picasa目錄刪除掉,再試一次。
# rm
-rf ~/.picasa/
-rf ~/.picasa/
[1] | “PreloaderPageZeroProblem - The Official Wine Wiki”; http://wiki.winehq.org/PreloaderPageZeroProblem. |
沒有留言:
張貼留言