Ubuntu上のAndroid Studioで発生した “/dev/kvm device: permission denied.” への対処
Ubuntu 18.04上のAndroid Studio 3.5の [AVD Manager] で発生した問題への対処方法を記す。
現象
Android Studioのメニューから [Tool]>[AVD Manager] を選択してAVD Managerを起動すると以下の画面が表示される。
ここで,画面上部に以下のメッセージが表示されている。
/dev/kvm device: permission denied.
UbuntuでAVDに使用する仮想マシンのデバイスである/dev/kvm
へのアクセスに失敗している。
失敗例
調べてみて,最初に試したのが「64 bit – Android Studio: /dev/kvm device permission denied – Stack Overflow」の対策だ。
/dev/kvm
の所有者を現在のユーザーに変更するといいらしい。
sudo chown $USER /dev/kvm
これにより,エラーメッセージが消えた。ただし,この方法はPCを再起動するとリセットされる。そのため,PCの起動の度に毎回コマンドの実行が必要となる。
同じ現象が「ubuntu 18.04 /dev/kvm permission denied について – Qiita」でも報告されている。
根本原因となっていないため,さらに調査を続けた。
解決策
こちらの「UbuntuにインストールしたAndroid Studioでエミュレータを新規作成する手順」の記事の手順で解決できた。
まず,問題が起きている状態では,以下のように/dev/kvm
の所有グループが設定されていなかった。
ls -al /dev/kvm
crw-rw---- 1 root root 10, 232 Feb 22 05:41 /dev/kvm
本来であれば,sudo apt install qemu-kvm
を実行すると,所有グループkvm
が/etc/group
に追加され,/dev/kvm
の所有グループがkvm
となる。実際に,Ubuntu 16.04ではそうなっていた。しかし,Ubuntu 18.04ではなっていなかった。
そこで,「KVM/Installation – Community Help Wiki」にあるKVMのインストール手順に従って,Ubuntu 18.04では以下のコマンドでKVMと関連パッケージをインストールする。
sudo apt install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
これにより,/etc/group
が以下のように追加される。
grep kvm /etc/group
kvm:x:138:
そして,/dev/kvm
の所有グループがkvm
となっている。
ls -al /dev/kvm
crw-rw---- 1 root kvm 10, 232 Feb 22 05:41 /dev/kvm
Ubuntu 18.04ではqemu-kvm
とは別のパッケージのインストールで所有グループの設定が追加されるようだ。
この状態で,以下のコマンドで現在のユーザーをkvmのグループに追加する。
sudo adduser $USER kvm
その後,再ログインか再起動で設定を反映させる。
これにより,以下のようにエラーメッセージが消えた。
結論
Ubuntu 18.04のAndroid Studio 3.5でのAVD Managerでの問題に対応した。
Andoridは組み込み開発みたいなもので,開発環境の用意が面倒くさい。
ひとつ問題を解決して,先に進んでいきたい。
“Ubuntu上のAndroid Studioで発生した “/dev/kvm device: permission denied.” への対処” に対して1件のコメントがあります。