next up previous contents
Next: Még egy példa: Up: A STREAMS driverek Previous: A driver kernelbe

Driver installálás ISC UNIX alatt

Ha egy device drivert elkészítünk, akkor azt egy speciális (Driver Software Packagenek nevezett) formában terjeszthetjük például mágneslemezen. Az INTERACTIVE UNIX az ilyen formátumú device drivereket automatikusan tudja installálni, ez nagy könnyebbség a felhasználónak. (Errol a formátumról az INTERACTIVE UNIX leírásában olvashatunk.) De a driver fejlesztésénél elég hosszadalmas munka lenne minden egyes tesztverziónál egy DSP formátumú lemezt létrehozni, ezért a következokben bemutatjuk a driver installálásának manuális változatát. Ehhez általában a root néven kell bejelentkezni.

--- - Objectkód létrehozása - ---

Ha a driverünk forráskódja egyetlen C nyelvu programból áll (ennek neve legyen most Driver.c, akkor azt a szokásos módon a

                 cc -c Driver.c
UNIX parancs segítségével fordíthatjuk le. (Bármi lehet a driver neve, csak az a fontos, hogy a keletkezett objectkód át legyen majd nevezve a Driver.o névre.) Ha viszont a driver forráskódja több C nyelvu programból áll, akkor azokat egyenként a fenti módon kell lefordítani, és az ld -r paranccsal az így keletkezett objecteket lehet egy modullá összeszerkeszteni, aminek a neve legyen Driver.o.

--- - Masterfileok változtatása - ---

Adni kell a drivernek egy nevet. (Például a master fileokban ez a név fogja azonosítani a drivert. A példadriverünknél legyen ez a név: bcnd, ezt a nevet használjuk a továbbiakban is.)
Kreálni kell egy system file bejegyzést (ez kerül az sdevice fileba) a következoképp: az /etc/conf/sdevice.d directoryban hozzunk létre szövegszerkesztovel egy bcnd nevu filet. Ebbe írjuk a driverhez tartozó sdevice bejegyzést. Legyen ez például a következo :

bcnd      Y     1    0       0      0        0    0       0      0
Az mdevice filet szintén ki kell egészíteni. Ez úgy megy, hogy az aktuális directoryban létre kell hozni egy Master nevu filet, ami az új mdevice bejegyzést tartalmazza. Legyen ez a következo :
bcnd      -           Sic   bcnd      0         0       1    4     -1
A következo UNIX shell parancs megváltoztatja az mdevice filet (úgy, hogy a Master filet az aktuális directoryból törli). (A leírásban van az, hogy a Master nevu filet a rendszer törli az aktuális directoryból, amikor a példadrivereket beraktam a rendszerbe, akkor nekem nem törölte le ezt a filet.)
          /etc/conf/bin/idinstall -a -m -k bcnd
Ezután az /etc/conf/cf.d/mdevice fileban nézzük meg a blokk/karakteres major device numbert, késobb még szükség lesz rá.

--- - Speciális file bejegyzése - ---

Kreálj egy bcnd nevu filet a /etc/conf/node.d directoryban, és egészítsd ki azt a Node formátumnak megfeleloen. (Vagyis 4 mezo legyen egy rekordban, és az egyes mezok jelentése a következo :
1.: Driver neve (itt : bcnd)
2.: A device speciális filejának a neve
3.: 'b' vagy 'c' betu (blokk/character device drivernek)
4.: Minor device number)
A driverünknél ez a következoképp néz ki :

bcnd        bcndm0      c         0

--- - További fileok kreálása - ---

Ha a drivert leteszteltük, és már hibátlanul muködik, akkor a /etc/conf/init.d, a /etc/conf/rc.d és a /etc/conf/sd.d directorykat is a szükséges scriptekkel kiegészíthetjük.

--- - A kernel újralinkelése - ---

Kreálni kell egy /etc/conf/pack.d/bcnd nevu directoryt, és be kell vinni oda a Driver.o és a Space.c nevu fileokat, és csinálni kell egy másolatot a régebbi UNIX kernelrol a következo paranccsal :

     cp /unix /unix.bak
Majd végre kell hajtani a /etc/conf/bin/idbuild shell scriptet, ami újralinkeli a kernelt. Ha nem volt hiba, akkor shutdown után a UNIX rendszert újra betöltve tesztelheto a driver. (A device speciális fileok csak a következo UNIX reboot után lesznek megkreálva.)



next up previous contents
Next: Még egy példa: Up: A STREAMS driverek Previous: A driver kernelbe



Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996