оптимизированная_компиляция_ядра_linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
оптимизированная_компиляция_ядра_linux [2024/09/17 09:19] – [Сравнение нового и обычного ядра] uf4nоптимизированная_компиляция_ядра_linux [2024/09/26 12:43] (current) – [Неявным образом пропадает поддержка файловых систем и перестают поддерживаться флешки] uf4n
Line 19: Line 19:
 Установить необходимые для сборки пакеты (вариант для ALT Linux) Установить необходимые для сборки пакеты (вариант для ALT Linux)
  
-  sudo apt-get install -y libssl-devel libelf-devel /usr/bin/x86_64-alt-linux-gcc ncurses-devel /usr/bin/flex /usr/bin/bison /usr/bin/pahole zlib-devel+  sudo apt-get install -y libssl-devel libelf-devel /usr/bin/x86_64-alt-linux-gcc ncurses-devel /usr/bin/flex /usr/bin/bison /usr/bin/pahole zlib-devel bc openssl
  
 ===== Параметры компилятора ===== ===== Параметры компилятора =====
Line 33: Line 33:
 ===== Как сконфигурировать ядро ===== ===== Как сконфигурировать ядро =====
  
-Также можно избавиться от модулей, ненужных на вашем оборудовании, и вкомпилировать в само ядро те модули, которые точно нужны. Если встроить драйвер дисковой подсистемы в ядрозагрузка cможет осуществляться без использования initrd. Это позволит сократить время на загрузку системы, ведь в оперативную память не придётся загружать образ ram-диска, который обычно бывает больше ядра, и не надо будет выполнять инициализацию, предполагаемую initrd.+ 
 +На данном этапе можно избавиться от модулей, ненужных на вашем оборудовании, и вкомпилировать в само ядро только те модули, которые точно нужны.
  
 Если вы уверены, что все модули, которые могут вам когда-либо пригодиться, на данный момент подгружены ядром, выполните    Если вы уверены, что все модули, которые могут вам когда-либо пригодиться, на данный момент подгружены ядром, выполните   
  
-==== Способ 1 ====+Перед выполнением команды lsmod выполните следующую команду, чтобы ядро точно подгрузило модули, отвечающие за работу с жёстким диском 
 + 
 +  badblocks -v /dev/sda -o /tmp/bad_sectors.txt 
 +==== Способ 1 (рабочий) ====
  
 Используя этот способ можно отказаться от initrd Используя этот способ можно отказаться от initrd
Line 80: Line 84:
  
 Доступные конфигурации платформ находятся в arch/x86/configs/ Доступные конфигурации платформ находятся в arch/x86/configs/
- 
-Я использовал 
  
   make x86_64_defconfig   make x86_64_defconfig
Line 105: Line 107:
 ===== Сборка ===== ===== Сборка =====
  
-Отключение встроенной в результируещее ядро отладочной информации (может на порядок уменьшить размер ядра)+Отключение отладочной информации (может на порядоки уменьшить размер ядра)
  
   scripts/config --disable DEBUG_INFO   scripts/config --disable DEBUG_INFO
  
-Мультипоточная компиляция+Мультипоточная компиляция (опция V=1 показывает процесс компиляции в подробном виде)
  
-  make -j`nproc`+  make -j`nproc` V=1
  
 ===== Установка ===== ===== Установка =====
Line 124: Line 126:
 ===== Сравнение нового и обычного ядра ===== ===== Сравнение нового и обычного ядра =====
  
-**TODO**+**TODO: Сравнить**  
 +  * размеры ядер в сжатом виде и в памяти (после загрузки) 
 +  * скорость загрузки системы после включения 
 +  * скорость работы прикладных программ
  
 ===== Проблемы ===== ===== Проблемы =====
Line 172: Line 177:
 {{:linux_booting_error_16_09_2024.jpg?500|}} {{:linux_booting_error_16_09_2024.jpg?500|}}
  
-Кстати, для загрузки с initrd параметр root можно не указывать.+Кстати, для загрузки вместе с initrd параметр root можно не указывать.
  
 **TODO:** Попробовать загрузиться через Grub **TODO:** Попробовать загрузиться через Grub
 +
 +==== Неявным образом пропадает поддержка файловых систем и не монтируются флешки ====
 +
 +**TODO**
  
 ------------------------------------------------------------------ ------------------------------------------------------------------
оптимизированная_компиляция_ядра_linux.1726564779.txt.gz · Last modified: 2024/09/17 09:19 by uf4n