Android Studio: /dev/kvm device permission denied

后端 未结 27 3145
鱼传尺愫
鱼传尺愫 2020-12-02 03:12

When I try to run my Android app on an emulator I get this error:

/dev/kvm permission denied.

I checked the permissions and ad

27条回答
  •  既然无缘
    2020-12-02 04:05

    Although KVM is a module built into the Linux kernel itself, it doesn't mean that all the necessary packages are included in your Ubuntu/Linux install by default. You'll need a few to get started, and they can be installed with this command in the terminal:

    & sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager    
    

    Configure the network bridge

    In order for your virtual machines to access your network interface and be assigned their own IP addresses, we need to configure bridged networking on our system.

    First, run the following Linux command in order to find out what name your network interface has been assigned. Knowing this will allow us to do additional configuration later.

    $ ip a     
    

    In my case, the network interface is called enp2s0. Yours will likely be very similarly named.

    In order to tell Ubuntu that we want our connection to be bridged, we'll need to edit the network interfaces configuration file. Doing this won't negatively impact your connection at all. It'll just allow that connection to be shared with the VMs.

    Use code (Visual Studio Code) or your favorite text editor to open the following file:

    $ code /etc/network/interfaces     
    

    When you first open this file, it may be empty or contain just a couple of lines. Your bridge interface is called br0, so add the following line for the interface to come up by default:

    auto br0    
    

    Below this line, add the following line for your current network interface (the one who's named you determined earlier).

    iface enp2s0 inet manual
    

    Next, you can add the bridge information. These lines tell Ubuntu that your bridge will use DHCP for automatic IP address assignment, and your bridge will manage your current interface.

    iface br0 inet dhcp
          bridge_ports enp2s0
    

    This is how your file should look once all the changes have been applied (if you also have a couple of lines that were already there, it's fine to have them too):

    Save your changes and exit the file.

    Add your user to the groups

    In order to manage your virtual machine(s) without root privileges, your user will need to belong to two user groups. Run the following commands to add your user to the appropriate groups (replacing user1 with the name of your user):

    $ sudo adduser user1 libvirt
    $ sudo adduser user1 libvirt-qemu
    $ sudo adduser user1 kvm
    

    When you're done, you should restart your system to ensure that all of the changes done to your user and network configuration have a chance to take effect.

提交回复
热议问题