Различия

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

Ссылка на это сравнение

wiki:buildkernelfo32on64 [19/11/2012 08:44]
Boris V. Vuks создано
wiki:buildkernelfo32on64 [19/11/2012 08:57] (текущий)
Boris V. Vuks
Строка 1: Строка 1:
 === Сборка ядра на 64-х битной системе для 32-х битной === === Сборка ядра на 64-х битной системе для 32-х битной ===
  
 +**Комментарии:** \\
 +Для сборки ядра используется скрипт linux32 он создает окружение для корректной сборки. \\
 +Формат вызова: linux32 [options] [program [arguments]] \\
 +Чтобы сборка происходила в указанном подкаталоге необходимо при make передать параметр O=<directory> причем 
 +этот параметр задается во ВСЕХ! операциях make в том числе и mrproper. 
 +Конфигурация .config лежит в указанном подкаталоге. \\
 +INSTALL_MOD_PATH=<directory> при modules_install устанавливает модули в указанный подкаталог в данном подкаталоге будет создана иерархия <directory>/lib/modules/....
 +\\
 +\\
  
 +=== Ниже приводится скрипт автоматизирующий все эти действия и создающий в /tmp/ архив с ядром и модулями kernel_<дата компиляции>.tgz ===
 +<code>
 +#!/bin/bash
 +
 +SOURCE=`pwd`;
 +BUILD_DIRECTORY="/home/tmp/vacer/kernel"
 +MOD_PATH="/home/tmp/vacer/modules"
 +THREADS=8
 +
 +#/usr/bin/linux32 make O=$BUILD_DIRECTORY mrproper
 +dialog --msgbox " Kernel source - $SOURCE \n Build Directory - $BUILD_DIRECTORY \n Modules Directory - $MOD_PATH \n Threads - $THREADS " 12 60
 +dialog --yesno  "Configure?" 7 30
 +case $? in
 +  0)
 +    /usr/bin/linux32 make -j $THREADS O=$BUILD_DIRECTORY nconfig ;;
 +  1)
 +    ;;
 +  255)
 +    exit ;;
 +esac
 +dialog --defaultno --yesno  "Clean?" 7 30
 +case $? in
 +  0)
 +    /usr/bin/linux32 make -j $THREADS O=$BUILD_DIRECTORY clean ;;
 +  1)
 +    ;;
 +  255)
 +    exit ;;
 +esac
 +
 +/usr/bin/linux32 make -j $THREADS O=$BUILD_DIRECTORY
 +/usr/bin/linux32 make -j $THREADS O=$BUILD_DIRECTORY modules
 +/usr/bin/linux32 make -j $THREADS O=$BUILD_DIRECTORY modules_install INSTALL_MOD_PATH=$MOD_PATH
 +mkdir $MOD_PATH/boot
 +cp $BUILD_DIRECTORY/arch/x86/boot/bzImage $MOD_PATH/boot/vmlinuz
 +cp $BUILD_DIRECTORY/System.map $MOD_PATH/boot/
 +cd $MOD_PATH
 +ARCHIVE=/tmp/kernel_`/usr/bin/date +%Y%m%d%H%M`.tgz
 +tar -czvf $ARCHIVE lib boot
 +cd $SOURCE
 +dialog --msgbox "Build Completed in $ARCHIVE!" 7 60
 +</code>

QR Code
QR Code wiki:buildkernelfo32on64 (generated for current page)