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.
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 cd
Mivel 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 - Lemezek hozzáadása elolvasása segíthet az USB meghajtón partíciókat kialakítani és formázni, amennyiben szükséges.
A rendszer biztonsága szempontjából
nem tekinthető megbízhatónak, ha olyan
felhasználók számára is
engedélyezzük tetszőleges meghajtók
csatlakoztatását (például a
vfs.usermount
engedelyézesével), amelyekben nem bízunk
meg. A FreeBSD által támogatott
állományrendszerek döntő
többsége nem nyújt védelmet a
káros szándékkal telepített
eszközök ellen.
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
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 operator
Ezzel 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):
<questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon:
<gabor@FreeBSD.org>.