mdev

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Mdev and the translation is 100% complete.


Ez a cikk dokumentálja, hogy miként lehet a Linuxban az udev-et mdev-re cserélni, így lehetővé téve egy külön /usr partíciót initramfs nélkül. Ennek a cikknek a szerzője Gentoo Linuxot használ IceWM ablakkezelővel. Az itt található útmutatás néhány kisebb módosítással más disztribúciókra is alkalmazható lehet.

Az mdev a Busybox udev-helyettesítője, amely kitölti és frissíti a /dev könyvtárat ( hivatalos dokumentáció ). Az eudev vagy udev lecserélése nem triviális, és valószínűleg leginkább beágyazott rendszerekhez alkalmazható.

Működni fog-e az mdev az operációs rendszeremen?

Az mdev alkalmazás határozottan megfelelő, amíg az operációs rendszer nem használ teljes értékű asztali környezetet. Fontos megjegyezni, hogy asztali környezet nem szükséges az AbiWord, Firefox, GIMP, Gnumeric stb. futtatásához. Azonban a KOffice alkalmazások, például a KMail, látszólag a KDE nagy részét behúzzák szoftvercsomag-függőségként. Általánosságban elmondható, hogy a KDE vagy a GNOME használata esetén az mdev nem megfelelő. Emellett a LVM használata is problémás lehet.

Nagyon jól fog működni az alapértelmezett Gentoo profilok használata esetén:

  • default/linux/x86/13.0
  • default/linux/amd64/13.0

A jelenleg használt profil megjelenítése a következő parancs segítségével:

user $ eselect profile list
Current /etc/portage/make.profile symlink:
  default/linux/amd64/13.0
Note
Az evdev legújabb verziói (amelyek a x11-drivers/xf86-input-evdev szoftvercsomagon keresztül érhetők el) és a www-client/chromium szükségessé teszik az udevet. Ezek nem fordítódnak le a forráskódból nélküle.

Van még egy ellenőrzési mód, amelyet a Gentoo felhasználók futtathatnak az udev szoftvercsomag-függőség ellenőrzésére.

Ellenőrzési lépés

Szerezzen egy általános áttekintést arról, hogy mely szoftvercsomagok függhetnek az udev szoftvercsomagtól. A kimenet hasonló lehet az alább láthatóhoz:

user $ equery d udev
 * These packages depend on udev:
media-libs/mesa-9.0.1 (gbm ? virtual/udev)
sys-apps/hwids-20130329 (udev ? >=virtual/udev-197-r1)
sys-apps/util-linux-2.22.2 (udev ? virtual/udev)
virtual/dev-manager-0 (virtual/udev)
x11-base/xorg-server-1.13.4 (udev ? >=virtual/udev-150)
x11-drivers/xf86-video-intel-2.20.13 (udev ? virtual/udev)
x11-libs/cairo-1.10.2-r3 (drm ? >=virtual/udev-136)

Adja hozzá a következő sort a /etc/portage/package.mask vagy a /etc/portage/package.mask/mdev fájlhoz (amely ha még nem létezik, akkor létrehozható):

FILE /etc/portage/package.mask/mdev Az udev kimaszkolása (elrejtése)
sys-fs/udev

Tiltsa le a udev USE jelölőzászlót globálisan a /etc/portage/make.conf fájlban:

root # euse -D udev

A forráskódból építse újra az összes szoftvercsomagot az új -udev USE jelölőzászlóval:

root # emerge -uDNvp @world

Ha az egyetlen hiba az, hogy a Portage nem tudja újratelepíteni az udev szoftvercsomagot, ahogyan azt a virtual/dev-manager megköveteli, akkor lépjen tovább a következő szakaszra. Egyébként a sys-fs/udev lehet, hogy erős szoftvercsomag-függősége (hard dependency) egy vagy több, a operációs rendszeren telepített szoftvercsomagnak.

Szoftver, amely extra lépéseket igényel

ATI/AMD bináris fájlok

Egyes ATI/AMD Radeon grafikuskártyák bináris fájlokat igényelnek. A Gentoo sys-firmware/radeon-ucode szoftvercsomag begyűjti az összes elérhető bináris fájlt a http://people.freedesktop.org/~ag5f/radeon_ucode/ oldalról, annak érdekében, hogy sokféle modellt támogasson.

Ha az összes bináris fájl a könyvtárban található, akkor a kernelnek szüksége van az udevre, hogy meghatározza, melyik bináris fájlt kell betölteni. Ha minden bináris fájl törlésre kerül, kivéve az egyetlen megfelelő fájlt a könyvtárban, akkor az automatikusan betöltődik.

Az udev lecserélése mdevre

Warning
Ez egy kritikus lépés, amely egy nem bootolható Linux rendszert eredményezhet. Kizárólag akkor folytassa, ha a fenti megközelítés nem mutatott ki további udev szoftvercsomag-függőségeket.

Kernel beállítása devtmpfs-hez

Állítsa be a kernel forráskódját úgy, hogy a forráskódból lefordított bináris kernelképfájl támogassa és automatikusan csatolja fel a devtmpfs fájlrendszert a /dev könyvtárban:

KERNEL Az devtmpfs engedélyezése
Device Drivers --->
    Generic Driver Options --->
        [*] Maintain a devtmpfs filesystem to mount at /dev
        [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs

Miután a módosítások el lettek végezve, a forráskódból építse újra a bináris futtatható kernelképfájlt. NE indítsa újra még a számítógépet.

A BusyBox forráskódjának letöltése, lefordítása és telepítése az emerge segítségével

Győződjön meg róla, hogy a mdev USE jelölőzászló be van állítva a sys-apps/busybox szoftvercsomagnál. A static USE jelölőzászló használata is valószínűleg jó ötlet. A /etc/portage/package.use vagy a /etc/portage/package.use/mdev fájlban adja hozzá a következő sort:

FILE /etc/portage/package.use/mdev
sys-apps/busybox static mdev

Most telepítse (újra) a busybox szoftvercsomagot:

root # emerge --ask --oneshot busybox

A devpts felcsatolása a fájlrendszerbe

A devpts fájlrendszer nem mutat szabványos viselkedést. Nem csatolódik fel automatikusan sem az bootoláskor, sem a mount -a parancs használatával. Egy kifejezett mount devpts parancs szükséges. Az udev-alapú operációs rendszerek esetében a szokásos megoldás az, hogy root felhasználóként futtatják a rc-update add udev-mount sysinit parancsot, így az udev-mount szkript végzi el a felcsatolást az bootoláskor. Az mdev-alapú operációs rendszereken valószínűleg nincs telepítve az udev. Egy alternatív módszer a bootoláskor a felcsatolásra az, hogy a mount devpts parancsot egy shell szkriptbe illesztik a /etc/local.d/ könyvtárban. Ebben a példában a fájl neve /etc/local.d/000.start lesz.

Ha nem használjuk az udev-mountot, akkor egy másik mellékhatás az, hogy a /dev/shm könyvtárat csak root felhasználói jogosultsággal lehet írni. A chmod 1777 /dev/shm parancs szükséges a szabványos működés visszaállításához. Ez a parancs a bootoláskor a szkriptből is futtatásra kerül.

FILE /etc/local.d/000.start A devpts felcsatolása a bootoláskor és a /dev/shm jogosultságainak a módosítása
#!/bin/bash
mount devpts
chmod 1777 /dev/shm
Note
A /etc/local.d/ könyvtárban használt szkriptnek:
  • Futtathatónak kell lennie.
  • Annak érdekében, hogy a számítógép elindulásakor a fájl is automatikusan lefusson, a fájlnak ".start" kiterjesztéssel kell rendelkeznie.
  • Annak érdekében, hogy a számítógép leállásakor a fájl is automatikusan lefusson, a fájlnak ".stop" kiterjesztéssel kell rendelkeznie.

Az udev szolgáltatásnak a cseréje

Távolítsa el az udev szolgáltatást a szolgáltatások listájáról, és cserélje ki az az mdev szolgáltatásra:

root # rc-update del udev sysinit
root # rc-update add mdev sysinit

Számítógép újraindítása

Indítsa újra az operációs rendszert (tehát magát a számítógépet) az új kernelre. Az újraindítást követően az operációs rendszernek most már az mdev segítségével kell futnia.

Takarítás

Távolítsa el az udev szolgáltatást az operációs rendszerből:

root # emerge --ask --depclean --verbose sys-fs/udev sys-fs/eudev

A /etc/portage/package.mask fájlban (vagy ebben a könyvtárban egy fájlban) adja hozzá a sys-fs/udev és sys-fs/eudev szoftvercsomagokat.

Ezáltal az operációs rendszer teljesen udev-mentessé fog válni.

USB nyomtató beállítása a CUPS alatt

Tegye elérhetővé a 'find' parancsot a korai bootolás során

root # cd /bin
root # ln -s /bin/busybox find

Kernel újbóli lefordítása a forráskódból

Ahogy a libusb (és így a CUPS) számára lehetővé válik az USB portok észlelése, állítsa be a kernel forráskódjának a beállításában a CONFIG_USB_DEVICE_CLASS=y és CONFIG_USB_DEVICEFS=y értékeket. Továbbá állítsa be a CONFIG_USB_PRINTER=y értéket, annak ellenére, hogy a cups-1.5.2 ebuild azt javasolja, hogy tiltsa azt le. Amikor a make menuconfig segédszoftver használatával állít be, akkor ezek az elemek itt találhatóak:

KERNEL USB eszközök generálásának engedélyezése a bootoláskor
Device Drivers --->
    [*] Support for Host-side USB
      [*] USB device filesystem [DEPRECATED]
      [*] USB device class-devices [DEPRECATED]
    [*] USB Printer support
Note
Ne aggódjon az elavulási figyelmeztetések miatt.

Állítsa be a forráskódból újonnan lefordított bináris futtatható kernelképfájlt a bootloaderben (hogy legközelebb már az fusson), majd indítsa újra az operációs rendszert

Új eszközcsomópontok jelenlétének az ellenőrzése

Az eszközcsomópontok hierarchiájának jelen kell lennie a /dev/bus/usb/ alatt. A nyomtató bekapcsolásakor egy csomópontnak meg kell jelennie a /dev/lp0 helyen. A lsusb sikeresen kell fusson, és ennek meg kell jelenítenie a nyomtató részleteit.

Nyomtató beállítása a CUPS alatt

Állítsa be a CUPS rendszert a szokásos módon . A CUPS-nek fel kell ismernie a nyomtatót, és egy URI-t kell hozzárendelnie magához a nyomtatóhoz, például parallel:/dev/lp0 .

Hibaelhárítás

Hiányzó Linux kernelmodulok a bootolási folyamat során

Ha Linux kernelmodulokra van szükség, és a migráció után nem töltődnek be a bootoláskor, akkor hajtson végre a következő megoldások közül egyet vagy többet:

  • Linux kernelmodulok hozzáadása a *.conf fájlokhoz a /etc/modules-load.d/ könyvtárban.
  • Kernelmodulok lefordítása közvetlen bele a Linux kernelképfájlba, anélkül, hogy szükség lenne azok igény szerinti betöltésére a kernelképfájlon kívüli kernelmodul-fájlból.
  • Write a custom module loader:
FILE /sbin/hotplug
#!/bin/sh
test -n "$MODALIAS" && modprobe "$MODALIAS";
exec /sbin/mdev

Telepítse azt a hotplug kezelőként az mdev helyett. Minél korábban hajtják végre ezt, annál jobb. Fontolja meg, hogy ezt a szkriptet /sbin/hotplug névre nevezze, mivel ez az alapértelmezett értéke a /proc/sys/kernel/hotplug fájlnak (vagy változtassa meg az alapértelmezett értéket a kernel beállításában).

Egyéb

Note
Ezt az utasítás eredetileg Walter Dnes írta, és a saját weboldalán tárolta meg. A Gentoo wikibe lett beleimportálva némi szerkesztéssel, amelyet Michael Mol végzett a gentoo-user levelezési lista megbeszélése alapján.
  • Az mdev, ellentétben az udevvel, nem támogatja az automatikus kernelmodul-betöltést. Hozzon létre .conf kiterjesztésű fájlokat a /etc/modules-load.d/ könyvtárban, és helyezze el ott az összes betöltendő kernelmodulfájlt (nvidia, wl stb.), soronként egyet. Az opciókat testre szabhatja .conf végződésű fájlokon keresztül a /etc/modprobe.d könyvtárban (a pontos szintaxisért tekintse meg a man 5 modprobe.d súgót). Szükség lehet a kernelmodul-beállítás áthelyezésére ebbe a könyvtárba.
  • A mdev -s nem hoz létre /dev/mapper csomópontokat. Vagy manuálisan hozza létre őket, vagy használja az lvm2 dmsetup mknodes parancsát. Érdemes ezt hozzáadni a mdev -s után az init szkriptben.

Használja az egér-illesztőprogramokat és billentyűzet-illesztőprogramokat az xorg bemenetekhez. Az evdev forráskódból binárisra történő lefordításához szükség van az udev-re. A mousedrv (az egér-illesztőprogram) konfliktusba kerülhet a synaptic illesztőprogrammal amennyiben mindkettő betöltésre kerül a memóriába.

  • A CONFIG_INPUT_EVDEV kernel beállítási opció nemcsak a billentyűzetet és az egeret biztosítja bemeneti eszköz eseményként, hanem a fedéleseményeket és gombeseményeket is továbbítja az acpid számára.

További olvasnivaló a témában

  • Mdev/Automount USB‎ — describes how to implement automounting of USB devices on a machine using mdev as the device manager.

Külső források