Mauro:
On my system, the call to make_kconfig reads:
./scripts/make_kconfig.pl /lib/modules/2.6.28-19-generic/build
/lib/modules/2.6.28-19-generic/build 1
Using $kernelsrc yields the following error:
Global symbol "$kernelsrc" requires explicit package name at
./scripts/make_kconfig.pl line 694.
Using
$dmahplace="$kernsrc/include/config/ieee1394/dma.h";
yields the following INCORRECT expansion:
/lib/modules/2.6.28-19-generic/build/include/config/ieee1394/dma.h
this is the place where I am building into, which is different from the
place where Ubuntu places the include files from the package
Thus I built an expression to get:
/usr/src/linux-headers-2.6.28-19-generic/include/config/ieee1394/dma.h
as I described in the mail of yesterday.
Now, I realize that the header files could ALSO be present in the build
directory, so there should be a check on that as well, as otherwise the
FIREDTV is incorrectly disabled on other distros, or source builds.
Yes, and I know all of this is ugly ....
Mauro Carvalho Chehab wrote:
Em 27-09-2010 15:41, Jan Hoogenraad escreveu:
I have updated launchpad bug
https://bugs.launchpad.net/ubuntu/+source/linux-kernel-headers/+bug/134222
I also created an updated make_kconfig.pl
http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2/file/cb34ee1c29fc/v4l/scripts/make_kconfig.pl
Unfortunately, I forgot to commit changes to the main archive the first time. I do not know how to make a patch file for this one file, without have all other changes in the two commits as well.
I cannot find a hg export command to make a patch for this one file between versions spanning two commits.
You can just do a diff with upstream. Anyway, I'm enclosing the merged patch.
There's one problem on it:
$dmahplace="/usr/src/linux-headers-$dmahplace/include/config/ieee1394/dma.h";
Don't use absolute names here. -hg build system is smart enough to get the directory
where the kernel is installed, depending on what version you're compiling against
(you may change it with "make release").
Based on sub kernelcheck(), were we have:
my $fullkernel="$kernsrc/fs/fcntl.c";
I suspect that using:
$dmahplace="$kernelsrc/include/config/ieee1394/dma.h";
should work properly.
---
FYI, this is the diff from the master -hg:
diff -r 1da5fed5c8b2 v4l/scripts/make_kconfig.pl
--- a/v4l/scripts/make_kconfig.pl Sun Sep 19 02:23:09 2010 -0300
+++ b/v4l/scripts/make_kconfig.pl Mon Sep 27 16:04:50 2010 -0300
@@ -597,6 +597,9 @@
disable_config('STAGING_BROKEN');
$intopt { "DVB_MAX_ADAPTERS" } = 8;
+#check broken Ubuntu headers
+dmahcheck();
+
# Check dependencies
my %newconfig = checkdeps();
@@ -681,3 +684,27 @@
EOF3
sleep 5;
}
+
+# Check for full kernel sources and print a warning
+sub dmahcheck()
+{
+ my $dmahplace= "".$kernsrc;
+ $dmahplace =~ s-^/lib/modules/--g;
+ $dmahplace =~ s-/.*$--g;
+ $dmahplace="/usr/src/linux-headers-$dmahplace/include/config/ieee1394/dma.h";
+ if (! -e $dmahplace) {
+ print<<"EOF2";
+
+***WARNING:*** File $dmahplace not present.
+This problem is at least present on Ubuntu systems:
+https://bugs.launchpad.net/ubuntu/+source/linux-kernel-headers/+bug/134222
+
+Therefore disabling FIREDTV driver.
+
+EOF2
+
+ disable_config('DVB_FIREDTV');
+
+ }
+ sleep 5;
+}
--
Jan Hoogenraad
Hoogenraad Interface Services
Postbus 2717
3500 GS Utrecht
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html