星期四, 6月 14, 2012

Run eagle-5.11.0 in Ubuntu 12.04 x86_64

以前使用Eagle 5.11.0在Ubuntu 11.10 x86的平台上,因為二者都是32bit所以執行上不會有任何問題。後來公司根據老電腦淘汰原則換掉了手上用了五年多的筆電,新NB的CPU是i5加上8G的記憶體,所以就安裝的Ubuntu 12.04 x86_64,這樣一來系統是可以發揮不錯的效能。

之前在Ubuntu 11.10時有用內建的備份軟體備份home下的資料,所以在回覆home時就特別方便,包括thunderbird,pidgin,skype等設定資料都一併回復。

直到平時拿來畫電路圖/設計電路板的軟體eagle-5.11.0因該公司沒有出x86_64位元的版本所以踢到鐵板,只有試著找看看G大神有沒有辦法該x86_64的Ubuntu跑x86的程式。運氣很好沒多少就找到了做法:
https://help.ubuntu.com/community/DebootstrapChroot
照著作在/32目錄下安裝屬於32bit所需的工作環境。
#vi /etc/schroot/chroot.d/Ubuntu32
------------------
[Ubuntu32]
description=Ubuntu 12.04LTS 32-bit
directory=/32
type=directory
personality=linux32
users=user,root
groups=users,root
------------------------
#debootstrap --arch i386 precise /32 http://archive.ubuntu.com/ubuntu
#schroot -l
chroot:Ubuntu32
#sudo -c
#schroot -c Ubuntu32
#apt-get install libxcursor1
#apt-get install libjpeg62 libjpeg8
------------------------
這時執行schroot -c Ubuntu32 就會切換成32位元的執行環境,此時下指令df會發現mount目錄缺少USB自動掛載的目錄在/media下,解決辦法為編輯vi /etc/schroot/mount-defaults,加入下列這一行:
/media /media none rw,rbind 0 0


寫一支script拿來準備eagle所要的32bit環境:

#vi eagle.sh
#!/bin/sh
export LANG=C
export LC_ALL=C #遇到中文無法顯示問題,沒關係改用英文顯示
schroot -c Ubuntu32 -p ~/eagle-5.11.0/bin/eagle $1


成功招喚出魔獸神鳥eagle,解決了32位元程式在64位元Ubuntu下不能執行的問題。

沒有留言: