สิทธิ์การใช้งานอุปกรณ์ Android Studio: / dev / kvm ถูกปฏิเสธ


556

เมื่อฉันพยายามเรียกใช้แอพ Android บนตัวจำลองฉันได้รับข้อผิดพลาดนี้:

ปฏิเสธการอนุญาต / dev / kvm

ฉันตรวจสอบสิทธิ์แล้วเพิ่มผู้ใช้ที่ฉันเข้าสู่ระบบด้วยกลุ่ม kvm เกิดอะไรขึ้น?

คำตอบ:


869

ตามที่ระบุไว้ในความคิดเห็นที่เริ่มต้นด้วยUbuntu 18.04และลินุกซ์มิ้นท์ธาราsudo apt install qemu-kvmคุณต้องแรก

เพื่อตรวจสอบความเป็นเจ้าของในการ/dev/kvmใช้งาน

ls -al /dev/kvm

ผู้ใช้เป็นกลุ่มroot kvmเพื่อตรวจสอบผู้ใช้ที่อยู่ในkvmกลุ่มให้ใช้

grep kvm /etc/group

สิ่งนี้กลับมา

kvm:x:some_number:

ในระบบของฉัน: เนื่องจากไม่มีสิ่งใดที่ถูกต้องในรอบสุดท้าย:จึงไม่มีผู้ใช้ในkvmกลุ่ม

ในการเพิ่มผู้ใช้ของคุณไปยังกลุ่ม kvmคุณสามารถใช้

sudo adduser $USER kvm

grep kvm /etc/groupซึ่งจะเพิ่มผู้ใช้ไปยังกลุ่มและตรวจสอบอีกครั้งกับ

ดังที่ @marcolz พูดถึงคำสั่งnewgrp kvmควรเปลี่ยนความเป็นสมาชิกกลุ่มแบบสดๆให้คุณ หากไม่ได้ผล @Knossos พูดถึงว่าคุณอาจต้องการออกจากระบบและกลับเข้ามาใหม่ (หรือรีสตาร์ท) เพื่อให้การอนุญาตมีผล หรือทำตามที่@nmirceac กล่าวถึงsu - $USERอีกครั้งเข้าสู่ระบบในเปลือกเดียวกันผ่าน


124
หลังจากติดตั้งqemu-kvmและเพิ่มผู้ใช้ของฉันในกลุ่มkvmมันไม่ทำงาน แต่มันทำหลังจากรีสตาร์ทคอมพิวเตอร์ (Ubuntu 18.04)
sdlins

7
เกิดอะไรขึ้นถ้าผู้ใช้เป็นและกลุ่มที่เป็นroot rootเราควรเปลี่ยนกลุ่มหรือไม่
Michael Fulton

4
ฉันต้องทุกครั้งที่ฉันเปิดพีซี sudo chown -R ชื่อผู้ใช้: ชื่อผู้ใช้ / dev / kvm ขั้นตอนเหล่านี้ช่วยให้ฉันปวดหัวทุกครั้ง Thansk @ serv-inc ควรได้รับการยอมรับว่าเป็นคำตอบที่ถูกต้อง
Sajid Zeb

3
คุณสามารถใช้คำสั่งนี้เพื่อเพิ่มผู้ใช้ปัจจุบันใน kvm โดยอัตโนมัติsudo adduser $USER kvm
Munish Chandel

16
ฉันต้องการให้สิทธิ์การเป็นเจ้าของ kvm แก่ผู้ใช้ด้วย: sudo chown $USER /dev/kvm
IvánRodríguez Torres

534

นี่คือวิธีที่ฉันได้มาเพื่อทำงานในUbuntu 18.04

sudo apt install qemu-kvm

เพิ่มผู้ใช้ของคุณไปยังกลุ่ม kvm โดยใช้:

sudo adduser <Replace with username> kvm

หากยังคงแสดงสิทธิ์ที่ถูกปฏิเสธ :

sudo chown <Replace with username> /dev/kvm

ลองมัน.


2
บันทึกวันของฉันด้วยคำตอบสุดท้ายของคุณ
Sathish Sundharam

14
ขั้นตอนที่ 2 อาจต้องรีบูต
Jakob Eriksson

10
คุณไม่ควรเปลี่ยนความเป็นเจ้าของ/dev/kvm/โฟลเดอร์ คุณควรเพิ่มผู้ใช้ในkvmกลุ่มแทนในคำตอบนี้: stackoverflow.com/a/45749003/1213934
ออกจากระบบ

3
@JakobEriksson มันต้องมีหนึ่งเพื่อเข้าสู่ระบบอีกครั้ง การเริ่มต้นใหม่จะถูกสงวนไว้สำหรับ Windows (และการปรับปรุง systemd) ;-)
ลำธาร

3
ใช่เช่นเดียวกับ @logoff ได้แนะนำคุณไม่ควรเปลี่ยนความเป็นเจ้าของ / dev / kvm เพราะการทำเช่นนั้นคุณจะทำลาย ACL เริ่มต้นของระบบ Linux ซึ่งไม่ใช่วิธีปฏิบัติด้านความปลอดภัยที่ดี ทำตามคำแนะนำนี้แทน: stackoverflow.com/a/45749003/7206497
eVagabond

33

ลองสิ่งนี้มันใช้งานได้สำหรับฉัน:

  1. sudo apt install qemu-kvm

  2. sudo chown -R <username>:<username> /dev/kvm –


1
คุณอาจต้องทำการเชื่อมต่อใหม่เพื่อให้มีผล
Vadim Peretokin

6
นี่เป็นคำถามที่น่าสงสัยเพราะมันถือว่าระบบหลายผู้ใช้เป็นระบบผู้ใช้คนเดียว ผู้ใช้รายอื่นจะไม่สามารถใช้ KVM เมื่อทำตามวิธีนี้ นั่นเป็นความคิดที่ดีหรือไม่? ฉันสงสัยมัน ...
arkascha

1
โซลูชันนี้ผิดปกติเนื่องจากแก้ไขสิทธิ์เริ่มต้นเป็น / dev / kvm ไม่ใช่ว่าจะไม่คงอยู่ระหว่างการรีบูตระบบ / การอัพเดท นอกจากนี้ยังปรับเปลี่ยนการตั้งค่าระบบด้วย อยู่ห่าง ๆ.
andrzejwp

อย่าทำchown- เพิ่มชื่อผู้ใช้ของคุณไปยังกลุ่มที่เหมาะสม - kvm หรือ libvirt ดูเอกสารสำหรับ [ help.ubuntu.com/community/KVM/Installation](Ubuntu)
ไดสุเกะอารามากิ

ทำไมคุณถึง chown ไฟล์อุปกรณ์ซ้ำ? นอกจากนี้สิ่งที่มีคำต่อท้าย? นี่ทำให้เกิดข้อผิดพลาดอย่างแน่นอน
maxschlepzig

29

คุณได้ลองทำตามวิธีนี้แล้วก็ควรจะได้ผล:

sudo chown <username> /dev/kvm
sudo chmod o+x /dev/kvm

1
chmod o+xไม่มีประโยชน์อย่างสมบูรณ์ คำสั่งแรกทำให้มันทำงาน - แต่ดูความคิดเห็นอื่น ๆ ของฉันลงไปทำไมนี่เป็นความคิดที่ไม่ดี
Gerd

1
ใช้งานได้ แต่ไม่มีการรีบูต ฉันใช้ POP OS อยู่!
Arka Prava Basu

1
การแก้ปัญหานี้จะ plaing /dev/kvmผิดเป็นปรับเปลี่ยนสิทธิที่จะเริ่มต้น ไม่ใช่ว่าจะไม่คงอยู่ระหว่างการรีบูตระบบ / การอัพเดท นอกจากนี้ยังมีผลบังคับใช้แก้ไขการตั้งค่าระบบ อยู่ห่าง ๆ.
andrzejwp

สิ่งนี้ไม่คงอยู่นานกว่าการรีบูต udev daemon อาจปรับสิทธิ์อีกครั้งระหว่างรันไทม์และให้สิทธิ์บิตที่อนุญาตให้เรียกใช้แก่ผู้อื่นซึ่งไม่จำเป็น
maxschlepzig

27

นี่เป็นเพราะ/dev/kvmไม่สามารถเข้าถึงได้ ที่จะทำให้สามารถเข้าถึงได้จากสตูดิโอ Android เรียกใช้คำสั่งด้านล่าง

sudo chmod 777 -R /dev/kvm

มันจะขอรหัสผ่านของคุณ หลังจากนั้นให้รีสตาร์ท Android Studio

KVMจำเป็นต้องใช้รัมอิมัลเตอร์ หากคุณยังไม่ได้ติดตั้งให้ติดตั้ง

sudo apt install qemu-kvm

คำตอบนี้ได้หลอกลวงในกรณีของฉันหลังจากทำตามคำตอบ upvoted ที่สุด! ขอบคุณ!
Crono

1
อย่าทำอย่างนั้น. ดูคำตอบของฉันด้านบน
andrzejwp

@andrzejwp: คำตอบคืออะไร ฉันไม่เห็นคำตอบจากคุณ เมื่อพิจารณาถึงความแน่วแน่ของคุณเกี่ยวกับคำตอบของคุณคุณสามารถลิงก์ไปยังคำตอบได้หรือไม่
Dan Dascalescu

ทำไมคุณถึงวนซ้ำ ( -R) เปลี่ยนการอนุญาตในไฟล์อุปกรณ์เดียว? นอกจากนี้สิทธิ์ดำเนินการจะไม่จำเป็น ในที่สุด udev อาจปรับเปลี่ยนการอนุญาตหลังจากการจำลองแต่ละครั้งเริ่มต้น
maxschlepzig

25
sudo chown $USER /dev/kvm

เพียงแค่เรียกใช้คำสั่งเดียวที่ทำงานกับฉันที่นี่ในเดือนกันยายน 2019 ที่ทำงานอยู่:

คำอธิบาย: Ubuntu 18.04.3

LTS ที่วางจำหน่าย: 18.04

สมญานาม: ไบโอนิค


1
อย่าทำอย่างนั้น. ดูคำตอบของฉันด้านบน
andrzejwp

1
@andrzejwp คำตอบของคุณอยู่ที่ไหน มันอยู่ในความคิดเห็นหรือไม่? หากเป็นเช่นนั้นมันอาจถูกยุบและฉันมองไม่เห็น ฉันค้นหาหน้าแท็กผู้ใช้ของคุณแล้ว แต่ไม่พบ ฉันมีความสุขที่จะลองคำตอบของคุณ - เพราะคำตอบของฉันไม่ถูกต้อง (ไม่ยืนยัน) - แต่ฉันหามันไม่เจอ ออกจากลิงค์หรือสร้างคำตอบใหม่แล้วฉันจะลอง
raddevus

ใช้คำตอบที่ได้รับคะแนนสูงสุด อย่าใช้ chmod / chown
andrzejwp

@andrzejwp: โปรดลิงค์ไปยังคำตอบของคุณแทนที่จะพูดว่า "เหนือ" จะเกิดอะไรขึ้นถ้าคำตอบของคุณต่ำกว่าคำตอบที่คุณแสดงความคิดเห็นไว้
Dan Dascalescu

สิ่งนี้ไม่ได้คงอยู่นานกว่าการรีบูตและ udev daemon อาจปรับความเป็นเจ้าของอีกครั้ง/dev/kvmระหว่างรันไทม์
maxschlepzig

21

ฉันใช้ Ubuntu 18.04 ฉันกำลังเผชิญกับปัญหาเดียวกัน ฉันรันคำสั่งส่วนนี้ในเทอร์มินัลและแก้ไขปัญหาได้แล้ว

sudo chown $USER /dev/kvm

คำสั่งดังกล่าวสำหรับผู้ใช้ทั้งหมดที่มีอยู่ในระบบของคุณ

หากคุณต้องการให้สิทธิ์การเข้าถึงแก่ผู้ใช้ที่ระบุเท่านั้นให้รันคำสั่งนี้

sudo chown UserNameHere /dev/kvm

1
ไม่นี่ไม่ใช่สิ่งที่คุณควรทำ ดูคำตอบของฉันด้านบน
andrzejwp

คำตอบนี้แตกต่างจากคำตอบของ @raddevus ที่เขาโพสต์เมื่อหนึ่งเดือนก่อนอย่างไร
maxschlepzig

20

นี่เป็นคำตอบสั้น ๆ ของGerd

เปิดเทอร์มินัลและเรียกใช้คำสั่งต่อไปนี้

sudo groupadd -r kvm

sudo gedit /lib/udev/rules.d/60-qemu-system-common.rules

เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ที่เปิดและบันทึก

KERNEL == "kvm", GROUP = "kvm", MODE = "0660"

ในที่สุดก็วิ่ง:

sudo usermod -a -G kvm <your_username>

รีบูทพีซีของคุณแล้วเสร็จ!


นี่คือคำแนะนำที่ไม่ดี /lib/udev/rules.dไม่เคยแก้ไขโดยตรงภายใต้การกำหนดค่า udev udev มีกลไกการซ้อนทับที่วางไว้ในการตั้งค่ามีความสำคัญมากกว่าภายใต้พร้อมใช้งานอย่างใดอย่างหนึ่ง/etc/udev/rules.d /lib/udev/rules.d
maxschlepzig

ฉันไม่ใช่ผู้ใช้ Linux มืออาชีพมันเป็นวิธีแก้ปัญหาที่เหมาะกับฉันและฉันตัดสินใจที่จะรวบรัดและอ่านง่ายสำหรับผู้อื่นเช่นฉัน ขอบคุณสำหรับคำชี้แจงของคุณแม็กซ์
Nasir Jafarzadeh

15

ฉันตอบโต้ปัญหาเดียวกันและเพื่อแก้ไขปัญหานี้เพียงพิมพ์คำสั่งต่อไปนี้ในเทอร์มินัลสำหรับไคลเอ็นต์ Linux

   sudo apt-get install qemu-kvm

    // type your password

   sudo chmod 777 -R /dev/kvm

และหลังจากนั้นลองใช้โปรแกรมจำลองการทำงานมันจะทำงาน


1
พระเจ้าไม่ ดูความคิดเห็นของฉันด้านบน
andrzejwp

การติดตั้งแบบฟุ่มเฟือยของ qemu-kvm การใช้งานฟุ่มเฟือยของตัวเลือกแบบเรียกซ้ำและตั้งค่าสิทธิ์ผู้บริหารระดับสูง ยังไม่ขัดจังหวะในการรีบูตและแม้ในระหว่างรันไทม์ของ udev
maxschlepzig

13

ไม่จำเป็นต้องติดตั้งqemu-kvm(และการอ้างอิงทั้งหมด) หากคุณต้องการเรียกใช้ Android Studio Emulator

สิ่งเดียวที่คุณต้องทำคือให้สิทธิ์ผู้ใช้ในการเข้าถึง (เช่นสิ่งที่คุณลงชื่อเข้าใช้ด้วย) /dev/kvm -device

ทำในสามขั้นตอนง่ายๆ

ครั้งแรก:

สร้างkvm-Group

groupadd -r kvm

ตัวเลือก-rจะสร้างกลุ่มระบบเช่นมี GID <= 999 (ดู/etc/login.defs=>)SYS_GID_MAX )

ประการที่สอง:

/dev/kvmสิทธิ์ในการเปลี่ยนแปลง สิ่งนี้สามารถทำได้โดยเป็นส่วนหนึ่งของ - การqemu-kvmติดตั้งเนื่องจากหนึ่งในการพึ่งพากำลังติดตั้งqemu-system-common(ในระบบ Ubuntu ปัจจุบันชื่อแพคเกจอาจแตกต่างกันไป) ซึ่งจะติดตั้งไฟล์/lib/udev/rules.d/60-qemu-system-common.rulesที่มีสิ่งต่อไปนี้:

KERNEL=="kvm", GROUP="kvm", MODE="0660"

ดังนั้นหากคุณเพิ่งสร้างไฟล์/etc/udev/rules.d/60-qemu-permissions.rulesที่มีบรรทัดข้างต้นคุณก็ทำขั้นตอนแรกเสร็จแล้ว

ที่สาม:

เพิ่มชื่อผู้ใช้ของคุณไปยังกลุ่มโดยดำเนินการ

usermod -a -G kvm <your_username>- -aสิ่งสำคัญคือการเพิ่มผู้ใช้ของคุณในกลุ่ม kvm หากไม่มีสิ่งนั้นคุณจะเขียนทับการตั้งค่ากลุ่มเพื่อให้ผู้ใช้เป็นของ "kvm" เท่านั้น ...

แค่นั้นแหละ.

สำหรับการตั้งค่ากฎ udev และการตั้งค่ากลุ่มใหม่จะมีผลง่ายที่สุดในการรีบูตและลงชื่อเข้าใช้อีกครั้ง

คุณยังสามารถดำเนินการ

udevadm control --reload-rules && udevadm trigger

สำหรับการโหลดกฎใหม่ แต่คุณยังต้องออกจากระบบและลงชื่อเข้าใช้อีกครั้งโดยคำนึงถึงกลุ่มใหม่


10

ฉันใช้ linux debian และฉันก็หันไปทางเดียวกัน ในAVDของฉันแสดงข้อความ "/ dev / kvm สิทธิ์ปฏิเสธ" และฉันพยายามหาวิธีแก้ปัญหาจากนั้นสิ่งที่ฉันทำเพื่อแก้มันคือในประเภท terminal นี้:

sudo chmod -R 777 /dev/kvm

มันจะให้สิทธิ์การเข้าถึงสำหรับโฟลเดอร์ / dev / kvm จากนั้นตรวจสอบอีกครั้งในAVDของคุณข้อผิดพลาดจะหายไปหวังว่ามันจะช่วย


1
นี่เป็นสิ่งที่ผิดอย่างสมบูรณ์ อย่าทำอย่างนั้นเลย ดูความคิดเห็นของฉันด้านบน
andrzejwp

1
@andrzejwp: ความคิดเห็นด้านบน WHERE ?!
Dan Dascalescu

ตัวเลือกการเรียกซ้ำนั้นไม่จำเป็นการอนุญาตให้เรียกใช้งานนั้นไม่จำเป็น เปลี่ยนไม่คงอยู่กับการรีบูต เปลี่ยนไม่เสถียรระหว่างรันไทม์ udev
maxschlepzig

9
sudo setfacl -m u:$USER:rwx /dev/kvm

ทำงานให้ฉัน


2
ดีกว่าchownตัวอย่างทั้งหมดที่นี่ แต่ฉันจะละเว้นxจากการอนุญาต
Gerd

การเปลี่ยนแปลงไม่ได้คงอยู่นานกว่าการรีบูต
maxschlepzig

5

เพียงแค่การปรับปรุงเล็กน้อยในคำตอบของ Jerrinในการแก้ไขข้อผิดพลาดนี้กับ Ubuntu 18.04 โดยใช้$USERตัวแปรที่มีอยู่ใน bash terminal ดังนั้นคุณสามารถใช้คำสั่งต่อไปนี้สองคำสั่ง:

sudo apt install qemu-kvm

เพิ่มผู้ใช้ปัจจุบันไปยังกลุ่ม kvm

sudo adduser $USER kvm

อีกอย่างถ้าคุณยังมีปัญหาอยู่ปัญหาอีกอย่างหนึ่งสำหรับฉันคือวิธีที่ฉันติดตั้ง Ubuntu ฉันทำผิดพลาดในการตรวจสอบกล่องในระหว่างการติดตั้งสำหรับการติดตั้งซอฟต์แวร์ของบุคคลที่สามซึ่งเล่นได้ไม่ดีกับการ์ดกราฟิก nvidia ของฉันสำหรับการพัฒนา ดังนั้นผมจึงติดตั้งอูบุนตูกับซอฟต์แวร์ของบุคคลที่สามนี้ไม่ถูกตรวจสอบ

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นหลังจากการติดตั้งให้เปิดซอฟต์แวร์และอัปเดตแล้วไปที่แท็บไดรเวอร์เพิ่มเติม เลือกไดรเวอร์ที่เป็นกรรมสิทธิ์ล่าสุดที่ได้รับการทดสอบและใช้การเปลี่ยนแปลง ควรรีสตาร์ทเครื่องเพื่อให้การเปลี่ยนแปลงมีผล

ป้อนคำอธิบายรูปภาพที่นี่


3

สิ่งนี้ได้ผลสำหรับฉันบน Linux (x18) ☑หวังว่ามันจะใช้ได้ผลสำหรับคุณเช่นกัน

sudo chown hp /dev/kvm

2
ไม่เคยชินและอย่าทำอย่างนั้น
andrzejwp

การเปลี่ยนแปลงไม่คงอยู่กับการรีบูต
maxschlepzig

3

ภายใต้ Ubuntu สิทธิ์/dev/kvmมักจะมีลักษณะเช่นนี้:

$ ls -l /dev/kvm
crw-rw---- 1 root kvm 10, 232 May 24 09:54 /dev/kvm

ผู้ใช้ที่รัน Android emulator (เช่นผู้ใช้ของคุณ) จำเป็นต้องเข้าถึงอุปกรณ์นี้

ดังนั้นโดยทั่วไปมีวิธีการเข้าถึง 2 วิธี:

  • ตรวจสอบให้แน่ใจว่าผู้ใช้ของคุณเป็นส่วนหนึ่งของกลุ่ม kvm (ต้องลงชื่อเข้าใช้อีกครั้งสำหรับผู้ใช้ของคุณหลังจากการเปลี่ยนแปลง)
  • ขยายการอนุญาตของอุปกรณ์นั้นให้ผู้ใช้ของคุณเข้าถึงได้ (ต้องเปลี่ยนการกำหนดค่า udev daemon)

เพิ่มผู้ใช้ไปยังกลุ่ม KVM

ตรวจสอบว่าผู้ใช้ของคุณเป็นส่วนหนึ่งของกลุ่ม kvm หรือไม่เช่น:

$ id 
uid=1000(juser) gid=1000(juser) groups=1000(gms),10(wheel)

ถ้ามันไม่ได้เพิ่มไปกว่าด้วยเช่น:

$ sudo usermod --append --groups kvm juser

หลังจากการเปลี่ยนแปลงนั้นคุณต้องออกจากระบบและลงชื่อเข้าใช้อีกครั้งเพื่อให้การเปลี่ยนแปลงกลุ่มมีผล (ตรวจสอบอีกครั้งด้วย id )

ขยายสิทธิ์

หรือคุณสามารถเพิ่มสิทธิ์ของ /dev/kvmอุปกรณ์ได้

ตัวอย่าง:

echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' \
    | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

FWIW นี่เป็นค่าเริ่มต้นสำหรับการแจกแจงอื่น ๆ เช่น Fedora และ CentOS

lsตรวจสอบประสิทธิภาพของคำสั่งดังกล่าวกับผู้อื่น คุณควรเห็นผลลัพธ์ที่คล้ายกันด้วย:

$ ls -l /dev/kvm
crw-rw-rw-. 1 root kvm 10, 232 2020-05-16 09:19 /dev/kvm

ประโยชน์ใหญ่: คุณไม่จำเป็นต้องออกจากระบบและลงชื่อเข้าใช้อีกครั้งเพื่อให้การเปลี่ยนแปลงมีผล

องค์กรไม่แสวงหาโซลูชั่น

  • การโทรchmodและchownโดยตรงบน/dev/kvm- 1) การเปลี่ยนแปลงเหล่านี้ไม่คงอยู่ในการรีบูตและ 2) เนื่องจาก/dev/kvmสิทธิ์ถูกควบคุมโดย udev daemon มันสามารถ 'แก้ไข' การอนุญาตได้ตลอดเวลาเช่นหลังจากแต่ละอีมูเลเตอร์ทำงาน
  • การเพิ่มสิทธิ์อนุญาตให้เรียกใช้งาน/dev/kvm- อีมูเลเตอร์ของคุณต้องการสิทธิ์ในการอ่านและเขียน
  • สิทธิ์ในการเปลี่ยนแบบวนซ้ำ/dev/kvm- ฉันไม่รู้ว่าเกิดอะไรขึ้นกับมัน - ดูเหมือนว่าเป็นลัทธิคาร์โก้
  • การติดตั้งแพ็กเกจพิเศษเช่น qemu - คุณติดตั้งอีมูเลเตอร์ไว้แล้ว - คุณเพียงแค่ต้องเข้าถึง/dev/kvmอุปกรณ์

1

เปิด Terminal และบันทึกในฐานะผู้ดูแล

sudo su

ไปที่โฟลเดอร์ dev

cd /dev/

เปลี่ยนโหมด kvm

chmod 777 -R kvm

ฉันคิดว่าคุณหมายถึงcd /devแทนที่จะเป็น sudo
JJJ

ใช่ cd / dev
Damindu Lakmal

1
วิธีนี้ใช้ได้ผล แต่ต้องทำเช่นนี้ทุกครั้งที่คอมพิวเตอร์รีสตาร์ท
Lanil Marasinghe

ทำไมคุณเรียกchmodด้วย-R? การเปลี่ยนการอนุญาตซ้ำ ๆ ในไฟล์อุปกรณ์เดียว/dev/kvmนั้นไม่ได้มีประโยชน์มากนัก นอกจากนี้สิทธิ์การใช้งานจะไม่จำเป็นบนอุปกรณ์นั้น ในที่สุด udev อาจปรับ/dev/kvmสิทธิ์หลังจากการเรียกใช้แต่ละครั้ง ดังนั้นวิธีนี้จึงไม่มีประสิทธิภาพมากนัก
maxschlepzig

0

ฉันอยู่ในสถานการณ์ที่คล้ายคลึงกันโดยมีข้อผิดพลาดเกี่ยวกับการอนุญาตบน / dev / kvm ฉันได้ทำการติดตั้งที่จำเป็น แต่ไม่ได้เพิ่มผู้ใช้ในกลุ่ม kvm สิ่งที่ฉันต้องทำคือ

sudo adduser <Replace with username> kvm

และแน่นอนอย่าลืมรีสตาร์ทอินสแตนซ์ Ubuntu ของคุณ


6
ออกจากระบบ / เข้าสู่ระบบไม่เพียงพอหรือไม่
user1053510

0

ในที่สุดสิ่งที่แก้ไขให้ฉันใน Ubuntu 18.04 คือ:

sudo apt install qemu-kvm
sudo adduser $USER kvm
sudo chown $USER /dev/kvm

คำตอบของคุณแตกต่างจากคำตอบของ Mehedi Abdullah อย่างไร
maxschlepzig

-1

ฉันได้รับข้อผิดพลาดนี้หลังจากอัปเดต Ubuntu เป็น 18.04.1 ฉันเพิ่งดาวน์โหลดอิมเมจระบบใหม่สำหรับอีมูเลเตอร์หรือคุณสามารถบอกได้ว่าดาวน์โหลดอีมูเลเตอร์ใหม่และใช้งานได้สำหรับฉัน


1
สิ่งนี้จะไม่เปลี่ยนแปลงอะไรเกี่ยวกับปัญหาดั้งเดิมของ/dev/kvm-permissions
Gerd


-1

แม้ว่า KVM จะเป็นโมดูลที่ติดตั้งไว้ในเคอร์เนล Linux แต่ก็ไม่ได้หมายความว่าแพ็คเกจที่จำเป็นทั้งหมดจะรวมอยู่ในการติดตั้ง Ubuntu / Linux ของคุณตามค่าเริ่มต้น คุณจะต้องเริ่มต้นใช้งานสักเล็กน้อยและสามารถติดตั้งได้ด้วยคำสั่งนี้ในเทอร์มินัล:

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

กำหนดค่าบริดจ์เครือข่าย

เพื่อให้เครื่องเสมือนของคุณเข้าถึงอินเทอร์เฟซเครือข่ายของคุณและได้รับการกำหนดที่อยู่ IP ของตนเองเราจำเป็นต้องกำหนดค่าเครือข่ายบริดจ์ในระบบของเรา

ก่อนอื่นให้รันคำสั่ง Linux ต่อไปนี้เพื่อค้นหาว่าชื่อเครือข่ายของคุณได้รับมอบหมาย การรู้สิ่งนี้จะทำให้เราสามารถกำหนดค่าเพิ่มเติมได้ในภายหลัง

$ ip a     

กำหนดชื่อของอินเทอร์เฟซเครือข่าย

ในกรณีของฉันอินเทอร์เฟซเครือข่ายเรียกว่า enp2s0ในกรณีของฉันเชื่อมต่อเครือข่ายที่เรียกว่าคุณจะมีชื่อคล้ายกันมาก

เพื่อบอก Ubuntu ว่าเราต้องการเชื่อมต่อกับบริดจ์เราจะต้องแก้ไขไฟล์กำหนดค่าอินเทอร์เฟซเครือข่าย การทำเช่นนี้จะไม่ส่งผลเสียต่อการเชื่อมต่อของคุณเลย มันจะอนุญาตให้มีการแบ่งปันการเชื่อมต่อกับ VMs

ใช้code(Visual Studio Code) หรือโปรแกรมแก้ไขข้อความที่คุณชื่นชอบเพื่อเปิดไฟล์ต่อไปนี้:

$ code /etc/network/interfaces     

เมื่อคุณเปิดไฟล์นี้ครั้งแรกมันอาจจะว่างเปล่าหรือมีเพียงไม่กี่บรรทัด บริดจ์อินเตอร์เฟสของคุณถูกเรียกใช้br0ดังนั้นให้เพิ่มบรรทัดต่อไปนี้เพื่อให้อินเตอร์เฟสปรากฏตามค่าเริ่มต้น:

auto br0    

ด้านล่างบรรทัดนี้เพิ่มบรรทัดต่อไปนี้สำหรับอินเทอร์เฟซเครือข่ายปัจจุบันของคุณ (ชื่อที่คุณกำหนดไว้ก่อนหน้านี้)

iface enp2s0 inet manual

ถัดไปคุณสามารถเพิ่มข้อมูลบริดจ์ บรรทัดเหล่านี้บอก Ubuntu ว่าบริดจ์ของคุณจะใช้ DHCP สำหรับการกำหนดที่อยู่ IP อัตโนมัติและบริดจ์ของคุณจะจัดการอินเทอร์เฟซปัจจุบันของคุณ

iface br0 inet dhcp
      bridge_ports enp2s0

นี่คือวิธีที่ไฟล์ของคุณควรมีลักษณะเมื่อการเปลี่ยนแปลงทั้งหมดถูกนำไปใช้ (ถ้าคุณมีสองบรรทัดที่มีอยู่แล้วมันก็ดีที่จะมีมันด้วย):

ไฟล์กำหนดค่าอินเทอร์เฟซเครือข่าย

บันทึกการเปลี่ยนแปลงของคุณและออกจากไฟล์

เพิ่มผู้ใช้ของคุณในกลุ่ม

ในการจัดการเครื่องเสมือนของคุณโดยไม่มีสิทธิ์รูทผู้ใช้ของคุณจะต้องอยู่ในกลุ่มผู้ใช้สองกลุ่ม รันคำสั่งต่อไปนี้เพื่อเพิ่มผู้ใช้ของคุณไปยังกลุ่มที่เหมาะสม (แทนที่ user1 ด้วยชื่อผู้ใช้ของคุณ):

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

เมื่อเสร็จแล้วคุณควรเริ่มระบบของคุณใหม่เพื่อให้แน่ใจว่าการเปลี่ยนแปลงทั้งหมดที่ทำกับผู้ใช้และการกำหนดค่าเครือข่ายของคุณมีโอกาสที่จะมีผล


Downvote: เธรดนี้ไม่ได้เกี่ยวกับการทำให้ KVM ทำงาน มันเกี่ยวกับการละเว้นข้อความ "สิทธิ์ถูกปฏิเสธ" ในขณะที่เริ่มต้น Emulator ที่บรรจุด้วย Andoid Studio ไม่จำเป็นlibvirtและไม่จำเป็นต้องกำหนดค่าอินเทอร์เฟซ ...
Gerd

ในขณะที่ฉันยังใหม่กับการพัฒนา Android ฉันคิดว่ามันเป็นขั้นตอนส่วนใหญ่สำหรับคุณ มันไม่ขอให้คุณติดตั้งหลายแพคเกจเดียวกันแม้ว่า (คาดว่าจะพัฒนาทุก Android เพื่อตั้งอย่างถูกต้องขึ้นสะพานเป็นบิตในด้านซ้าย จำกัด แม้จะเป็นลินุกซ์พัฒนา Android.)
jpaugh

-1

ในการสร้างอุปกรณ์เสมือนใน Linux - ฉันต้องทำตามสามคำสั่งและช่วยฉันหลีกเลี่ยงปัญหาในการสร้างอุปกรณ์ avd - กระบวนการนี้ -

sudo apt install qemu-kvm
sudo adduser $USER kvm
sudo chown $USER /dev/kvm 

ดังนั้นตอนนี้คุณก็ไปได้ดีเริ่ม android studio และเริ่มสร้าง application ด้วย emulator



-4

การรันคำสั่งด้านล่างใน Ubuntu 18.04 ใช้งานได้สำหรับฉัน sudo chown -R / dev / kvm


1
ข้อแรก: อย่าเปลี่ยนความเป็นเจ้าของไฟล์ระบบ --- ข้อสอง: เนื่องจาก/dev/kvmไฟล์-Rไม่มีผล --- ข้อสาม: chownต้องการnew ownerอาร์กิวเมนต์ --- ข้อที่สี่: หลังจากรีบูตเครื่องคุณต้องทำสิ่งนี้ซ้ำแล้วซ้ำอีก
Gerd

-9

หากคุณเปิด ide ของคุณด้วย sudo คุณจะไม่ได้มีปัญหานี้


7
ทำไมบนโลกนี้ฉันต้องการสิทธิ์ sudo เพื่อพัฒนาแอพ android?
techcraver

1
การเน้นอีกครั้ง: เราต้องไม่ทำสิ่งนี้ ดูที่ gksu และ gksudo เพื่อเรียกใช้แอพ GUI เป็นรูท
Manish Raj
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.