You are not logged in.

#1 2022-03-13 00:03:30

860lacov
Member
Registered: 2020-05-02
Posts: 497

How to passtrough USB device to qemu vm?

I tried to pass trough my pendrive but I wasn't able to.
I found
USB Pass trough

My device is:

lsusb
Bus 004 Device 002: ID 13fe:6300 Kingston Technology Company Inc. SP Mobile C31 (64GB)

With the firts wiki suggestion I wrote something like this:

qemu-system-x86_64 -enable-kvm -cpu host -boot menu=on -drive file=Windows7.img -m 8G -vga virtio -display sdl,gl=on -device qemu-xhci,id=xhci -device usb-host,bus=xhci.0,vendorid=0x13fe,productid=0x6300

I was able to start the VM but the USB device wasn't there. With -boot menu=on I have boot menu inside VM but there is no entry with USB drive.

Then I tried:

qemu-system-x86_64 -enable-kvm -cpu host -boot menu=on -drive file=Windows7.img -m 8G -vga virtio -display sdl,gl=on -device qemu-xhci,id=xhci -device usb-host,hostdevice=/dev/bus/usb/004/002
qemu-system-x86_64: -device usb-host,hostdevice=/dev/bus/usb/004/002: failed to open /dev/bus/usb/004/002: Permission denied

I seem like it could work but I've got Permission denied message.


p.s.
I wanted to try aqemu, but I can't even run it.
When I try there is:

AQEMU Warning [2] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-arm" element!

AQEMU Warning [3] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-cris" element!

AQEMU Warning [4] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-m68k" element!

AQEMU Warning [5] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-microblaze" element!

AQEMU Warning [6] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-mips" element!

AQEMU Warning [7] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-mips64" element!

AQEMU Warning [8] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-mips64el" element!

AQEMU Warning [9] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-mipsel" element!

AQEMU Warning [10] >>>
[jm@spin qemu]$ aqemu 

AQEMU Warning [2] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-arm" element!

AQEMU Warning [3] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-cris" element!

AQEMU Warning [4] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-m68k" element!

AQEMU Warning [5] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-microblaze" element!

AQEMU Warning [6] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-mips" element!

AQEMU Warning [7] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-mips64" element!

AQEMU Warning [8] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-mips64el" element!

AQEMU Warning [9] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-mipsel" element!

AQEMU Warning [10] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-ppc" element!

AQEMU Warning [11] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-ppc64" element!

AQEMU Warning [12] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-ppcemb" element!

AQEMU Warning [13] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-sh4" element!

AQEMU Warning [14] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-sh4eb" element!

AQEMU Warning [15] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-sparc" element!

AQEMU Warning [16] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-sparc64" element!
Segmentation fault (core dumped)

Last edited by 860lacov (2022-03-13 00:04:07)

Offline

#2 2022-03-13 11:34:27

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,889

Re: How to passtrough USB device to qemu vm?

You may need to use a custom udev rule to solve the permission denied messages, see the first colored note in usb passtrough section.

about the aqemu error :
there's a comment on the aqemu wiki page that mentions getting the same error when aqemu is build with clang .
Have you tried building aqemu with gcc ?

Last edited by Lone_Wolf (2022-03-13 11:34:46)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#3 2022-03-18 17:28:01

860lacov
Member
Registered: 2020-05-02
Posts: 497

Re: How to passtrough USB device to qemu vm?

Lone_Wolf wrote:

You may need to use a custom udev rule to solve the permission denied messages, see the first colored note in usb passtrough section.

about the aqemu error :
there's a comment on the aqemu wiki page that mentions getting the same error when aqemu is build with clang .
Have you tried building aqemu with gcc ?

Thank you. I don't understand how to use/create custom udev rules so I'll try to find another solution.

As for the aqemu build. I installed it with pikaur from AUR.

Offline

#4 2022-03-19 11:44:24

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,889

Re: How to passtrough USB device to qemu vm?

gcc and clang are compilers used to convert sourcecode to binaries, aur helpers don't influence them.

Archlinux uses gcc by default, but users can use environment variables to use clang instead.

This is usually done by making changes in the PKGBUILD to force the use of clang..


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#5 2022-03-22 16:42:23

860lacov
Member
Registered: 2020-05-02
Posts: 497

Re: How to passtrough USB device to qemu vm?

At the end I'm trying to learn how to use udev rules.
Is this correct that
one rule is for one device only?
Or I can create a rule that will take care of my every SanDisk pendrive? Or for every pendrive?

Can I damage my system If I create incorrect rule?

Could you please tell me if I understand correctly.

With udevadm info I can get parameters that will identify my device. In example below there is my pendrive.
Am I correct that I can take pretty much anything from the info?

And if I want to set udev rule I have to create file. For example:

10-SanDisk.rules and put it into /etc/udev/rules.d/

I created testing reule for my pendrive:

SUBSYSTEM=="block", ATTRS{idProduct}=="0003", ATTRS{idVendor}=="1d6b", OWNER="jm", GROUP="jm",  MODE="0666"

With example above everyone on my system shoul have permission to read and write on this pendrive?

I tested this and I don't have read, write permission so it seems that I dod something wrong.



udevadm info -ap /devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1':
    KERNEL=="sda1"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{alignment_offset}=="0"
    ATTR{discard_alignment}=="0"
    ATTR{inflight}=="       0        0"
    ATTR{partition}=="1"
    ATTR{power/control}=="auto"
    ATTR{power/runtime_active_time}=="0"
    ATTR{power/runtime_status}=="unsupported"
    ATTR{power/runtime_suspended_time}=="0"
    ATTR{ro}=="0"
    ATTR{size}=="122550272"
    ATTR{start}=="2048"
    ATTR{stat}=="      90        6     4626       86        1        0        8        0        0       77       86        0        0        0        0        0        0"
    ATTR{trace/act_mask}=="disabled"
    ATTR{trace/enable}=="0"
    ATTR{trace/end_lba}=="disabled"
    ATTR{trace/pid}=="disabled"
    ATTR{trace/start_lba}=="disabled"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host0/target0:0:0/0:0:0:0/block/sda':
    KERNELS=="sda"
    SUBSYSTEMS=="block"
    DRIVERS==""
    ATTRS{alignment_offset}=="0"
    ATTRS{capability}=="41"
    ATTRS{discard_alignment}=="0"
    ATTRS{diskseq}=="3"
    ATTRS{events}=="media_change"
    ATTRS{events_async}==""
    ATTRS{events_poll_msecs}=="-1"
    ATTRS{ext_range}=="256"
    ATTRS{hidden}=="0"
    ATTRS{inflight}=="       0        0"
    ATTRS{integrity/device_is_integrity_capable}=="0"
    ATTRS{integrity/format}=="none"
    ATTRS{integrity/protection_interval_bytes}=="0"
    ATTRS{integrity/read_verify}=="0"
    ATTRS{integrity/tag_size}=="0"
    ATTRS{integrity/write_generate}=="0"
    ATTRS{mq/0/cpu_list}=="0, 1, 2, 3, 4, 5, 6, 7"
    ATTRS{mq/0/nr_reserved_tags}=="0"
    ATTRS{mq/0/nr_tags}=="1"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{queue/add_random}=="1"
    ATTRS{queue/chunk_sectors}=="0"
    ATTRS{queue/dax}=="0"
    ATTRS{queue/discard_granularity}=="0"
    ATTRS{queue/discard_max_bytes}=="0"
    ATTRS{queue/discard_max_hw_bytes}=="0"
    ATTRS{queue/discard_zeroes_data}=="0"
    ATTRS{queue/fua}=="0"
    ATTRS{queue/hw_sector_size}=="512"
    ATTRS{queue/io_poll}=="0"
    ATTRS{queue/io_poll_delay}=="-1"
    ATTRS{queue/io_timeout}=="30000"
    ATTRS{queue/iosched/async_depth}=="1"
    ATTRS{queue/iosched/fifo_batch}=="16"
    ATTRS{queue/iosched/front_merges}=="1"
    ATTRS{queue/iosched/prio_aging_expire}=="10000"
    ATTRS{queue/iosched/read_expire}=="500"
    ATTRS{queue/iosched/write_expire}=="5000"
    ATTRS{queue/iosched/writes_starved}=="2"
    ATTRS{queue/iostats}=="1"
    ATTRS{queue/logical_block_size}=="512"
    ATTRS{queue/max_discard_segments}=="1"
    ATTRS{queue/max_hw_sectors_kb}=="1024"
    ATTRS{queue/max_integrity_segments}=="0"
    ATTRS{queue/max_sectors_kb}=="1024"
    ATTRS{queue/max_segment_size}=="65536"
    ATTRS{queue/max_segments}=="2048"
    ATTRS{queue/minimum_io_size}=="512"
    ATTRS{queue/nomerges}=="0"
    ATTRS{queue/nr_requests}=="2"
    ATTRS{queue/nr_zones}=="0"
    ATTRS{queue/optimal_io_size}=="0"
    ATTRS{queue/physical_block_size}=="512"
    ATTRS{queue/read_ahead_kb}=="128"
    ATTRS{queue/rotational}=="1"
    ATTRS{queue/rq_affinity}=="1"
    ATTRS{queue/scheduler}=="[mq-deadline] kyber bfq none"
    ATTRS{queue/stable_writes}=="0"
    ATTRS{queue/throttle_sample_time}=="100"
    ATTRS{queue/virt_boundary_mask}=="0"
    ATTRS{queue/wbt_lat_usec}=="75000"
    ATTRS{queue/write_cache}=="write through"
    ATTRS{queue/write_same_max_bytes}=="0"
    ATTRS{queue/write_zeroes_max_bytes}=="0"
    ATTRS{queue/zone_append_max_bytes}=="0"
    ATTRS{queue/zone_write_granularity}=="0"
    ATTRS{queue/zoned}=="none"
    ATTRS{range}=="16"
    ATTRS{removable}=="1"
    ATTRS{ro}=="0"
    ATTRS{size}=="122552320"
    ATTRS{stat}=="     140        6     5836      137        1        0        8        0        0      127      138        0        0        0        0        0        0"
    ATTRS{trace/act_mask}=="disabled"
    ATTRS{trace/enable}=="0"
    ATTRS{trace/end_lba}=="disabled"
    ATTRS{trace/pid}=="disabled"
    ATTRS{trace/start_lba}=="disabled"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host0/target0:0:0/0:0:0:0':
    KERNELS=="0:0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{blacklist}==""
    ATTRS{delete}=="(write-only)"
    ATTRS{device_blocked}=="0"
    ATTRS{device_busy}=="0"
    ATTRS{dh_state}=="detached"
    ATTRS{eh_timeout}=="10"
    ATTRS{evt_capacity_change_reported}=="0"
    ATTRS{evt_inquiry_change_reported}=="0"
    ATTRS{evt_lun_change_reported}=="0"
    ATTRS{evt_media_change}=="0"
    ATTRS{evt_mode_parameter_change_reported}=="0"
    ATTRS{evt_soft_threshold_reached}=="0"
    ATTRS{inquiry}==""
    ATTRS{iocounterbits}=="32"
    ATTRS{iodone_cnt}=="0xf9"
    ATTRS{ioerr_cnt}=="0x2"
    ATTRS{iorequest_cnt}=="0xf9"
    ATTRS{max_sectors}=="2048"
    ATTRS{model}=="Extreme         "
    ATTRS{power/autosuspend_delay_ms}=="-1"
    ATTRS{power/control}=="on"
    ATTRS{power/runtime_active_time}=="58978"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{queue_depth}=="1"
    ATTRS{queue_type}=="none"
    ATTRS{rescan}=="(write-only)"
    ATTRS{rev}=="0001"
    ATTRS{scsi_level}=="7"
    ATTRS{state}=="running"
    ATTRS{timeout}=="30"
    ATTRS{type}=="0"
    ATTRS{vendor}=="SanDisk "

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host0/target0:0:0':
    KERNELS=="target0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="58979"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host0':
    KERNELS=="host0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="58980"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="1005"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0':
    KERNELS=="4-2:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb-storage"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceClass}=="08"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceProtocol}=="50"
    ATTRS{bInterfaceSubClass}=="06"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2':
    KERNELS=="4-2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="9"
    ATTRS{bMaxPower}=="400mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0010"
    ATTRS{bmAttributes}=="80"
    ATTRS{busnum}=="4"
    ATTRS{configuration}==""
    ATTRS{devnum}=="2"
    ATTRS{devpath}=="2"
    ATTRS{idProduct}=="5580"
    ATTRS{idVendor}=="0781"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="SanDisk"
    ATTRS{maxchild}=="0"
    ATTRS{power/active_duration}=="60150"
    ATTRS{power/autosuspend}=="2"
    ATTRS{power/autosuspend_delay_ms}=="2000"
    ATTRS{power/connected_duration}=="60150"
    ATTRS{power/control}=="on"
    ATTRS{power/level}=="on"
    ATTRS{power/persist}=="1"
    ATTRS{power/runtime_active_time}=="60004"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/usb3_hardware_lpm_u1}=="enabled"
    ATTRS{power/usb3_hardware_lpm_u2}=="enabled"
    ATTRS{product}=="Extreme"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="removable"
    ATTRS{remove}=="(write-only)"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="AA011122160622010371"
    ATTRS{speed}=="5000"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="707"
    ATTRS{version}==" 3.00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4':
    KERNELS=="usb4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="03"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="9"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0516"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="4"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0003"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="yes"
    ATTRS{manufacturer}=="Linux 5.16.15-arch1-1 xhci-hcd"
    ATTRS{maxchild}=="4"
    ATTRS{power/active_duration}=="60387"
    ATTRS{power/autosuspend}=="0"
    ATTRS{power/autosuspend_delay_ms}=="0"
    ATTRS{power/connected_duration}=="1902307"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/runtime_active_time}=="60385"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="1841920"
    ATTRS{power/usb3_hardware_lpm_u1}=="disabled"
    ATTRS{power/usb3_hardware_lpm_u2}=="disabled"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{product}=="xHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{remove}=="(write-only)"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="0000:00:14.0"
    ATTRS{speed}=="10000"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="44"
    ATTRS{version}==" 3.10"

  looking at parent device '/devices/pci0000:00/0000:00:14.0':
    KERNELS=="0000:00:14.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0xa0ed"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="156"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{local_cpus}=="ff"
    ATTRS{msi_bus}=="1"
    ATTRS{msi_irqs/156}=="msi"
    ATTRS{numa_node}=="-1"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="132412"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="1770298"
    ATTRS{power/wakeup}=="enabled"
    ATTRS{power/wakeup_abort_count}=="0"
    ATTRS{power/wakeup_active}=="0"
    ATTRS{power/wakeup_active_count}=="54"
    ATTRS{power/wakeup_count}=="0"
    ATTRS{power/wakeup_expire_count}=="54"
    ATTRS{power/wakeup_last_time_ms}=="1842976"
    ATTRS{power/wakeup_max_time_ms}=="119"
    ATTRS{power/wakeup_total_time_ms}=="5508"
    ATTRS{power_state}=="D0"
    ATTRS{remove}=="(write-only)"
    ATTRS{rescan}=="(write-only)"
    ATTRS{revision}=="0x20"
    ATTRS{subsystem_device}=="0x150a"
    ATTRS{subsystem_vendor}=="0x1025"
    ATTRS{vendor}=="0x8086"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{waiting_for_supplier}=="0"

Last edited by 860lacov (2022-03-22 16:57:53)

Offline

#6 2022-03-24 10:34:30

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,889

Re: How to passtrough USB device to qemu vm?

I think block is not the correct subsystem for this, try SUBSYSTEM=="usb" .

An alternative rule is described at https://bbs.archlinux.org/viewtopic.php?id=209185

On to your more general questions :

one rule is for one device only?
Or I can create a rule that will take care of my every SanDisk pendrive? Or for every pendrive?

all three should be possible, udev rules are very powerful.

Can I damage my system If I create incorrect rule?

Never heard of that happening.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

Board footer

Powered by FluxBB