Почему заголовок именно такой? Потому что в будущем я планирую скомпилировать совершенно другое, новое ядро с совершенно другими настройками. А пока я лишь немного изменю параметры текущего ядра и перекомпилирую его.
Введение. Зачем это нужно?
Оказалось, что в текущем ядре нету некоторых необходимых модулей. То есть вообще нету, их просто не компилировали, и в конфигурации ядра они закомментированы. Значит, нужно включить нужные модули в конфиге и перекомпилировать ядро так сказать «малой кровью», не задумываясь о предназначении многих сотен параметров конфига.
Как скомпилировать ядро в SliTaz? Наверняка, вы не теряли времени даром, и нашли в интернете хотя бы парочку статей, описывающих, как собрать своё ядро в различных линуксах. Я не призываю вас забыть всё это, нет. Но, многое из этого нам не нужно из-за специфики нашего дистрибутива и его системы, собирающей пакеты. Ядро линукса — это тоже пакет, и у него тоже есть рецепт, и, следовательно, его так же, как и прочие пакеты, можно собрать. Единственный нюанс — рецепт текущего ядра, применяемого в стабильном SliTaz поставляется вместе с готовым конфигом. И, если мы соберем пакет с ядром линукса, то мы получим то же самое ядро, ни больше, ни меньше. Поэтому, нам придётся прервать процесс компиляции/сборки, сконфигурировать ядро и запустить процесс компиляции/сборки по-новой. (В скобках замечу, что сначала я открыл конфиг в обычном текстовом редакторе, изменил его, сохранил и начал приготовление пакета, но это порочный метод. Возможно, включение какой-то одной строки потребует включение другой строки в другом месте конфига. Для конфигурации параметров ядра существуют специальные программы-мастера. Вот, ими мы и воспользуемся для наших целей. Совсем так же, как пишут на сайтах про компиляцию ядра).
Предупреждения.
Во-первых, компиляция ядра (как и другого большого пакета) — потенциально опасная операция. Вы должны быть уверены, что ваша система выдержит пару-тройку часов со стопроцентной нагрузкой процессора. Так, во время написания этой статьи у меня компилируется ядро, прошлый раз это заняло 3 часа с минутами на моём процессоре Intel Atom N270 @ 1.6GHz, температура процессора сейчас 54°C, полёт нормальный…
Во-вторых, очень желательно, чтобы у вас был безлимитный интернет, т.к. потребуется скачать 110–120 МБ, из которых 74 МБ занимают исходники ядра, а остальное — пакеты для сборочной среды.
В-третьих, необходимо, чтобы на том разделе, где у вас находится home (там, где ваша домашняя папка, ну или домашняя папка tux, другими словами) было не менее 2,5 ГБ свободного места. Если это не так, постарайтесь освободить место. Если необходимое свободное место есть на другом разделе жесткого диска (естественно, только с файловой системой линукса), то этим можно воспользоваться. Методом проб и ошибок удалось найти простой вариант как это сделать.
Я освободил необходимое место на разделе, который монтируется как /media/Mint.
Я создал на нём папку /media/Mint/chroot.
С правами root я создаю папку в домашнем разделе: /home/slitaz/cooking (к слову, у меня /home — это раздел на 4 ГБ флешке).
Теперь, в папке /home/slitaz/cooking я создаю символьную ссылку, указывающую на папку /media/Mint/chroot; ссылка имеет название chroot. Для этого, с правами root же, в PCManFM я нажимаю F4 для вызова терминала. В нём командую: ln -s /media/Mint/chroot chroot
В дальнейшем, в этой ссылке-папке будет наше чистое-стерильное окружение для сборки пакетов (там будут папки /bin, /dev и т.п.), чтобы разные чудачества нашей текущей системы никак бы не повлияли на собираемые пакеты.
В-четвертых, время. Об этом я уже писал. Желательно не оставлять компьютер без присмотра всё это время.
Устанавливаем сборочную среду
Это просто как раз-два-три.
Включаем интернет.
Устанавливаем пакет tazdev:
# tazpkg -gi tazdev
Создаём стерильный chroot:
# tazdev gen-chroot
Переходим в chroot:
#tazdev chroot
Если вы, как и я, увидите ошибку (не помню точно ее текст), говорящую, что не удалось записать в /dev/null, то просто удалите ошибочный /dev/null:
rm /dev/null
Ошибка эта у меня появилась только когда я стал использовать chroot на другом разделе.
Теперь настраиваем нашего повара:
cook setup
Установятся нужные пакеты. Посреди установки будет вопрос. При установке busybox нас спросят, хотим ли мы оставить некие уже установленные утилиты, которые подменяет собою busybox? Нужно ответить или «y» или «n». Разницы я не заметил.
Теперь попробуем протестировать повара:
cook test
Посреди всего действа нас попросят нажать Enter. Вскоре пакет соберется и его можно будет забирать из /home/slitaz/cooking/packages (пакет ни для чего не нужен, только для проверки того, что всё в порядке, и повар работает так как нужно).
Теперь, нам нужно скачать рецепт ядра linux и отдать его повару.
Идём на Hg→Wok stable→browse→linux. Короче, можно сразу перейти по ссылке: http://hg.slitaz.org/wok-stable/file/tip/linux
В общем, мы сейчас в папке под названием «linux», а в ней мы видим рецепт и вложенную папку «stuff». Нам всё это нужно. Чтобы не скачивать и не сохранять поодиночке все эти файлы, мы можем загрузить сразу весь архив (имеется ввиду, архив wok-stable. Он не слишком большой — 3,8 МБ). Чтобы скачать архив, в верхнем левом углу страницы находим ссылки: bz2 gz (bz2 занимает меньше места), нажимаем , сохраняем. Распаковываем из архива только папку «linux». Теперь с правами root переходим в /home/slitaz/cooking/chroot/home/slitaz/wok и ложим сюда нашу папку linux. Теперь повар знает рецепт приготовления нашего блюда ;)