From owner-freebsd-hackers@FreeBSD.ORG Wed Nov 16 16:29:18 2005 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1194A16A41F; Wed, 16 Nov 2005 16:29:18 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from speedfactory.net (mail6.speedfactory.net [66.23.216.219]) by mx1.FreeBSD.org (Postfix) with ESMTP id A4CBC43D66; Wed, 16 Nov 2005 16:29:15 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (unverified [66.23.211.162]) by speedfactory.net (SurgeMail 3.5b3) with ESMTP id 2067365 for multiple; Wed, 16 Nov 2005 11:28:37 -0500 Received: from localhost (john@localhost [127.0.0.1]) by server.baldwin.cx (8.13.1/8.13.1) with ESMTP id jAGGSRul001754; Wed, 16 Nov 2005 11:28:29 -0500 (EST) (envelope-from jhb@freebsd.org) From: John Baldwin To: freebsd-drivers@freebsd.org Date: Wed, 16 Nov 2005 11:28:25 -0500 User-Agent: KMail/1.8.2 References: <20051116103310.20B9A164A49@ws1-4.us4.outblaze.com> In-Reply-To: <20051116103310.20B9A164A49@ws1-4.us4.outblaze.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200511161128.26191.jhb@freebsd.org> X-Spam-Status: No, score=-2.8 required=4.2 tests=ALL_TRUSTED autolearn=failed version=3.0.2 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on server.baldwin.cx X-Server: High Performance Mail Server - http://surgemail.com r=1653887525 Cc: freebsd-hackers@freebsd.org, Yong Ma Subject: Re: How to make my new driver be configurable in the kernel configuration file? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Nov 2005 16:29:18 -0000 On Wednesday 16 November 2005 05:33 am, Yong Ma wrote: > ----- Original Message ----- > From: "Warner Losh" > To: jhb@freebsd.org > Subject: Re: How to make my new driver be configurable in the kernel > configuration file? Date: Tue, 15 Nov 2005 09:19:09 -0700 (MST) > > > From: John Baldwin > > Subject: Re: How to make my new driver be configurable in the > > kernel configuration file? > > Date: Tue, 15 Nov 2005 10:21:59 -0500 > > > > > On Tuesday 15 November 2005 03:59 am, Yong Ma wrote: > > > > Hi all, > > > > I wrote and debuged my driver for a new device in KLD mode,now I want > > > > to plug it into the kernel,so that it can be loaded when the system > > > > boots,and make it be configurable in the kernel configuration file > > > > like other device driver as "device XXX",I don't know what to > > > > do,could anyone be kind to help me? > > > > > > To add your driver you update the src/sys/conf/files* files. If > > > your driver is machine independent, you can add it to > > > src/sys/conf/files. For example, here are the lines in > > > sys/conf/files for the cy(4) driver: > > > > > > dev/cy/cy.c optional cy > > > dev/cy/cy_isa.c optional cy isa > > > dev/cy/cy_pci.c optional cy pci > > > > > > If your driver only works on a single architecture (such as i386) > > > then add it to the architecture file sys/conf/files. (e.g. > > > sys/conf/files.i386). The device names after 'optional' specify > > > which devices must be enabled in the kernel config for that file > > > to be included. Thus, in the example above, src/sys/dev/cy/cy.c > > > is included as long as 'device cy' is in the kernel, but > > > src/sys/dev/cy/cy_isa.c is only included if both 'device cy' and > > > 'device isa' are in the kernel config file. > > > > You can augment the system files with the files directive if you don't > > want to edit sys/conf/files.foo: > > > > files "/foo/bar/baz" > > > > and put something like the above in that. > > > > Warner > > > > _______________________________________________ > > freebsd-drivers@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/freebsd-drivers > > To unsubscribe, send any mail to > > "freebsd-drivers-unsubscribe@freebsd.org" > > Thank you! I did as that but came across some problems,these are the > jobs and the errors: > > 1) I copyed the files to the sys/dev/mydevice and added > "dev/mydevice/mydevice.c optinonal mydevice" in the file > /usr/src/sys/conf/files.i386,and added a line "device mydevice" in > the sys/i386/conf/MYKERNEL(a copy of GENERIC),but met a error when > config MYKERNEL:syntax error (the line I just added). > > 2) Then,I modified line in files.i386 as "dev/mydevice/mydevice.c > standard",configed successfully,but another error occured when make > depend(make buildkernel KERNCONF=MYKERNEL the same): > ... > ../../../dev/mydevice/mydevice.c:27:20: mydevice.h: No such > file or directory > ../../../dev/mydevice/mydevice.c:28:44: mydevicekern.h: No such > file or directory > ../../../dev/mydevice/mydevice.c:29:49: mydeviceioctl.h: No > such file or directory > mkdep: compile failed > *** Error code 1 > ... > and the source code of mydevice.c is as follows: > ... > #include "sjy22b.h" > #include "sjy22bkern.h" > #include "sjy22bioctl.h" > ... > the three headers are just in the sys/dev/mydevice directory,I don't > know why this happened. > Need your suggestion! You'll need to include them as "dev/mydevice/mydevice.h" rather than "mydevice.h" -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org