Compiling a new kernel

Post questions about how to make a customized SystemRescueCd, and if you have problems to install new packages. Please read the handbook first.
doulinux
Posts: 28
Joined: 05 Nov 2007, 09:37
Contact:

Compiling a new kernel

Postby doulinux » 21 Jan 2018, 06:06

Hello !
sorry for my English :(
Is google translate :)
like a lot of French I'm bad !

Initial : https://forums.system-rescue-cd.org/viewtopic.php?f=15&t=6055&p=17101#p17101

No compiling in x86_64 with :

Code: Select all

CROSS_COMPILE=x86_64-pc-linux-gnu- ARCH=x86_64 make

or

Code: Select all

export CROSS_COMPILE=x86_64-pc-linux-gnu- ARCH=x86_64
make


Result :

Code: Select all

/usr/src/linux-4.9 % make
./scripts/gcc-version.sh: line 25: x86_64-pc-linux-gnu-gcc: command not found
./scripts/gcc-version.sh: line 26: x86_64-pc-linux-gnu-gcc: command not found
make: x86_64-pc-linux-gnu-gcc: Command not found
make: x86_64-pc-linux-gnu-gcc: Command not found
make: x86_64-pc-linux-gnu-gcc: Command not found
make: x86_64-pc-linux-gnu-gcc: Command not found
make: x86_64-pc-linux-gnu-gcc: Command not found
  CHK     include/config/kernel.release
make: x86_64-pc-linux-gnu-gcc: Command not found
make: x86_64-pc-linux-gnu-gcc: Command not found
  CHK     include/generated/uapi/linux/version.h
make: x86_64-pc-linux-gnu-gcc: Command not found
  CHK     include/generated/utsrelease.h
make: x86_64-pc-linux-gnu-gcc: Command not found
make: x86_64-pc-linux-gnu-gcc: Command not found
  CC      kernel/bounds.s
/bin/sh: x86_64-pc-linux-gnu-gcc: command not found
make[1]: *** [Kbuild:46: kernel/bounds.s] Error 127
make: *** [Makefile:1040: prepare0] Error 2


And x86_64 without CROSS_COMPILE :

Code: Select all

CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  CC      kernel/bounds.s
kernel/bounds.c:1:0: error: CPU you selected does not support x86-64 instruction set
 /*
 ^
make[1]: *** [Kbuild:46: kernel/bounds.s] Error 1
make: *** [Makefile:1040: prepare0] Error 2


Idem : No compiling in x86 with : cat /proc/config.gz | gzip -d > /usr/src/linux-4.9/.config

With default settings, except : Maximum number of CPUs (NR_CPUS) [8] (NEW) 4

Code: Select all

  ...
  HOSTCC  scripts/selinux/genheaders/genheaders
  HOSTCC  scripts/selinux/mdp/mdp
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/sortextable
  HOSTCC  scripts/asn1_compiler
  HOSTCC  scripts/extract-cert
scripts/extract-cert.c:21:25: fatal error: openssl/bio.h: No such file or directory
compilation terminated.
make[1]: *** [scripts/Makefile.host:107: scripts/extract-cert] Error 1
make: *** [Makefile:561: scripts] Error 2



scripts/extract-cert.c:21:25: fatal error: openssl/bio.h: No such file or directory

would you have a track ?
if possible in French...

thank you in advance !

====================================================================

[Edit 22/01 08:15]
scripts/extract-cert.c:21:25: fatal error: openssl/bio.h: No such file or directory solved :

First :

Code: Select all

mount /dev/sda9 /mnt/custom > /dev/null 2>&1
/usr/sbin/sysresccd-custom extract


Next : Install openssl

Code: Select all

emerge --sync
emerge -av "openssl"


Next : compil x86 OK with openssl

Code: Select all

make
dernières lignes :
IHEX    firmware/edgeport/down3.bin
  IHEX2FW firmware/whiteheat_loader.fw
  IHEX2FW firmware/whiteheat.fw
  IHEX2FW firmware/keyspan_pda/keyspan_pda.fw
  IHEX2FW firmware/keyspan_pda/xircom_pgs.fw
  IHEX    firmware/yam/1200.bin
  IHEX    firmware/yam/9600.bin

SRCD=512 root
/usr/src/linux-4.9 %

make modules
dernières lignes :

SRCD=512 root
/usr/src/linux-4.9 % make modules
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  CHK     include/generated/bounds.h
  CHK     include/generated/timeconst.h
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  Building modules, stage 2.
  MODPOST 2255 modules

SRCD=512 root
/usr/src/linux-4.9 %


make modules_install
dernières lignes :

INSTALL /lib/firmware/whiteheat.fw
  INSTALL /lib/firmware/keyspan_pda/keyspan_pda.fw
  INSTALL /lib/firmware/keyspan_pda/xircom_pgs.fw
  INSTALL /lib/firmware/yam/1200.bin
  INSTALL /lib/firmware/yam/9600.bin
  DEPMOD  4.9.60-custom

SRCD=512 root
/usr/src/linux-4.9 %


SRCD=512 root
/usr/src/linux-4.9 % find /usr/src -type f -name bzImage
/usr/src/linux-4.9/arch/x86/boot/bzImage

SRCD=512 root
/usr/src/linux-4.9 %
:) :) :)



cp .config /root/MK_Rescue/perso32/saves


SRCD=512 root
/usr/src/linux-4.9 % mkdir /usr/src/initramfs

SRCD=512 root
/usr/src/linux-4.9 % cd /usr/src/initramfs

SRCD=512 root
/usr/src/initramfs % cat /root/MK_Rescue/perso32/init/initram_512.igz | xz -d | cpio -id
71041 blocks

SRCD=512 root
/usr/src/initramfs % cd lib

SRCD=512 root
/usr/src/initramfs/lib % mkdir modules

SRCD=512 root
/usr/src/initramfs/lib % cp -a /lib/modules/4.9.60-custom /usr/src/initramfs/lib/modules/

SRCD=512 root
/usr/src/initramfs/lib % rm -f /usr/src/initram.igz

SRCD=512 root
/usr/src/initramfs/lib % cd /usr/src/initramfs

SRCD=512 root
/usr/src/initramfs % find . | cpio -H newc -o | xz --check=crc32 --x86 --lzma2 > /usr/src/initram.igz
199650 blocks



cp /usr/src/initram.igz /root/MK_Rescue/perso32/saves


### NB Déjà fait :
#
# mount -o loop /root/MK_Rescue/ISO/sysresccd_$SRCD.iso /livemnt/boot
#
#
####

SRCD=512 root
/usr/src/initramfs % /usr/sbin/sysresccd-custom extract
/mnt/custom is mounted -> ok
there is enough estimated free space here (38294 MB) -> ok
cannot copy bootprog to /mnt/custom/customcd/isoroot/ (non critical error, maybe be caused by "docache")


SRCD=512 root
/usr/src/initramfs % cp -a /lib/modules/4.9.60-custom /mnt/custom/customcd/files/lib/modules

SRCD=512 root
/usr/src/initramfs % cp /usr/src/linux-4.9/arch/x86/boot/bzImage /mnt/custom/customcd/isoroot/isolinux/perso32

SRCD=512 root
/usr/src/initramfs % /usr/sbin/sysresccd-custom squashfs
/mnt/custom is mounted -> ok
there is enough estimated free space here (36449 MB) -> ok
mksquashfs /mnt/custom/customcd/files/ /mnt/custom/customcd/isoroot/sysrcd.dat
Parallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on /mnt/custom/customcd/isoroot/sysrcd.dat, block size 131072.
[==\                                                                                       ]  2141/88476   2%

Number of gids 19
        root (0)
        disk (6)
        kmem (9)
        tty (5)
        bacula (245)
        nullmail (88)
        vnstat (249)
        crontab (120)
        locate (248)
        man (15)
        wheel (10)
        utmp (406)
        plugdev (112)
        vlock (122)
        messagebus (119)
        portage (250)
        thttpd (247)
        ntp (123)
        polkitd (115)

SRCD=512 root
/usr/src/initramfs %


SRCD=512 root
/usr/src/initramfs % cp /usr/src/linux-4.9/arch/x86/boot/bzImage /mnt/custom/customcd/isoroot/isolinux/perso32

SRCD=512 root
/usr/src/initramfs % cp /usr/src/linux-4.9/arch/x86/boot/bzImage /root/sda1/perso32/perso32

SRCD=512 root
/usr/src/initramfs % cp /usr/src/initram.igz /root/sda1/perso32

SRCD=512 root
/usr/src/initramfs %

SRCD=512 root
/usr/src/initramfs % /usr/sbin/sysresccd-custom isogen my_srcd
/mnt/custom is mounted -> ok
there is enough estimated free space here (35892 MB) -> ok
Volume name of the CDRom: my_srcd
xorriso 1.4.6 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:/mnt/custom/customcd/isofile/sysresccd-20180122-0744.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 35.1g free
xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA 119 rules
Added to ISO image: directory '/'='/mnt/custom/customcd/isoroot'
xorriso : UPDATE : 356 files added in 1 seconds
xorriso : UPDATE : 356 files added in 1 seconds
xorriso : UPDATE :  4.17% done
xorriso : UPDATE :  44.06% done
xorriso : UPDATE :  92.57% done
ISO image produced: 324867 sectors
Written to medium : 324867 sectors at LBA 0
Writing to 'stdio:/mnt/custom/customcd/isofile/sysresccd-20180122-0744.iso' completed successfully.

xorriso -as mkisofs -joliet -rock               -omit-version-number -disable-deep-relocation           -b isolinux/isolinux.bin -c isolinux/boot.cat           -no-emul-boot -boot-load-size 4 -boot-info-table        -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot           -o /mnt/custom/customcd/isofile/sysresccd-20180122-0744.iso             -volid my_srcd /mnt/custom/customcd/isoroot --> 0
Final ISO image: /mnt/custom/customcd/isofile/sysresccd-20180122-0744.iso

SRCD=512 root
/usr/src/initramfs %


SRCD=512 root
/usr/src/initramfs % cp /mnt/custom/customcd/isofile/sysresccd-*.iso /root/MK_Rescue/perso32/saves/perso32.iso

SRCD=512 root
/usr/src/initramfs % rm /root/sda1/perso32/*
zsh: sure you want to delete all 3 files in /root/sda1/perso32 [yn]? y


/usr/src/initramfs % cd /root/MK_Rescue/perso32/saves/

SRCD=512 root
/root/MK_Rescue/perso32/saves % mount -o loop /root/MK_Rescue/perso32/saves/perso32.iso ./mnt
mount: /dev/loop2 is write-protected, mounting read-only

SRCD=512 root
/root/MK_Rescue/perso32/saves % cd mnt

SRCD=512 root
/root/MK_Rescue/perso32/saves/mnt % cp sysrcd.dat /root/sda1/perso32

SRCD=512 root
/root/MK_Rescue/perso32/saves/mnt % cd isolinux

SRCD=512 root
/root/MK_Rescue/perso32/saves/mnt/isolinux % cp initram.igz /root/sda1/perso32

SRCD=512 root
/root/MK_Rescue/perso32/saves/mnt/isolinux % cp perso32 /root/sda1/perso32


SRCD=512 root
/root/MK_Rescue/perso32/saves/mnt/isolinux % cd /

SRCD=512 root
/ % umount /mnt/custom

SRCD=512 root
/ % sync

SRCD=512 root
/ %


FIN !!!


boot OK
my customize OK
but nothing on HDMI screen
...
I continue my investigations ... :)

Return to “Customization and installing new packages”

Who is online

Users browsing this forum: No registered users and 6 guests