dont use depmod.pl, use cross depmod which I made work properly a while back.
Apply latest stable kernel patch
This commit is contained in:
parent
233d05fb17
commit
8cf5026c6a
@ -1,237 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
# vi: set ts=4:
|
||||
# Copyright (c) 2001 David Schleef <ds@schleef.org>
|
||||
# Copyright (c) 2001 Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (c) 2001 Stuart Hughes <stuarth@lineo.com>
|
||||
# Copyright (c) 2002 Steven J. Hill <shill@broadcom.com>
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the same terms as Perl itself.
|
||||
|
||||
# TODO -- use strict mode...
|
||||
#use strict;
|
||||
|
||||
use Getopt::Long;
|
||||
use File::Find;
|
||||
|
||||
|
||||
# Set up some default values
|
||||
|
||||
my $basedir="";
|
||||
my $kernel;
|
||||
my $kernelsyms;
|
||||
my $stdout=0;
|
||||
my $verbose=0;
|
||||
|
||||
|
||||
# get command-line options
|
||||
|
||||
my %opt;
|
||||
|
||||
GetOptions(
|
||||
\%opt,
|
||||
"help|h",
|
||||
"basedir|b=s" => \$basedir,
|
||||
"kernel|k=s" => \$kernel,
|
||||
"kernelsyms|F=s" => \$kernelsyms,
|
||||
"stdout|n" => \$stdout,
|
||||
"verbose|v" => \$verbose,
|
||||
);
|
||||
|
||||
if (defined $opt{help}) {
|
||||
print
|
||||
" $0 [OPTION]... [basedir]\n",
|
||||
" -h --help\t\tShow this help screen\n",
|
||||
" -b --basedir\tModules base directory (defaults to /lib/modules)\n",
|
||||
" -k --kernel\tKernel binary for the target\n",
|
||||
" -F --kernelsyms\tKernel symbol file\n",
|
||||
" -n --stdout\tWrite to stdout instead of <basedir>/modules.dep\n",
|
||||
" -v --verbose\tPrint out lots of debugging stuff\n",
|
||||
;
|
||||
exit 1;
|
||||
}
|
||||
|
||||
if($basedir !~ m-/lib/modules-) {
|
||||
warn "WARNING: base directory does not match ..../lib/modules\n";
|
||||
}
|
||||
|
||||
# Find the list of .o files living under $basedir
|
||||
#if ($verbose) { printf "Locating all modules\n"; }
|
||||
my($ofile) = "";
|
||||
my($file) = "";
|
||||
my(@liblist) = ();
|
||||
find sub {
|
||||
if ( -f $_ && ! -d $_ ) {
|
||||
$file = $File::Find::name;
|
||||
if ( $file =~ /.o$/ ) {
|
||||
push(@liblist, $file);
|
||||
if ($verbose) { printf "$file\n"; }
|
||||
}
|
||||
}
|
||||
}, $basedir;
|
||||
if ($verbose) { printf "Finished locating modules\n"; }
|
||||
|
||||
foreach $obj ( @liblist, $kernel ){
|
||||
# turn the input file name into a target tag name
|
||||
# vmlinux is a special that is only used to resolve symbols
|
||||
if($obj =~ /vmlinux/) {
|
||||
$tgtname = "vmlinux";
|
||||
} else {
|
||||
($tgtname) = $obj =~ m-(/lib/modules/.*)$-;
|
||||
}
|
||||
|
||||
warn "MODULE = $tgtname\n" if $verbose;
|
||||
|
||||
# get a list of symbols
|
||||
@output=`nm $obj`;
|
||||
$ksymtab=grep m/ __ksymtab/, @output;
|
||||
|
||||
# gather the exported symbols
|
||||
if($ksymtab){
|
||||
# explicitly exported
|
||||
foreach ( @output ) {
|
||||
/ __ksymtab_(.*)$/ and do {
|
||||
warn "sym = $1\n" if $verbose;
|
||||
$exp->{$1} = $tgtname;
|
||||
};
|
||||
}
|
||||
} else {
|
||||
# exporting all symbols
|
||||
foreach ( @output) {
|
||||
/ [ABCDGRST] (.*)$/ and do {
|
||||
warn "syma = $1\n" if $verbose;
|
||||
$exp->{$1} = $tgtname;
|
||||
};
|
||||
}
|
||||
}
|
||||
# gather the unresolved symbols
|
||||
foreach ( @output ) {
|
||||
!/ __this_module/ && / U (.*)$/ and do {
|
||||
warn "und = $1\n" if $verbose;
|
||||
push @{$dep->{$tgtname}}, $1;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# reduce dependancies: remove unresolvable and resolved from vmlinux
|
||||
# remove duplicates
|
||||
foreach $module (keys %$dep) {
|
||||
$mod->{$module} = {};
|
||||
foreach (@{$dep->{$module}}) {
|
||||
if( $exp->{$_} ) {
|
||||
warn "resolved symbol $_ in file $exp->{$_}\n" if $verbose;
|
||||
next if $exp->{$_} =~ /vmlinux/;
|
||||
$mod->{$module}{$exp->{$_}} = 1;
|
||||
} else {
|
||||
warn "unresolved symbol $_ in file $module\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# resolve the dependancies for each module
|
||||
if ($stdout == 1) {
|
||||
foreach $module ( keys %$mod ) {
|
||||
print "$module:\t";
|
||||
@sorted = sort bydep keys %{$mod->{$module}};
|
||||
print join(" \\\n\t",@sorted);
|
||||
print "\n\n";
|
||||
}
|
||||
} else {
|
||||
open(OFILE, ">$basedir/modules.dep");
|
||||
foreach $module ( keys %$mod ) {
|
||||
print OFILE "$module:\t";
|
||||
@sorted = sort bydep keys %{$mod->{$module}};
|
||||
print OFILE join(" \\\n\t",@sorted);
|
||||
print OFILE "\n\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub bydep
|
||||
{
|
||||
foreach my $f ( keys %{$mod->{$b}} ) {
|
||||
if($f eq $a) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
depmod.pl - a cross platform script to generate kernel module dependency
|
||||
lists which can then be used by modprobe.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
depmod.pl [OPTION]... [basedir]...
|
||||
|
||||
Example:
|
||||
|
||||
depmod.pl -F linux/System.map target/lib/modules
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The purpose of this script is to automagically generate a list of of kernel
|
||||
module dependancies. This script produces dependancy lists that should be
|
||||
identical to the depmod program from the modutils package. Unlike the depmod
|
||||
binary, however, depmod.pl is designed to be run on your host system, not
|
||||
on your target system.
|
||||
|
||||
This script was written by David Schleef <ds@schleef.org> to be used in
|
||||
conjunction with the BusyBox modprobe applet.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<-h --help>
|
||||
|
||||
This displays the help message.
|
||||
|
||||
=item B<-b --basedir>
|
||||
|
||||
The base directory uner which the target's modules will be found. This
|
||||
defaults to the /lib/modules directory.
|
||||
|
||||
=item B<-k --kernel>
|
||||
|
||||
Kernel binary for the target. You must either supply a kernel binary
|
||||
or a kernel symbol file (using the -F option).
|
||||
|
||||
=item B<-F --kernelsyms>
|
||||
|
||||
Kernel symbol file for the target. You must supply either a kernel symbol file
|
||||
kernel binary for the target (using the -k option).
|
||||
|
||||
=item B<-n --stdout>
|
||||
|
||||
Write to stdout instead of modules.dep. This is currently hard coded...
|
||||
kernel binary for the target (using the -k option).
|
||||
|
||||
=item B<--verbose>
|
||||
|
||||
Be verbose (not implemented)
|
||||
|
||||
=back
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright (c) 2001 David Schleef <ds@schleef.org>
|
||||
Copyright (c) 2001 Erik Andersen <andersen@codepoet.org>
|
||||
Copyright (c) 2001 Stuart Hughes <stuarth@lineo.com>
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the same terms as Perl itself.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
David Schleef <ds@schleef.org>
|
||||
|
||||
=cut
|
||||
|
||||
# $Id: depmod.pl,v 1.1 2004/12/08 01:34:41 andersen Exp $
|
||||
|
1089
target/device/AMD/DBAu1500/kernel-patches/001-patch-2.6.16.4
Normal file
1089
target/device/AMD/DBAu1500/kernel-patches/001-patch-2.6.16.4
Normal file
File diff suppressed because it is too large
Load Diff
@ -4,9 +4,9 @@
|
||||
VERSION = 2
|
||||
PATCHLEVEL = 6
|
||||
-SUBLEVEL = 16
|
||||
-EXTRAVERSION =
|
||||
-EXTRAVERSION = .4
|
||||
+SUBLEVEL = 16
|
||||
+EXTRAVERSION = -erik
|
||||
+EXTRAVERSION = .4-erik
|
||||
NAME=Sliding Snow Leopard
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
@ -24,7 +24,7 @@ ifneq ($(filter $(TARGETS),linux),)
|
||||
# Base version of Linux kernel that we need to download
|
||||
DOWNLOAD_LINUX_VERSION=2.6.16
|
||||
# Version of Linux kernel AFTER applying all patches
|
||||
LINUX_VERSION=2.6.16-erik
|
||||
LINUX_VERSION=2.6.16.4-erik
|
||||
|
||||
|
||||
# File name for the Linux kernel binary
|
||||
@ -100,17 +100,12 @@ $(LINUX_KERNEL): $(LINUX_DIR)/$(LINUX_BINLOC)
|
||||
$(KERNEL_CROSS)objcopy -O srec $(LINUX_DIR)/$(LINUX_BINLOC) $(LINUX_KERNEL)
|
||||
touch -c $(LINUX_KERNEL)
|
||||
|
||||
$(TARGET_DIR)/lib/modules/$(LINUX_VERSION)/modules.dep: $(LINUX_KERNEL)
|
||||
$(TARGET_DIR)/lib/modules/$(LINUX_VERSION)/modules.dep: $(LINUX_KERNEL) cross-depmod
|
||||
rm -rf $(TARGET_DIR)/lib/modules
|
||||
rm -f $(TARGET_DIR)/sbin/cardmgr
|
||||
$(MAKE) PATH=$(TARGET_PATH) -C $(LINUX_DIR) DEPMOD=`which true` \
|
||||
$(MAKE) PATH=$(TARGET_PATH) -C $(LINUX_DIR) \
|
||||
DEPMOD=DEPMOD=$(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-depmod \
|
||||
INSTALL_MOD_PATH=$(TARGET_DIR) modules_install
|
||||
(cd $(TARGET_DIR)/lib/modules; ln -s $(LINUX_VERSION)/kernel/drivers .)
|
||||
$(ALCHEMY_DBAU1500_PATH)/depmod.pl \
|
||||
-b $(TARGET_DIR)/lib/modules/$(LINUX_VERSION)/ \
|
||||
-k $(LINUX_DIR)/vmlinux \
|
||||
-F $(LINUX_DIR)/System.map \
|
||||
> $(TARGET_DIR)/lib/modules/$(LINUX_VERSION)/modules.dep
|
||||
|
||||
$(STAGING_DIR)/include/linux/version.h: $(LINUX_DIR)/.configured
|
||||
mkdir -p $(STAGING_DIR)/include
|
||||
|
@ -1,237 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
# vi: set ts=4:
|
||||
# Copyright (c) 2001 David Schleef <ds@schleef.org>
|
||||
# Copyright (c) 2001 Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (c) 2001 Stuart Hughes <stuarth@lineo.com>
|
||||
# Copyright (c) 2002 Steven J. Hill <shill@broadcom.com>
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the same terms as Perl itself.
|
||||
|
||||
# TODO -- use strict mode...
|
||||
#use strict;
|
||||
|
||||
use Getopt::Long;
|
||||
use File::Find;
|
||||
|
||||
|
||||
# Set up some default values
|
||||
|
||||
my $basedir="";
|
||||
my $kernel;
|
||||
my $kernelsyms;
|
||||
my $stdout=0;
|
||||
my $verbose=0;
|
||||
|
||||
|
||||
# get command-line options
|
||||
|
||||
my %opt;
|
||||
|
||||
GetOptions(
|
||||
\%opt,
|
||||
"help|h",
|
||||
"basedir|b=s" => \$basedir,
|
||||
"kernel|k=s" => \$kernel,
|
||||
"kernelsyms|F=s" => \$kernelsyms,
|
||||
"stdout|n" => \$stdout,
|
||||
"verbose|v" => \$verbose,
|
||||
);
|
||||
|
||||
if (defined $opt{help}) {
|
||||
print
|
||||
" $0 [OPTION]... [basedir]\n",
|
||||
" -h --help\t\tShow this help screen\n",
|
||||
" -b --basedir\tModules base directory (defaults to /lib/modules)\n",
|
||||
" -k --kernel\tKernel binary for the target\n",
|
||||
" -F --kernelsyms\tKernel symbol file\n",
|
||||
" -n --stdout\tWrite to stdout instead of <basedir>/modules.dep\n",
|
||||
" -v --verbose\tPrint out lots of debugging stuff\n",
|
||||
;
|
||||
exit 1;
|
||||
}
|
||||
|
||||
if($basedir !~ m-/lib/modules-) {
|
||||
warn "WARNING: base directory does not match ..../lib/modules\n";
|
||||
}
|
||||
|
||||
# Find the list of .o files living under $basedir
|
||||
#if ($verbose) { printf "Locating all modules\n"; }
|
||||
my($ofile) = "";
|
||||
my($file) = "";
|
||||
my(@liblist) = ();
|
||||
find sub {
|
||||
if ( -f $_ && ! -d $_ ) {
|
||||
$file = $File::Find::name;
|
||||
if ( $file =~ /.o$/ ) {
|
||||
push(@liblist, $file);
|
||||
if ($verbose) { printf "$file\n"; }
|
||||
}
|
||||
}
|
||||
}, $basedir;
|
||||
if ($verbose) { printf "Finished locating modules\n"; }
|
||||
|
||||
foreach $obj ( @liblist, $kernel ){
|
||||
# turn the input file name into a target tag name
|
||||
# vmlinux is a special that is only used to resolve symbols
|
||||
if($obj =~ /vmlinux/) {
|
||||
$tgtname = "vmlinux";
|
||||
} else {
|
||||
($tgtname) = $obj =~ m-(/lib/modules/.*)$-;
|
||||
}
|
||||
|
||||
warn "MODULE = $tgtname\n" if $verbose;
|
||||
|
||||
# get a list of symbols
|
||||
@output=`nm $obj`;
|
||||
$ksymtab=grep m/ __ksymtab/, @output;
|
||||
|
||||
# gather the exported symbols
|
||||
if($ksymtab){
|
||||
# explicitly exported
|
||||
foreach ( @output ) {
|
||||
/ __ksymtab_(.*)$/ and do {
|
||||
warn "sym = $1\n" if $verbose;
|
||||
$exp->{$1} = $tgtname;
|
||||
};
|
||||
}
|
||||
} else {
|
||||
# exporting all symbols
|
||||
foreach ( @output) {
|
||||
/ [ABCDGRST] (.*)$/ and do {
|
||||
warn "syma = $1\n" if $verbose;
|
||||
$exp->{$1} = $tgtname;
|
||||
};
|
||||
}
|
||||
}
|
||||
# gather the unresolved symbols
|
||||
foreach ( @output ) {
|
||||
!/ __this_module/ && / U (.*)$/ and do {
|
||||
warn "und = $1\n" if $verbose;
|
||||
push @{$dep->{$tgtname}}, $1;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# reduce dependancies: remove unresolvable and resolved from vmlinux
|
||||
# remove duplicates
|
||||
foreach $module (keys %$dep) {
|
||||
$mod->{$module} = {};
|
||||
foreach (@{$dep->{$module}}) {
|
||||
if( $exp->{$_} ) {
|
||||
warn "resolved symbol $_ in file $exp->{$_}\n" if $verbose;
|
||||
next if $exp->{$_} =~ /vmlinux/;
|
||||
$mod->{$module}{$exp->{$_}} = 1;
|
||||
} else {
|
||||
warn "unresolved symbol $_ in file $module\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# resolve the dependancies for each module
|
||||
if ($stdout == 1) {
|
||||
foreach $module ( keys %$mod ) {
|
||||
print "$module:\t";
|
||||
@sorted = sort bydep keys %{$mod->{$module}};
|
||||
print join(" \\\n\t",@sorted);
|
||||
print "\n\n";
|
||||
}
|
||||
} else {
|
||||
open(OFILE, ">$basedir/modules.dep");
|
||||
foreach $module ( keys %$mod ) {
|
||||
print OFILE "$module:\t";
|
||||
@sorted = sort bydep keys %{$mod->{$module}};
|
||||
print OFILE join(" \\\n\t",@sorted);
|
||||
print OFILE "\n\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub bydep
|
||||
{
|
||||
foreach my $f ( keys %{$mod->{$b}} ) {
|
||||
if($f eq $a) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
depmod.pl - a cross platform script to generate kernel module dependency
|
||||
lists which can then be used by modprobe.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
depmod.pl [OPTION]... [basedir]...
|
||||
|
||||
Example:
|
||||
|
||||
depmod.pl -F linux/System.map target/lib/modules
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The purpose of this script is to automagically generate a list of of kernel
|
||||
module dependancies. This script produces dependancy lists that should be
|
||||
identical to the depmod program from the modutils package. Unlike the depmod
|
||||
binary, however, depmod.pl is designed to be run on your host system, not
|
||||
on your target system.
|
||||
|
||||
This script was written by David Schleef <ds@schleef.org> to be used in
|
||||
conjunction with the BusyBox modprobe applet.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<-h --help>
|
||||
|
||||
This displays the help message.
|
||||
|
||||
=item B<-b --basedir>
|
||||
|
||||
The base directory uner which the target's modules will be found. This
|
||||
defaults to the /lib/modules directory.
|
||||
|
||||
=item B<-k --kernel>
|
||||
|
||||
Kernel binary for the target. You must either supply a kernel binary
|
||||
or a kernel symbol file (using the -F option).
|
||||
|
||||
=item B<-F --kernelsyms>
|
||||
|
||||
Kernel symbol file for the target. You must supply either a kernel symbol file
|
||||
kernel binary for the target (using the -k option).
|
||||
|
||||
=item B<-n --stdout>
|
||||
|
||||
Write to stdout instead of modules.dep. This is currently hard coded...
|
||||
kernel binary for the target (using the -k option).
|
||||
|
||||
=item B<--verbose>
|
||||
|
||||
Be verbose (not implemented)
|
||||
|
||||
=back
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright (c) 2001 David Schleef <ds@schleef.org>
|
||||
Copyright (c) 2001 Erik Andersen <andersen@codepoet.org>
|
||||
Copyright (c) 2001 Stuart Hughes <stuarth@lineo.com>
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the same terms as Perl itself.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
David Schleef <ds@schleef.org>
|
||||
|
||||
=cut
|
||||
|
||||
# $Id: depmod.pl,v 1.1 2004/12/08 01:34:41 andersen Exp $
|
||||
|
@ -101,17 +101,12 @@ $(LINUX_KERNEL): $(LINUX_DIR)/$(LINUX_BINLOC)
|
||||
$(KERNEL_CROSS)objcopy -O srec $(LINUX_DIR)/$(LINUX_BINLOC) $(LINUX_KERNEL)
|
||||
touch -c $(LINUX_KERNEL)
|
||||
|
||||
$(TARGET_DIR)/lib/modules/$(LINUX_VERSION)/modules.dep: $(LINUX_KERNEL)
|
||||
$(TARGET_DIR)/lib/modules/$(LINUX_VERSION)/modules.dep: $(LINUX_KERNEL) cross-depmod
|
||||
rm -rf $(TARGET_DIR)/lib/modules
|
||||
rm -f $(TARGET_DIR)/sbin/cardmgr
|
||||
$(MAKE) PATH=$(TARGET_PATH) -C $(LINUX_DIR) DEPMOD=`which true` \
|
||||
$(MAKE) PATH=$(TARGET_PATH) -C $(LINUX_DIR) \
|
||||
DEPMOD=DEPMOD=$(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-depmod \
|
||||
INSTALL_MOD_PATH=$(TARGET_DIR) modules_install
|
||||
(cd $(TARGET_DIR)/lib/modules; ln -s $(LINUX_VERSION)/kernel/drivers .)
|
||||
$(JP_Q5_PATH)/depmod.pl \
|
||||
-b $(TARGET_DIR)/lib/modules/$(LINUX_VERSION)/ \
|
||||
-k $(LINUX_DIR)/vmlinux \
|
||||
-F $(LINUX_DIR)/System.map \
|
||||
> $(TARGET_DIR)/lib/modules/$(LINUX_VERSION)/modules.dep
|
||||
|
||||
$(STAGING_DIR)/include/linux/version.h: $(LINUX_DIR)/.configured
|
||||
mkdir -p $(STAGING_DIR)/include
|
||||
|
Loading…
Reference in New Issue
Block a user