LinuxОбъяснение технологий

Как скомпилировать собственное ядро ​​Linux

Как скомпилировать ваше собственное ядро ​​Linux

Наряду с установкой Gentoo , компиляция собственного ядра Linux — это одна из тех вещей, которая считается очень отвратительной и технической. Мы уже рассмотрели несколько причин. почему вы можете захотеть это сделать. Прежде чем мы проведем вас по шагам, вот краткий обзор некоторых важных концепций.

Разблокируйте «Шпаргалку по основным командам Linux» сейчас!

Это подпишет вас на нашу рассылку

Введите адрес электронной почты

Что такое ядро?

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

Ядро Linux отличается тем, что оно может быть адаптировано под ваше оборудование. Сравните это с ядром Windows NT, которое будет одинаковым для всех компьютеров. Для этого ядро ​​должно пройти процесс, называемый компиляцией.

Для получения дополнительной информации, ознакомьтесь с нашим введением в ядра в Linux проверяете

Что такое компиляция?

Как правило, программы написаны в удобочитаемом формате. Это облегчает людям создание программного обеспечения. Например, ядро ​​Linux написано в основном на языке программирования C. Однако компьютеры не могут этого понять. Они распознают только сложный язык, называемый машинным кодом . Для этого необходимо перевести строки текста. используя специальное программное обеспечение, называемое компилятором .

Различные компиляторы используются для преобразования разных языков программирования. Например, GCC — это компилятор, который переводит код C в машинный код (среди прочих). Но это еще не все — компиляторы также могут оптимизировать переведенный код для конкретных машин. Наряду с этим, они также могут удалять нежелательные функции из программ при этом.

Обычно этот процесс уже сделан для большого количества программного обеспечения. Вместо этого люди загружают преобразованные двоичные инструкции, которые работают из коробки. Например, веб-браузер. вы работаете прямо сейчас, уже скомпилировано. Это потому, что компиляция чего-то может быть немного сложнее и отнимает много времени. Думайте об этом как о переводе большой книги на иностранный язык.

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

Получение исходных текстов ядра

Вы не можете разжечь огонь без топлива. Точно так же вы не можете компилировать программы, если у вас нет кода для этого. Метод, как правило, одинаков для большинства операционных систем Linux, за некоторыми исключениями. Многие из них предоставляют свои собственные исходные коды ядра. Вы должны попробовать и использовать это, если можете. Например, если вы используете операционную систему на основе Debian, такую ​​как Ubuntu, вы должны установить исходные коды, используя следующие команды:

sudo apt-get update sudo apt-get install linux-source 

Как скомпилировать ваше собственное ядро ​​Linux Исходный код Debian Linux

Вы также можете установить разные версии этого пакета (например, linux-source-4.8.0 ), если хотите. Вы найдете установленные файлы в каталоге / usr / src / , поэтому перейдите туда и просмотрите содержимое:

 cd /usr/src/ ls 

Вы увидите файл, который заканчивается на .tar.bz2 . Это источник, который вы будете использовать. Распакуйте его с помощью этой команды:

 sudo tar xjvf linux-source-4.4.0.tar.bz2 

Убедитесь, что вы заменили файл с правильным именем, конечно. Файл будет довольно большим, поэтому процесс займет немного времени!

Альтернативный метод

Если хотите, вы можете получить свои исходники с официального сайта ядра Linux . Я рекомендую это, только если ваша операционная система Linux не предоставляет их. Выберите версию, которую вы хотите и скачать. Если вы идете по этому маршруту, вы должны загрузить его в пустую папку. Таким образом, если вы хотите скомпилировать больше ядер в будущем, у вас будет хорошая папка, в которой они будут организованы.

Как скомпилировать ваше собственное ядро ​​Linux Исходники ядра Vanilla

Сделав это, распакуйте файл с помощью этой команды:

 tar xJvf linux-4.9.11.tar.xz 

Как скомпилировать ваш собственный Linux ядро ​​Vanilla Linux Source

Убедитесь, что вы используете имя файла, которое соответствует версии, которую вы скачали!

Настроить ядро

Это шаг, на котором вы можете выбрать, от каких частей ядра вы хотите избавиться. Например, ядро ​​поставляется с множеством различных драйверов для различных устройств. Если вам не нужна эта поддержка, избавление от них может дать некоторые преимущества в скорости, а также уменьшенное ядро.

Предпосылки

Прежде чем продолжить, вы должны установить некоторые программы, которые позволят вам настроить и скомпилировать его.

В системах на основе Debian вам необходим пакет build-essential , среди прочего:

 sudo apt-get install build-essential gcc libncurses5-dev libssl-dev 

Пакет libncurses5-dev облегчит настройку ядра, поэтому обязательно установите его. Другие операционные системы Linux будут иметь аналогичную программу, но это может быть под другим именем. Например, если вы используете Fedora , это называется ncurses .

Если он еще не установлен, вам также потребуется коллекция компиляторов GNU (GCC). Это инструмент, отвечающий за перевод необработанного исходного кода в нечто понятное для компьютеров. Так сказать, компиляция.

Установив эти программы, откройте свой терминал, чтобы вы оказались внутри извлеченной папки с исходным кодом Linux. Например, если вы использовали метод linux-source , вы бы сделали это:

 cd /usr/src/linux-source-4.4.0 

Файл конфигурации ядра

Перед компиляцией ядра вы должны сообщить GCC, как вы хотите, чтобы это было сделано. Вы делаете это с помощью инструмента командной строки под названием make . Введите в этой команде:

 sudo make localmodconfig 

Это создает файл с именем .config , который сообщает GCC, что компилировать из исходных кодов ядра. Команда make localmodconfig обнаруживает работающие в данный момент компоненты ядра и отмечает их для компиляции. Если ядро ​​находится в вашей собственной папке, вам не понадобится sudo для его работы.

Вы можете встретить некоторые сообщения, подобные приведенному ниже. Просто нажмите клавишу Enter, чтобы пропустить их — обычно это просто новые функции ядра.

Как скомпилировать ваше собственное ядро ​​Linux Сделайте Localmodconfig новым

Однако localmodconfig не идеален! Если вы в настоящее время не используете некоторые части вашего компьютера, он может не обнаружить все вещи, которые он поддерживает. Таким образом, вам нужно включить их вручную. Кроме того, вы можете полностью пропустить этот шаг и использовать следующую команду. Это скомпилирует новое ядро ​​с теми же параметрами, что и тот, который вы используете в данный момент.

Если вы предпочитаете это, но раньше использовали команду localmodconifg, сделайте следующее:

 sudo make clean 

Это даст вам чистую сборку. Вам также следует использовать эту команду, если вы уже скомпилировали ядро ​​с этими источниками.

Дальнейшая настройка

Внутри исходной папки ядра находится файл с именем .config . Это то, что GCC будет использовать для выбора того, что компилировать. Вместо того, чтобы редактировать его вручную (не рекомендуется), вы будете использовать несколько инструментов терминала. Это значительно облегчит выбор параметров компиляции.

Сделав это, настройте его дальше:

 sudo make nconfig 

Вы увидите всплывающее красочное меню. Это меню конфигурации ядра. Для навигации используйте клавиши со стрелками. Вы можете нажать клавишу со стрелкой вправо, чтобы развернуть записи со знаком -> рядом с ними. Выйдите из этих подменю, нажав клавишу со стрелкой влево .

Как собрать собственное ядро ​​Linux Make Nconfig

Вы можете переключаться между пунктами меню, рядом с которыми стоит знак <> или [] , нажимая клавишу пробела. Это будет циклически проходить через различные пункты меню. Если вы видите * или M внутри, этот конкретный компонент ядра будет скомпилирован. Единственная разница между ними заключается в том, что опция M будет загружена, когда это необходимо. Это может быть полезно, например, если вы компилируете драйвер, который будет использоваться не часто.

Если вы хотите узнать больше о том, что делает конкретный переключатель, нажмите F2 поверх него. Вы увидите полезное описание того, что вы компилируете.

Как скомпилировать свое собственное ядро ​​Linux Make Nconfig F2

Как только вы все закончите, нажмите кнопку F9 , чтобы сохранить и выйти.

Как скомпилировать ваше собственное ядро ​​Linux Сделать Nconfig Save

Компиляция и установка ядра

Теперь, когда вы создали собственный файл make, вам нужно скомпилировать скомпилировать скомпилировать ядро. Введите в этой команде:

 sudo make -j$(nproc --all) 

Вам не понадобится sudo, если вы загрузили исходники ядра из Интернета. Вторая часть команды помогает ускорить время компиляции ядра, используя все ядра вашего процессора. . Вы можете избавиться от этого или изменить номер на что-то другое (например, -j2 ), если вы хотите использовать свой компьютер для других задач без особых проблем. Однако это также замедлит компиляцию!

Этот процесс может и займет очень много времени. Чем меньше вы выбрали для компиляции, тем короче будет. Тем не менее, вам, вероятно, нужно быть терпеливым.

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

 sudo make modules_install 

Чтобы реально использовать это ядро, вам нужно ввести следующую команду:

 sudo make install 

Это автоматически скопирует ядро ​​в вашу папку / boot и сгенерирует соответствующие файлы, чтобы оно работало.

Переключение ядер с помощью GRUB

Если вы перезагрузите компьютер после установки нового ядра, ваша система может не работать ! Обычно это происходит из-за неправильно скомпилированного ядра (то есть, недостаточно хорошей поддержки вашего компьютера). Показательный пример, мой собственный ноутбук. На всякий случай, я рекомендую отредактировать GRUB. чтобы он мог переключиться обратно на старые ядра. Для этого используйте эту команду:

 sudo nano /etc/default/grub 

Как собрать собственное ядро ​​Linux Ubuntu GRUB

Поместите знак # перед строками GRUB_HIDDEN_TIMEOUT и GRUB_HIDDEN_TIMEOUT_QUIET . После этого сохраните эти изменения, выполнив следующую команду:

 sudo grub-mkconfig -o /boot/grub/grub.cfg 

Как скомпилировать свое собственное ядро ​​Linux GRUB Menu

Теперь, если вы перезагрузите компьютер, вы сможете переключиться на более старое ядро, если ваше новое не будет работать. Просто зайдите в пункт меню « Дополнительные параметры» и выберите ядро, которое вы хотите загрузить. Если все работает хорошо, поздравляю! Вы будете использовать ядро, которое вы сами скомпилировали.

Вы заинтересованы в компиляции большего количества ядер? Другие программы? Считаете ли вы это стоящим?

Кредиты изображений: chombosan / Shutterstock

Похожие посты
Linux

8 лучших окружений рабочего стола Linux

AndroidIphone и ipadLinuxWindows

Окончательное руководство по включению темного режима везде

LinuxКак сделать

Что такое Swappiness в Linux? (и как это изменить)

LinuxКак сделать

Как использовать команду ls для вывода списка файлов и каталогов в Linux