blob: f54ea5d83729365b63e5e9eef58ab45f863305ef (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
Diffstat#!/bin/bash
ALL_KERNELS="all.kernels"
RPMS=/export/Mandrake/RPMS
ARCH=`uname -m | sed -e 's/i.86/i386/' -e 's/sparc.*/sparc/'`
if [[ "$ARCH" = "x86_64" ]]; then
STRIP_MODULES="yes"
fi
# move stuff to this new "kernel" directory
if [ ! -d all.kernels ]; then
if [ -d ../all.kernels ]; then
mv ../all.kernels .
rm -rf ../all.modules
else
# make sure "all.kernels" directory exists
mkdir all.kernels
fi
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() {
if [[ -n "$STRIP_MODULES" ]]; then
echo -n "stripping $kern: "
$GIBASEDIR/kernel/strip_modules *.o
echo "done"
fi
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 network_gigabit network_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)
if [ "$ARCH" == "ia64" ] || [ "$ARCH" == "ppc" ]; then
rpm=$(rpm -qp --qf '%{name}' $RPMS/kernel-[0-9]*.rpm | perl -pe 's/kernel-((\.?[0-9]+){3})\.(.*)/$1-${3}/')
else
rpm=$(rpm -qp --qf '%{name}' $RPMS/kernel-BOOT-*.rpm | perl -pe 's/kernel-BOOT-((\.?[0-9]+){3})\.(.*)/$1-${3}BOOT/')
fi
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
if [ "$ARCH" == "ia64" ] || [ "$ARCH" == "ppc" ]; then
rpm2cpio $RPMS/kernel-[0-9]*.rpm | cpio -id
else
rpm2cpio $RPMS/kernel-BOOT-*.rpm | cpio -id
fi
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 ..
}
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
elif [ "$ARCH" == "ppc" ]; then
cp -f "$KERNEL_BOOT_PATH"/boot/vmlinux .
elif [ "$ARCH" == "ia64" ]; then
cp -f "$KERNEL_BOOT_PATH"/boot/efi/vmlinuz* .
else
cp -f "$KERNEL_BOOT_PATH"/boot/vmlinuz* .
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
|