Guía del desarrollador para la creación de paquetes de aplicaciones

Archivos de casos prácticos

El archivo pkginfo

PKG=bufdev
NAME=Buffer Device
CATEGORY=system
BASEDIR=/
ARCH=INTEL
VERSION=Software Issue #19
CLASSES=none

El archivo prototype

Para instalar un controlador en el tiempo de la instalación, debe incluir los archivos de configuración y objetos para el controlador en el archivo prototype.

En este ejemplo, el módulo ejecutable del controlador recibe el nombre de buffer; el comando add_drv funciona en este archivo. El núcleo usa el archivo de configuración, buffer.conf, para ayudar a configurar el controlador.

i pkginfo
i request
i postinstall
i preremove
f none $KERNDIR/buffer 444 root root
f none $KERNDIR/buffer.conf 444 root root

Si mira al archivo prototype de este ejemplo, puede observar lo siguiente:

La secuencia de comandos request

trap 'exit 3' 15
# determine where driver object should be placed; location
# must be an absolute path name that is an existing directory
KERNDIR=`ckpath -aoy -d /kernel/drv -p \
“Where do you want the driver object installed”` || exit $?

# make parameters available to installation service, and
# so to any other packaging scripts
cat >$1 <<!

CLASSES='$CLASSES'
KERNDIR='$KERNDIR'
!
exit 0

La secuencia de comandos postinstall

# KERNDIR parameter provided by `request' script
err_code=1                    # an error is considered fatal
# Load the module into the system
cd $KERNDIR
add_drv -m '* 0666 root sys' buffer || exit $err_code
# Create a /dev entry for the character node
installf $PKGINST /dev/buffer0=/devices/eisa/buffer*:0 s
installf -f $PKGINST

La secuencia de comandos preremove

err_code=1                    # an error is considered fatal
# Unload the driver
rem_drv buffer || exit $err_code
# remove /dev file
removef $PKGINST /dev/buffer0 ; rm /dev/buffer0
removef -f $PKGINST