Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Oct 2005 20:28:31 +0930
From:      "Daniel O'Connor" <doconnor@gsoft.com.au>
To:        freebsd-current@freebsd.org
Subject:   Patches for ports to install KLD source
Message-ID:  <200510132028.32070.doconnor@gsoft.com.au>

next in thread | raw e-mail | index | archive | help
--nextPart3900826.dgomFnTkAc
Content-Type: multipart/mixed;
  boundary="Boundary-01=_X3jTDLokmzkKzcW"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

--Boundary-01=_X3jTDLokmzkKzcW
Content-Type: text/plain;
  charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Here is a sent of patches for 2 ports (x11/nvidia-server and palm/uppc-kmod=
)=20
that have them install the KLD source and gets the KLD's rebuilt with the=20
kernel.

Apply the attached patches and do..
mkdir /usr/local/kld /usr/X11R6/kld

Then copy the attached Makefile to /usr/local/kld and /usr/X11R6/kld.

Unfortunately I don't know a nice way of discovering PREFIX and/or X11BASE=
=20
except, say..
make -f /usr/ports/Mk/bsd.port.mk -V PREFIX
make -f /usr/ports/Mk/bsd.port.mk -V X11BASE

which seems a bit gross..

=46or the nvidia port - I've only tried it on -current so I don't know if i=
t=20
will work OK with the other versions it installs on different=20
systems/configurations.

=2D-=20
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C

--Boundary-01=_X3jTDLokmzkKzcW
Content-Type: text/x-diff; charset="us-ascii"; name="nvidia-driver-kld.diff"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="nvidia-driver-kld.diff"

diff -Nur /usr/ports/x11/nvidia-driver/Makefile nvidia-driver/Makefile
=2D-- /usr/ports/x11/nvidia-driver/Makefile	Mon Sep 12 23:14:28 2005
+++ nvidia-driver/Makefile	Wed Oct 12 15:36:46 2005
@@ -7,7 +7,7 @@
=20
 PORTNAME=3D	nvidia-driver
 PORTVERSION=3D	1.0.${NVVERSION}
=2DCATEGORIES=3D	x11
+CATEGORIES=3D	x11-servers
 MASTER_SITES=3D	http://download.nvidia.com/freebsd/1.0-${NVVERSION}/ \
 		ftp://download.nvidia.com/freebsd/1.0-${NVVERSION}/ \
 		http://download1.nvidia.com/freebsd/1.0-${NVVERSION}/ \
@@ -98,6 +98,13 @@
 XSERVVERSION!=3D	/usr/sbin/pkg_info -O x11-servers/XFree86-4-Server 2>/dev=
/null | ${GREP} Server- || /usr/sbin/pkg_info -O x11-servers/xorg-server 2>=
/dev/null | ${GREP} server- || true
 XLIBVERSION!=3D	/usr/sbin/pkg_info -O x11/XFree86-4-libraries 2>/dev/null =
| ${GREP} libraries- || /usr/sbin/pkg_info -O x11/xorg-libraries 2>/dev/nul=
l | ${GREP} libraries- || true
=20
+.if !exists(${PREFIX}/kld)
+PLIST_SUB+=3D	KLD=3D"@comment "
+.else
+PLIST_SUB+=3D	KLD=3D""
+INSTALLKLD=3D
+.endif
+
 PLIST_SUB+=3D	XSERVVERSION=3D${XSERVVERSION} XLIBVERSION=3D${XLIBVERSION} \
 		LINUXBASE=3D${LINUXBASE} NVVERSION=3D${NVVERSION}
=20
@@ -143,8 +150,18 @@
 	${REINPLACE_CMD} 's/define NV_SUPPORT_LINUX_COMPAT/undef NV_SUPPORT_LINUX=
_COMPAT/' \
 		${WRKSRC}/src/nv-freebsd.h
 .endif
+	uuencode -o ${WRKSRC}/src/nv-kernel.o.uu ${WRKSRC}/src/nv-kernel.o nv-ker=
nel.o
+	${RM} ${WRKSRC}/src/nv-kernel.o
=20
 post-install:
+.if defined(INSTALLKLD)
+	${MKDIR} -p ${PREFIX}/kld/nvidia/src
+	${CP} ${FILESDIR}/kld-Makefile ${PREFIX}/kld/nvidia/Makefile
+	${CP} ${WRKSRC}/src/*.[ch] ${PREFIX}/kld/nvidia/src
+	${CP} ${WRKSRC}/src/Makefile ${PREFIX}/kld/nvidia/src
+	${CP} ${WRKSRC}/src/nv-kernel.o.uu ${PREFIX}/kld/nvidia/src
+.endif
+
 	${LN} -sf libXvMCNVIDIA.so.1 ${PREFIX}/lib/libXvMCNVIDIA_dynamic.so.1
 .if ${OSVERSION} < 500000
 .for dev in 0 1 2 3
diff -Nur /usr/ports/x11/nvidia-driver/files/kld-Makefile nvidia-driver/fil=
es/kld-Makefile
=2D-- /usr/ports/x11/nvidia-driver/files/kld-Makefile	Thu Jan  1 09:30:00 1=
970
+++ nvidia-driver/files/kld-Makefile	Tue Oct 11 14:23:40 2005
@@ -0,0 +1,4 @@
+SUBDIR=3D	src
+
+.include <bsd.subdir.mk>
+
diff -Nur /usr/ports/x11/nvidia-driver/files/patch-src::Makefile nvidia-dri=
ver/files/patch-src::Makefile
=2D-- /usr/ports/x11/nvidia-driver/files/patch-src::Makefile	Thu Jan  1 09:=
30:00 1970
+++ nvidia-driver/files/patch-src::Makefile	Wed Oct 12 15:18:53 2005
@@ -0,0 +1,32 @@
+--- src/Makefile.orig	Sat Jul 30 06:38:44 2005
++++ src/Makefile	Tue Oct 11 14:48:48 2005
+@@ -5,25 +5,17 @@
+ KMOD=3D		nvidia
+ RMOBJ=3D		nv-kernel.o
+=20
+-BSDVER!=3D	/sbin/sysctl -n kern.osreldate
+-.if ${BSDVER} >=3D 500011
+-KMODDIR?=3D	/boot/modules
+-.endif
+-
++NVIDIA_ROOT=3D	${.CURDIR}/..
+ SRCS=3D		nvidia_ctl.c nvidia_dev.c nvidia_linux.c nvidia_os.c nvidia_os_p=
ci.c nvidia_os_registry.c nvidia_pci.c nvidia_subr.c nvidia_sysctl.c=20
+ SRCS+=3D		device_if.h bus_if.h pci_if.h vnode_if.h
+ CFLAGS+=3D	-I${NVIDIA_ROOT}/src -DNV_MAJOR_VERSION=3D1 -DNV_MINOR_VERSION=
=3D0 -DNV_PATCHLEVEL=3D7676=20
+ CFLAGS+=3D	-D__KERNEL__ -UDEBUG -U_DEBUG -DNDEBUG -O -fno-common -fno-uni=
t-at-a-time -minline-all-stringops
+=20
+ OBJS+=3D		${RMOBJ}
++NO_OBJ=3D		true
+ NOOBJ=3D		true
+=20
+-beforeinstall:	${KMOD}.ko
+-
+-${OSOBJ}: ${KMOD}.ko
+-	ld -r -o $@ ${OBJS:S/${RMOBJ}//}
+-
+-clean:
+-	rm -f ${CLEANFILES:S/${RMOBJ}//}
++nv-kernel.o:	nv-kernel.o.uu
++	uudecode -o ${.TARGET} ${.ALLSRC}
+=20
+ .include <bsd.kmod.mk>
diff -Nur /usr/ports/x11/nvidia-driver/files/patch-x11::Makefile nvidia-dri=
ver/files/patch-x11::Makefile
=2D-- /usr/ports/x11/nvidia-driver/files/patch-x11::Makefile	Thu Jan  1 09:=
30:00 1970
+++ nvidia-driver/files/patch-x11::Makefile	Wed Oct 12 11:53:09 2005
@@ -0,0 +1,9 @@
+--- x11/Makefile.orig	Wed Oct 12 11:52:41 2005
++++ x11/Makefile	Wed Oct 12 11:52:48 2005
+@@ -1,5 +1,4 @@
+ SUBDIR=3D	driver		\
+-	extension	\
+-	bin
++	extension
+=20
+ .include <bsd.subdir.mk>
diff -Nur /usr/ports/x11/nvidia-driver/pkg-plist nvidia-driver/pkg-plist
=2D-- /usr/ports/x11/nvidia-driver/pkg-plist	Wed May 25 01:27:37 2005
+++ nvidia-driver/pkg-plist	Wed Oct 12 15:45:25 2005
@@ -44,8 +44,30 @@
 %%DIFFS%%%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/vm_object.c_5.2.diff
 %%DIFFS%%%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/device_pager.c_5.2.diff
 %%PORTDOCS%%@dirrm share/doc/NVIDIA_GLX-1.0
+%%KLD%%@unexec (cd %D/kld/nvidia ; make clean)
+%%KLD%%kld/nvidia/src/os-interface.h
+%%KLD%%kld/nvidia/src/nvtypes.h
+%%KLD%%kld/nvidia/src/nvidia_sysctl.c
+%%KLD%%kld/nvidia/src/nvidia_subr.c
+%%KLD%%kld/nvidia/src/nvidia_pci.c
+%%KLD%%kld/nvidia/src/nvidia_os_registry.c
+%%KLD%%kld/nvidia/src/nvidia_os_pci.c
+%%KLD%%kld/nvidia/src/nvidia_os.c
+%%KLD%%kld/nvidia/src/nvidia_linux.c
+%%KLD%%kld/nvidia/src/nvidia_dev.c
+%%KLD%%kld/nvidia/src/nvidia_ctl.c
+%%KLD%%kld/nvidia/src/nv.h
+%%KLD%%kld/nvidia/src/nv-misc.h
+%%KLD%%kld/nvidia/src/nv-freebsd.h
+%%KLD%%kld/nvidia/src/cpuopsys.h
+%%KLD%%kld/nvidia/src/rmretval.h
+%%KLD%%kld/nvidia/src/Makefile
+%%KLD%%kld/nvidia/src/nv-kernel.o.uu
+%%KLD%%kld/nvidia/Makefile
+%%KLD%%@dirrm kld/nvidia/src
+%%KLD%%@dirrm kld/nvidia
 %%FREEBSD4%%@cwd /modules
=2D%%FREEBSD5%%@cwd /boot/modules
+%%FREEBSD5%%@cwd /boot/kernel
 nvidia.ko
 %%FREEBSD5%%@unexec kldxref %D
 %%FREEBSD4%%@cwd /dev

--Boundary-01=_X3jTDLokmzkKzcW
Content-Type: text/x-diff; charset="us-ascii"; name="sys-modules-kld.diff"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="sys-modules-kld.diff"

Index: sys/modules/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /usr/CVS-Repository/src/sys/modules/Makefile,v
retrieving revision 1.458
diff -u -r1.458 Makefile
=2D-- sys/modules/Makefile	3 Oct 2005 07:05:34 -0000	1.458
+++ sys/modules/Makefile	13 Oct 2005 03:02:06 -0000
@@ -181,6 +181,7 @@
 	${_pf} \
 	plip \
 	${_pmc} \
+	${_ports} \
 	portalfs \
 	ppbus \
 	ppi \
@@ -498,6 +499,13 @@
 _sound=3D		sound
 .endif
=20
+PORTPREFIXES?=3D	/usr/local /usr/X11R6
+.for d in ${PORTPREFIXES}
+.if exists(${d}/kld)
+_ports+=3D	../../../../${d}/kld
+.endif
+.endfor
+
 .if defined(MODULES_OVERRIDE) && !defined(ALL_MODULES)
 SUBDIR=3D${MODULES_OVERRIDE}
 .endif

--Boundary-01=_X3jTDLokmzkKzcW
Content-Type: text/x-diff;
  charset="us-ascii";
  name="uppc-kmod-kld.diff"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="uppc-kmod-kld.diff"

diff -Nur /usr/ports/palm/uppc-kmod/Makefile uppc-kmod/Makefile
=2D-- /usr/ports/palm/uppc-kmod/Makefile	Sun Oct  9 12:46:59 2005
+++ uppc-kmod/Makefile	Wed Oct 12 15:42:07 2005
@@ -24,6 +24,13 @@
=20
 .include <bsd.port.pre.mk>
=20
+.if !exists(${PREFIX}/kld)
+PLIST_SUB+=3D	KLD=3D"@comment "
+.else
+PLIST_SUB+=3D	KLD=3D""
+INSTALLKLD=3D
+.endif
+
 .if ${OSVERSION} < 500000
 BROKEN=3D		"Does not build on FreeBSD 4.x"
 .endif
@@ -32,12 +39,13 @@
 	@${REINPLACE_CMD} -e 's|%%INITIAL_INSTALLDIR%%|${PREFIX}/lib|g' ${BUILD_W=
RKSRC}/uppcsetup
 	@${REINPLACE_CMD} -e 's|%%INITIAL_MODDIR%%|${KMODDIR}|g' ${WRKSRC}/uppcse=
tup
=20
=2Ddo-install:
=2D	${INSTALL_PROGRAM} ${WRKSRC}/uppc.ko ${PREFIX}/lib
+post-install:
 	${INSTALL_SCRIPT} ${WRKSRC}/uppcsetup ${PREFIX}/sbin
 	cd ${WRKSRC} && ${INSTALL_MAN} ${MAN4} ${MANPREFIX}/man/man4
=2D
=2Dpost-install:
+.if defined(INSTALLKLD)
+	${MKDIR} ${PREFIX}/kld/uppc
+	${CP} ${WRKSRC}/uppc.c ${WRKSRC}/Makefile ${PREFIX}/kld/uppc/
+.endif
 	@${ECHO_CMD} "       ****************************************************=
************"
 	@${ECHO_CMD} "       * You can run 'uppcsetup' to help configure the devi=
ce driver  *"
 	@${ECHO_CMD} "       * and set up a connection.                          =
           *"
diff -Nur /usr/ports/palm/uppc-kmod/files/patch-Makefile uppc-kmod/files/pa=
tch-Makefile
=2D-- /usr/ports/palm/uppc-kmod/files/patch-Makefile	Thu Jan  1 09:30:00 19=
70
+++ uppc-kmod/files/patch-Makefile	Sun Oct  9 12:55:23 2005
@@ -0,0 +1,10 @@
+--- Makefile.orig	Sun Oct  9 12:55:05 2005
++++ Makefile	Sun Oct  9 12:55:11 2005
+@@ -13,6 +13,6 @@
+=20
+ CWARNFLAGS=3D -Wall
+=20
+-NOMAN=3D
++NO_MAN=3D
+=20
+ .include <bsd.kmod.mk>
diff -Nur /usr/ports/palm/uppc-kmod/pkg-plist uppc-kmod/pkg-plist
=2D-- /usr/ports/palm/uppc-kmod/pkg-plist	Tue Dec 30 03:03:02 2003
+++ uppc-kmod/pkg-plist	Wed Oct 12 15:42:52 2005
@@ -1,2 +1,7 @@
=2Dlib/uppc.ko
 sbin/uppcsetup
+%%KLD%%@unexec (cd %D/kld/uppc ; make clean)
+%%KLD%%kld/uppc/uppc.c
+%%KLD%%kld/uppc/Makefile
+%%KLD%%@dirrm kld/uppc
+@cwd /boot/kernel
+uppc.ko

--Boundary-01=_X3jTDLokmzkKzcW--

--nextPart3900826.dgomFnTkAc
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (FreeBSD)

iD4DBQBDTj3Y5ZPcIHs/zowRAmcSAJjXZg912VtV4h6souIkXW0RbTcFAJ0aH6vv
EPJsXyqle/fQ6OkFpN3ATg==
=x/fW
-----END PGP SIGNATURE-----

--nextPart3900826.dgomFnTkAc--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200510132028.32070.doconnor>