diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/.cvsignore | 3 | ||||
-rw-r--r-- | kernel/Makefile | 13 | ||||
-rwxr-xr-x | kernel/check_mar.pl | 31 | ||||
-rw-r--r-- | kernel/list_modules.pm | 208 | ||||
-rw-r--r-- | kernel/modules.pl | 197 | ||||
-rwxr-xr-x | kernel/update_kernel | 114 |
6 files changed, 0 insertions, 566 deletions
diff --git a/kernel/.cvsignore b/kernel/.cvsignore deleted file mode 100644 index 827e0ba13..000000000 --- a/kernel/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -modules.description -all.modules -all.kernels diff --git a/kernel/Makefile b/kernel/Makefile deleted file mode 100644 index 90fad04b6..000000000 --- a/kernel/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -all: all.modules - -all.modules: ../mdk-stage1/mar/mar update_kernel list_modules.pm - `../tools/specific_arch ./update_kernel` - -../mdk-stage1/mar/mar: - make -C `dirname $@` - -clean: - rm -rf *~ modules.description all.modules all.modules64 - -check: - perl modules.pl check > /dev/null diff --git a/kernel/check_mar.pl b/kernel/check_mar.pl deleted file mode 100755 index c288d83bd..000000000 --- a/kernel/check_mar.pl +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/perl - -use MDK::Common; - -my $mar = '../mdk-stage1/mar/mar'; --x $mar or die "ERROR: Sorry, need $mar binary\n"; - -my %sanity_check = ( - hd => [ - if_(arch() !~ /x86_64/, 'aic7xxx'), - qw(sym53c8xx initio), - if_(arch() !~ /ppc/, 'advansys'), - ], - network => [ - qw(3c59x eepro100 tulip via-rhine ne2k-pci 8139too), - if_(arch() !~ /ppc|x86_64/, 'e100'), - if_(arch() !~ /ppc|ia64/, 'tlan'), - ], -); - -my $main_version = chomp_(cat_("all.kernels/.main")); - -foreach (keys %sanity_check) { - my $marfile = "all.modules/$main_version/${_}_modules.mar"; - -e $marfile or die "ERROR: missing $marfile\n"; - - my @l = map { /(\S+)\.o/ } `$mar -l $marfile`; - my @pbs = difference2($sanity_check{$_}, \@l); - - @pbs and die "ERROR: sanity check should prove that " . join(" ", @pbs) . " be part of $marfile\n"; -} diff --git a/kernel/list_modules.pm b/kernel/list_modules.pm deleted file mode 100644 index f5823f521..000000000 --- a/kernel/list_modules.pm +++ /dev/null @@ -1,208 +0,0 @@ -package list_modules; - -use MDK::Common; - -our @ISA = qw(Exporter); -our @EXPORT = qw(load_dependencies dependencies_closure category2modules module2category sub_categories); - -# the categories have 2 purposes -# - choosing modules to include on stage1's (cf update_kernel and mdk-stage1/pci-resource/update-pci-ids.pl) -# - performing a load_category or probe_category (modules.pm and many files in perl-install) - -our %l = ( - ################################################################################ - network => - { - main => [ - if_(arch() =~ /ppc/, qw(mace bmac gmac airport)), - if_(arch() =~ /^sparc/, qw(sunbmac sunhme sunqe)), - if_(arch() !~ /alpha/ && arch() !~ /sparc/, - qw(3c501 3c503 3c505 3c507 3c509 3c515 3c90x), - qw(82596 abyss ac3200 acenic aironet4500_card at1700 atp com20020-pci), - qw(cs89x0 de600 de620), - qw(defxx orinoco_plx), # most unused - qw(depca dgrs dmfe e100 e2100 eepro eepro100 eexpress epic100 eth16i), - qw(ewrk3 hamachi hp hp-plus hp100 ibmtr), - qw(lance natsemi ne ne2k-pci ni5010 ni52 ni65 nvnet olympic pcnet32 plip rcpci), - qw(sb1000 sis900 smc-ultra smc9194 starfire tlan tmspci tulip via-rhine), - qw(wd winbond-840), - qw(fealnx 3c990 3c990fx bcm4400), - qw(skfp tc35815 lanstreamer farsync sdladrv orinoco_pci prism2_plx), - - qw(iph5526), #- fibre channel - ), - qw(3c59x 8139too 8139cp sundance), #rtl8139 - ], - gigabit => [ - qw(dl2k myri_sbus yellowfin ns83820 r8169 tg3 e1000 sk98lin), - qw(bcm5820 bcm5700), #- encrypted - ], - - raw => [ - qw(ppp_generic ppp_async), - ], - pcmcia => [ - qw(3c574_cs 3c589_cs airo airo_cs aironet4500_cs axnet_cs fmvj18x_cs), - qw(ibmtr_cs orinoco_cs netwave_cs nmclan_cs pcnet_cs ray_cs smc91c92_cs wavelan_cs wvlan_cs), - qw(xirc2ps_cs xircom_cb xircom_tulip_cb), - ], - usb => [ - qw(catc CDCEther kaweth pegasus rtl8150 usbnet usbvnet_rfmd), - ], - isdn => [ - qw(b1pci c4 hisax hisax_fcpcipnp hysdn t1pci tpam), - ], - }, - - ################################################################################ - disk => - { - scsi => [ - if_(arch() =~ /ppc/, qw(mesh mac53c94)), - if_(arch() =~ /^sparc/, qw(qlogicpti)), - if_(arch() !~ /alpha/ && arch() !~ /sparc/, - qw(3w-xxxx AM53C974 BusLogic NCR53c406a a100u2w advansys aha152x aha1542 aha1740), - qw(atp870u dc395x_trm dtc g_NCR5380 in2000 initio pas16 pci2220i psi240i fdomain), - qw(qla1280 qla2x00 qlogicfas qlogicfc), - qw(seagate wd7000 sim710 sym53c416 t128 tmscsim u14-34f ultrastor), - qw(eata eata_pio eata_dma mptscsih nsp32), - ), - '53c7,8xx', - qw(aic7xxx aic7xxx_old aic79xx pci2000 qlogicisp sym53c8xx), # ncr53c8xx - ], - hardware_raid => [ - if_(arch() =~ /^sparc/, qw(pluto)), - if_(arch() !~ /alpha/ && arch() !~ /sparc/, - qw(DAC960 dpt_i2o megaraid aacraid cciss cpqarray gdth i2o_block), - qw(cpqfc qla2200 qla2300 ataraid hptraid silraid pdcraid), - qw(ips ppa imm), - ), - ], - pcmcia => [ qw(aha152x_cs fdomain_cs nsp_cs qlogic_cs ide-cs) ], #ide_cs - raw => [ qw(scsi_mod sd_mod) ], - usb => [ qw(usb-storage) ], - firewire => [ qw(sbp2) ], - cdrom => [ qw(ide-cd cdrom sr_mod) ], - }, - - ################################################################################ - - bus => - { - usb => [ qw(usbcore usb-uhci usb-ohci ehci-hcd usbkbd keybdev input) ], - firewire => [ qw(ohci1394 ieee1394) ], - pcmcia => [ - if_(arch() !~ /^sparc/, qw(pcmcia_core tcic ds i82365 i82092 yenta_socket)), # cb_enabler - ], - #serial_cs - #ftl_cs 3c575_cb apa1480_cb epic_cb serial_cb tulip_cb iflash2+_mtd iflash2_mtd - #cb_enabler - }, - - fs => - { - network => [ qw(af_packet nfs lockd sunrpc) ], - cdrom => [ qw(isofs) ], - loopback => [ qw(isofs loop) ], - local => [ - if_(arch() =~ /^i.86/, qw(vfat fat)), - if_(arch() =~ /^ppc/, qw(hfs)), - qw(reiserfs), - ], - various => [ qw(smbfs romfs jbd xfs) ], - - }, - - ################################################################################ - multimedia => - { - sound => [ - if_(arch() =~ /ppc/, qw(dmasound_pmac)), - if_(arch() !~ /^sparc/, - qw(ad1816 ad1848 ad1889 ali5455 awe_wave audigy cmpci cs46xx cs4232 cs4281 emu10k1 es1370 es1371 esssolo1 forte), - qw(gus i810_audio ice1712 mad16 maestro maestro3 mpu401 msnd_pinnacle nvaudio opl3 opl3sa opl3sa2 nm256_audio), - qw(pas2 pss rme96xx sb sgalaxy sam9407 sonicvibes sscape trident via82cxxx_audio wavefront ymfpci), - qw(snd-ali5451 snd-als100 snd-als4000 snd-azt2320 snd-azt3328 snd-cmi8330 snd-cmipci), - qw(snd-cs4231 snd-cs4232 snd-cs4236 snd-cs46xx snd-dt0197h snd-cs4281 snd-emu10k1), - qw(snd-ad1816a snd-ad1848 snd-gusclassic snd-gusextreme snd-gusmax snd-interwave), - qw(snd-mpu401 snd-opti93x snd-rme9652 snd-sb8 snd-sbawe), - qw(snd-ens1370 snd-ens1371 snd-es18xx snd-es968 snd-es1938 snd-es1968 snd-es1688), - qw(snd-fm801 snd-hdsp snd-ice1712 snd-intel8x0 snd-korg1212 snd-maestro3), - qw(snd-nm256 snd-rme96 snd-rme32 snd-opl3sa2 snd-sb16 snd-sgalaxy snd-sonicvibes), - qw(snd-trident snd-usb-audio snd-via82xx snd-wavefront snd-ymfpci), - ), - ], - tv => [ qw(bttv cpia_usb ibmcam mod_quickcam ov511 ov518_decomp ultracam usbvideo cyber2000fb saa7134) ], - photo => [ qw(dc2xx mdc800) ], - radio => [ qw(radio-maxiradio) ], - scanner => [ qw(scanner microtek) ], - joystick => [ qw(ns558 emu10k1-gp iforce) ], - }, - - various => - # just here for classification, unused categories (nor auto-detect, nor load_thiskind) - { - raid => [ - qw(linear raid0 raid1 raid5 lvm-mod md multipath xor), - ], - mouse => [ - qw(busmouse msbusmouse logibusmouse serial qpmouse atixlmouse), - ], - char => [ - qw(amd768_rng applicom n_r3964 nvram pc110pad ppdev), - qw(mxser moxa isicom wdt_pci epca synclink istallion sonypi i810-tco sx), #- what are these??? - ], - other => [ - qw(agpgart defxx i810_rng i810fb ide-floppy ide-scsi ide-tape loop lp nbd sg st), - qw(parport parport_pc parport_serial), - qw(btaudio), - - #- these need checking - qw(pcilynx sktr rrunner meye 3c559 buz paep), - ], - }, -); - -my %dependencies; - -sub load_dependencies { - my ($file) = @_; - - %dependencies = map { - my ($f, $deps) = split ':'; - $f => [ split ' ', $deps ]; - } cat_($file); -} - -sub dependencies_closure { - my @l = map { dependencies_closure($_) } @{$dependencies{$_[0]} || []}; - (@l, $_[0]); -} - -sub category2modules { - map { - my ($t1, $t2s) = m|(.*)/(.*)|; - map { - my $l = $l{$t1}{$_} or die "bad category $t1/$_\n" . backtrace(); - @$l; - } split('\|', $t2s); - } split(' ', $_[0]); -} - -sub module2category { - my ($module) = @_; - foreach my $t1 (keys %l) { - my $h = $l{$t1}; - foreach my $t2 (keys %$h) { - $module eq $_ and return "$t1/$t2" foreach @{$h->{$t2}}; - } - } - return; -} - -sub sub_categories { - my ($t1) = @_; - keys %{$l{$t1}}; -} - -1; diff --git a/kernel/modules.pl b/kernel/modules.pl deleted file mode 100644 index e22ac35c3..000000000 --- a/kernel/modules.pl +++ /dev/null @@ -1,197 +0,0 @@ -use strict; - - -BEGIN { - #- for testing purpose - (my $f = __FILE__) =~ s|/[^/]*$||; - push @INC, $f; -} - -use MDK::Common; -use list_modules; - -#- seldom used modules -#- we don't bother making a special floppy for those -my %modules_only_for_all_img = ( - - 'network/main' => [ - qw(olympic acenic), - qw(aironet4500_card com20020-pci hamachi starfire winbond-840), - qw(fealnx 3c990 3c990fx prism2_plx dgrs), - - # token ring - qw(tmspci ibmtr abyss), - - qw(3c501 3c503 3c505 3c507 3c515), # unused, hopefully? - qw(eepro 82596 de620 depca ewrk3 cs89x0), - - if_(arch() =~ /alpha|ppc/, qw(sb1000)), - qw(iph5526), - - qw(ac3200 at1700 atp ni5010 ni52 ni65), #- unused from Jeff - ], - - 'disk/scsi' => [ - # ISA cards: - qw(NCR53c406a aha152x psi240i qlogicfas qlogicfc wd7000 sim710 t128 ultrastor), '53c7,8xx', - qw(qla2x00 in2000 pas16 a100u2w seagate g_NCR5380), - qw(AM53C974), # deprecated by tmscsim - qw(u14-34f), #- duplicate from ultrastor.o - #- still used, keeping them: qw(aha1542 sym53c416), - - qw(dc395x_trm mptscsih BusLogic fdomain), - qw(pci2220i eata eata_pio eata_dma), - 'aic7xxx_old', - ], - - 'disk/hardware_raid' => [ - qw(i2o_block qla2200 qla2300 cpqfc DAC960), - ], -); - -#- modules that will only be available in stage2 -#- those modules are NOT in all.img, network.img... -#- there should only be modules that can't be used on stage1 -#- completly unused modules should be removed directly from the kernel -#- (and so be removed from stage2 too) -my %modules_removed_from_stage1 = ( - 'network/main' => [ - 'plip' - ], - - 'disk/hardware_raid' => [ - qw(imm ppa), - qw(ataraid hptraid silraid pdcraid), # ad-hoc raid which is unsupported in stage1 anyway - ], -); - -my @modules_always_on_stage1 = qw(floppy); - - -sub flatten_and_check { - my ($h) = @_; - map { - my $category = $_; - my @l = @{$h->{$category}}; - if (my @bad = difference2(\@l, [ category2modules($category) ])) { - foreach (@bad) { - if (my $cat = module2category($_)) { - warn "ERROR in modules.pl: module $_ is in category $cat, not in $category\n"; - } else { - warn "ERROR in modules.pl: unknown module $_\n"; - } - } - exit 1; - } - @l; - } keys %$h; -} - -my @modules_only_for_all_img = flatten_and_check(\%modules_only_for_all_img); -my @modules_removed_from_stage1 = flatten_and_check(\%modules_removed_from_stage1); - - -my %images = ( - network_gigabit_usb - => 'fs/network network/raw bus/usb network/gigabit|usb', - network => 'fs/network network/raw bus/pcmcia network/main', - hd => 'disk/raw fs/local|loopback disk/scsi|hardware_raid', - hdcdrom_usb - => 'disk/cdrom|raw fs/local|loopback|cdrom bus/usb disk/usb bus/firewire disk/firewire', - pcmcia => 'fs/cdrom disk/cdrom|raw|pcmcia bus/pcmcia fs/network network/pcmcia|raw', - cdrom => 'fs/cdrom disk/cdrom|raw|scsi', - all => 'fs/cdrom disk/cdrom|raw bus/usb disk/usb|scsi fs/loopback|local bus/pcmcia disk/pcmcia|hardware_raid fs/network network/main|pcmcia|usb|raw|gigabit bus/firewire disk/firewire', -); - -load_dependencies(glob("all.modules/2.4*/modules.dep")); - -my $verbose = "@ARGV" =~ /-v/; -images() if "@ARGV" =~ /images/; -check() if "@ARGV" =~ /check/; -pci_modules4stage1($1) if "@ARGV" =~ /pci_modules4stage1:(.*)/; - -sub images { - while (my ($image, $l) = each %images) { - my @modules = @modules_always_on_stage1; - foreach (split(' ', $l)) { - push @modules, category2modules($_); - } - - @modules = difference2(\@modules, \@modules_removed_from_stage1); - - if ($image !~ /all/) { - @modules = difference2(\@modules, \@modules_only_for_all_img); - } - @modules = uniq(map { dependencies_closure($_) } @modules); - printf qq(%s_modules="%s"\n), $image, join(" ", map { "$_.o" } @modules); - } -} - -sub pci_modules4stage1 { - print "$_\n" foreach uniq(map { dependencies_closure($_) } difference2([ category2modules($_[0]) ], \@modules_removed_from_stage1)); -} - -sub check { - my $error; - my %listed; - while (my ($t1, $l) = each %list_modules::l) { - while (my ($t2, $l) = each %$l) { - ref $l or die "bad $l in $t1/$t2"; - foreach (@$l) { - $listed{$_} = 1; - } - } - } - - my %module2category; - my %deprecated_modules = %listed; - my $not_listed = sub { - my ($msg, $verbose, @l) = @_; - my %not_listed; - foreach (@l) { - my ($mod) = m|([^/]*)\.o(\.gz)?$| or next; - delete $deprecated_modules{$mod}; - next if $listed{$mod}; - s|.*?mdk(BOOT)?/||; - s|kernel/||; s|drivers/||; s|3rdparty/||; - $_ = dirname $_; - $_ = dirname $_ if $mod eq basename($_); - $module2category{$mod} = $_; - push @{$not_listed{$_}}, $mod; - } - if ($verbose) { - print "$msg $_: ", join(" ", @{$not_listed{$_}}), "\n" foreach sort keys %not_listed; - } - }; - $not_listed->('NOT LISTED', 1, `cd all.kernels/2.4* ; find -name "*.o" -o -name "*.o.gz"`); - $not_listed->('not listed', $verbose, `rpm -qpl /RPMS/kernel-2.4*`); - print "bad/old modules : ", join(" ", sort keys %deprecated_modules), "\n" if %deprecated_modules; - - { - require '/usr/bin/merge2pcitable.pl'; - my $pcitable = read_pcitable("/usr/share/ldetect-lst/pcitable"); - my $usbtable = read_pcitable("/usr/share/ldetect-lst/usbtable"); - - my @l1 = uniq grep { !/:/ && $_ ne 'unknown' } map { $_->[0] } values %$pcitable; - if (my @l = difference2(\@l1, [ keys %listed ])) { - my %not_listed; - push @{$not_listed{$module2category{$_}}}, $_ foreach @l; - if (my $l = delete $not_listed{''}) { - print "bad/old pcitable modules : ", join(" ", @$l), "\n"; - } - print STDERR "PCITABLE MODULES NOT LISTED $_: ", join(" ", @{$not_listed{$_}}), "\n" foreach sort keys %not_listed; - #$error = 1; - } - - my @l2 = uniq grep { !/:/ && $_ ne 'unknown' } map { $_->[0] } values %$usbtable; - if (my @l = difference2(\@l2, [ keys %listed ])) { - my %not_listed; - push @{$not_listed{$module2category{$_}}}, $_ foreach @l; - if ($verbose) { - print "usbtable modules not listed $_: ", join(" ", @{$not_listed{$_}}), "\n" foreach sort keys %not_listed; - } - } - } - - exit $error; -} diff --git a/kernel/update_kernel b/kernel/update_kernel deleted file mode 100755 index 1fbb97297..000000000 --- a/kernel/update_kernel +++ /dev/null @@ -1,114 +0,0 @@ -#!/bin/bash - -ALL_KERNELS="all.kernels" - -# move stuff to this new "kernel" directory -if [ ! -d all.kernels ]; then - mv ../all.kernels . - rm -rf ../all.modules -fi - -function create_marfile() { - marfile=$1 - shift - $GIBASEDIR/mdk-stage1/mar/mar -c $marfile $* -} - -function create_modules() { - kernel_path=$1 - kern=$2 - echo "Updating modules in '`pwd`' for kernel '$kern'" - cp -f `find $kernel_path/lib/modules/ -name "*.o"` . - /sbin/depmod -F $kernel_path/boot/System.map* -e *.o | perl -pe 's/\\\n//' \ - | perl -ne 's/\.o//g; s/[ \t]+/ /g; print if /: /' > modules.dep - perl -pi -e 's/((plip|ppa|imm): parport)/$1 parport_pc/' modules.dep - - /sbin/modinfo -f '%{filename} %{description}\n' *.o | perl -lne 'print "$1\t$2" if /(.*?)\.o "(.*)"/' > modules.description -} - -function create_modules_mar() { - echo -n "packdrake $kern: " - ls *.o | packdrake -b9s "modules.cz" 400000 - echo "done" - mv modules.cz ../modules.cz-$kern - for i in network network_gigabit_usb cdrom hd hdcdrom_usb pcmcia all; do - modules_var="${i}_modules" - eval "create_marfile ${i}_modules.mar \$$modules_var" - done - echo -} - -[ -e $ALL_KERNELS/.main ] && main=$(cat $ALL_KERNELS/.main) - -rpm=$(rpm -qpl /export/Mandrake/RPMS/kernel-BOOT-*.rpm | perl -lne 'm|/boot/vmlinuz-(.*)| and print $1') -if [ -n "$rpm" -a ! -e $ALL_KERNELS/$rpm ]; then - [ -n "$main" ] && rm -rf $ALL_KERNELS/$main - cd $ALL_KERNELS - rm -rf $rpm ; mkdir $rpm - cd $rpm - rpm2cpio /export/Mandrake/RPMS/kernel-BOOT-*.rpm | cpio -id - find -type f -name "*.o.gz" | xargs gunzip - cd ../.. - - for dir in /tftpboot /var/lib/tftpboot; do - rm -f $dir/{vmlinuz,network.rdz} - done -fi - -[ -n "$main" -a -e $ALL_KERNELS/$main ] || { - cd $ALL_KERNELS - main=$(echo 2.* | sed 's/.* //') - echo "Choosing $main" - echo $main > .main - cd .. -} - -ARCH=`uname -m | sed -e 's/i.86/i386/' -e 's/sparc.*/sparc/'` - -if [ "$ARCH" == "i386" ]; then - for i in $ALL_KERNELS/*/boot/vmlinuz*; do - #disable any existing resolution!!! - /usr/sbin/rdev -v $i 65535 #788 #785 - done -else - if [ "$ARCH" == "ppc" ]; then - cp -f "$KERNEL_BOOT_PATH"/boot/vmlinux . - else - cp -f "$KERNEL_BOOT_PATH"/boot/vmlinux.gz . - fi -fi - - -GIBASEDIR=`pwd`/.. - -rm -rf all.modules ; mkdir all.modules -for i in $ALL_KERNELS/*; do - kern=`basename $i` - ( - mkdir all.modules/$kern - cd all.modules/$kern - - create_modules ../../$i $kern - ) || exit 1 -done -cp -f all.modules/$main/modules.description . - -l=`perl modules.pl images` || exit 1 -eval $l - -for i in $ALL_KERNELS/*; do - kern=`basename $i` - ( - cd all.modules/$kern - - if [ "$kern" = "$main" ]; then - create_modules_mar ../../$i $kern - else - echo "$kern ($main)" - create_modules_mar ../../$i $kern 2>/dev/null - fi - ) || exit 1 -done - - -./check_mar.pl |