From owner-freebsd-questions@FreeBSD.ORG Sat Oct 30 05:36:05 2004 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CB85216A4CE for ; Sat, 30 Oct 2004 05:36:05 +0000 (GMT) Received: from mail.datausa.com (ns1.datausa.com [216.150.220.135]) by mx1.FreeBSD.org (Postfix) with SMTP id 5382043D46 for ; Sat, 30 Oct 2004 05:36:05 +0000 (GMT) (envelope-from freebsd@wcubed.net) Received: (qmail 49971 invoked from network); 30 Oct 2004 05:35:05 -0000 Received: from web.datausa.com (HELO webmail.wcubed.net) (216.150.220.132) by mail.datausa.com with SMTP; 30 Oct 2004 05:35:05 -0000 Received: from 67.165.234.240 (SquirrelMail authenticated user freebsd@wcubed.net) by webmail.wcubed.net with HTTP; Fri, 29 Oct 2004 23:30:17 -0600 (MDT) Message-ID: <3019.67.165.234.240.1099114217.squirrel@webmail.wcubed.net> In-Reply-To: <20041029202605.GC1046@gothmog.gr> References: <2614.67.165.234.240.1099073745.squirrel@webmail.wcubed.net> <20041029183742.GB76157@dan.emsphone.com> <20041029202605.GC1046@gothmog.gr> Date: Fri, 29 Oct 2004 23:30:17 -0600 (MDT) From: "Brad Waite" To: "Giorgos Keramidas" User-Agent: SquirrelMail/1.4.0 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 X-Priority: 3 Importance: Normal cc: freebsd-questions@freebsd.org Subject: Re: Building part of world X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Oct 2004 05:36:05 -0000 > On 2004-10-29 13:37, Dan Nelson wrote: >> In the last episode (Oct 29), Brad Waite said: >> > I'm trying to update my sys/pci/if_sk.c and would like to be able to >> > build several versions without having to build the entire world. >> >> Since that's a kernel driver, you only have to build a new kernel. > > An even better approach in the case of a single kernel driver is to leave > it > commented out in the kernel config file. Then it will be built as a > module by > default. After at least one buildworld/buildkernel cycle has finished > correctly with this configuration, you can use the already populated > /usr/obj > tree to build just this module: > > # cd /usr/src/sys/i386/conf > # config -g -d /usr/obj/usr/src/sys/MYKERNEL MYKERNEL > # cd /usr/obj/usr/src/sys/MYKERNEL > # make depend && make && make install > > If you have only touched a single .c file, the 'make depend' step is AFAIK > optional. The rest should finish pretty fast. > > Brave people might even get away by building the sk module only, by > emulating the specific part of the kernel build: > > # cd /usr/src/sys/modules/sk > # env MAKEOBJDIRPREFIX=/tmp/sk \ > KMODDIR=/boot/kernel DEBUG_FLAGS="-g" MACHINE=i386 \ > KERNBUILDDIR="/usr/obj/usr/src/sys/MYKERNEL" make obj > # env MAKEOBJDIRPREFIX=/tmp/sk \ > KMODDIR=/boot/kernel DEBUG_FLAGS="-g" MACHINE=i386 \ > KERNBUILDDIR="/usr/obj/usr/src/sys/MYKERNEL" make all > > If all this works, you can just kldload the new if_sk.ko from > `/tmp/sk/usr/src/sys/modules/sk' to test your changes. > > HTH, > Giorgos Wow, Giorgos, this really *does* help. It never dawned on me that FBSD even supported loadable kernel modules. Feel kinda sheepish now, but hey, I guess you learn something new every day. In my stumbling around since you've enlightened me, I noticed a sk/ dir in /usr/src/sys/modules, and in there a Makefile. 'make install' apparently builds the .ko and installs it into /modules. Am I missing something here, or is this the way to go? Brad