On Sat, Apr 30, 2022 at 07:33:31PM +0200, Geert Stappers wrote: > > Hello, > > > The iPXE source tree has a script named src/util/get-pci-ids > that doesn't work for me. I seek your advice to get it working. > > > I have three errors. The first error is that my Linux source tree > has no `include/linux/version.h`
This file is generated when the kernel is built. >From a quick glance your other issues are also due to this. Groetjes, Martin > > <error1text> > $ ./get-pci-ids /usr/src/linux/torvalds > Could not find /usr/src/linux/torvalds/include/linux/version.h. > /usr/src/linux/torvalds is probably no Linux kernel source tree. > $ > </errror1text> > > Based upon > <screenshot> > $ git log -- src/util/get-pci-ids > commit c3b4860ce3fb25b907a2ca3e46955df34c0ae9fd > Author: Michael Brown <mc...@ipxe.org> > Date: Fri Jul 20 19:55:45 2012 +0100 > > [legal] Update FSF mailing address in GPL licence texts > > Suggested-by: Daniel P. Berrange <berra...@redhat.com> > Signed-off-by: Michael Brown <mc...@ipxe.org> > > commit 3d6123e69ab879c72ff489afc5bf93ef0b7a94ce > Author: Michael Brown <mc...@etherboot.org> > Date: Tue Mar 8 18:53:11 2005 +0000 > > Initial revision > $ > </screenshot> > I assumed that the script is outdated, hence I tried this change: > <fix_attempt> > $ git diff > diff --git a/src/util/get-pci-ids b/src/util/get-pci-ids > index 42466221..1550677d 100755 > --- a/src/util/get-pci-ids > +++ b/src/util/get-pci-ids > @@ -47,8 +47,8 @@ if($#ARGV >= 0) { > exit 1; > } > > -unless(-f "$kernel_src/include/linux/version.h") { > - print STDERR "Could not find $kernel_src/include/linux/version.h.\n"; > +unless(-f "$kernel_src/include/linux/vermagic.h") { > + print STDERR "Could not find $kernel_src/include/linux/vermagic.h.\n"; > print STDERR "$kernel_src is probably no Linux kernel source tree.\n"; > exit 1; > } > @@ -64,7 +64,7 @@ my $cpp="gcc -E"; > my @drivers = split /\s+/, `find $kernel_src/drivers/net -name '*.c' | sort`; > > # Kernel version > -my $version = `grep UTS_RELEASE $kernel_src/include/linux/version.h`; > +my $version = `grep UTS_RELEASE $kernel_src/include/linux/vermagic.h`; > chomp $version; > $version =~ s/\s*#define\s+UTS_RELEASE\s+"(\S+)".*$/$1/g; > > </fix_attempt> > > > <error2text> > $ src/util/get-pci-ids /usr/src/linux/torvalds 2>&1 | head -n 25 > # PCI vendor/device ids extracted from Linux UTS_RELEASE " " > \ on x86_64 at Sat Apr 30 16:44:35 2022 > In file included from /usr/src/linux/torvalds/include/linux/kernel.h:8, > from /usr/src/linux/torvalds/include/linux/list.h:9, > from /usr/src/linux/torvalds/include/linux/module.h:12, > from /usr/src/linux/torvalds/drivers/net/appletalk/cops.c:51: > /usr/src/linux/torvalds/include/linux/linkage.h:8:10: fatal error: > asm/linkage.h: No such file or directory > 8 | #include <asm/linkage.h> > | ^~~~~~~~~~~~~~~ > compilation terminated. > In file included from /usr/src/linux/torvalds/include/linux/kernel.h:8, > from /usr/src/linux/torvalds/include/linux/list.h:9, > from /usr/src/linux/torvalds/include/linux/module.h:12, > from > /usr/src/linux/torvalds/drivers/net/appletalk/ipddp.c:26: > /usr/src/linux/torvalds/include/linux/linkage.h:8:10: fatal error: > asm/linkage.h: No such file or directory > 8 | #include <asm/linkage.h> > | ^~~~~~~~~~~~~~~ > compilation terminated. > In file included from /usr/src/linux/torvalds/include/linux/kernel.h:8, > from /usr/src/linux/torvalds/include/linux/list.h:9, > from /usr/src/linux/torvalds/include/linux/module.h:12, > from > /usr/src/linux/torvalds/drivers/net/appletalk/ltpc.c:209: > /usr/src/linux/torvalds/include/linux/linkage.h:8:10: fatal error: > asm/linkage.h: No such file or directory > 8 | #include <asm/linkage.h> > | ^~~~~~~~~~~~~~~ > compilation terminated. > $ > </error2text> > > > That was "debugged" with > <print_command> > --- a/src/util/get-pci-ids > +++ b/src/util/get-pci-ids > @@ -82,6 +83,7 @@ foreach $driver (@drivers) { > > # Preprocess to expand macros > my $command = "$cpp $cflags -I" . dirname($driver) . " $driver"; > + print "command: $command \n"; > open DRIVER, "$command |" or die "Could not > execute\n\"$command\".\n"; > > # Extract the pci_device_id structure > </print_command> > > <fix_attempt2> > @@ -56,6 +56,8 @@ unless(-f "$kernel_src/include/linux/version.h") { > # Flags that are needed to preprocess the drivers. > # Some drivers need optimization > my $cflags="-D__KERNEL__ -I$kernel_src/include -I$kernel_src/net/inet -O2"; > +$cflags .= " -I$kernel_src/arch/x86/include"; > +$cflags .= " -I$kernel_src/arch/riscv/include"; > > # The C preprocessor. It needs to spit out the preprocessed source on stdout. > my $cpp="gcc -E"; > </fix_attempt2> > > > Now I'm stuck at > <error3text> > In file included from /usr/src/linux/torvalds/include/linux/ktime.h:25: > /usr/src/linux/torvalds/include/linux/jiffies.h:13:10: fatal error: > generated/timeconst.h: No such file or directory > 13 | #include <generated/timeconst.h> > | ^~~~~~~~~~~~~~~~~~~~~~~ > compilation terminated. > </error3text> > > What do you suggest to do next to get this fixed? > > > Groeten > Geert Stappers > -- > Silence is hard to parse > _______________________________________________ > ipxe-devel mailing list > ipxe-devel@lists.ipxe.org > https://lists.ipxe.org/mailman/listinfo/ipxe-devel _______________________________________________ ipxe-devel mailing list ipxe-devel@lists.ipxe.org https://lists.ipxe.org/mailman/listinfo/ipxe-devel