Compilazione del kernel

2.2.18 e patch OpenWall

Elenco dei files e delle versioni di patches


Creazione del floppy di ripristino

leggere il nome del file di kernel da /etc/lilo.conf (linea /boot/vmlinuz???)

mkbootdisk -device /dev/fd0 ??? (es. 2.2.12-20)

riavviare provando se funziona


Eliminare kernel precedente

rm -rf /usr/src/linux

rm -rf /usr/src/linux-2.2. {....}

rm -rf /lib/modules/2.2. {...}

oppure

rpm -qa | grep kernel

rpm -e --nodeps kernel-headers kernel

rm -rf /usr/src/linux-2.2. {...}

rn -rf /lib/modules/2.2. {...}


Preparare i sorgenti

muovere il file in /usr/src/ e scompattarlo

tar zxvfp linux-version...

rm -f linux-version...


Aumentare il numero di task (ottimizzazione)

nel file /usr/src/linux/include/linux/tasts.h

cambiare i parametri

NR_TASKS da 512 a 3072

MIN_TASKS_LEFT_FOR_ROOT da 4 a 24


Cambio di compilatore da GCC a EGCS

nel file/usr/src/linux/Makefile

HOSTCC da gcc a egcs

CC da $(CROSS_COMPILE)gcc -D__KERNEL__ -I$(PATH)

a $(CROSS_COMPILE)egcs -D__KERNEL__ -I$(PATH)

CFLAGS da -WALL -Wstrict-prototypes -O2 -fomit-frame-pointer

a {quello del processore}

HOSTCFLAGS da -Wall -Wstrict-prototypes -O2 -Fomit-frame-pointer

a {quello del processore}

{RICONTROLLARE!}


Applicazione della patch OpenWall

muovere il file linux-...-ow2_tar.gz /usr/src

cd /usr/src

tar xzvfp linux-...-ow2_tar.gz

cd linux-...ow2

mv linux-...ow2.diff /usr/src

patch -p0 <linux-...-ow2.diff

rm -rf linux-2....

rm -f linux-2.2....diff

rm -f linux..-ow2_tar.gz


Creare symlink

verso asm/ linux/ e scsi/ da /usr/include


Pulire files .o vecchi e dipendenze

cd /usr/src/linux

make mrproper


Creare file .config

make menuconfig

oppure make config

oppure usare il file .config gia' preparato

Note sulle opzioni da variare rispetto al default:

Processor type:

- config_snp? N

Loadable modules support:

- config_modules? N

General setup:

- config_pci_quirks? N

-config_pci_old_proc? N

Plug and play support:

Block devices:

- config_blk_dev_cmd640? N

- config_blk_dev_rz1000? N

Networking options:

- config_firewall? Y

- config_ip_firewall? Y

- config_syn_cookies: Y

Telephony support:

SCSI support:

- config_scsi_multi_lun? N

- config_scsi_constants? N

SCSI low-level drivers:

- {scegliere la scheda giusta}

Network device support:

ARCnet devices:

Ethernet (10 o 100MBit):

Ethernet (1000 MBig):

Token Ring devices:

WAN interfaces:

Amateur Radio support:

IrDA support:

ISDN support:

Old cd-rom drivers (non SCSI non IDE)

Character devices:

- config_unix98_pty_count? [256] 128

Mice:

- config_82c710_mouse? N

Joystick support:

Video for Linux:

Ftape:

Filesystems:

- config_quota? Y

- config_autofs_fs? N

Network file systems:

- config_nfs_fs? N

Partition Types:

Console drivers:

Sound:

- config_sound? N

Security options (openwall):

- config_secure_proc? Y

- config_secure_shm? Y

Kernel hacking

cd /usr/src/linux

make dep; make clean; make bzImage

eventualmente (nel caso si usino i moduli)

make modules

make modules_install


Installazione del nuovo kernel