Χρησιμοποιώντας το δωρεάν πακέτο USBIP για προώθηση USB μέσα σε εικονικές μηχανές. Προώθηση δίσκου USB σε εικονική μηχανή Hyper-V.

Καλησπέρα, φίλοι, χαίρομαι που επισκεφθήκατε τον ιστότοπό μου, σήμερα θα εξετάσουμε το ερώτημα πώς να οργανώσετε το USB μέσω δικτύου και πώς να το χρησιμοποιήσετε στην εικονικοποίηση. Το θέμα είναι αρκετά σχετικό και μια τέτοια εργασία συναντάται όλο και πιο συχνά.

usb μέσω δικτύου

Όπως ήδη γνωρίζετε, η εικονικοποίηση είναι μέρος της ζωής μας εδώ και πολύ καιρό. Οι χωρητικότητες των διακομιστών αυξάνονται και φυσικά έχουν αναδυθεί τεχνολογίες για την ορθολογική χρήση τους, που συνεπάγονται απομόνωση και κανονική χρήση των πόρων, γεγονός που έχει οδηγήσει σε εικονικές μηχανές, οι οποίες χρησιμοποιούνται ήδη σε κέντρα φιλοξενίας και δεδομένων. Έχω ήδη μιλήσει για όλα αυτά, αν σε ενδιαφέρει, δες τους συνδέσμους αριστερά και πάνω.

Όπως ξέρετε μερικές φορές μερικές προγράμματα με άδεια χρήσης, απαιτώ για usb δουλειάκλειδί. Προηγουμένως σε κλασική έκδοσηόταν ήμασταν απλά φυσικούς διακομιστές, δεν υπήρχαν προβλήματα με τη λειτουργία ενός τέτοιου σχήματος, αλλά με την εμφάνιση του virtualization ήρθε στο φως.

Δυστυχώς, ορισμένοι hypervisors δεν έχουν τη δυνατότητα να προωθήσουν απευθείας από τον διακομιστή συσκευές USB. Ένα παράδειγμα είναι το Hyper-V από τη Microsoft, που από το 208 δεν έχει ακόμα αυτή τη δυνατότητα, σε αντίθεση με το vMvare, που το επιτρέπει και σας έχω ήδη πει πώς να προωθήσετε ένα μόντεμ USB στο vmware esxi.

Μην βιαστείτε να εκνευρίζεστε, οπαδοί του γίγαντα του Ρέντμοντ, η τεχνολογία έρχεται να σας σώσει USB μέσω IP ή AnywhereUSB. Το USB μέσω IP σάς επιτρέπει να συνδεθείτε usb μέσω δικτύου.

Το AnywhereUSB είναι ένα μικρό δίκτυο hub usb. Ακολουθούν δείγματα μοντέλων στην αγορά.

  • AnywhereUSB /2 – 2 θύρες USB


  • AnywhereUSB/ 5 – 5 θύρες USB


  • AnywhereUSB /14 – 14 θύρες USB



Ρύθμιση AnywhereUSB

Ας δούμε πώς έχει διαμορφωθεί το υλικό προκειμένου να γίνει πρόσβαση USB μέσω του δικτύου.

Έτσι θα μοιάζει.


Υπάρχουν πολλές διεπαφές για τη ρύθμιση και τη διαχείριση της συσκευής:
Διασύνδεση Ιστούγια διαμόρφωση, παρακολούθηση και διαχείριση·
• Βοηθητικό πρόγραμμα ρύθμισης παραμέτρων AnywhereUSB.
• Διεπαφή γραμμής εντολών Telnet.
• Απλό πρωτόκολλο διαχείρισης δικτύου (SNMP).

Για να διαμορφώσετε τη συσκευή, θεωρήστε τη διεπαφή Web - ως την πιο βολική και απλούστερη επιλογή.

Διαχείριση διευθύνσεων IP

Υπάρχουν πολλές επιλογές για την εκχώρηση διεύθυνσης IP στο AnywhereUSB:
• Στατική IP.
• Δυναμική εκχώρηση IP - Χρήση Πρωτοκόλλου διαμόρφωσης δυναμικού κεντρικού υπολογιστή (DHCP).
• Auto Private IP Addressing (APIPA), πιο γνωστή ως Auto-IP.

Πώς καταλαβαίνεις περισσότερο Ο σωστός τρόποςαυτή είναι μια στατική διεύθυνση IP. Ορίζεται στο στοιχείο Διαμόρφωση δικτύου.


Στο ίδιο μενού είναι πολύ βολικό να ορίσετε τις διαθέσιμες υπηρεσίες δικτύου σε αυτό.



Στην καρτέλα Διαχείριση σύνδεσης μπορείτε να δείτε τις τρέχουσες συνδέσεις σας.



Τώρα, τι πρέπει να γίνει στη συνέχεια στην εικονική μηχανή, όλα είναι απίστευτα λογικά εδώ, πρέπει να εγκαταστήσετε προγράμματα οδήγησης από το AnywhereUSB εκεί και να ορίσετε τη διεύθυνση IP της συσκευής. Όπως βλέπετε το έχω ήδη συνδέσει και έχει εσωτερική διεύθυνση IP.


Με τη χρήση ειδική χρησιμότητα, Το Anywhere View μπορεί να ελέγξει τη διαθεσιμότητα και την απασχόληση όλων των συσκευών. Αυτό είναι ίσως το πιο απλό και αξιόπιστη μέθοδοςπροωθώντας μάρκες, μονάδες flash και διάφορα μόντεμ στις εικονικές σας μηχανές, οι ίδιες οι συσκευές κοστίζουν διαφορετικά, αλλά αν έχετε ήδη ξοδέψει χρήματα σε λογισμικό και υπερεπιβλέποντες, νομίζω ότι, αν χρειαστεί, αγοράστε και αυτό :).


Πολύ ισχυρό εργαλείοσε ικανά χέρια. Σύμφωνα με διάφορες τεχνικούς λόγουςη εικονική μηχανή δεν έχει άμεση πρόσβασηστη μονάδα USB από προεπιλογή. Σε αυτό το άρθρο θα καταλάβουμε πώς να μεταφέρετε έναν δίσκο USB σε έναν εικονικό Μηχανή Hyper-V. Η υλοποίηση της ιδέας θα είναι απλή, θα έλεγε κανείς, με δύο κλικ. Κανένας πρόσθετα προγράμματα, όπως συμβουλεύουν μερικές φορές οι «γκουρού» της πολυθρόνας, δεν θα το χρειαστούμε, χρησιμοποιούμε τα χέρια μας και τίποτα περισσότερο.

ΣΠΟΥΔΑΙΟΣ. Δεν θα μπορέσουμε να μεταφέρουμε αφαιρούμενες, δηλαδή αφαιρούμενες συσκευές στο VM, αν και υπάρχουν κάποια κόλπα από αυτή την άποψη, αλλά δεν πρόκειται για αυτό τώρα. Ο αλγόριθμός μας λειτουργεί μόνο για USB που εμφανίζονται ως σταθερά. Δεν θα μπορούμε να τραβήξουμε στιγμιότυπο για τέτοιους δίσκους.

Ας αρχίσουμε τη χειραγώγηση




ΣΠΟΥΔΑΙΟΣ. Δεν είναι καθόλου απαραίτητο να απενεργοποιήσετε το VM πριν προσθέσετε έναν σκληρό δίσκο. Για αυτό υπάρχει ειδική τεχνολογίαθερμή προσθήκη και θερμή αφαίρεση.

  1. Συνδεόμαστε στο VM μέσω rdp ή απλά ανοίγουμε την κονσόλα. Ας πάμε στη διαχείριση δίσκων. Εάν υπάρχει το νέο, τότε τα κάνουμε όλα σωστά. Ας ελέγξουμε αν είναι online. Αν όχι, τότε το διορθώνουμε, όπως πριν, καλώντας κατάλογος συμφραζόμενων. Τα διαμερίσματα μας δεν έχουν σημεία τοποθέτησης και γράμματα, αυτό πρέπει να διορθωθεί. Κάντε κλικ σε οποιαδήποτε από τις ενότητες κάντε δεξί κλικκαι επιλέξτε "Αλλαγή του γράμματος της μονάδας δίσκου ή της διαδρομής προς αυτό...". Επιλέγουμε οποιοδήποτε δωρεάν.

Η προώθηση USB στην εικονική μηχανή Hyper-V έχει ολοκληρωθεί, τώρα μπορούμε να τη χρησιμοποιήσουμε για τους σκοπούς μας.

Αυτές οι οδηγίες είναι σωστές ξεκινώντας από την έκδοση 2.

Φαίνεται γιατί να γράφεις οτιδήποτε άλλο όταν υπάρχει επίσημες οδηγίες? Ωστόσο, υπάρχει κάτι εδώ που δεν υπάρχει.

Υπάρχουν δύο επιλογές για τη μεταφορά μιας συσκευής USB σε σύστημα φιλοξενουμένων:

  • μεταφέρετε μια συγκεκριμένη συσκευή στον "επισκέπτη"
  • μεταφέρετε τη θύρα USB στην οποία είναι συνδεδεμένη αυτή η συσκευή.

Προώθηση συσκευών USB

Εάν είναι διαθέσιμο Κλειδί USBπροστασία, ή εξωτερική αποθήκευση, τότε είναι πιο βολικό να μεταφέρετε την ίδια τη συσκευή απευθείας στο σύστημα επισκεπτών, ανεξάρτητα από το σε ποια θύρα USB είναι φυσικά συνδεδεμένη αυτή η συσκευή. Άλλωστε, κατά τη διάρκεια της συντήρησης, μπορούμε να το συνδέσουμε σε διαφορετικό βύσμα την επόμενη φορά.

# lsusb Bus 002 Συσκευή 002: ID 8087:8000 Intel Corp. Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087:8008 Intel Corp. Bus 001 Συσκευή 001: ID 1D6B: 0002 Ιδρύματα Linux 2.0 Διακοπτικός διαύλων ρίζας 004 Συσκευή 001: ID 1D6B: 0003 Ιδρύματα Linux 3.0 Διακοπτικός διαύλων ρίζας 003 004: ID 051D: 0002 ΑΜΕΡΙΚΑΝΙΚΟ Power Conversion Uninterruptible Power Supply 003 Συσκευή 003: ID 051D :0002 Δίαυλος αδιάλειπτης τροφοδοσίας μετατροπής αμερικανικής ισχύος 003 Συσκευή 002: ID 046d:c00c Logitech, Inc. Optical Wheel Mouse Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Βρίσκουμε τη συσκευή που χρειαζόμαστε και παίρνουμε το αναγνωριστικό της, το οποίο θα χρησιμοποιήσουμε.

Το καθήκον μου ήταν να προωθήσω το UPS.
(Η κατάσταση στην πραγματικότητα δεν είναι τυπική, μοιάζει περισσότερο με μια σειρά από το πώς δεν θα έπρεπε να είναι: στον διακομιστή και υλικό δικτύουΠαραδόθηκαν 2 από τα πιο απλά αδιάλειπτα τροφοδοτικά για σταθμούς εργασίας. Το UPS αποδείχθηκε ευαίσθητο και άρχισε να ουρλιάζει με ή χωρίς λόγο. Να τους κόψει γρήγορα τη φωνή και να μην ασχοληθεί ακόμα Έλεγχος UPSαπό το Debian και αποφασίστηκε να συνδεθούν δύο UPS στους επισκέπτες των Windows.)

Σε αυτό το στάδιο, ανακάλυψα ότι και οι δύο συσκευές που χρειαζόμουν είχαν το ίδιο ID... Ας προσπαθήσουμε όμως.

Οι προωθημένες συσκευές είναι καταχωρημένες στο αρχείο ρυθμίσεωντην αντίστοιχη εικονική μηχανή.

# nano /etc/pve/qemu-server/101.conf usb0: host=051d:0002

Επανεκκίνηση. Η συσκευή παραλήφθηκε, όλα φαινόταν να είναι καλά. Αλλά μετά θυμόμαστε ότι η δεύτερη συσκευή έχει το ίδιο αναγνωριστικό. Πώς να τα ξεχωρίσετε; Και πράγματι, η εμπειρία έχει δείξει ότι εάν αντιστοιχίσετε το ίδιο αναγνωριστικό σε δύο εικονικές μηχανές, θα πάρουν την ίδια συσκευή η μία από την άλλη όταν ενεργοποιηθούν. Παρά το γεγονός ότι το κεντρικό σύστημα διαθέτει πολλές συσκευές USB με αυτό το αναγνωριστικό.

Εδώ θυμόμαστε ότι υπάρχει άλλος τρόπος προώθησης.

Προώθηση θύρας USB

Πρέπει να προσδιορίσουμε σε ποια θύρα είναι συνδεδεμένη η συσκευή που χρειαζόμαστε.

Πρώτος τρόπος:

# lsusb -t /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p |__8 Θύρα 4: Dev 2, If 0, Class=HID, Driver=usbhid, 1,5M |__ Port 7: Dev 3, If 0, Class=HID, Driver=usbfs, 12M |__ Port 8: Dev 4, If 0, Class=HID, Driver=usbfs, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/3p, 480M |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/ 8p, 480M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/3p, 480M |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M

Όπως αποδείχθηκε αργότερα, οι συσκευές που χρειαζόμουν ήταν στο λεωφορείο 3, στις θύρες 7 και 8. Αλλά προς το παρόν αυτό δεν είναι προφανές σε εμάς, και εδώ είναι η δεύτερη επιλογή:

Οθόνη Qm qm> πληροφορίες usbhost Bus 3, Adr 4, Port 8, Speed ​​12 Mb/s Class 00: USB συσκευή 051d:0002, Back-UPS XS 650CI FW:892.R2.I USB FW:R2 Bus 3, Adr 3, Port 7, Speed ​​12 Mb/s Class 00: USB device 051d:0002, Back-UPS XS 650CI FW: 892.R2.I USB FW:R2 Bus 3, Adr 2, Port 4, Speed ​​1,5 Mb/s Class 00: USB device 046d:c00c, USB Optical Mouse

Εδώ βλέπουμε ξεκάθαρα ποιος είναι ποιος. Και τώρα με τόλμη:

# nano /etc/pve/qemu-server/101.conf usb0: host=3-7

Για να συμπληρώσω την εικόνα, θα συμπληρώσω τις οδηγίες με ένα παράδειγμα από την επίσημη τεκμηρίωση.

Είναι δυνατή η ακόλουθη επιλογή:

Οθόνη Qm qm> πληροφορίες usbhost Bus 3 , Adr 2, Port 1.2 , Speed ​​1,5 Mb/s Ειδικά προμηθευτή: USB συσκευή 0529:0001, HASP 2.17

Σήμερα, υπάρχουν αρκετοί τρόποι μεταφοράς μιας συσκευής USB σε άλλον υπολογιστή ή εικονική μηχανή μέσω του δικτύου.
Τα πιο δημοφιλή είναι προϊόντα υλικού όπως το AnywhereUSB και προϊόντα καθαρού λογισμικού, από αυτά που δοκίμασα μόνος μου: USB Redirector και USB/IP.
Θα ήθελα να σας πω κάτι ακόμα με έναν ενδιαφέροντα τρόπο, το οποίο λειτουργεί απευθείας με τον εξομοιωτή QEMU.
Είναι επίσης μέρος του έργου μπαχαρικών, που υποστηρίζεται επίσημα από την RedHat.

Το UsbRedir είναι ένα ανοιχτό πρωτόκολλο για την προώθηση συσκευών USB μέσω TCP σε τηλεχειριστήριο εικονικός διακομιστής, που αναπτύχθηκε με την υποστήριξη της RedHat ως μέρος του έργου μπαχαρικών. Αλλά όπως αποδεικνύεται, μπορείτε να το χρησιμοποιήσετε με μεγάλη επιτυχία χωρίς μπαχαρικό. Ο ρόλος του διακομιστή είναι ο usbredirserver, ο οποίος στέλνει μια συσκευή USB σε μια συγκεκριμένη θύρα και ο πελάτης είναι ο ίδιος ο QEMU, ο οποίος εξομοιώνει τη σύνδεση μιας εξαγόμενης συσκευής USB σε έναν συγκεκριμένο ελεγκτή USB της εικονικής σας μηχανής. Χάρη σε αυτήν την προσέγγιση, απολύτως οποιοδήποτε λειτουργικό σύστημα μπορεί να χρησιμοποιηθεί ως επισκέπτης, καθώς δεν γνωρίζει καν ότι η συσκευή προωθείται εξ αποστάσεως και όλη η λογική πέφτει στο QEMU.

Αρχικά, λίγα λόγια για τις παραπάνω λύσεις

  • Το AnywhereUSB είναι μια αρκετά καλή λύση, αλλά ακριβή και έχει δυσάρεστες δυσλειτουργίες, για παράδειγμα, εάν πέσει μια κοινόχρηστη μονάδα flash, μπορείτε να την επανασυνδέσετε μόνο αφαιρώντας και τοποθετώντας την.
  • USB/IP - Έργο OpenSource. Φαίνεται σαν να ήταν εγκαταλελειμμένο. Στην πραγματικότητα, είναι αρκετά buggy. Όταν η σύνδεση χάνεται, το μηχάνημα συχνά παγώνει και τα Windows εμφανίζουν BSOD
  • USB Redirector - Υπέροχο λογισμικό. Για κοινή χρήση συσκευών από Linux σε Linux είναι δωρεάν, σε όλες τις άλλες περιπτώσεις κοστίζει ήδη χρήματα, όχι τόσο όσο το AnywhereUSB, αλλά όχι δωρεάν όσο θα θέλαμε :)
Όπως μπορείτε να δείτε, υπάρχουν πολλά για να διαλέξετε, αλλά ας δοκιμάσουμε επιτέλους μια άλλη μέθοδο - το UsbRedir;

Ρύθμιση εικονικής μηχανής

Για να έχετε κάπου να συνδέσετε τις εξαγόμενες συσκευές, πρέπει να δημιουργήσετε τους απαραίτητους ελεγκτές USB στην εικονική μηχανή:

  • uhci - για USB1.0
  • ehci - για USB2.0
  • xhci - για USB3.0
Για qemu (χωρίς libvirt)

Προσθέστε επιλογές στην εντολή εκκίνησης εικονικής μηχανής:
-συσκευή ich9-usb-ehci1,id=ehci,addr=1d.7,multifunction=on -συσκευή ich9-usb-uhci1,id=uhci-1,addr=1d.0,multifunction=on,masterbus=ehci.0 ,firstport=0 -συσκευή ich9-usb-uhci2,id=uhci-2,addr=1d.1,multifunction=on,masterbus=ehci.0,firstport=2 -συσκευή ich9-usb-uhci3,id=uhci-3 ,addr=1d.2,multifunction=on,masterbus=ehci.0,firstport=4

Για libvirt
ΣΕ αρχείο προέλευσηςδιαμορφώσεις εικονικής μηχανής στον κεντρικό υπολογιστή <συσκευές>διαγράψτε τα πάντα Ελεγκτές USBκαι προσθέστε το ακόλουθο μπλοκ:

Παρεμπιπτόντως, εάν χρησιμοποιείτε spice, τότε προσθέτοντας 3 ακόμη ειδικές συσκευές στους ελεγκτές, θα είναι δυνατή η προώθηση συσκευών USB από τον πελάτη spice στον διακομιστή.

Παράδειγμα κάτω από σπόιλερ

Για το qemu
Προσθέτουμε τις ακόλουθες επιλογές στην εντολή εκκίνησης εικονικής μηχανής, εκτός από τους ελεγκτές που ορίσαμε νωρίτερα:
-chardev spicevmc,name=usbredir,id=usbredirchardev1 -συσκευή usb-redir,chardev=usbredirchardev1,id=usbredirdev1,debug=3 -chardev spicevmc,name=usbredir,id=usbredirchardev2 -συσκευή usb-redir,chardev=usbredirchardev2, =usbredirdev2,debug=3 -chardev spicevmc,name=usbredir,id=usbredirchardev3 -συσκευή usb-redir,chardev=usbredirchardev3,id=usbredirdev3,debug=3
Για libvirt
Στο αρχικό αρχείο διαμόρφωσης εικονικής μηχανής στον κόμβο <devices>, προσθέτουμε τις ακόλουθες επιλογές, εκτός από τους ελεγκτές που ορίσαμε νωρίτερα:

Τώρα όλα είναι έτοιμα για προώθηση.

Εκκίνηση του διακομιστή

Το πακέτο usbredirserver μπορεί να βρεθεί σε τυπικά αποθετήρια σχεδόν σε όλα δημοφιλείς διανομές linux.

Τοποθετήστε τη μονάδα flash USB στον υπολογιστή, δείτε την έξοδο των συσκευών USB:
$ lsusb ... Bus 003 Συσκευή 011: ID 125f:c82a A-DATA Technology Co., Ltd. ...

Βλέπουμε ότι το ζεύγος vendorid:prodid είναι ίσο με 125f:c82a και ο πυρήνας έχει αναγνωρίσει τη μονάδα flash ως 003-001 usbbus-usbaddr, αντίστοιχα.

Τώρα ας το μοιραστούμε στη θύρα 4000:

# Χρήση του ζεύγους vendorid:prodid $ usbredirserver -p 4000 125f:c82a # Χρήση του ζεύγους usbbus-usbaddr $ usbredirserver -p 4000 003-011

Σύνδεση συσκευής σε εικονική μηχανή

Μέσω επιλογών κατά την εκκίνηση του VM

Η συσκευή που πρέπει να συνδεθεί στο VM μπορεί να καθοριστεί κατά την εκκίνηση προσθέτοντας τις ακόλουθες επιλογές στην εντολή εκκίνησης

Για το qemu
-chardev socket,id=usbredirchardev1,port=4000,host=192.168.1.123 -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1,bus=ehci.0,debug=4
Για libvirt
Αυτό το μπλοκ τοποθετείται πριν από την ετικέτα </συσκευές>, δίπλα στους ελεγκτές που ορίσαμε νωρίτερα:
Μπορεί επίσης να εκτελεστεί από την εντολή virsh προσάρτηση-συσκευή

Ή μέσω qemu-monitor

Πηγαίνουμε στον hypervisor και εκτελούμε τις παρακάτω εντολές στο qemu-monitor του μηχανήματός μας:
# Προσθήκη της συσκευής μας chardev-add socket,id=usbredirchardev1,port=4000,host=192.168.1.123 # Συνδέστε το στον ελεγκτή ehci (USB-2.0) device_add usb-redir,chardev=usbredirchardev1,id=usbredirdev1,bus=ehci 0, debug=4
Για να απενεργοποιήσετε τη μονάδα flash, απλώς χρησιμοποιήστε την ακόλουθη εντολή:
device_del usbredirdev1

Αυτό είναι όλο, μετά από αυτά τα βήματα το VM σας θα δει τη μονάδα flash και θα μπορεί να συνεργαστεί με αυτό εγγενώς.

Αν υπάρχουν πολλές συσκευές και είναι όλες ίδιες

Εδώ εμφανίστηκε ένα ενδιαφέρον πρόβλημα: πώς να προωθήσετε πολλές ίδιες συσκευές σε διαφορετικά VM;
Παράλληλα, αξίζει να σημειωθεί ότι όλες οι συσκευές έχουν το ίδιο ζεύγος vendorid:prodid και το ζεύγος usbbus-usbaddr δεν είναι καθόλου σταθερό, μόλις αφαιρέσετε και τοποθετήσετε τη συσκευή, θα αλλάξει αμέσως το usbaddr της.

Το έλυσα χρησιμοποιώντας udev.
Παρεμπιπτόντως, αν δεν καταλαβαίνετε καλά πώς λειτουργεί το udev, υπάρχει ένα ωραίο στο Wiki του Debian

Και ας ξεκινήσουμε λοιπόν

Αρχικά, πρέπει να μάθουμε τον σειριακό αριθμό της συσκευής μας, με τον οποίο θα την αναγνωρίσουμε στο udev:

Ας εκκινήσουμε την οθόνη udev:
Οθόνη $ udevadm --περιβάλλον --udev
Και εισάγετε τη συσκευή μας, μετά από αυτό θα δούμε αμέσως μια λίστα με τις μεταβλητές αυτής της συσκευής που η udev ευγενικά ξεκίνησε για εμάς:
... Προσθ.
Πληροφορίες σχετικά με τον σειριακό αριθμό και άλλα χαρακτηριστικά μπορούν να ληφθούν με άλλο τρόπο, αλλά αξίζει να λάβουμε υπόψη ότι για να γράψουμε τους κανόνες θα χρησιμοποιήσουμε τις μεταβλητές από την παραπάνω εντολή και όχι τις ιδιότητες από την παρακάτω εντολή. Διαφορετικά, η σκανδάλη αφαίρεσης δεν θα ενεργοποιηθεί όταν η συσκευή αποσυνδεθεί.
$ udevadm info -a -n /dev/bus/usb/003/011 | grep "(σειριακό)"

Τώρα ας δημιουργήσουμε ένα αρχείο /etc/udev/rules.d/99-usb-serial.rules και ας γράψουμε τους ακόλουθους κανόνες σε αυτό:
ACTION=="add", ENV(ID_SERIAL_SHORT)="11C130317234004B", RUN+="/usr/bin/usbredirserver -p 4000 $attr(busnum)-$attr(devnum)" ACTION=="κατάργηση", ENV_SHTRI )="11C130317234004B", RUN+="/usr/bin/fuser -k 4000/tcp"

Ας φορτώσουμε ξανά τους κανόνες του udev:
$ udevadm control --reload-rules
Έγινε, τώρα όταν συνδέσουμε τη συσκευή μας, θα αναζητήσει αυτόματα τη θύρα που χρειαζόμαστε και όταν αποσυνδέσουμε το usbredirserver θα σταματήσει να λειτουργεί.
Κατ' αναλογία, προσθέτουμε άλλες συσκευές.

Αυτό είναι όλο. Σας ευχαριστούμε για το ενδιαφέρον σας:)