kernel build and time cpu

Начинаю с чистой установки

ubuntu 22.04.1 LTS

sudo apt update
sudo apt upgrade

Необязательные

локально ставлю

sudo apt mc nano openssh-server

На всякий:

sudo apt install git meld rabbitvcs-core rabbitvcs-cli rabbitvcs-gedit rabbitvcs-nautilus

git config —global credential.helper store

Чтобы качать ком.строкой, это wget, заодно curl:

sudo apt install curl wget

Необходимые инструменты

(При попытке sudo apt install build-essential
Получил ошибку из-за начального upgrade: following packages have unmet dependencies: libc6-dev : Depends: libc6 (= 2.35-0ubuntu3) but 2.35-0ubuntu3.1 is to be installed
Ставлю нужную версию либы вручную:

sudo apt install libc6=2.35-0ubuntu3 )

sudo apt install libncurses-dev dwarves build-essential bc bison flex libssl-dev libelf-dev

Можно cd ; mkdir ws; cd ws

Качаю ядро

ссылку с сайта kernel.org копипастом:

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.95.tar.xz

tar xf ./linux-5.15.95.tar.xz

Сборку делаю в отдельной от исходников директории

mkdir linuxbuild; cd linuxbuild

make -f ../linux-5.15.95/Makefile defconfig

теперь make menuconfig и make nconfig работают в билд-директории

(можно бы cp /boot/config-5.11.0-25-generic .config
или make oldconfig; make localmodulesconfig
и далее make modules; make modules_install <куда не по умолчанию>
Ещё проще собрать make deb-pkg; и поставить sudo dpkg -i ../*.deb; тогда можно и удалять автоматом )

Собственно билд

измеряю время, запуская через time. Ставлю -j «сколько ядер»

time make -j8

слежу через htop, что загружены все ядра, и sensors за температурой процессора.

В итоге получаю

для i7-3770:
real 5m17,220s
user 37m7,036s
sys 3m21,758s
температура до 65 градусов.

для i5-4300u (x240):
real 12m26,198s
user 44m25,180s
sys 3m59,565s
температура до 83 градусов.

для виртуалки на 8 ядрах i5-12600k:
real 1m48,654s
user 11m6,429s
sys 2m8,083s