This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
developersguide:driverprogramming [2016/02/04 08:26] bertbrecht changing the way the driver gets the configuration |
developersguide:driverprogramming [2016/02/06 12:34] lionelsambuc fixed an incorrect path in an example |
||
---|---|---|---|
Line 31: | Line 31: | ||
SRCS= hello.c | SRCS= hello.c | ||
- | FILES=$(PROG).conf | + | FILES=${PROG}.conf |
- | FILESNAME=$(PROG) | + | FILESNAME=${PROG} |
FILESDIR= /etc/system.conf.d | FILESDIR= /etc/system.conf.d | ||
Line 66: | Line 66: | ||
# make install | # make install | ||
</code> | </code> | ||
- | If you did not receive any errors, it is time to try and run the device driver. Before we do that, we must create the //system.conf// file. It contains the permissions for the service. Each device driver typically only needs to access one real hardware device, and uses a few functions provided by Minix. To give our simple hello try-out driver enough permissions to experiment with, fill the following to //system.conf//: | + | If you did not receive any errors, it is time to try and run the device driver. Before we do that, we must create the //hello.conf// file. It contains the permissions for the service. Each device driver typically only needs to access one real hardware device, and uses a few functions provided by Minix. To give our simple hello try-out driver enough permissions to experiment with, create //hello.conf// with: |
- | //system.conf//: | + | //hello.conf//: |
<code> | <code> | ||
Line 354: | Line 354: | ||
# make | # make | ||
# make install | # make install | ||
- | # service update /usr/sbin/hello -state 1 # request an update state where no work is in progress (i.e. SEF_LU_STATE_WORK_FREE=1) | + | # service update /service/hello -state 1 # request an update state where no work is in progress (i.e. SEF_LU_STATE_WORK_FREE=1) |
Hello, New World! | Hello, New World! | ||
Hey, I'm a new version! | Hey, I'm a new version! | ||
Line 579: | Line 579: | ||
SRCS= time.c | SRCS= time.c | ||
- | FILES=$(PROG).conf | + | FILES=${PROG}.conf |
- | FILESNAME=$(PROG) | + | FILESNAME=${PROG} |
FILESDIR=/etc/system.conf.d | FILESDIR=/etc/system.conf.d | ||
DPADD+= ${LIBCHARDRIVER} ${LIBSYS} | DPADD+= ${LIBCHARDRIVER} ${LIBSYS} | ||
LDADD+= -lchardriver -lsys | LDADD+= -lchardriver -lsys | ||
- | |||
- | |||
.include <minix.service.mk> | .include <minix.service.mk> | ||
</code> | </code> | ||
- | Now we need to give the new time device driver access to the CMOS ports 0x70 and 0x71 using the time.conf file mentioned in the Makefile. Putting it in /etc/system.d/ lets service read it. This is the contents: | + | Now we need to give the new time device driver access to the CMOS ports 0x70 and 0x71 using the //time.conf// file mentioned in the Makefile. Putting it in /etc/system.d/ lets service read it. This is the contents: |
<code> | <code> |