[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Wie am besten Kernelmodul-Patch effizient einpflegen?



On Mon, Jul 07, 2008 at 06:42:31PM +0200, Martin Reising wrote:
> On Mon, Jul 07, 2008 at 06:10:49PM +0200, Nikolaus Schulz wrote:
> > Als zweites, als Sahnehäubchen könnte man noch versuchen, den jedesmal
> > anfallenden, beträchtlichen Overhead des Downloads der kompletten
> > Kernelquellen zu umgehen.  Kann man vielleicht statt mit den vollen
> > Kernelquellen auch mit dem reinen Treiber-Code und den passenden
> > linux-header-* Paketen auszukommen?
> 
> Ja, kann man. Mein Makefile für atl1 sieht folgendermaßen aus:
> 
> atl1-y = atl1_main.o atl1_hw.o atl1_ethtool.o atl1_param.o
> 
> ifneq ($(KERNELRELEASE),)
> obj-m := atl1.o
> 
> else
> KDIR := /usr/src/linux-headers-2.6.24-1-686-bigmem
> PWD  := $(shell pwd)
> 
> default:
> 	$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
> endif
> 	
> clean:
> 	rm -f *.o *.ko atl1.mod* Module.symvers 2>/dev/null

Aahja, sowas ähnliches hab ich schon probiert, das tut es leider nicht.
So ein Makefile macht hier rein gar nichts, make führt praktisch nur ein
':' aus.  Hier ist mein Makefile (es geht um den ATI Radeon Treiber),
ich hab praktisch nur die ifneq-Clause und das default target
dazugepackt:

------ Makefile ------

ifneq ($(KERNELRELEASE),)
atyfb-y				:= atyfb_base.o mach64_accel.o mach64_cursor.o
atyfb-$(CONFIG_FB_ATY_GX)	+= mach64_gx.o
atyfb-$(CONFIG_FB_ATY_CT)	+= mach64_ct.o

atyfb-objs			:= $(atyfb-y)

radeonfb-y			:= radeon_base.o radeon_pm.o radeon_monitor.o radeon_accel.o
radeonfb-$(CONFIG_FB_RADEON_I2C)	+= radeon_i2c.o
radeonfb-$(CONFIG_FB_RADEON_BACKLIGHT)	+= radeon_backlight.o
radeonfb-objs			:= $(radeonfb-y)
obj-$(CONFIG_FB_ATY) += atyfb.o
obj-$(CONFIG_FB_ATY128) += aty128fb.o
obj-$(CONFIG_FB_RADEON) += radeonfb.o

else
default:
	$(MAKE) -C /usr/src/linux-headers-2.6.18-6-powerpc M=$(shell pwd) modules
endif

----------------------

Alldieweil ist mir schmerzhaft klar geworden, daß der fragliche Treiber
im Debian-Kernel offenbar builtin ist.  Argh!  Sehe ich das richtig, daß
damit all meine Hoffnungen durchkreuzt sind?

$ egrep 'RADEON|ATY' .config
CONFIG_DRM_RADEON=m
CONFIG_FB_RADEON=y
CONFIG_FB_RADEON_I2C=y
CONFIG_FB_RADEON_BACKLIGHT=y
# CONFIG_FB_RADEON_DEBUG is not set
CONFIG_FB_ATY128=y
CONFIG_FB_ATY128_BACKLIGHT=y
CONFIG_FB_ATY=y
CONFIG_FB_ATY_CT=y
CONFIG_FB_ATY_GENERIC_LCD=y
CONFIG_FB_ATY_GX=y
CONFIG_FB_ATY_BACKLIGHT=y

Nikolaus


Reply to: