QEMU上のARM64版Debian Busterでrosetta@homeのRosetta for Portable Devicesのタスクをこなす

いやー、ちゃんとQEMU使ったことないから苦戦した
ホストOSからsshでゲストOSに繋ぐこともしたかったけどめんどくなって諦めた(


QEMU4.0.0 のハードウェアエミュレーションモードで Debian Buster aarch64 のOSイメージをゼロから作成する方法 (Kernel 4.19.0-6-arm64, Tensorflow aarch64ビルド用) - Qiita
QEMUdebianを使う際のインストールで一番役に立ったのはこの記事。
殆どこの記事を見ながらやったようなもんだから、わかる人ならこのqiitaの記事で進めるのもいいと思う


とりあえず、また苦戦したり手こずったりしないためにも、自分用メモも兼ねて書いておく。
手順はさっきのqiitaの記事をもとに自分好みにいじっただけ。


まず準備として、
http://http.us.debian.org/debian/dists/buster/main/installer-arm64/current/images/netboot/debian-installer/arm64/
このページからlinuxとinitrd.gzを落としてくる


qemu-img create -f qcow2 hda.qcow2 32G
このコマンドで32Gくらいのサイズとして認識されるhda.qcow2という名前のqcow2形式の仮想ハードディスクを作る。
これで準備は完了
linuxとinitrd.gzとhda.qcow2があることを確認して次へ


qemu-system-aarch64 -M virt -m 2G -cpu cortex-a72 -smp 8 -kernel linux -initrd initrd.gz -drive if=none,file=hda.qcow2,format=qcow2,id=hd -device virtio-blk-pci,drive=hd -netdev user,id=mynet -device virtio-net-pci,netdev=mynet -no-reboot
このコマンドで起動


でてくるウインドウのviewのとこからserial0を選択


あとはubuntu serverをインストールするときみたいに色々やる
そして完了するとqemuが終了する
7zipでhda.qcow2を開き、その中にある0.imgを開き、vmlinuz-4.19.0-8-arm64とinitrd.img-4.19.0-8-arm64を取り出す


qemu-system-aarch64 -M virt -m 2G -cpu cortex-a72 -smp 8 -kernel vmlinuz-4.19.0-8-arm64 -initrd initrd.img-4.19.0-8-arm64 -append 'root=/dev/vda2' -drive if=none,file=hda.qcow2,format=qcow2,id=hd -device virtio-blk-pci,drive=hd -netdev user,id=mynet -device virtio-net-pci,netdev=mynet -no-reboot
このコマンドで起動

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
んで、ここからがBOINC入れて動かすとこ
rosetta@homeのアカウントは既に持ってる前提でやる
コマンドラインだけでやる


sudo apt-get install boinc-client
BOINCを入れる


gpasswd -a boinc [username]
boincグループに[username]を追加
[username]のとこにユーザー名入れてEnter


boinccmd --lookup_account http://boinc.bakerlab.org/rosetta/ [mail] [password]
サインインに使うメールとパスワード入力してEnter
するとアカウントキーが表示される


boinccmd --project_attach http://boinc.bakerlab.org/rosetta/ [account key]
アカウントキーを入力してEnter


実際にやって確認しながらこれ書いてて、
タスク降ってこなくて「?」ってなったんだけど、
そういえば2020年4月10日11時54分現在、「Rosetta for Portable Devices」の未送出タスクが0になってるからそりゃそうだった


というわけで、あとは待てば勝手にタスク降ってきてやってくれるはずなんだけど・・・
割り当てられたコアの使用率が100%いくから、tthrottleで確認するとそのコアだけ他のコアと比べて温度がどんどん高くなるんだよね・・・
精神衛生上凄くよくない・・・


Rosetta for Portable Devicesのタスクが0になったとこを一度も見たこと無かったし、そのタスクをこなす人が増えてくれるといいなということで始めてみたこととはいえ、
Rosetta for Portable Devicesの未送出タスクが0になるくらい人が多くなった今、わざわざやるほどでもないかなって、今となっては思う


boinccmdで使えるオプションについて書かれてるサイトのっけとく。
https://boinc.berkeley.edu/wiki/Boinccmd_tool
http://www.maruko2.com/mw/boinc