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件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です