diff options
-rw-r--r-- | Makefile | 120 | ||||
-rw-r--r-- | kernel/.cvsignore | 3 | ||||
-rw-r--r-- | kernel/Makefile | 13 | ||||
-rw-r--r-- | kernel/list_modules.pm | 190 | ||||
-rw-r--r-- | kernel/modules.pl | 125 | ||||
-rwxr-xr-x | kernel/update_kernel | 92 | ||||
-rwxr-xr-x | mdk-stage1/pci-resource/update-pci-ids.pl | 14 |
7 files changed, 464 insertions, 93 deletions
@@ -1,106 +1,75 @@ +ROOTDEST = /export + +DIRS = tools kernel mdk-stage1 perl-install + + ARCH := $(patsubst i%86,i386,$(shell uname -m)) ARCH := $(patsubst sparc%,sparc,$(ARCH)) -RELEASE_BOOT_IMG = cdrom.img hd.img network.img usb.img ifeq (i386,$(ARCH)) -RELEASE_BOOT_IMG += blank.img pcmcia.img other.img + BOOT_IMG = cdrom.img hd.img network.img usb.img blank.img pcmcia.img other.img endif ifeq (sparc,$(ARCH)) -BOOT_IMG = live.img tftp.img tftprd.img live64.img tftp64.img tftprd64.img -RELEASE_BOOT_IMG += hd64.img cdrom64.img network64.img + BOOT_IMG = cdrom.img hd.img network.img live.img tftp.img tftprd.img + BOOT_IMG += cdrom64.img hd64.img network64.img live64.img tftp64.img tftprd64.img endif ifeq (ppc,$(ARCH)) -BOOT_IMG = -RELEASE_BOOT_IMG = all.img + BOOT_IMG = all.img endif ifeq (ia64,$(ARCH)) -BOOT_IMG = -RELEASE_BOOT_IMG = all.img + BOOT_IMG = all.img endif -BOOT_IMG += $(RELEASE_BOOT_IMG) -FRELEASE_BOOT_IMG = $(BOOT_IMG:%=images/%) FBOOT_IMG = $(BOOT_IMG:%=images/%) FBOOT_RDZ = $(FBOOT_IMG:%.img=%.rdz) images/all.rdz -BINS = mdk-stage1/init mdk-stage1/stage1-full mdk-stage1/stage1-cdrom mdk-stage1/stage1-network mdk-stage1/stage1-usb -ifeq (ppc,$(ARCH)) -BINS = mdk-stage1/init mdk-stage1/stage1-full -endif -DIRS = tools mdk-stage1 perl-install +.PHONY: dirs install -ROOTDEST = /export -UPLOAD_DEST_ = ~/cooker -UPLOAD_DEST = $(UPLOAD_DEST_)/cooker -UPLOAD_DEST_CONTRIB = $(UPLOAD_DEST_)/contrib -UPLOAD_SPARC_DEST = /mnt/BIG/distrib/sparc +build: dirs images + +dirs: + @for n in $(DIRS); do $(MAKE) -C $$n all || exit 1 ; done + +images: $(FBOOT_IMG) + +$(FBOOT_RDZ): kernel/all.modules + ./make_boot_img $@ `basename $(@:%.rdz=%)` -.PHONY: dirs perl-install $(FLOPPY_IMG) install +$(FBOOT_IMG): %.img: %.rdz + ./make_boot_img $@ `basename $(@:%.img=%)` -install: all.modules build rescue +tar: clean + rpm -qa > needed_rpms.lst + cd .. ; tar cfj gi.tar.bz2 gi + rm needed_rpms.lst + +install: build rescue for i in images misc Mandrake Mandrake/base Mandrake/share; do install -d $(ROOTDEST)/$$i ; done -ifneq (ppc,$(ARCH)) - for i in $(FRELEASE_BOOT_IMG); do cp -f $${i}* $(ROOTDEST)/images; done -endif -ifeq (alpha,$(ARCH)) + ifneq (ppc,$(ARCH)) + for i in $(FBOOT_IMG); do cp -f $${i}* $(ROOTDEST)/images; done + endif + ifeq (alpha,$(ARCH)) for i in $(FBOOT_RDZ); do cp -f $${i}* $(ROOTDEST)/boot; done cp -f vmlinux.gz $(ROOTDEST)/boot/instboot.gz make -C tools/$(ARCH)/cd install ROOTDEST=$(ROOTDEST) -endif + endif cd $(ROOTDEST)/images; rm -rf alternatives if [ `ls $(ROOTDEST)/images/*.img-* 2>/dev/null | wc -l` -gt 0 ]; then \ cd $(ROOTDEST)/images; mkdir alternatives; cd alternatives; mv ../*.img-* .; md5sum *.img-* > MD5SUM; \ fi cd $(ROOTDEST)/images; md5sum *.img* > MD5SUM -ifeq (i386,$(ARCH)) + ifeq (i386,$(ARCH)) rm -rf $(ROOTDEST)/isolinux cp -af isolinux $(ROOTDEST) -endif + endif install live_update $(ROOTDEST)/live_update make -C perl-install full_stage2 make -C perl-install/share/advertising install -build: $(FBOOT_RDZ) $(FBOOT_IMG) - -dirs: - @for n in $(DIRS); do \ - $(MAKE) -C $$n all || exit 1 ;\ - done - -rescue: all.modules - make -C $@ - -$(FBOOT_RDZ): dirs all.modules - ./make_boot_img $@ `basename $(@:%.rdz=%)` - -$(FBOOT_IMG): %.img: %.rdz - ./make_boot_img $@ `basename $(@:%.img=%)` - -tar: clean - rpm -qa > needed_rpms.lst - cd .. ; tar cfj gi.tar.bz2 gi - rm needed_rpms.lst - -perl-install: - make -C perl-install all - -mdk-stage1/mar/mar: - make -C mdk-stage1/mar - -all.modules: mdk-stage1/mar/mar perl-install/auto/c/stuff/stuff.so update_kernel perl-install/modules.pm - `./tools/specific_arch ./update_kernel` - -perl-install/auto/c/stuff/stuff.so: perl-install - - -$(FBOOT_IMG:%=%f): %f: % - dd if=$< of=/dev/fd0 - xmessage "Floppy done" - clean: - rm -rf $(BINS) images all.modules all.modules64 install_pcmcia_modules + rm -rf images all.modules all.modules64 for i in $(DIRS) rescue; do make -C $$i clean; done find . -name "*~" -o -name ".#*" | xargs rm -f @@ -138,20 +107,3 @@ upload_only: upload images/alternatives '' ;\ upload isolinux '' ;\ echo - -upload_sparc: - touch /tmp/mdkinst_done - cp -a $(ROOTDEST)/images/* $(UPLOAD_SPARC_DEST)/images ; true - cp -a $(ROOTDEST)/boot/* $(UPLOAD_SPARC_DEST)/boot; true - cp -a $(ROOTDEST)/misc/* $(UPLOAD_SPARC_DEST)/misc; true - rm -rf $(UPLOAD_SPARC_DEST)/Mandrake/mdkinst - cp -a $(ROOTDEST)/Mandrake/mdkinst $(UPLOAD_SPARC_DEST)/Mandrake/mdkinst; true - ( cd $(ROOTDEST)/Mandrake/base; cp mdkinst_stage2.bz2
msgid "Code of conduct"
msgstr "Käitumisjuhised"
#: "/web/en/map/index.php +28"
msgid "Constitution"
msgstr "Põhikiri"
#: "/web/en/map/index.php +29"
msgid "Reports"
msgstr "Aruanded"
#: "/web/en/map/index.php +32"
msgid "License"
msgstr "Litsents"
#: "/web/en/map/index.php +33"
msgid "Timeline"
msgstr "Kronoloogia"
#: "/web/en/map/index.php +34"
msgid "Financial Infos"
msgstr "Finantsteave"
#: "/web/en/map/index.php +38"
msgid "Downloads"
msgstr "Allalaadimine"
#: "/web/en/map/index.php +41"
#, fuzzy
msgid "8 (February 2021)"
msgstr "4 (veebruar 2014)"
#: "/web/en/map/index.php +42"
msgid "7 (June 2019)"
msgstr "7 (juuni 2019)"
#: "/web/en/map/index.php +43"
msgid "6 (July 2017)"
msgstr "6 (juuli 2017)"
#: "/web/en/map/index.php +44"
msgid "5 (June 2015)"
msgstr "5 (juuni 2015)"
#: "/web/en/map/index.php +45"
msgid "4 (February 2014)"
msgstr "4 (veebruar 2014)"
#: "/web/en/map/index.php +46"
msgid "3 (May 2013)"
msgstr "3 (mai 2013)"
#: "/web/en/map/index.php +47"
msgid "2 (May 2012)"
msgstr "2 (mai 2012)"
#: "/web/en/map/index.php +48"
msgid "1 (June 2011)"
msgstr "1 (juuni 2011)"
#: "/web/en/map/index.php +49"
msgid "Alternative Downloads"
msgstr "Alternatiivsed allalaadimised"
#: "/web/en/map/index.php +50"
msgid "Download mirrors"
msgstr "Allalaadimispeeglid"
#: "/web/en/map/index.php +54"
msgid "Support"
msgstr "Toetus"
#: "/web/en/map/index.php +57"
msgid "Software updates"
msgstr "Tarkvarauuendused"
#: "/web/en/map/index.php +58"
msgid "Product lifecycle"
msgstr "Toodete eluiga"
#: "/web/en/map/index.php +59"
msgid "Official Documentation"
msgstr "Ametlik dokumentatsioon"
#: "/web/en/map/index.php +60"
msgid "Community support"
msgstr "Kogukonna toetus"
#: "/web/en/map/index.php +61"
msgid "Professional support"
msgstr "Professionaalne toetus"
#: "/web/en/map/index.php +61"
msgid "https://wiki.mageia.org/en/Commercial_vendors"
msgstr "https://wiki.mageia.org/en/Commercial_vendors"
#: "/web/en/map/index.php +62"
msgid "Compatible hardware"
msgstr "Ühilduv tarkvara"
#: "/web/en/map/index.php +63"
msgid "FAQ"
msgstr "KKK"
#: "/web/en/map/index.php +63"
msgid "https://wiki.mageia.org/en/FAQ"
msgstr "https://wiki.mageia.org/en/FAQ"
#: "/web/en/map/index.php +67"
msgid "Community"
msgstr "Kogukond"
#: "/web/en/map/index.php +70"
msgid "Planet"
msgstr "Planet"
#: "/web/en/map/index.php +70"
msgid "https://planet.mageia.org/en/"
msgstr "https://planet.mageia.org/en/"
#: "/web/en/map/index.php +71"
msgid "Blog"
msgstr "Ajaveeb"
#: "/web/en/map/index.php +71"
msgid "https://blog.mageia.org/en/"
msgstr "https://blog.mageia.org/en/"
#: "/web/en/map/index.php +72"
msgid "Calendar"
msgstr "Kalender"
#: "/web/en/map/index.php +73"
msgid "Mailing-lists"
msgstr "Postiloendid"
#: "/web/en/map/index.php +73"
msgid "https://wiki.mageia.org/en/Mailing_lists"
msgstr "https://wiki.mageia.org/en/Mailing_lists"
#: "/web/en/map/index.php +74"
msgid "https://wiki.mageia.org/en/IRC"ss='add'>+ if_(arch() !~ /^sparc/, + qw(cmpci cs46xx cs4281 es1370 es1371 esssolo1 i810_audio maestro maestro3), + qw(nm256_audio pas16 trident via82cxxx_audio sonicvibes emu10k1 ymfpci), + + qw(snd-ice1712 snd-cmipci snd-ens1371), + qw(snd-es1938 snd-fm801 snd-intel8x0 snd-rme96), + qw(snd-trident snd-ymfpci), + ), + ], + tv => [ qw(bttv cpia_usb ibmcam mod_quickcam ov511 ultracam usbvideo) ], + photo => [ qw(dc2xx mdc800) ], + radio => [ qw(radio-maxiradio) ], + scanner => [ qw(scanner microtek) ], + joystick => [ qw(ns558) ], + }, + + 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 amd768_pm), + ], + other => [ + qw(agpgart defxx i810_rng i810fb ide-floppy ide-scsi ide-tape loop lp nbd sg st parport parport_pc), + ], + }, +); + +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) = @_; + my ($t1, $t2); + while (($t1, my $h) = each %l) { + while (($t2, my $l) = each %$h) { + $module eq $_ and goto found foreach @$l; + } + } + return; + found: + "$t1/$t2"; +} + +sub sub_categories { + my ($t1) = @_; + keys %{$l{$t1}}; +} + +1; diff --git a/kernel/modules.pl b/kernel/modules.pl new file mode 100644 index 000000000..ebcdaaa2c --- /dev/null +++ b/kernel/modules.pl @@ -0,0 +1,125 @@ +use strict; + +use MDK::Common; +use list_modules; + + +my @skip_big_modules_on_stage1 = ( +qw( +olympic +sk98lin acenic +3c90x +ns83820 +aironet4500_card aironet4500_core com20020-pci hamachi starfire winbond-840 + +dc395x_trm +BusLogic seagate fdomain g_NCR5380 +) +); + +my @skip_modules_on_stage1 = ( + qw(sktr tmspci ibmtr abyss), # alt token ring + qw(old_tulip rtl8139), + if_(arch() =~ /alpha|ppc/, qw(sb1000)), + "apa1480_cb", + "imm", + "ppa", + "plip", + qw(3w-xxxx pci2220i qla2x00 i2o_block), + qw(eata_pio eata_dma), + 'AM53C974', # deprecated by tmscsim + qw(ac3200 at1700 atp ni5010 ni52 ni65), #- unused from Jeff + "u14-34f", #- duplicate from ultrastor.o +); + +my %images = ( + network => 'fs/network network/main|raw bus/pcmcia', + cdrom => 'fs/cdrom disk/cdrom|scsi|raw', + hd => 'fs/local fs/loopback disk/scsi|hardware_raid|raw', + usb => 'fs/network|cdrom bus/usb network/usb|raw disk/cdrom|usb|raw', + pcmcia => 'fs/network|cdrom disk/cdrom|pcmcia|raw bus/pcmcia network/pcmcia|raw', + other => 'network/main disk/scsi|hardware_raid ONLY_BIG fs/network network/raw fs/cdrom disk/cdrom|raw', + all => 'fs/network|cdrom|loopback|local bus/pcmcia|usb network/main|pcmcia|usb|raw disk/cdrom|scsi|hardware_raid|pcmcia|usb|raw', +); + +my $verbose = "@ARGV" =~ /-v/; +images() if "@ARGV" =~ /images/; +check() if "@ARGV" =~ /check/; + +sub images { + load_dependencies('modules.dep'); + + while (my ($image, $l) = each %images) { + my @modules; + foreach (split(' ', $l)) { + if (/ONLY_BIG/) { + @modules = intersection(\@modules, \@skip_big_modules_on_stage1); + next; + } + push @modules, category2modules($_); + } + + @modules = difference2(\@modules, \@skip_modules_on_stage1); + if ($image !~ /other|all/) { + @modules = difference2(\@modules, \@skip_big_modules_on_stage1) + } + @modules = map { dependencies_closure($_) } @modules; + printf qq(%s_modules="%s"\n), $image, join(" ", map { "$_.o" } sort @modules); + } +} + +sub check { + my $error; + my %listed; + my %big_modules_categories; + while (my ($t1, $l) = each %list_modules::l) { + while (my ($t2, $l) = each %$l) { + ref $l or die "bad $l in $t1/$t2"; + print "MODULE: $_\n" foreach @$l; + foreach (@$l) { + $listed{$_} = 1; + push @{$big_modules_categories{$t1}{$t2}}, $_ if member($_, @skip_modules_on_stage1); + } + } + } + + # remove accepted categories for other.img + delete $big_modules_categories{disk}{hardware_raid}; + delete $big_modules_categories{disk}{scsi}; + delete $big_modules_categories{network}{main}; + + if (map { %$_ } values %big_modules_categories) { + my @l = map { "$_/" . join('|', sort keys %{$big_modules_categories{$_}}) } sort keys %big_modules_categories; + print STDERR "WEIRD CATEGORIES USED FOR other.img: ", join(" ", @l), "\n"; + if ($verbose) { + while (my ($t1, $t2s) = each %big_modules_categories) { + print "$t1/$_ used for other.img: ", join(" ", @{$t2s->{$_}}), "\n" foreach keys %$t2s; + } + } + $error = 1; + } + + 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($_); + 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; + + exit $error; +} diff --git a/kernel/update_kernel b/kernel/update_kernel new file mode 100755 index 000000000..3d07c4155 --- /dev/null +++ b/kernel/update_kernel @@ -0,0 +1,92 @@ +#!/bin/bash + +ALL_KERNELS="all.kernels" + +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 + + modinfo -f '%{filename} %{description}\n' *.o | perl -lne 'print "$1\t$2" if /(.*?)\.o "(.*)"/' > modules.description + + echo -n "packdrake $kern: " + ls *.o | packdrake -b9s "modules.cz" 400000 + echo "done" + mv modules.cz ../modules.cz-$kern + for i in network cdrom hd usb other 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 -qp --qf '%{name}' /RPMS/kernel-BOOT-*.rpm | perl -pe 's/kernel-BOOT-(.*)\.(.*)/$1-${2}BOOT/') +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 /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/'` + +eval `perl modules.pl images` + +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 + if [ "$kern" = "$main" ]; then + create_modules ../../$i $kern + else + echo "$kern ($main)" + create_modules ../../$i $kern 2>/dev/null + fi + ) || exit 1 +done +cp -f all.modules/$main/modules.description . diff --git a/mdk-stage1/pci-resource/update-pci-ids.pl b/mdk-stage1/pci-resource/update-pci-ids.pl index dcce42c28..9969b6acf 100755 --- a/mdk-stage1/pci-resource/update-pci-ids.pl +++ b/mdk-stage1/pci-resource/update-pci-ids.pl @@ -1,7 +1,6 @@ #!/usr/bin/perl use MDK::Common; -use lib qw(../../perl-install); -x "../mar/mar" or die "\t*FAILED* Sorry, need ../mar/mar binary\n"; @@ -37,25 +36,22 @@ my %sanity_check = ); foreach $type (keys %t) { + my @modulez; print STDERR "$type (checks: ", join('/', @{$sanity_check{$type}}), ") "; foreach $floppy (@{$t{$type}}) { - foreach $marfile (glob("../../all.modules/*/${floppy}_modules.mar")) { + foreach $marfile (glob("../../kernel/all.modules/*/${floppy}_modules.mar")) { -f $marfile or die "\t*FAILED* Sorry, need $marfile mar file\n"; - my @modz = `../mar/mar -l $marfile`; + my @modz = map { /(\S+)\.o/ } `../mar/mar -l $marfile`; if ($marfile !~ /(2\.2\.14)|(other)/) { foreach $mandatory (@{$sanity_check{$type}}) { - grep(/\t$mandatory\.o/, @modz) or die "\t*FAILED* Sanity check should prove that $mandatory.o be part of $marfile\n" + member($mandatory, @modz) or die "\t*FAILED* Sanity check should prove that $mandatory.o be part of $marfile\n" } } + push @modulez, @modz; print STDERR "."; } } - my %names_in_stage2 = ( network => [ 'net' ], medias => [ 'scsi', 'disk', 'big' ] ); - require modules; - my @modulez; - push @modulez, modules::module_of_type__4update_kernel($_) foreach @{$names_in_stage2{$type}}; - print "#ifndef DISABLE_".uc($type)." struct pci_module_map ${type}_pci_ids[] = { "; |