Cara menggunakan udev untuk deteksi dan manajemen perangkat di linux

Cara menggunakan udev untuk deteksi dan manajemen perangkat di linux

Udev (ruang pengguna /dev) adalah sub-sistem Linux untuk deteksi dan manajemen perangkat dinamis, karena versi kernel 2.6. Itu pengganti devfs Dan hotplug.

Ini secara dinamis membuat atau menghapus node perangkat (antarmuka ke driver perangkat yang muncul dalam sistem file seolah -olah itu adalah file biasa, disimpan di bawah /dev direktori) pada waktu boot atau jika Anda menambahkan perangkat ke atau menghapus perangkat dari sistem. Itu kemudian menyebarkan informasi tentang perangkat atau mengubah status ke ruang pengguna.

Fungsinya adalah 1) menyediakan aplikasi sistem dengan peristiwa perangkat, 2) Kelola izin node perangkat, dan 3) dapat membuat symlink yang berguna di /dev direktori untuk mengakses perangkat, atau bahkan mengganti nama antarmuka jaringan.

Salah satu pro Udev Apakah itu dapat menggunakan nama perangkat yang persisten untuk menjamin penamaan perangkat yang konsisten di seluruh reboot, terlepas dari urutan penemuannya. Fitur ini berguna karena kernel hanya memberikan nama perangkat yang tidak dapat diprediksi berdasarkan urutan penemuan.

Dalam artikel ini, kita akan belajar cara menggunakan Udev Untuk deteksi dan manajemen perangkat pada sistem Linux. Perhatikan bahwa sebagian besar jika tidak semua distribusi Linux modern arus utama datang Udev Sebagai bagian dari instalasi default.

Pelajari Dasar -Dasar Udev di Linux

Itu Udev Daemon, Systemd-udevd (atau Systemd-udevd.melayani) berkomunikasi dengan kernel dan menerima perangkat uevents langsung darinya setiap kali Anda menambahkan atau menghapus perangkat dari sistem, atau perangkat mengubah keadaannya.

Udev didasarkan pada aturan - aturannya fleksibel dan sangat kuat. Setiap acara perangkat yang diterima dicocokkan dengan serangkaian aturan yang dibaca dari file yang terletak di /lib/udev/aturan.D Dan /run/udev/aturan.D.

Anda dapat menulis file aturan khusus di /etc/udev/aturan.D/ direktori (file harus diakhiri dengan .aturan ekstensi) untuk memproses perangkat. Perhatikan bahwa aturan file dalam direktori ini memiliki prioritas tertinggi.

Untuk membuat file node perangkat, Udev perlu mengidentifikasi perangkat menggunakan atribut tertentu seperti label, nomor seri, jumlah utamanya dan kecil digunakan, nomor perangkat bus dan banyak lagi. Informasi ini diekspor oleh sysfs berkas sistem.

Setiap kali Anda menghubungkan perangkat ke sistem, kernel mendeteksi dan menginisialisasi, dan direktori dengan nama perangkat dibuat di bawah /sys/ direktori yang menyimpan atribut perangkat.

File konfigurasi utama untuk UDEV adalah /etc/udev/udev.conf, dan untuk mengontrol perilaku runtime, daemon udev, Anda dapat menggunakan udevadm kegunaan.

Untuk menampilkan kernel yang diterima Acara (uevents) Dan Acara Udev (yang dikirim Udev setelah pemrosesan aturan), jalankan udevadm dengan perintah monitor. Kemudian hubungkan perangkat ke sistem Anda dan tontonlah, dari terminal, bagaimana acara perangkat ditangani.

Tangkapan layar berikut menunjukkan kutipan sebuah MENAMBAHKAN Acara Setelah Menghubungkan Disk Flash USB ke Sistem Uji:

$ udevadm monitor 
Pantau acara perangkat di Linux

Untuk menemukan nama yang ditugaskan ke disk USB Anda, gunakan utilitas LSBLK yang membaca sysfs sistem file dan Udev DB untuk mengumpulkan informasi tentang perangkat yang diproses.

 $ lsblk 
Daftar perangkat blok di linux

Dari output dari perintah sebelumnya, disk USB dinamai SDB1 (Jalur absolut seharusnya /dev/sdb1). Untuk menanyakan atribut perangkat dari database UDEV, gunakan Perintah Info.

$ udevadm info /dev /sdb1 
Atribut Perangkat Permintaan dari Udev DB di Linux

Cara bekerja dengan aturan udev di linux

Di bagian ini, kami akan membahas secara singkat cara menulis Udev aturan. Aturan terdiri dari daftar satu atau lebih pasangan yang dipisahkan secara koma. Aturan memungkinkan Anda untuk mengganti nama simpul perangkat dari nama default, memodifikasi izin dan kepemilikan node perangkat, memicu pelaksanaan program atau skrip ketika simpul perangkat dibuat atau dihapus, antara lain.

Kami akan menulis aturan sederhana untuk meluncurkan skrip ketika perangkat USB ditambahkan dan saat dihapus dari sistem yang sedang berjalan.

Mari kita mulai dengan membuat dua skrip:

$ sudo vim /bin /device_added.SH 

Tambahkan baris berikut di device_added.SH naskah.

#!/bin/bash echo "perangkat USB ditambahkan pada $ (tanggal)" >>/tmp/skrip.catatan 

Buka skrip kedua.

$ sudo vim /bin /device_removed.SH 

Kemudian tambahkan baris berikut ke device_removed.SH naskah.

#!/bin/bash echo "perangkat USB dihapus pada $ (tanggal)" >>/tmp/skrip.catatan 

Simpan file, tutup dan buat kedua skrip dapat dieksekusi.

$ sudo chmod +x /bin /device_added.sh $ sudo chmod +x /bin /device_removed.SH 

Selanjutnya, mari kita buat aturan untuk memicu eksekusi skrip di atas, disebut /etc/udev/aturan.D/80-test.aturan.

$ vim/etc/udev/aturan.D/80-test.aturan 

Tambahkan dua aturan berikut ini di dalamnya.

Subsystem == "usb", action == "add", env devType == "usb_device", run+= "/bin/device_added.sh "subsystem ==" USB ", action ==" hapus ", env devType ==" usb_device ", run+="/bin/device_removed.SH" 

Di mana:

  • "==": adalah operator untuk membandingkan kesetaraan.
  • "+=": adalah operator untuk menambahkan nilai ke kunci yang memegang daftar entri.
  • Subsistem: cocok dengan subsistem perangkat acara.
  • TINDAKAN: cocok dengan nama aksi acara.
  • Env DevType: cocok dengan nilai properti perangkat, jenis perangkat dalam kasus ini.
  • BERLARI: Menentukan program atau skrip untuk dieksekusi sebagai bagian dari penanganan acara.

Simpan file dan tutup. Kemudian sebagai root, katakan Systemd-udevd Untuk memuat ulang file aturan (ini juga memuat ulang basis data lain seperti indeks modul kernel), dengan menjalankan.

$ sudo udevadm control --road 

Sekarang hubungkan drive USB ke mesin Anda dan periksa apakah device_added.SH Script dieksekusi. Pertama -tama file skrip.catatan harus dibuat di bawah /tmp.

$ ls -l /tmp /skrip.catatan 
Periksa log skrip setelah menambahkan usb

Maka file harus memiliki entri seperti “Perangkat USB dihapus di Date_Time”, Seperti yang ditunjukkan pada tangkapan layar.

$ cat /tmp /skrip.catatan 
Periksa skrip log setelah menghapus USB

Untuk informasi lebih lanjut tentang cara menulis aturan udev dan mengelola udev, konsultasikan Udev Dan udevadm Entri manual masing -masing, dengan menjalankan:

$ man udev $ man udevadm 
Ringkasan

Udev adalah manajer perangkat luar biasa yang menyediakan cara dinamis untuk mengatur node perangkat di /dev direktori. Ini memastikan bahwa perangkat dikonfigurasi segera setelah dicolokkan dan ditemukan. Ini menyebarkan informasi tentang perangkat yang diproses atau perubahan keadaannya, ke ruang pengguna.

Jika Anda memiliki pertanyaan atau pemikiran untuk dibagikan tentang topik ini, gunakan formulir umpan balik.