QEMU में नेटवर्किंग के बिना होस्ट के साथ एक निर्देशिका कैसे साझा करें?


10

मेरी समस्या यह है कि मेरे डिवाइस ट्री में नेटवर्किंग डिवाइस बहुत स्थिर नहीं हैं, इसलिए मैंने सोचा कि क्यूमू और होस्ट सिस्टम के बीच एक फ़ोल्डर साझा करने का सबसे अच्छा तरीका दोनों तरफ कैश के बिना एक ही img माउंट है लेकिन qemu पर -hda विकल्प नहीं बनाता है एचडी / देव / में उपलब्ध है।

यहाँ मैं जो आदेश चलाता हूं।

./qemu-xilinx/arm-softmmu/qemu-system-arm -M xilinx-zynq-a9 -m 1024 -serial null -serial mon:stdio -dtb resources/devicetree.dtb -kernel resources/zImage -initrd resources.qemu/ramdisk.img -nographic -s

तो सवाल यह है: क्या नेटवर्किंग से बचने का एक तरीका है और अभी तक qemu और होस्ट के बीच एक साझा निर्देशिका है?

संपादित करें: मैं के साथ संकलित

./configure --target-list="arm-softmmu,microblazeel-softmmu" --enable-fdt --disable-kvm --enable-virtfs

जो कुछ भी सक्षम होना चाहिए। हालाँकि जब मैं दौड़ता हूँ

./qemu-xilinx/arm-softmmu/qemu-system-arm -M xilinx-zynq-a9 -m 1024 -serial null -serial mon:stdio -dtb /homes/cperivol/Sandbox/xilinx-zynq-bootstrap/resources/devicetree.dtb -kernel /homes/cperivol/Sandbox/xilinx-zynq-bootstrap/resources/zImage -initrd /homes/cperivol/Sandbox/xilinx-zynq-bootstrap/resources.qemu/ramdisk.img -nographic -s -fsdev local,path=/homes/cperivol/Sandbox/xilinx-zynq-bootstrap/qemu-sandbox/,security_model=passthrough,id=host0 -device virtio-9p-pci,fsdev=host0,mount_tag=host_tag0

या

./qemu-xilinx/arm-softmmu/qemu-system-arm -M xilinx-zynq-a9 -m 1024 -serial null -serial mon:stdio -dtb resources/devicetree.dtb -kernel resources/zImage -initrd resources.qemu/ramdisk.img -nographic -s -virtfs local,path=/homes/cperivol/Sandbox/xilinx-zynq-bootstrap/qemu-sandbox/,mount_tag=host0,security_model=passthrough,id=host0

मुझे मिला

No 'PCI' bus found for device 'virtio-9p-pci'

शायद मुझे यह भी उल्लेख करना चाहिए कि arm-softmmu/config-devices.makवहाँ है CONFIG_PCI=y, और निश्चित रूप से पर्याप्त pci की फ़ाइलें वहाँ हैं hw/pci

EDIT2: क्यूमू द्वारा डंप किए गए डिवाइस ट्री को देखते हुए उत्सर्जित प्रणाली में पीसीआई बस शामिल नहीं है।

(qemu) info qtree
bus: main-system-bus
  type System
  dev: xlnx.ps7-dev-cfg, id ""
    irq 1
    mmio 00000000f8007000/000000000000011c
  dev: pl330, id ""
    gpio-in 32
    num_chnls = 8
    num_periph_req = 4
    num_events = 16
    mgr_ns_at_rst = 0
    i-cache_len = 4
    num_i-cache_lines = 8
    boot_addr = 0
    INS = 0
    PNS = 0
    data_width = 64
    wr_cap = 8
    wr_q_dep = 16
    rd_cap = 8
    rd_q_dep = 16
    data_buffer_dep = 256
    irq 17
    mmio 00000000f8003000/0000000000001000
  dev: generic-sdhci, id ""
    capareg = 0x5780080
    maxcurr = 0x0
    irq 1
    mmio 00000000e0101000/0000000000000100
  dev: generic-sdhci, id ""
    capareg = 0x5780080
    maxcurr = 0x0
    irq 1
    mmio 00000000e0100000/0000000000000100
  dev: cadence_gem, id ""
    mac = 52:54:00:12:34:56
    vlan = 0
    netdev = hub0port0
    bootindex = -1
    irq 1
    mmio 00000000e000b000/0000000000000640
  dev: cadence_ttc, id ""
    irq 3
    mmio 00000000f8002000/0000000000001000
  dev: cadence_ttc, id ""
    irq 3
    mmio 00000000f8001000/0000000000001000
  dev: cadence_uart, id ""
    irq 1
    mmio 00000000e0001000/0000000000001000
  dev: cadence_uart, id ""
    irq 1
    mmio 00000000e0000000/0000000000001000
  dev: xlnx.ps7-qspi, id ""
    num-busses = 2
    num-ss-bits = 1
    num-txrx-bytes = 4
    irq 3
    mmio 00000000e000d000/0000000000000100
    mmio 00000000fc000000/0000000002000000
    bus: spi1
      type SSI
      dev: n25q128, id ""
        gpio-in 1
    bus: spi0
      type SSI
      dev: n25q128, id ""
        gpio-in 1
  dev: xlnx.ps7-spi, id ""
    num-busses = 1
    num-ss-bits = 4
    num-txrx-bytes = 1
    irq 5
    mmio 00000000e0007000/0000000000000100
    bus: spi0
      type SSI
      dev: n25q128, id ""
        gpio-in 1
      dev: n25q128, id ""
        gpio-in 1
      dev: n25q128, id ""
        gpio-in 1
      dev: n25q128, id ""
        gpio-in 1
  dev: xlnx.ps7-spi, id ""
    num-busses = 1
    num-ss-bits = 4
    num-txrx-bytes = 1
    irq 5
    mmio 00000000e0006000/0000000000000100
    bus: spi0
      type SSI
      dev: n25q128, id ""
        gpio-in 1
      dev: n25q128, id ""
        gpio-in 1
      dev: n25q128, id ""
        gpio-in 1
      dev: n25q128, id ""
        gpio-in 1
  dev: xlnx,ps7-usb, id "zynq-usb-1"
    maxframes = 128
    irq 1
    mmio 00000000e0003000/0000000000001000
    bus: zynq-usb-1.0
      type usb-bus
  dev: xlnx,ps7-usb, id "zynq-usb-0"
    maxframes = 128
    irq 1
    mmio 00000000e0002000/0000000000001000
    bus: zynq-usb-0.0
      type usb-bus
  dev: xlnx.ps7-i2c, id ""
    irq 1
    mmio 00000000e0005000/000000000000002c
    bus: i2c
      type i2c-bus
      dev: pca9548, id ""
        chip-enable = 0
        address = 0
        address-range = 128
        reg = 0
        bus: i2c@7
          type i2c-bus
        bus: i2c@6
          type i2c-bus
        bus: i2c@5
          type i2c-bus
        bus: i2c@4
          type i2c-bus
        bus: i2c@3
          type i2c-bus
          dev: at.24c08, id ""
            size = 1024
            address = 84
            address-range = 4
            reg = 84
          dev: at.24c08, id ""
            size = 1024
            address = 80
            address-range = 4
            reg = 80
        bus: i2c@2
          type i2c-bus
          dev: at.24c08, id ""
            size = 1024
            address = 84
            address-range = 4
            reg = 84
          dev: at.24c08, id ""
            size = 1024
            address = 80
            address-range = 4
            reg = 80
        bus: i2c@1
          type i2c-bus
        bus: i2c@0
          type i2c-bus
  dev: xlnx.ps7-i2c, id ""
    irq 1
    mmio 00000000e0004000/000000000000002c
    bus: i2c
      type i2c-bus
      dev: pca9548, id ""
        chip-enable = 0
        address = 0
        address-range = 128
        reg = 0
        bus: i2c@7
          type i2c-bus
        bus: i2c@6
          type i2c-bus
        bus: i2c@5
          type i2c-bus
        bus: i2c@4
          type i2c-bus
        bus: i2c@3
          type i2c-bus
          dev: at.24c08, id ""
            size = 1024
            address = 84
            address-range = 4
            reg = 84
          dev: at.24c08, id ""
            size = 1024
            address = 80
            address-range = 4
            reg = 80
        bus: i2c@2
          type i2c-bus
          dev: at.24c08, id ""
            size = 1024
            address = 84
            address-range = 4
            reg = 84
          dev: at.24c08, id ""
            size = 1024
            address = 80
            address-range = 4
            reg = 80
        bus: i2c@1
          type i2c-bus
        bus: i2c@0
          type i2c-bus
  dev: arm_mptimer, id ""
    num-cpu = 1
    irq 1
    mmio ffffffffffffffff/0000000000000020
    mmio ffffffffffffffff/0000000000000020
  dev: arm_mptimer, id ""
    num-cpu = 1
    irq 1
    mmio ffffffffffffffff/0000000000000020
    mmio ffffffffffffffff/0000000000000020
  dev: a9-scu, id ""
    num-cpu = 1
    irq 0
    mmio ffffffffffffffff/0000000000000100
  dev: arm_gic, id ""
    gpio-in 96
    num-cpu = 1
    num-irq = 96
    revision = 1
    irq 1
    mmio ffffffffffffffff/0000000000001000
    mmio ffffffffffffffff/0000000000000100
    mmio ffffffffffffffff/0000000000000100
  dev: a9mpcore_priv, id ""
    gpio-in 64
    num-cpu = 1
    num-irq = 96
    irq 1
    mmio 00000000f8f00000/0000000000002000
  dev: xilinx,zynq_slcr, id ""
    irq 0
    mmio 00000000f8000000/0000000000001000
  dev: nand, id ""
    manufacturer_id = 32
    chip_id = 170
    drive = <null>
    irq 0
  dev: cfi.pflash02, id ""
    drive = <null>
    num-blocks = 512
    sector-length = 131072
    width = 1
    mappings = 1
    big-endian = 0
    id0 = 102
    id1 = 34
    id2 = 0
    id3 = 0
    unlock-addr0 = 2730
    unlock-addr1 = 1365
    name = "pl353.pflash"
    irq 0
    mmio ffffffffffffffff/0000000004000000
  dev: arm.pl35x, id ""
    x = 3
    irq 0
    mmio 00000000e000e000/0000000000001000
    mmio 00000000e2000000/0000000001000000
    mmio 00000000e1000000/0000000001000000

जवाबों:


14

यदि अतिथि के पास 9p समर्थन (जैसे लिनक्स, या निश्चित रूप से, योजना 9) और गुण है, तो निम्न स्विच जोड़ने का प्रयास करें।

-virtfs local,path=/path/to/share,mount_tag=host0,security_model=passthrough,id=host0

आप Security_model पैरामीटर बदलना चाहते हैं। उसके लिए मैन पेज, qemu (1) देखें। अगर मुझे सही तरीके से याद है, तो माउंट_टैग मेहमान को एक डमी के रूप में छोड़कर देखता है।

सुनिश्चित करें कि यदि आप चेरोटिंग कर रहे हैं, तो मार्ग चेरोट के नीचे है। यह मेजबान पर निर्देशिका का पथ है।

अतिथि पर fstab प्रविष्टि इस तरह दिखना चाहिए।

host0   /wherever    9p      trans=virtio,version=9p2000.L   0 0

या तो अपने fstab में जोड़ें, या उपयुक्त कमांड को मैन्युअल रूप से लागू करें या अपने init सिस्टम का उपयोग करें, जो भी हो।


एक निर्देशिका या छवि के लिए पथ / पथ / / एक पथ है? इसके अलावा, मुझे लगता है कि यह असंबंधित है: मुझे मिलता हैqemu-system-arm: -virtfs local,path=/path/to/share,mount_tag=host0,security_model=passthrough,id=host0: Parameter 'driver' expects device type
fakedrake 9

1
यह उस निर्देशिका के लिए है जिसे आप साझा करना चाहते हैं।
पिलोना

1
इसके अलावा, क्या आप पुष्टि कर सकते हैं कि आपके द्वारा उपयोग किया जा रहा qemu का संस्करण कृपया 9p / virtfs समर्थन के साथ बनाया गया है? देखें इस
पिलोना

1
अच्छा सवाल है, मैं कैसे जाँच करूँ?
fakedrake

रनटाइम में, आपके qemu बाइनरी से, मुझे नहीं पता होगा। आपको अपने वितरण की बिल्ड स्क्रिप्ट की जांच करनी होगी। यह विशिष्ट है। उदाहरण के लिए, आर्क लिनक्स पर, यह मौजूद ध्वज है और मौजूद नहीं है , PKGBUILD में कॉन्फ़िगर करने के लिए पारित किया गया है।
pilona

2

न्यूनतम काम x86_64, हाथ और अराजकता के लिए 9P बिल्डरोट सेटअप काम कर रहा है

मैंने एक अत्यधिक स्वचालित बिल्डरोट वर्किंग सेटअप बनाया है जो आपको यह बताने में मदद कर सकता है कि आपका दृष्टिकोण काम क्यों नहीं कर रहा है।

मुख्य सामग्री हैं:

  • गिरी सेटिंग्स:

    CONFIG_9P_FS=y
    CONFIG_9P_FS_POSIX_ACL=y
    CONFIG_9P_FS_SECURITY=y
    CONFIG_NETWORK_FILESYSTEMS=y
    CONFIG_NET_9P=y
    CONFIG_NET_9P_DEBUG=y
    CONFIG_NET_9P_VIRTIO=y
    

    अराजकता 64 के लिए, यह भी जोड़ें:

    CONFIG_PCI=y
    CONFIG_PCI_HOST_COMMON=y
    CONFIG_PCI_HOST_GENERIC=y
    CONFIG_VIRTIO_PCI=y
    CONFIG_VIRTIO_BLK=y
    CONFIG_VIRTIO_NET=y
    

    यदि आप अराजकता 64 विन्यास जोड़ना भूल जाते हैं, और इसके mountसाथ विफल हो जाते हैं:

    mount: mounting host0 on /mnt/my9p failed: Invalid argument
    

    और dmesg के साथ शिकायत:

    9pnet_virtio: no channels available for device
    

    पर प्रलेखित: https://wiki.qemu.org/Documentation/9psetup

  • मेरी fstab प्रविष्टि और QEMU कमांड बिल्कुल इस तरह समझाई गई थी: https://superuser.com/a/628381/128124

    मैनुअल माउंट कमांड है:

    mkdir /mnt/my9p
    mount -t 9p -o trans=virtio,version=9p2000.L host0 /mnt/my9p
    

    संदर्भ के लिए, मेरी पूर्ण QEMU कमांड लाइन हैं: x86:

    ./buildroot/output.x86_64~/host/usr/bin/qemu-system-x86_64 -m 128M -monitor telnet::45454,server,nowait -netdev user,hostfwd=tcp::45455-:45455,id=net0 -smp 1 -virtfs local,path=9p,mount_tag=host0,security_model=mapped,id=host0  -M pc -append 'root=/dev/vda nopat nokaslr norandmaps printk.devkmsg=on printk.time=y' -device edu -device lkmc_pci_min -device virtio-net-pci,netdev=net0 -kernel ./buildroot/output.x86_64~/images/bzImage    -drive file='./buildroot/output.x86_64~/images/rootfs.ext2.qcow2,if=virtio,format=qcow2'
    

    हाथ:

    ./buildroot/output.arm~/host/usr/bin/qemu-system-arm -m 128M -monitor telnet::45454,server,nowait -netdev user,hostfwd=tcp::45455-:45455,id=net0 -smp 1 -virtfs local,path=9p,mount_tag=host0,security_model=mapped,id=host0  -M versatilepb -append 'root=/dev/sda nokaslr norandmaps printk.devkmsg=on printk.time=y' -device rtl8139,netdev=net0 -dtb ./buildroot/output.arm~/images/versatile-pb.dtb -kernel ./buildroot/output.arm~/images/zImage -serial stdio    -drive file='./buildroot/output.arm~/images/rootfs.ext2.qcow2,if=scsi,format=qcow2' 
    

    aarch64:

    ./buildroot/output.aarch64~/host/usr/bin/qemu-system-aarch64 -m 128M -monitor telnet::45454,server,nowait -netdev user,hostfwd=tcp::45455-:45455,id=net0 -smp 1 -virtfs local,path=9p,mount_tag=host0,security_model=mapped,id=host0  -M virt -append 'root=/dev/sda nokaslr norandmaps printk.devkmsg=on printk.time=y' -cpu cortex-a57 -device virtio-net-device,netdev=net0 -kernel ./buildroot/output.aarch64~/images/Image -nographic -serial stdio    
    

QEMU 2.11 और अतिथि लिनक्स कर्नेल 4.15 पर परीक्षण किया गया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.