テクニカルプア

備忘録と若干の補足

QtEmuで設定できる仮想マシンのRAMの上限を拡げる

2013-09-23 追記

本文中で触れているgendeskをbuild()から呼び出す方法ではうまくいかないというのはgendesk 0.5.4におけるバグであったようだ。現在は0.5.5になり、バグも修正された(https://github.com/xyproto/gendesk)。本文での言及箇所には打ち消し線を引いた。

 

 QtEmuというのはQEMUGUIで扱うためのソフトウェアだ。

 QtEmuで仮想マシンをいじくるとき、RAMを1024MBまでしか割り当てられないのがけっこう不満だった。ある機会があってVirtualBoxを使った時、こいつはシステムが許す限りのRAMを割り当てることができて、RAM割り当てたい欲を満足することができた。

 QtEmuが仮想マシン管理のためにつくるXML(<仮想マシン名>.qte)のmemory要素をいじくってみても変更は反映されず、どうしたもんかなあと悩んでいたが、先程、ソースコードをいじればいいのだという着想を得た。得るのが遅すぎる。

 とりあえずQtEmuのソースを落としてきて、"1024"MBの制限を掛けているということから

$ find . -name '*.cpp' -print | xargs grep 1024

全文検索を掛けた結果、machinetab.cppがそれらしいという反応を得た。このファイル中の1024を軒並み4096に変更したら、仮想マシンに4096MBまでRAMを割り当てることができるようになった。RAM割り当てたい欲を満たすことができるようになった。

 パッチを書いた。手で書き換えるよりはマシだと思う。

自動的にこのパッチをあてて、https://wiki.archlinux.org/index.php/DeveloperWiki:Removal_of_desktop_filesに沿ったgendeskを行うためのPKGBUILD用パッチも書いた。

 

 このgendeskだが、https://wiki.archlinux.org/index.php/DeveloperWiki:Removal_of_desktop_fileshttps://wiki.archlinux.org/index.php/Desktop_Entriesで扱い方が異なっているのだけれども、どちらがよいのだろう。prepare()から叩くほうがわかりやすいかなと思うのだけれど。あとbuild()から叩いた場合うまく動いてくれず、prepare()からだと動いた。環境依存かもしれず怖い。