blob: 13ea4e6ecb81caf94e906a599568a5ab7086657e (
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
|
#!/bin/bash
ALL_KERNELS="all.kernels"
function f() {
echo -n "."
v=`perl -Iperl-install -Mmodules -e "print qq(\\$_.o\n) foreach modules::module_of_type__4update_kernel(\"$1\")"`
}
function create_marfile() {
marfile=$1
shift
for i in $*
do
j=`basename $i .o`
needed=`cat modules.dep | perl -ne "print "'$1'" if /^$j: (.*)/"`
for k in $needed
do
[ -z "`echo $* | grep $k`" ] \
&& [ -z "`echo $PCMCIA_COREMODULES | grep $k`" ] \
&& echo "ERROR: in $marfile, $k is missing (required by $i)" \
&& exit 1
done
done
$GIBASEDIR/mdk-stage1/mar/mar -c $marfile $(ls $*)
}
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
ls *.o | packdrake -b9s "modules.cz" 400000
mv modules.cz ../modules.cz-$kern
create_marfile network_modules.mar $NETWORK_MODULES $GENERIC_MODULES
create_marfile cdrom_modules.mar $CDROM_MODULES $GENERIC_MODULES
create_marfile hd_modules.mar $HD_MODULES $GENERIC_MODULES
create_marfile pcmcia_modules.mar $PCMCIA_MODULES $PCMCIA_COREMODULES $GENERIC_MODULES
create_marfile usb_modules.mar $USB_MODULES $GENERIC_MODULES
create_marfile other_modules.mar $BIG_MODULES $GENERIC_MODULES
create_marfile all_modules.mar $ALL_MODULES $PCMCIA_COREMODULES $GENERIC_MODULES
rm -f $ALL_MODULES $PCMCIA_COREMODULES $NOT_USEFULL_IN_STAGE1 # leave in the directory non-install1 used modules
}
[ -e $ALL_KERNELS/.main ] && main=$(cat $ALL_KERNELS/.main)
[ -n "$main" -a -e $ALL_KERNELS/$main ] || {
pushd . >/dev/null
cd $ALL_KERNELS
main=$(echo 2.* | sed 's/.* //')
echo "Choosing $main"
echo $main > .main
popd >/dev/null
}
ARCH=`uname -m | sed -e 's/i.86/i386/' -e 's/sparc.*/sparc/'`
echo -n "Finding modules categories"
f "scsi" ; SCSI_DRIVERS=$v
f "disk" ; DISK_DRIVERS=$v
f "net" ; NETWORK_DRIVERS=$v
f "scsi cdrom" ; CD_DRIVERS=$v
f "pcmcia net_raw cdrom_raw scsi_raw disk_raw" ; PCMCIA_DRIVERS=$v
f "usb usbnet net_raw usbstorage scsi_raw cdrom_raw disk_raw" ; USB_DRIVERS=$v
f "big net_raw cdrom_raw scsi_raw disk_raw" ; BIG_DRIVERS=$v
f "pcmcia net usb usbnet usbstorage cdrom scsi disk keepbig" ; ALL_DRIVERS=$v
[ $ARCH == "i386" ] && DOSMODULES="vfat.o fat.o"
echo "done."
NETWORK_MODULES=" $NETWORK_DRIVERS"
USB_MODULES=" $USB_DRIVERS usbkbd.o keybdev.o input.o"
CDROM_MODULES=" $CD_DRIVERS"
HD_MODULES=" $DOSMODULES $SCSI_DRIVERS $DISK_DRIVERS loop.o isofs.o reiserfs.o"
[ "$ARCH" == "ppc" ] && HD_MODULES="$HD_MODULES hfs.o"
PCMCIA_MODULES=" $DOSMODULES $PCMCIA_DRIVERS"
BIG_MODULES=" $BIG_DRIVERS"
ALL_MODULES=" $DOSMODULES $ALL_DRIVERS loop.o isofs.o reiserfs.o"
[ "$ARCH" == "ppc" ] && ALL_MODULES="$ALL_MODULES hfs.o"
NOT_USEFULL_IN_STAGE1="nls_*.o parport_probe.o raid*.o serial.o smbfs.o"
GENERIC_MODULES="isa-pnp.o floppy.o"
PCMCIA_COREMODULES="pcmcia_core.o tcic.o ds.o i82365.o yenta_socket.o"
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
)
done
install_kernel() {
v=2.4.13-9mdk
vv=${v}BOOT
rm -rf all.kernels/$(cat all.kernels/.main)
scp kenobi:~chmou/public_html/kernel/BOOT/kernel-BOOT-$v.i586.rpm /tmp
cd ~/gi/all.kernels ; rm -rf $vv ; mkdir $vv ; cd $vv ; rpm2cpio /tmp/kernel-BOOT-$v.i586.rpm | cpio -id
cd ~/gi ; ./update_kernel ; rm -f images/network.rdz ; ./make_boot_img images/network.rdz network
/bin/cp -f all.kernels/$vv/boot/vmlinu* /var/lib/tftpboot/vmlinuz
/bin/cp -f images/network.rdz-$vv /var/lib/tftpboot/network.rdz
/bin/cp -f ~/gi/all.modules/modules.cz-$vv /export/Mandrake/mdkinst/lib
}
# scp kenobi:~mbadaire/kernel/boot/archive/kernel-$v.tar.bz2 /tmp
|