Manapság már számos külső tárolóeszköz az USB (Universal Serial Bus) közvetítésével csatlakozik a számítógéphez: merevlemezek, pen drive-ok, CD-írók stb. A FreeBSD ezeket az eszközöket is ismeri.
A USB tárolóeszközöket kezelő meghajtó, az umass(4) felelős az USB alapú tárolóeszközök támogatásáért. Ha a GENERIC rendszermagot használjuk, akkor semmit sem kell változtatnunk. Ha saját rendszermagunk van, akkor gondoskodjunk róla, hogy a következő sorokat beraktuk a rendszermag beállításait tartalmazó állományba:
device scbus device da device pass device uhci device ehci device usb device umass
Az umass(4) meghajtó a SCSI alrendszeren keresztül éri el az USB tárolóeszközöket, tehát az USB eszközeinket a rendszer SCSI eszközként látja. Az alaplapon található USB chipkészlet típusától függően vagy csak a device uhci, vagy USB 1.X esetén pedig a device ohci bejegyzésre lesz szükségünk. De abból sem származik kárunk, ha mind a kettőt meghagyjuk. Az USB 2.0 szabványú vezérlőket a ehci(4) meghajtó (device ehci) támogatja. Ha módosítani kellett a konfigurációs állományt, akkor ne felejtsük el újrafordítani és telepíteni sem a rendszermagot.
Megjegyzés: Ha az USB eszközünk egy CD- vagy DVD-író, akkor a következő sorral a SCSI CD-meghajtók meghajtóját, a cd(4) eszközt kell beépítenünk a rendszermagba:
device cdMivel az író is SCSI eszközként látszik, ezért az atapicam(4) nem szerepelhet a rendszermag beállításai között.
A beállításaink készen állnak a kipróbálásra: csatlakoztassuk a számítógéphez az USB eszközünket és a rendszerüzeneteket tároló pufferben (dmesg(8)) hamarosan meg is jelenik a hozzátartozó meghajtó:
umass0: USB Solid state disk, rev 1.10/1.00, addr 2 GEOM: create disk da0 dp=0xc2d74850 da0 at umass-sim0 bus 0 target 0 lun 0 da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device da0: 1.000MB/s transfers da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)
Természetesen a gyártóra, márkára, az eszköz leírójára (da0) és egyebekre vonatkozó részletek eltérhetnek.
Mivel az USB eszköz SCSI eszközként látszik, ezért a camcontrol parancs használható a rendszerhez csatlakoztatott USB tárolóeszközök listázásához:
# camcontrol devlist <Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0)
Ha a meghajtón állományrendszer is található, akkor képesek vagyunk csatlakoztatni. A 18.3 Szakasz elolvasása segíthet az USB meghajtón partíciókat kialakítani és formázni, amennyiben szükséges.
Ha az eszközt normál felhasználókkal is csatlakoztathatóvá akarjuk tenni, akkor további lépések megtételére is szükségünk lesz. Először is a felhasználóknak valahogy el kell tudniuk érniük az USB tárolóeszköz csatlakoztatásakor keletkező eszközöket. Ezt úgy tudjuk megoldani, ha az érintett felhasználókat felvesszük az operator csoportba. Ebben a pw(8) lehet a segítségünkre. Másodsorban amikor ezek az eszközök létrejönnek, az operator csoportnak tudniuk kell ezeket olvasniuk és írniuk. Ezt úgy tudjuk megvalósítani, ha felvesszük a következő sorokat az /etc/devfs.rules állományba:
[localrules=5] add path 'da*' mode 0660 group operator
Megjegyzés: Ha viszont vannak SCSI lemezeink is rendszerben, akkor a helyzet egy kicsit megváltozik. Tehát például a rendszerben már eleve vannak da0, da1 és da2 néven lemezek, akkor a második sort ennek megfelelően változtassuk meg:
add path 'da[3-9]*' mode 0660 group operatorEzzel kizárunk minden, korábban már létező lemezt az operator csoportból.
Emellett még az /etc/rc.conf állományban engedélyeznünk kell a saját devfs.rules(5) szabályrendszerünket is:
devfs_system_ruleset="usb_rules"
Ezt követően be kell állítanunk a rendszermagban, hogy a hagyományos felhasználók képesek legyenek állományrendszereket csatlakoztatni. Ezt a legkönnyebb úgy tudjuk megtenni, ha az /etc/sysctl.conf állományba felvesszük a következő sort:
vfs.usermount=1
Azonban ne felejtsük el, hogy ez csak a rendszer következő indításától él. De a sysctl(8) parancs használatával is beállíthatjuk ezt az értéket.
Az utolsó lépésben hozzunk létre egy könyvtárat az állományrendszer csatlakoztatásához. Ezt a könyvtárat az a felhasználó fogja birtokolni, aki az állományrendszert csatlakoztatnia akarja. Ez például root felhasználóként úgy tudjuk megtenni, ha a felhasználónak létrehozunk egy könyvtárat /mnt/felhasználó néven (ahol a felhasználó nevet cseréljük a tényleges felhasználó nevére, a csoport nevet pedig a felhasználóhoz tartozó elsődleges csoport nevére):
# mkdir /mnt/felhasználó # chown felhasználó:csoport /mnt/felhasználó
Most tegyük fel, hogy csatlakoztatnuk egy USB pen drive-ot és ennek megfelelően megjelenik a /dev/da0s1 eszköz. Mivel az ilyen eszközökre általában gyárilag FAT állományrendszert tesznek, ezért így kell ezeket csatlakoztatni a mount(8) paranccsal:
% mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/felhasználó
Ha leválasztjuk az eszközt (miután kiadtuk a umount(8) parancsot), akkor a rendszerüzenetek között valami ilyesmit fogunk látni:
umass0: at uhub0 port 1 (addr 2) disconnected (da0:umass-sim0:0:0:0): lost device (da0:umass-sim0:0:0:0): removing device entry GEOM: destroy disk da0 dp=0xc2d74850 umass0: detached
A Lemezek hozzáadása és az Állományrendszerek csatlakoztatása és leválasztása című szakaszok elolvasása mellett a következő man oldalakat is ajánljuk: umass(4), camcontrol(8) és usbconfig(8) FreeBSD 8.X esetében, vagy usbdevs(8) a FreeBSD korábbi változatainál.
Ha kérdése van a FreeBSD-vel kapcsolatban, a következő
címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése,
kérjük erre a címre írjon: <gabor@FreeBSD.org>.