How to составил and install custom mainline kernel

гm running Ubuntu 15.10 on в new laptop but in order to get proper full support for this хардвер I apparently need the 4.4 kernel + в custom patch. See here if yoгre interested in the details.

I know about the mainline kernel PPAs but my understanding is that they don't ест with source. If this is the вступил в брак, This would seem to удали тебе the possibility of using в mainline kernel PPA because I can't patch it. So гve been trying to check out the git source and build it but can't find up to восходил, relevant instructions.

Хан somebody help with instructions for building в 4.4 kernel on 15.10?

7
задан 7 January 2016 в 19:09

3 ответа

Получите и скомпилируйте ядро магистрали, метод мерзавца:

см. также: https://wiki.ubuntu.com/KernelTeam/GitKernelBuild, я делаю вещи, немного отличающиеся (что еще является новым?).

Предпосылки (Должны):

Шаг 1 к apt-get update и apt-get dist-upgrade (т.е. удостоверьтесь, что все актуально),
Шаг 2

sudo apt-get install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge

Шаг 3

sudo apt-get build-dep linux

Шаг 4

sudo apt-get install git-core libncurses5 libncurses5-dev libelf-dev asciidoc binutils-dev

Предпосылки с ядра 4.3:

sudo apt-get install libssl-dev

Предпосылки (дополнительно):

sudo apt-get install git-email git-doc

Часть мерзавца:

mkdir temp-k-git
cd temp-k-git
git clone   git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux

Никогда не наполняйте в основном ответвлении по умолчанию. Всегда делайте некоторую рабочую область.

git checkout -b k44rc8_stock v4.4-rc8

Украдите конфигурационный файл ядра Ubuntu (уже установленный):

ls -l /boot
cp /boot/config-4.4.0-040400rc8-generic .config

Файл конфигурации Ubuntu имеет полную отладку. Делает огромное ядро и берет вдвое более долго для компиляции

scripts/config --disable DEBUG_INFO

Специальное замечание с Ядра 4.4 и при компиляции использования Ubuntu 14.04 (я не знаю приблизительно 15,10), с более старой версией компилятора C: Это не может скомпилировать с CONFIG_CC_STACKPROTECTOR_STRONG.

scripts/config --disable CC_STACKPROTECTOR_STRONG

Скомпилируйте ядро:

time make -j9 bindeb-pkg       <<< Suggest use number of CPUs + 1. Use less for some responsiveness to be left for other uses
                               <<< I always time the kernel build.

или

time make -j9 bindeb-pkg LOCALVERSION=-stock    <<< For a localized verion name append

или

time make -j9 olddefconfig bindeb-pkg LOCALVERSION=-stock   <<< To automatically use defaults for any new config stuff (particuarly useful when bisecting the kernel).

Когда сборка завершится, установите ее:

sudo dpkg -i ../linux-headers-4.4.0-rc8-stock_4.4.0-rc8-stock-144_amd64.deb
sudo dpkg -i ../linux-image-4.4.0-rc8-stock_4.4.0-rc8-stock-144_amd64.deb

Так, в этой точке мы знаем компиляции ядра магистрали хорошо., поэтому перейдите на пользовательское ядро. Создайте новое ответвление, примените патчи и компиляцию:

$ git checkout -b k44rc8_custom v4.4-rc8
Switched to a new branch 'k44rc8_custom'

$ git am plv6_1_3.patch
Applying: cpufreq: intel_pstate: configurable algorithm to get target pstate
$ git am plv6_2_3.patch
Applying: cpufreq: intel_pstate: account for non C0 time
$ git am plv6_3_3.patch
Applying: cpufreq: intel_pstate: Account for IO wait time

$ time make -j9 olddefconfig bindeb-pkg LOCALVERSION=-custom

Обратите внимание, что это нарочно, что я не делаю a make clean, поскольку желательно сэкономить много времени путем выполнения возрастающей сборки. Первая компиляция заняла 21 минуту и 26 секунд, но следующая пользовательская компиляция заняла только 4 минуты и 43 секунды.

9
ответ дан 23 November 2019 в 06:26

Если Вы перейдете к странице http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.4-rc8-wily , то Вы найдете указание README, как получить исходные файлы для 4.4rc8

, Инструкции для сборки немного сбивают с толку. Я видел несколько рецептов для создания ядер, все немного отличающиеся. Существует несколько предпосылок: могут быть некоторые другие, которые требуются для 4,4 ядер

sudo apt-get build-dep linux-image-$(uname -r)
sudo apt-get install libncurses5-dev

Затем команды, которые я дал для успешной сборки:

chmod a+x debian/scripts/*
chmod a+x debian/scripts/misc/*
nano debian.master/changelog
fakeroot debian/rules clean
fakeroot debian/rules editconfigs
fakeroot debian/rules binary-headers binary-generic skipabis=true

Изменение файла журнала изменений, чтобы указать, что я создаю свое собственное ядро путем добавления чего-то в конец первого номера версии, который показывают.

1
ответ дан 23 November 2019 в 06:26

Вот краткий вариант установки в дистрибутивах на основе Debian:

# Install dependencies
sudo apt install -y git build-essential kernel-package fakeroot libncurses5-dev libssl-dev ccache

# Clone the kernel
mkdir ~/kernelbuild
cd ~/kernelbuild
git clone --depth=1 -b linux-5.4.y git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
#                      ^ change kernel branch to the one you're using.
#                        check with `uname -r` and see the available list at www.kernel.org

cd linux-stable

# Build custom kernel
cp /boot/config-`uname -r` .config # copy config from current  kernel
yes '' | make oldconfig
make clean
make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-custom

# Install new kernel
sudo dpkg -i ~/kernelbuild/linux-*.deb

# Reboot
sudo reboot
2
ответ дан 18 December 2020 в 23:51

Другие вопросы по тегам:

Похожие вопросы: