Kernel-Module: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
K (16 Versionen importiert) |
||
Zeile 1: | Zeile 1: | ||
__NOTOC__ | __NOTOC__ | ||
= Kernel-Module für Fedora erzeugen = | = Kernel-Module für Fedora erzeugen = | ||
== Erzeugen einer Buildumgebung mit aktuellem Kernel == | === Erzeugen einer Buildumgebung mit aktuellem Kernel === | ||
<pre><nowiki> | <pre><nowiki> | ||
rpmdev-setuptree | rpmdev-setuptree | ||
yumdownloader --source kernel | |||
KERNEL=$(ls kernel-*.src.rpm|tail -1) | KERNEL=$(ls kernel-*.src.rpm|tail -1) | ||
su -c "yum-builddep $KERNEL" | |||
rpm -Uvh $KERNEL | rpm -Uvh $KERNEL | ||
cd ~/rpmbuild/SPECS | cd ~/rpmbuild/SPECS | ||
Zeile 13: | Zeile 13: | ||
</nowiki></pre> | </nowiki></pre> | ||
== Patch für dvbdev == | |||
=== Patchdatei (~/linux-3.7.1-dvb-mutex.patch) === | |||
<pre><nowiki> | |||
diff -Nur linux-3.7.1/drivers/media/dvb-core/dvbdev.c linux-3.7.1/drivers/media/dvb-core/dvbdev.c | |||
--- linux-3.7.1/drivers/media/dvb-core/dvbdev.c | |||
+++ linux-3.7.1/drivers/media/dvb-core/dvbdev.c | |||
@@ -83,8 +83,11 @@ static int dvb_device_open(struct inode *inode, struct file *file) | |||
file->f_op = old_fops; | |||
goto fail; | |||
} | |||
- if(file->f_op->open) | |||
+ if(file->f_op->open) { | |||
+ mutex_unlock(&dvbdev_mutex); | |||
err = file->f_op->open(inode,file); | |||
+ mutex_lock(&dvbdev_mutex); | |||
+ } | |||
if (err) { | |||
fops_put(file->f_op); | |||
file->f_op = fops_get(old_fops); | |||
-- | |||
</nowiki></pre> | |||
=== Patch Einspielen === | === Patch Einspielen === | ||
<pre><nowiki> | <pre><nowiki> | ||
KERNELDIR=$( | KERNELDIR=$(echo $KERNEL | perl -e '<> =~ /(\d+)\.(\d+)\..*(fc\d+)/; print "kernel-$1.$2.$3\n"') | ||
cd ~/rpmbuild/BUILD/$KERNELDIR | cd ~/rpmbuild/BUILD/$KERNELDIR | ||
patch -p1 < ~/linux-3.7.1-dvb-mutex.patch | |||
patch - | |||
cd drivers/media/dvb-core | cd drivers/media/dvb-core | ||
</nowiki></pre> | </nowiki></pre> | ||
<pre><nowiki> | <pre><nowiki> | ||
</nowiki></pre> | </nowiki></pre> | ||
Version vom 20. Dezember 2021, 13:27 Uhr
Kernel-Module für Fedora erzeugen
Erzeugen einer Buildumgebung mit aktuellem Kernel
rpmdev-setuptree yumdownloader --source kernel KERNEL=$(ls kernel-*.src.rpm|tail -1) su -c "yum-builddep $KERNEL" rpm -Uvh $KERNEL cd ~/rpmbuild/SPECS rpmbuild -bp --target=$(uname -m) kernel.spec
Patch für dvbdev
Patchdatei (~/linux-3.7.1-dvb-mutex.patch)
diff -Nur linux-3.7.1/drivers/media/dvb-core/dvbdev.c linux-3.7.1/drivers/media/dvb-core/dvbdev.c --- linux-3.7.1/drivers/media/dvb-core/dvbdev.c +++ linux-3.7.1/drivers/media/dvb-core/dvbdev.c @@ -83,8 +83,11 @@ static int dvb_device_open(struct inode *inode, struct file *file) file->f_op = old_fops; goto fail; } - if(file->f_op->open) + if(file->f_op->open) { + mutex_unlock(&dvbdev_mutex); err = file->f_op->open(inode,file); + mutex_lock(&dvbdev_mutex); + } if (err) { fops_put(file->f_op); file->f_op = fops_get(old_fops); --
Patch Einspielen
KERNELDIR=$(echo $KERNEL | perl -e '<> =~ /(\d+)\.(\d+)\..*(fc\d+)/; print "kernel-$1.$2.$3\n"') cd ~/rpmbuild/BUILD/$KERNELDIR patch -p1 < ~/linux-3.7.1-dvb-mutex.patch cd drivers/media/dvb-core