Ada berbagai alternatif di udev
luar sana. Tampaknya Gentoo dapat menggunakan sesuatu yang disebut mdev
. Pilihan lain adalah mencoba menggunakan udev
pendahulunya devfsd
. Akhirnya, Anda selalu dapat membuat semua file perangkat yang Anda perlukan mknod
.
Perhatikan bahwa dengan yang terakhir tidak perlu membuat semuanya saat boot karena node dapat dibuat pada disk dan tidak dalam sistem file sementara seperti dengan opsi lainnya. Tentu saja, Anda kehilangan fleksibilitas karena secara dinamis membuat file perangkat ketika perangkat keras baru dicolokkan (misalnya, stik USB). Saya percaya pendekatan standar di era ini adalah memiliki setiap file perangkat yang Anda perlukan sudah dibuat di bawah /dev
(yaitu banyak file perangkat).
Tentu saja kesulitan dalam mendapatkan salah satu pendekatan ini untuk bekerja di distro modern mungkin cukup tinggi. Wiki Gentoo menyebutkan kesulitan untuk mdev
dapat bekerja dengan lingkungan desktop (apalagi di luar Gentoo). devfsd
Rilis terakhir adalah tahun 2002, saya tidak tahu apakah itu akan bekerja sama sekali dengan kernel modern. Membuat node secara manual mungkin adalah pendekatan yang paling layak, tetapi bahkan menonaktifkan udev
dapat menjadi tantangan, terutama dalam penggunaan disto systemd
( udev
sekarang merupakan bagian dari systemd
, yang menunjukkan ketergantungan yang kuat).
Saran saya tetap dengan udev
;)
udev
harus bekerja dengan baik tanpasystemd
- mereka berdua hanya dikembangkan dalam basis kode yang sama, tetapiudev
dapat dibangun + dijalankan secara terpisah dari itu.udev
sudah ada jauh lebih lama daripadasystemd
itu. Pertanyaannya adalah, bisakahsystemd
bekerja tanpaudev
? Dugaan saya adalah bahwa Anda setidaknya harus mengkompilasi ulang dengan beberapa--without-udev
opsi.Kernel Linux modern mendukung
devtmpfs
sistem file (jangan bingung dengan kunodevfs
) , yang membuat semua node perangkat secara dinamis segera setelah kernel menemukan mereka. (Faktanya,udev
rilis terbaru memerlukan ini; Anda akan menemukan bahwa udev tidak lagi membuat node perangkat, hanya symlinks.)Demikian pula, memuat firmware telah dipindahkan ke kernel juga, sehingga tugas yang tersisa hanya
udev
melakukan memuat modul (sesuai dengan modaliases) dan menerapkan izin perangkat & aturan udev lainnya.Jadi dalam teori, kernel yang sepenuhnya monolitik seharusnya bisa boot tanpa udev.
Namun, masalah sebenarnya di sini adalah apa yang terjadi kemudian.
Cukup banyak program userspace mengandalkan udev menjaga database perangkatnya, dapat diakses melalui
libudev
. Sementara menghitung perangkat dan mendengarkan peristiwa yang ditambahkan / dihapus dapat dilakukan secara langsung menggunakan antarmuka kernel (sysfs dan netlink), Anda masih akan dibiarkan tanpa semua metadata yang telah dilampirkan oleh berbagai aturan udev.udev aturan juga mempertahankan berbagai "gigih" symlink di
/dev/disk/by-*
,/dev/mapper
,/dev/input/by-path
,/dev/snd/by-path
, dan sebagainya. Misalnya, jika Anda memiliki dua disk yang terhubung, tidak ada jaminan bahwa yang pertama akan selalusda
atausdb
, tetapi udev memastikan bahwa symlink di/dev/disk/by-uuid
akan terus mengarah ke yang benar.Meskipun node perangkat sekarang dibuat oleh kernel dan karena itu bukan urusan Anda lagi, penting untuk dicatat bahwa beberapa tipe perangkat sudah mulai menggunakan nomor utama / minor yang ditentukan secara dinamis, jadi meskipun Anda memiliki
/dev/fuse
10.228 dan/dev/hpet
10.229 hari ini, mereka akan memiliki nomor yang berbeda setelah setiap reboot, sehingga salah satudevtmpfs
atau (pada sistem yang lebih tua) sebuah program yang mendengarkan banyak hal diperlukan .Banyak dari hal-hal ini dapat dengan mudah dilakukan oleh program lain seperti
mdev
, tentu saja. Maksud saya adalah bahwa/etc/MAKEDEV
skrip statis tidak akan berfungsi lagi ...Jadi, pada dasarnya, ketika datang ke kompleksitas boot, udev kemungkinan adalah yang paling tidak menjadi perhatian Anda.
sumber
Ada beberapa alternatif:
chmod
,chown
,ln
, dan perintah sejenisnya di sebuah script yang dijalankan sebagai bagian dari bootstrap.systemd-udev
, plug-and-play manager yang merupakan bagian dari proyek systemd.eudev
, yang merupakan garpusystemd-udev
dari mana systemd kini telah menyimpang secara signifikan.vdev
, yang merupakan manajer plug-and-play yang dikembangkan oleh Jude Nelson, yang merupakan bagian dari Devuan.mdev
, yang bertentangan dengan jawaban lain bukanlah hal yang Gentoo. Itu adalah plug-and-play manager yang dibangun ke dalam BusyBox .mdev
yang merupakan plug-and-play manager yang dikembangkan oleh Dimitris Papastamos.mdevd
, yang merupakan konfigurasi yang kompatibel dengan BusyBoxmdev
tetapi melakukan penanganan soket sendiri dan tidak memahami protokol LISTEN.Semua ini, terlepas dari yang pertama, membutuhkan serangkaian aturan yang menjelaskan cara bereaksi terhadap peristiwa pemberitahuan kernel tentang perangkat. Jelas sekali.
Ada juga alat yang akan mengambil program yang dirancang untuk
/proc/sys/kernel/hotplug
, seperti keduanyamdev
, dan yang akan mengadaptasi dan membuat serial mereka dengan mendengarkan soket netlink dan kemudian memunculkan program-program tersebut:s6-netlink-listener
dans6-uevent-spawner
netlink-datagram-socket-listen
danplug-and-play-event-handler
dari nosh toolsetsumber
udev? Alternatif terbaik adalah tidak menggunakannya. Dan dengan mempelajari cara tidak menggunakannya Linux dan dunia * NIX akan mulai lebih masuk akal.
Alternatif jangka panjang terbaik adalah menggunakan perangkat statis (lihat catatan). Jika Anda mendapatkan drivernya, kernel Linux mengelola hot-plugging. Saya lebih suka tidak menjalankan udevd, selamanya.
dbus adalah masalah lain. Memang memperlambat sistem Anda, tetapi, dunia orang naskah yang selalu berubah menyukainya. Jadi, banyak hal, Anda terbiasa, seperti browser web atau aplikasi dengan skrip-backend, harus diperbaiki (diluncurkan atau dibangun kembali tanpa barang-barang itu atau dibuang untuk aplikasi lain).
Catatan: Jika Anda hanya mencolokkan flash drive atau perangkat dvd, gunakan
dmesg|tail
untuk melihat nama perangkat yang akan dipasang. Belajar ketika perangkat adalah karakter atau perangkat blok adalah pengetahuan sistem dasar dalam dunia perangkat keras komputer. Di Linux itu open source, lihat ini banyak tentang Linux, bukan hanya tertanam . Ini yang terbaik untuk pemahaman yang lebih luas tentang logika lurus ke depan (bukan filosofi) dari semua * NIX, seperti Linux (Solaris, HPUX, AIX, dll).Udev, dbus, gconf / dconf, systemd, gnome-shell, Gnome, Glib, mono dan Fedora adalah untuk orang-orang dengan banyak waktu di tangan mereka yang tidak dapat RTFM, atau menginginkan pembaruan yang otomatis benar-benar licin (mencari) tetapi, lebih lambat dari molase, buggy, Linux setengah jalan di sana. (Tempat yang benar-benar mengerikan, lihat di web untuk banyak pengalaman serupa).
Sistem mem-boot kemudian menjalankan udevd. Tapi, itu diklaim udev diperlukan karena, nomor perangkat kecil
will change
saat reboot. Raison d'etre Udev tampaknya bertentangan dengan dirinya sendiri di setiap kesempatan. Dan di mana file-file itu tampaknya selalu salah, tidak peduli siapa yang Anda berkonsultasi. Jangan percaya atau freedesktop.org.Selain udev sedang diserap ke dalam kengerian yang dikenal sebagai systemd, saya tidak tahu apa yang dilakukan dengan sampah / etc / udev kemudian. Dan, bodoh untuk mengatakan bahwa menulis aturan udev entah bagaimana lebih baik daripada apa pun. Orang-orang gentoo tampaknya ingin bertahan dan tidak harus memiliki systemd, jadi mereka telah membayarnya untuk eudev.
Jika Anda ingin sistem yang sangat cepat, tidak ada sistem jahat, gunakan dasar-dasar Linux.
sumber
udev
fungsi. Agak juga baik untuk menunjukkan kekuatan dari pendekatan alternatif ini .