Разъясните как устанавливать ядро (Решено)

1. Создаю ядро с помощью genkernel --menuconfig all. Соответственно оставляю всё необходимое и убираю лишнее, поддержку файловых систем включаю в ядро. Ну и далее всё делает genkernel. В итоге в /boot появляются System.map*,Initramfs-genkernel*, kernel-genkernel*. Всё чудесно работает.
2. Далее пробую сделать всё руками. Удаляю из /boot файлы созданные genkernel, удаляю каталог с модулями из /lib/modules, делаю копию имеющегося .config и далее make mrproper. Восстанавливаю сохранённый от genkernel .config и делаю make && make modules_install. После компиляции ищу где лежит ядро. В новообразованном arch/x86_64/boot/ лежит ссылка @bzImage на 22 байта. Копирую ядро bzImage по ссылке в /boot, придаю ему благообразное имя. Правлю имя в меню grub и после перезагрузки успеваю увидеть только kernel panic и далее ноутбук выключается.
3. Вариант с make && make modules_install install, опять таки, с .config от genkernel, устанавливает в /boot System.map*, config*, vmlinuz*, но при загрузке (очень быстрой) успеваю увидеть только kernel panic и далее ноутбук выключается. Что делаю не так в ручных вариантах и какую функциональную нагрузку несут файлы System.map*, config* в /boot. Initramfs - как понимаю создается только genkernel. Хочется сделать компиляцию и размещение ядра вручную, без помощи genkernel.

.

Богатый и неленивый человек.
Зачем ищешь приключений на свою ...?
Тебе зачем предоставили возможность выбора варианта загрузки?
CONFIG_LOCALVERSION спасёт вождя мирового пролетариата и нет необходимости удалять рабочий вариант загрузки.

Стандартная ошибка, приводящая к панике при попытке загрузки без initramfs --- модульное (вместо монолитного) включение поддержки файловой системы корня (или поддержки контроллера, за подробностями иди в lspci -k при загрузке с live cd.

Про initramfs ты тоже неправ. genkernel --- всего лишь один из простейших (с соответственным набором недостатков) способ создания оной. Но очевидным образом не единственный.
Начинать же надо как обычно: с раскуривания вопроса о том, где, зачем они насколько она initramfs нужна.

:wq
--
Live free or die

Да все очень просто

Да все очень просто :)
Устанавливаешь исходники ядра, я думаю лучше стабильного и выбираешь версию через eselect.
Конечно можно исходники ядра устанавливать сразу с USE флагом symlink, или например потом создать ручками символьную ссылку linux в каталоге /use/src/ на каталог с нужной версией ядра, но это требует особой подготовки :)
Затем переходишь в /usr/src/linux и делаешь так:

root # zcat /proc/config.gz > .config
root # make oldconfig
...
здесь нужно ответить на ряд вопросов, с вероятностью 98% можно везде жать n 
...
root # make nconfig

После запуска конфигуратора, я рекомендую отключать только то, что относится к железу, после знакомства с выводом команды lspci
Потому что остальная часть настроек ядра только что взята с рабочего ядра и на нем прекрасно работает (конечно бывают всякие исключения) :)
Ну а дальше:

root # make && make modules_install && make install

И смотрим в каталог /boot на новенькое ядро.

Ну а создать initramfs еще проще, достаточно почитать например это:

kesha@lata ~ $ find /usr/src/linux/Documentation/ -type f -name '*initr*'
/usr/src/linux/Documentation/acpi/initrd_table_override.txt
/usr/src/linux/Documentation/initrd.txt
/usr/src/linux/Documentation/filesystems/ramfs-rootfs-initramfs.txt

И глянуть сюда http://www.gentoo.ru/node/26744
Как-то так...

Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...

Initramfs позволяет загрузить

Initramfs позволяет загрузить ядро даже в том случае, если жизненно необходимые для этого вещи (корневая ФС, драйверы SATA и т.п.) собраны модулями. Initramfs по сути содержит в себе эти модули.
Если собирать с тем же конфигом вручную, то без наличия initramfs одно ядро не сможет смонтировать файловую систему на винчестере тупо потому, что поддержка их реализована модулями. А модули где? да, в /lib/modules на винчестере в корневой ФС - вот и получается замкнутый круг.
Поэтому лучше либо пользоваться initramfs (в этом нет ничего плохого), либо собрать нужные драйвера не в виде модулей, а вкомпилировать прямо в ядро. Тогда всё получится.

Да вот в том то и дело, что

Да вот в том то и дело, что драйверы файловых систем, а также SATA (IDE и SCSI у меня нет и я их отключал полностью ещё при использовании genkernel) всё включено в ядро, только сетевые устройства оставил как модули. Топик, как ручками собрать initramfs разумеется читал, но со скриптами пока не связываюсь. Да и в английском слабоват (не тот язык с детства выбрал), хотя попытаюсь конечно почитать документацию. Однако есть простенький для общества вопрос. При ручной компиляции и размещении ядра, модули для работы всегда вручную прописывать необходимо, или они где-то ядром подхватываются? A initramfs от genkernel можно использовать если использовался один и тот же config? Сейчас попробую.

Inok

/

Inok написал(а):
IDE и SCSI у меня нет и я их отключал полностью ещё при использовании genkernel

А-а-ай маладэц.

ЗЫ: В фортунки?

:wq
--
Live free or die

Попробовал на чищенном под

Со SCSI, да, зело погорячился, запамятовал, что для него все диски как SCSI.
Попробовал на чищенном под genkernel config собрать и установить ядро вручную добавив в меню загрузчика данные о initramfs оставшемся от сборки c genkernel ну и каталог с модулями оставил старый. Всё чудесно работает. Получается, что можно просто иметь пару файлов и каталог с модулями и без зазрения совести просто подсовывать их в систему при полной переинсталляции вместо очередной эпопеи по сборке ядра? А при монолитном ядре вообще обойтись одним файлом? Почти как в старом, добром DOS 5 ... 6.22. Сказка да и только - правда грустная.
Остались только вышеозвученные вопросы по по прописке модулей и функционалу файлов в /boot System.map и config

Inok

Inok написал(а): Получается,

Inok написал(а):
Получается, что можно просто иметь пару файлов и каталог с модулями и без зазрения совести просто подсовывать их в систему при полной переинсталляции вместо очередной эпопеи по сборке ядра?

Можно, только не понятно зачем эту самую "полную переинсталляцию" делать.

Ради того, ради чего люди

Ради того, ради чего люди удаляют Windows и копаются в Gentoo. Хотя и то и другое служит одной и той-же цели и чаще всего достаточно примитивной (напечатать табличку, набрать текст, выйти в интернет, проверить почту, совершить покупку и сыграть в игрушку, реже воспользоваться обучающей программой и т.д.) Жаль, на последние вопросы так никто и не ответил. Буду разбираться сам.

Inok

Как раз, одна из причин моего

Как раз, одна из причин моего перехода на gentoo была: что бы не делать переустановок.

.

Inok написал(а):
Попробовал на чищенном под genkernel config собрать и установить ядро вручную добавив в меню загрузчика данные о initramfs оставшемся от сборки c genkernel ну и каталог с модулями оставил старый. Всё чудесно работает.

Неправильно.
То, что _сейчас_ ты не наступил на грабли не гарантирует расхождения с ними в будущем.

Inok написал(а):
Получается, что можно просто иметь пару файлов и каталог с модулями и без зазрения совести просто подсовывать их в систему при полной переинсталляции вместо очередной эпопеи по сборке ядра?

Подпишусь под вопросом о необходимости "полной переинсталляции".

Inok написал(а):
А при монолитном ядре вообще обойтись одним файлом? Почти как в старом, добром DOS 5 ... 6.22. Сказка да и только - правда грустная.

Почему грустная?

Inok написал(а):
Остались только вышеозвученные вопросы по по прописке модулей и функционалу файлов в /boot System.map и config

По моему опыту, вручную прописывать надо разве только модули, устанавливаемые отдельно (т.е. через portage), или когда для корректной работы модулю необходимо передать дополнительные параметры.

config зависит от того как_чем ты собираешь ядро.
Например у меня:

# mount /boot/
# ls /boot/*config*
/boot/3.2.12-gentoo.config  /boot/3.4.9-gentoo-2.config  /boot/3.5.7-gentoo.config   /boot/3.7.10-gentoo-r1.config
/boot/3.3.8-gentoo.config   /boot/3.4.9-gentoo.config	 /boot/3.6.11-gentoo.config  /boot/3.7.9-gentoo.config
# umount /boot/

Все перечисленные файлы положены ручками.

System.map --- порождение genkernel'а.

man lilo.conf:

...
       map=<map-file>
              Specifies the location of the map file. If `map' is omitted, the file /boot/map is used.

              On machines with a pre-1998 BIOS, the EDD bios extensions which are required to support "lba32" disk sector  address‐
              ing  may  not  be present. In this case, the boot-loader will fall back automatically to "geometric" addressing; this
              fall back situation, or the specific use of "geometric" or "linear" addressing, will  require  the  map  file  to  be
              located  within the first 1024 cylinders of the disk drive. This BIOS limitation is not present on post-1998 systems,
              most of which support the newer EDD disk BIOS calls.
...

Есть мнение, что в настоящее время это суть дань традиции.

:wq
--
Live free or die

Цитата: Неправильно. То, что

Цитата:
Неправильно.
То, что _сейчас_ ты не наступил на грабли не гарантирует расхождения с ними в будущем.

Ну и расписал бы почему так.

Anarchist написал(а):
Подпишусь под вопросом о необходимости "полной переинсталляции".

Ну т.е. ты этого не знал ?

Inok написал(а):
иметь пару файлов и каталог с модулями и без зазрения совести просто подсовывать их в систему при полной переинсталляции вместо очередной эпопеи по сборке ядра?

Кроме прочего, нужно в иметь исходники той же версии и хотя бы выполнить 'make modules_prepare' .

Цитата:
Например у меня:
...

Всё ещё используешь "дырявые" ядра или уже наложил патч ? https://patchwork.kernel.org/patch/2441281/ Или система 32 битная ?

Цитата:
System.map --- порождение genkernel'а.

Это не порождение genkernel`а:

System.map". is a file (produced via nm) containing symbol names and addresses of the linux kernel binary, vmlinux.

Its primary use is in debugging. If a kernel "oops" message appears, the utility ksymoops can be used to decode the message into something useful for developers. ksymoops makes use of the System.map to map PC values to symbolic values. Note that 2.5 kernels have an in-kernel oops decoder called kksymoops, which does not need System.map

You may get warnings about your System.map being out of date. This won't affect normal running but its best to keep a copy around if there is a kernel bug / hardware failure. Note that ps l uses System.map to determine the WCHAN field (you can specify a map file with the PS_SYSTEM_MAP environment variable). The utilities look in a set of standard places for this file like /boot/System.map and /usr/src/linux/System.map

/

kostik87 написал(а):
Anarchist написал(а):
Подпишусь под вопросом о необходимости "полной переинсталляции".

Ну т.е. ты этого не знал ?

Восстанавливай навыки чтения.
Речь идёт о "полной переинсталляции" всего, кроме ядра.
Твои аппеляции к некоторому сокровенному знанию указывают на то, что ты в теме зачем это нужно.
Записываешься в список ответственных за данный вопрос.

Цитата:
Например у меня:
...

Всё ещё используешь "дырявые" ядра или уже наложил патч ? https://patchwork.kernel.org/patch/2441281/ Или система 32 битная ?
И снова учимся читать (и понимать прочитанное).
Перечисленные файлы скопированы ручками. Именования согласно моим представлениям о сообразном.
И таки да: начинаял я с 32-разрядной системы. А менять принцип именования для файлов, представляющих сугубо локальный интерес, мне попросту лень.

kostik87 написал(а):
Цитата:
System.map --- порождение genkernel'а.

Это не порождение genkernel`а:

System.map". is a file (produced via nm) containing symbol names and addresses of the linux kernel binary, vmlinux.

Its primary use is in debugging. If a kernel "oops" message appears, the utility ksymoops can be used to decode the message into something useful for developers. ksymoops makes use of the System.map to map PC values to symbolic values. Note that 2.5 kernels have an in-kernel oops decoder called kksymoops, which does not need System.map

You may get warnings about your System.map being out of date. This won't affect normal running but its best to keep a copy around if there is a kernel bug / hardware failure. Note that ps l uses System.map to determine the WCHAN field (you can specify a map file with the PS_SYSTEM_MAP environment variable). The utilities look in a set of standard places for this file like /boot/System.map and /usr/src/linux/System.map

Ты уверен?
В таком случае с тебя развёрнутое толкования факта наличия отсутствия у меня в /boot/ файла System.map.

:wq
--
Live free or die

Цитата: И снова учимся

Цитата:
И снова учимся читать (и понимать прочитанное).
Перечисленные файлы скопированы ручками. Именования согласно моим представлениям о сообразном.
И таки да: начинаял я с 32-разрядной системы. А менять принцип именования для файлов, представляющих сугубо локальный интерес, мне попросту лень.

Я лишь указал тебе на то, что в 64 битных ядрах версии до 3.8.9 есть уязвимость, поскольку вижу, что у тебя установлены более младшие версии. Заодно уточнил архитектуру системе, т.к. эту уязвимость можно реализовать лишь в 64 битной системе. Поэтому и спросил 32 битная у тебя система или нет. Ничего более я не имел ввиду, не надо искать тайный смысл там, где его нет.

Цитата:
Ты уверен?
В таком случае с тебя развёрнутое толкования факта наличия отсутствия у меня в /boot/ файла System.map.

Уверен. Я ядра собираю в ручную, ставлю их командами

make install
make modules_install

Поэтому у меня копируется из директории с исходными кодами ядра образ ядра в /boot/vmlinuz-версия_ядра, файл с конфигом ядра /boot/config-версия_ядра и файл System.map /boot/System.map-версия_ядра.
Если ты прочитал текст, который я привёл в прошлом сообщении, то должен был увидеть, что в этом файле содержатся адреса смещения подсистем ядра, для более детального определения причин kernel panick и прочих сбоев при отладке ядра. При любом сбое и kernel panick на экран так же выводится адрес смещения, указывающий на код в ядре в котором произошёл сбой.
Кроме всего прочего, файл System.map создаётся в процессе сборки ядра в ручную и находится в /usr/src/linux/System.map проверь, если не веришь.

ЗЫЖ: Зачем упираешься, всё равно же не прав ?

.

kostik87 написал(а):
Цитата:
И снова учимся читать (и понимать прочитанное).
Перечисленные файлы скопированы ручками. Именования согласно моим представлениям о сообразном.
И таки да: начинаял я с 32-разрядной системы. А менять принцип именования для файлов, представляющих сугубо локальный интерес, мне попросту лень.

Я лишь указал тебе на то, что в 64 битных ядрах версии до 3.8.9 есть уязвимость, поскольку вижу, что у тебя установлены более младшие версии. Заодно уточнил архитектуру системе, т.к. эту уязвимость можно реализовать лишь в 64 битной системе. Поэтому и спросил 32 битная у тебя система или нет. Ничего более я не имел ввиду, не надо искать тайный смысл там, где его нет.

Молодец.
Сильно.
По архивному списку _конфигов_ делать выводы относительно списка вариантов загрузки...
Срочно делись исходниками используемой версии libtelepathy!

kostik87 написал(а):
Цитата:
Ты уверен?
В таком случае с тебя развёрнутое толкования факта наличия отсутствия у меня в /boot/ файла System.map.

Уверен. Я ядра собираю в ручную, ставлю их командами

make install
make modules_install

Поэтому у меня копируется из директории с исходными кодами ядра образ ядра в /boot/vmlinuz-версия_ядра, файл с конфигом ядра /boot/config-версия_ядра и файл System.map /boot/System.map-версия_ядра.
Если ты прочитал текст, который я привёл в прошлом сообщении, то должен был увидеть, что в этом файле содержатся адреса смещения подсистем ядра, для более детального определения причин kernel panick и прочих сбоев при отладке ядра. При любом сбое и kernel panick на экран так же выводится адрес смещения, указывающий на код в ядре в котором произошёл сбой.
Кроме всего прочего, файл System.map создаётся в процессе сборки ядра в ручную и находится в /usr/src/linux/System.map проверь, если не веришь.

Как и предполагалось, ответа на вопрос относительно причин, по которым в результате приведённых команд /usr/src/linux/System.map не компируется в /boot/ не последовало.

kostik87 написал(а):
ЗЫЖ: Зачем упираешься, всё равно же не прав ?

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

:wq
--
Live free or die

Цитата:Молодец.Сильно.По

Цитата:
Молодец.
Сильно.
По архивному списку _конфигов_ делать выводы относительно списка вариантов загрузки...
Срочно делись исходниками используемой версии libtelepathy!

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

Цитата:
Как и предполагалось, ответа на вопрос относительно причин, по которым в результате приведённых команд

У меня копируется.
Ещё раз, при смонтированном /boot и после выполнения команды 'make install' указанные выше файлы копируются в /boot/ . Почему у тебя по другому не знаю, разбирайся.
Но тем не менее это не избавляет от факта, что ты не правильно указал назначение файлы System.map, даже если его нет у тебя в /boot.

/

kostik87 написал(а):
Вот человек, блин, я его предупреждаю о возможно уязвимости, а он какашками кидается в ответ. Я пишу ответ исходя из написанного тобой текста, ну используешь ты более новое ядро, в котором нет уязвимости или архитектура у тебя 32 битная, ну радуйся.

Так вот как по нонешним просвещённым временам называются замечания к навыкам чтения/понимания прочитанного...

kostik87 написал(а):
Цитата:
Как и предполагалось, ответа на вопрос относительно причин, по которым в результате приведённых команд

У меня копируется.
Ещё раз, при смонтированном /boot и после выполнения команды 'make install' указанные выше файлы копируются в /boot/ . Почему у тебя по другому не знаю, разбирайся.

Был неправ.
Я использовал рекомендуемую в Gentoo процедуру установки ядра:

# make && make modules_install
# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.39-gentoo-r3

Которая очевидным образом System.map никуда не копирует.
Из какового факта, кстати, очевидным образом следует опциональная сущность оного.
Хотя расхождение результатов стандартного сценария genkernel'а с рекомендуемым можно интерпретировать как багу. И не уподобляйся отдельным модераторам!

kostik87 написал(а):
Но тем не менее это не избавляет от факта, что ты не правильно указал назначение файлы System.map, даже если его нет у тебя в /boot.

Не отменяет.
Как не отменяет и упоротого игнорирования тобой множественных объективных указаний на опциональную сущность оного.

Был неправ, перепутал по совпадению подстроки имени с наличным файлом.
http://www.dirac.org/linux/system.map/ зеркало http://rlworkman.net/system.map/
С тебя указание на штатную документацию с обладающей свойством независимоей перепроверяемости процедурой нахождения информации.

:wq
--
Live free or die

Anarchist

Anarchist написал(а):
kostik87 написал(а):
Цитата:
Как и предполагалось, ответа на вопрос относительно причин, по которым в результате приведённых команд

У меня копируется.
Ещё раз, при смонтированном /boot и после выполнения команды 'make install' указанные выше файлы копируются в /boot/ . Почему у тебя по другому не знаю, разбирайся.

Был неправ.
Я использовал рекомендуемую в Gentoo процедуру установки ядра:

# make && make modules_install
# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.39-gentoo-r3

Которая очевидным образом System.map никуда не копирует.
Из какового факта, кстати, очевидным образом следует опциональная сущность оного.
Хотя расхождение результатов стандартного сценария genkernel'а с рекомендуемым можно интерпретировать как багу.

Опасаясь снова поднять этот адовый тред, всёже отвечу. Когда-то я задался вопросом - а действительно, почему если make install всё копирует сам куда надо, это не описано в Handbook ? Попробовал сам, и вышло что если в /boot никого нет, то и не копирует! Почему разбираться не стал, но обновляюсь через make install.

P.S. Да, кстати, Анархист - следи пожалуйста за тегами цитат в своих адовых оверквотингах, только что минут 20 убил на разбор твоего поста ища где ты воткнул лишний/недоставил нужный [ / quote ] , из-за которого слетели рамочки постов, и кнопки ответа отправились в свободное плавание...

Цитата: а действительно,

Цитата:
а действительно, почему если make install всё копирует сам куда надо, это не описано в Handbook ?

А вы сами не хотите читать документацию ? Хотите, что бы вам всё на блюдечке давали ?

Цитата:
Попробовал сам, и вышло что если в /boot никого нет, то и не копирует!

У вас /boot случаем не на отдельом разделе был ? Если до, то, естественно, 'make install' его предварительно не смонтирует.

Необходимость наличия System.map

kostik87 написал(а):
Цитата:
Поэтому у меня копируется из директории с исходными кодами ядра образ ядра в /boot/vmlinuz-версия_ядра, файл с конфигом ядра /boot/config-версия_ядра и файл System.map /boot/System.map-версия_ядра.
Если ты прочитал текст, который я привёл в прошлом сообщении, то должен был увидеть, что в этом файле содержатся адреса смещения подсистем ядра, для более детального определения причин kernel panick и прочих сбоев при отладке ядра. При любом сбое и kernel panick на экран так же выводится адрес смещения, указывающий на код в ядре в котором произошёл сбой.
Кроме всего прочего, файл System.map создаётся в процессе сборки ядра в ручную и находится в /usr/src/linux/System.map проверь, если не веришь.

Т.е. как понимаю System.map только для посвящённых и те, кто не может воспользоваться его сообщениями, могут его удалить из boot...?

Inok

исходя из того, что /boot

исходя из того, что /boot нередко существует как отдельный раздел и обычно он не смонтирован, польза от System.map в данном случае сомнительна. klogd и прочие заинтересованные как бы должны уметь его читать из /usr/src/linux, где он обитать и должен.

.

Beelzebubbie написал(а):
klogd и прочие заинтересованные как бы должны уметь его читать из /usr/src/linux, где он обитать и должен.

Строго говоря, в условиях дефицита дискового пространства каталог /usr/src/linux тоже может отсутствовать.

:wq
--
Live free or die

ну можно и оставить только

ну можно и оставить только System.map, а на остальном экономить сплеча )

/

Beelzebubbie написал(а):
ну можно и оставить только System.map, а на остальном экономить сплеча )

Усложним задачу :)
Загрузка с предыдущим ядром (/usr/src/linux указывает не на его дерево исходников).
Твои действия?

:wq
--
Live free or die

вот уж не ленивые люди

# cd /lib/modules/`uname -r` && ls -al source
lrwxrwxrwx 1 root root 26 мая   24 18:10 source -> /usr/src/linux-3.8.13-aufs

и это после

cd /usr/src/linux && make modules_install

А что будет при отсутствии поддержки ядром модулей ...?

------------------

System.map действительно опционален.
Но как показало исследование make [|menu|n]config при отсутствующем .config ищет именно /boot/config-`uname -r`
Добавив, что все три файла в make install при копировании переименовываются к виду [System.map|config|vmlinuz]-`uname -r`, предполагаю, что именно такое имя будет приоритетным в случае поиска System.map в системе.

PS. Ядер может быть собрано несколько на основе одних и тех же исходников. Все System.map в /usr/src/linux не удержишь.

предлагаю завершить все это

предлагаю завершить все это толстоквашино на том, что в общем случае System.map не будет доступен кому надо. А если это не устраивает — смотреть, где его будет искать «кто надо» и исполнять это требование.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".