The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

Загрузка ядра Linux, собранного в конфигурации allmodconfig
Файл конфигурации allmodconfig позволяет все модули ядра отметить как "m", т.е.
как подгружаемые, а не встроенные в ядро. Но проблема в том, что ядро с такими
настройками не загружается.

Подразумевается, что в файле конфигурации уже отмечены все подходящие для
заданного компьютера дисковые драйверы sata/ide/scsi, как встроенные в ядро "y"
или как "m" для размещения на initrd. Но ядро всё равно не грузится.

Загрузочное сообщение: Cannot open root device "(null)"

Если в grub указан параметр root=/dev/sda1 (sda1 указан для примера), а при при
загрузке появляется сообщение "Cannot open root device "(null)" or
unknown-block(0,0)" (обратите внимание, что вместо sda1 появилось null), это
значит, что нужно изменить в конфигурации "CONFIG_CMDLINE_BOOL=n".

Загрузочное сообщение: Failed to execute /init

При использовании initrd при загрузке может появится сообщение "Failed to
execute /init" и нужно изменить в  конфигурации "CONFIG_BINFMT_SCRIPT=y".
 
12.05.2016 , Автор: linuxoid
Ключи: linux, kernel, boot, allmodconfig / Лицензия: CC-BY
Раздел:    Корень / Администратору / Система / Linux специфика / Установка и работа с пакетами программ в Linux

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Аноним (-), 14:45, 14/05/2016 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    WAT?
     
  • 1.2, Айнанимм (?), 04:38, 15/05/2016 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    Это походу себе сделал "узелок на память"...
    opennet - моя записТная книжка... :)
     
     
  • 2.3, stalkerdroad (ok), 18:22, 15/05/2016 [^] [ответить]    [к модератору]
  • +/
    В интернете не нашёл решения проблемы загрузки ядра собранного по конфигу allmodconfig. Сам после долгих разбирательств еле понял изза каких плохих опций не грузится.
    Решил поделится решением.
     
     
  • 3.7, Айнанимм (?), 01:16, 16/05/2016 [^] [ответить]    [к модератору]
  • +/
    так распешите подробнее, "опция такаято для тогото, делает тото, а без неё неполучится, потому, что..." и тогда будет замечательно составленное решение какойто проблемы с её описанием.
     
     
  • 4.8, stalkerdroad (ok), 16:50, 16/05/2016 [^] [ответить]    [к модератору]
  • +/
    CONFIG_CMDLINE_BOOL указывает что нужно использовать строку аргументов встроенное в ядро при сборке ядра. Что приводит к потере аргументов указанных в загрузчике grub.

    CONFIG_BINFMT_SCRIPT отвечает за поддержку возможности запускать скрипты начинающиеся на "#!".

     
  • 1.4, Nicknnn (ok), 22:42, 15/05/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А правильный вывод - Если решил собирать ядро, нужно понимать что к чему. А не бездумно делать allmodconfig. Собирать вообще всё - феерический бред
     
     
  • 2.5, stalkerdroad (ok), 23:02, 15/05/2016 [^] [ответить]    [к модератору]  
  • –1 +/
    Мне нужно было получить как можно большее количество модулей. Чтобы потом не пересобирать ядро. Когда подключу какие либо новое устройство.

    Такие ядра существуют у всех дистрабутивов. Но нигде не сказано как собирать такие ядра с максимальным количеством модулей.

    Вот я и разобрался.

     
     
  • 3.6, cmp (ok), 00:35, 16/05/2016 [^] [ответить]    [к модератору]  
  • +/
    В Вашем "посте", тоже ничего нет, версия ядра, описания этих опций, не говоря о драйверах нтфс и всяких стаггинг, котороые в ядре даром не нужны никому.

    Разобрался, но не  до конца, садись 3-.

     
     
  • 4.15, stalkerdroad (ok), 16:42, 27/05/2016 [^] [ответить]    [к модератору]  
  • +/
    > версия ядра,

    4.x. А на 3.x тоже самое было.

    > говоря о драйверах нтфс и всяких стаггинг, котороые в ядре даром
    > не нужны никому.

    Они же модулями собираются благодаря этому конфигу.

     
     
  • 5.21, cmp (ok), 07:36, 30/05/2016 [^] [ответить]    [к модератору]  
  • +/
    Угу, в том числе и протухший нтфс, который благодаря наличию модуля начинает использоваться вместо fuse драйвера, а вместе с тем еще миллион протухших драйверов, которые давным давно ни кто не пилит, в которых находят баги, которые дают рута локальным пользователям.

    > 4.x. А на 3.x тоже самое было.

    Осмелюсь предположить, что такое (allmodconfig) было и в 2.4 и в 2.6, и более ранних, но вот было ли там CONFIG_CMDLINE_BOOL совсем не факт.

     
     
  • 6.26, stalkerdroad (ok), 02:43, 03/06/2016 [^] [ответить]    [к модератору]  
  • +/
    > протухший нтфс, который благодаря наличию модуля начинает использоваться вместо fuse драйвера

    Нет. фусе драйвер называется ntfs-3g. В команде mount и в fstab указывается ntfs-3g. У тебя какойто неправильный дистр.

     
     
  • 7.28, cmp (ok), 04:22, 03/06/2016 [^] [ответить]    [к модератору]  
  • +/
    то есть флэшку монтировать - в фстаб прописывать))
    ядро детектит фс и использует соответсвующий драйвер, дистр роли не играет.
     
     
  • 8.30, stalkerdroad (ok), 13:38, 03/06/2016 [^] [ответить]    [к модератору]  
  • +/
    > ядро детектит фс и использует соответсвующий драйвер,

    Ядро не монтирует автоматически диски. Это делает какаята юзерспейсная программа.

    Я думаю что ты используешь кривую программу автомонтирования дисков. Которая путает ntfs и ntfs-3g.

     
     
  • 9.32, cmp (ok), 17:37, 03/06/2016 [^] [ответить]    [к модератору]  
  • +/
    ok
     
  • 8.36, qweqwe (?), 23:13, 21/06/2016 [^] [ответить]    [к модератору]  
  • +/
    А в modprobe ntfs.ko в черный список занести не? Или модуль удалить нафиг?
     
  • 3.10, ПавелС (ok), 15:06, 24/05/2016 [^] [ответить]    [к модератору]  
  • +/
    И что лучилось? Как результат по сравнению например с ядрами Debian? Можно такой метод взять за основу для ядра для репозитория? Я беру ближайший по версии конфиг у Debian и делаю make oldconfig и отвечаю на вопросы.
     
     
  • 4.14, stalkerdroad (ok), 16:40, 27/05/2016 [^] [ответить]    [к модератору]  
  • +/
    > И что лучилось? Как результат по сравнению например с ядрами Debian? Можно
    > такой метод взять за основу для ядра для репозитория? Я беру
    > ближайший по версии конфиг у Debian и делаю make oldconfig и
    > отвечаю на вопросы.

    С ядрами дебиана не сравнивал. Прочитав файл README в архиве исходников ядра я понял что allmodconfig это единственный способ отметить все модули чтобы они собрались и были подгружаемыми (внешними). Я не знаю другого способа чтобы собрать максимальное количество драйверов.

    > Я беру
    > ближайший по версии конфиг у Debian

    А мне было интересно сделать своё ядро со своими настройками на основе ванильного ядра без патчей и чужих конфигов (непонятно как настроенных).

     
  • 3.11, Аноним (-), 20:59, 26/05/2016 [^] [ответить]    [к модератору]  
  • +/
    Смысл затеи все равно не ясен. Ядро никто и не пересобирает для поддержки "новых устройств"
     
     
  • 4.13, stalkerdroad (ok), 16:24, 27/05/2016 [^] [ответить]    [к модератору]  
  • +/
    > Смысл затеи все равно не ясен. Ядро никто и не пересобирает для
    > поддержки "новых устройств"

    Если собирать ядро например с конфигом созданным командой "make i386_defconfig", то собирается лишь ограниченное (маленькое) количество модулей. И например все звуковые драйвера будут отсутствовать

     
     
  • 5.17, Аноним (-), 21:08, 27/05/2016 [^] [ответить]    [к модератору]  
  • +/
    Ещё раз, какие цели ты преследовал, стараясь собрать почти всё модулями?
     
     
  • 6.18, stalkerdroad (ok), 17:06, 28/05/2016 [^] [ответить]    [к модератору]  
  • +/
    1. Меньше размер ядра.

    2. Заранее собрать наибольшее количество драйверов. Чтобы позже не пришлось заново пересобирать ядро. Определить заранее что понадобится невозможно. Например пытался настроить шейпинг сетевого трафика. Оказалось что нет нужных модулей.

    3. Другие конфиги не собирают все модули сразу. Лишь маленькое ограниченное количество.

     
     
  • 7.19, Аноним (-), 19:15, 28/05/2016 [^] [ответить]    [к модератору]  
  • +/
    2. Ядро заново пересобирать не надо. Достаточно собрать необходимые модули и установить их.
     
     
  • 8.20, stalkerdroad (ok), 07:57, 29/05/2016 [^] [ответить]    [к модератору]  
  • +/
    > Достаточно собрать необходимые модули и установить их.

    Зачем мне тратить на это время ? Я лучше заранее сразу соберу все существующие в ядре модули. Один раз и навсегда. Сколько они будут места занимать на диске мне пофиг.

     
     
  • 9.22, cmp (ok), 08:45, 30/05/2016 [^] [ответить]    [к модератору]  
  • +/
    Тогда придется тратить время на перечисление корявых модулей в черном списке, который, конечно, можно слизать у дистрибутива, но с тем же успехом можно слизать и конфиг ядра.

    Если бы все было так просто, кто бы стал заморачиваться с конфигурированием?

     
     
  • 10.27, stalkerdroad (ok), 02:46, 03/06/2016 [^] [ответить]    [к модератору]  
  • +/
    > Тогда придется тратить время на перечисление корявых модулей в черном списке

    Единственное что указал так это vmware драйвер.

     
     
  • 11.29, cmp (ok), 04:29, 03/06/2016 [^] [ответить]    [к модератору]  
  • +/
    > Единственное что указал так это vmware драйвер.

    то есть, собрал "свое" ядро, корявое, зато не заморачивался, большенство из тех кто собирает не обламываются сделать свой конфиг, а ты обломался, а "статью" написал не обломался.. где логика

     
     
  • 12.31, stalkerdroad (ok), 13:42, 03/06/2016 [^] [ответить]    [к модератору]  
  • +/
    > то есть, собрал ... корявое,

    Всё же работает нормально (у меня норм).

    > а "статью" написал не обломался..

    Статью написал т.к. проблема редкая и ответа на неё нет в поискових (по крайней мере я искал в англоязычном интернете и не нашёл).

     
     
  • 13.33, cmp (ok), 17:44, 03/06/2016 [^] [ответить]    [к модератору]  
  • +/
    > Статью написал т.к. проблема редкая и ответа на неё нет в поискових

    Видимо, потому, что никому это не надо, а для "себя" и для истории можно было бы нормально оформить.


     
     
  • 14.34, stalkerdroad (ok), 21:03, 03/06/2016 [^] [ответить]    [к модератору]  
  • +/
    Я же не знаю уровень образованности посетителей Опеннета. Я сужу по себе.

    Описание параметров, процесс сборки ядра, зачем нужен конфиг allmodconfig - всё это элементарно "гуглится". Описание параметров также есть в программе настройке ядра nconfig. Она есть в исходниках ядра ("make nconfig").

    А писать статью для нубов (и каждую мелочь расписывать) както бессмысленно.

     
     
  • 15.35, cmp (ok), 06:24, 04/06/2016 [^] [ответить]    [к модератору]  
  • +/
    Гуглится, да не все, особенно бесят топики типа - как настроить блаблабла -
    1) берем убунту
    2) апт гет инстал блаблабла
    3) старт блаблабла

    дохрена информативно, и ЭТОТ через пять лет будет таким же.

     
  • 7.25, Аноним (-), 07:48, 02/06/2016 [^] [ответить]     [к модератору]  
  • +/
    Понял Смотри, у тебя основной касяк может быть только по линии загрузки, пример... весь текст скрыт [показать]
     
  • 1.9, Xasd (ok), 10:39, 21/05/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    > CONFIG_CMDLINE_BOOL=n

    это ведь такое и есть значение по-умолчанию, так?

    > CONFIG_BINFMT_SCRIPT=y

    это ведь такое и есть значение по-умолчанию, так?

     
     
  • 2.12, stalkerdroad (ok), 16:19, 27/05/2016 [^] [ответить]    [к модератору]  
  • +/
    > значение по-умолчанию,

    По умолчанию в папке исходников ядра ВООБЩЕ НЕТ никакого конфига. Подаётся команда make и появляется выбранный конфиг. А выбор там большой.

     
     
  • 3.16, stalkerdroad (ok), 16:43, 27/05/2016 [^] [ответить]    [к модератору]  
  • +/
    > А выбор там большой.

    Я имел в виду что видов конфигов там много.

     
  • 1.23, anonnnnnnnnnnnnnnnnnnnnnnnn (?), 00:40, 31/05/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Модули, где находятся необходимые драйвера дисковых контроллеров и файловых систем необходимо поместить в initramfs, который положить на boot, fs которого поддерживает grub, и имже грузить ядро и initrd
     
  • 1.24, pxel (?), 20:16, 01/06/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    автору спасибо. если кому-то не понятно, то не стоит напрягаться - им это всеравно не понадобится :)
    а если понадобится то поймут
     
  • 1.37, святая ПротатА (?), 10:54, 23/06/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Если внимательно читать ридми - то все по порядку и идет.
    make ...config
    make all
    make initrd
    скармливание грабу нового образа рам-фс.
    Если все собрано модулями - закос под микро ядро, то и надо их где то разместить, пока ядро загрузит  драйвера устройств, и начнет читать с накопителей. Это вроде у линуксоида должно быть в инстинктах.  
     
  • 1.38, Нониус (?), 12:54, 29/06/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Собираю ядро под конкретное железо руками. Не могу понять тех, кто собирает драйвера для железа, которого уже нет, а у сборщика никогда не будет. Идиотизм.
     
     
  • 2.39, stalkerdroad (ok), 20:11, 29/06/2016 [^] [ответить]    [к модератору]  
  • +/
    Модули ядра это не только драйвера устройств. А ещё и функции ОС. Такие например как функции фаервола, шейпинга трафика, файловые системы и много чего ещё.
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor