Сайт | Скачать | Видео | Wiki

Автор Тема: [Пересборка ядра]  (Прочитано 14262 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн eai

  • Старожил
  • ****
  • Сообщений: 245
  • Репутация: +12/-0
  • Автор темы
[Пересборка ядра]
« : 26 Сентябрь 2008, 12:33:50 »
Описание исправлено Pro
Ну собственно говоря не претендую на истину, но я делал это так ...
Желательно все делать на быстрой машине ;-)
0. Распаковать pupm-200.sfs в какой нибудь новый каталог на жестком диске. (название sfs может отличаться в зависимости от версии дистрибутива) Если кто незнает то уже распакованный sfs лежит в /initrd/dev_ro2
1. Скачать devx-200.sfs, скачать ядро kernel2.6.35.10_src_aufs_patched.sfs (в зависимости от версии дистрибутива название devx и kernel будет разным)
2. Подключить sfs в систему, либо если установка Full то распаковать.
3. Переходим в папку /usr/src/linux
4. Запускаем в терминале make menuconfig и вносим нужные изменения.
5. Компилируем ядро и модули командой make
4. Делаем установку модулей ядра make modules_install
5. Обновляем ядро, берем файл /usr/src/linux/arch/i386/boot/bzImage и копируем в нужное место переименовав в vmlinuz
6. Распаковываем initrd.gz (команды для распаковки-запаковки приведены ниже)
7. заходим в каталог /lib/modules/2.6.35.10 (вместо 2.6.35.10 будет ваша версия ядра) обычно в PuppyRus модули ядра дополнительно сжимаются архиватором gz, я делаю это быстро с помощью файлового менеджера mc: запускаем mc , переходим в каталог   /lib/modules/2.6.35.10 и делаем поиск по маске *.ko это найдет нам все модули ядра, потом нажимаем пункт Панелизация - модули выведутся все на одну из панелей mc, делаем выбор всех модулей, нажимаем кнопку F2 на клавиатуре и из меню выбираем Сжать файл в gz
8. теперь нужные модули ядра из /lib/modules/2.6.35.10 копируем в распакованное дерево initrd.gz (см. пункт 6) заменяя имеющиеся там файлы, либо добавляя новые.
9. Даем команду depmod -b /mnt/sda8/initrd 2.6.35.10 (/mnt/sda8/initrd - это путь к каталогу в котором лежит ваш распакованный initrd.gz) 2.6.35.10 - должно совпадать с версией ядра которое вы компилируете.
10. Запаковываем initrd.gz (см. команды ниже) и ложим его в один каталог с новым vmlinuz

« Последнее редактирование: 15 Март 2011, 06:04:54 от Pro »
Нет в природе ничего такого чего бы человек с головой и руками не смог бы сломать

Оффлайн Fliker09

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1624
  • Репутация: +120/-1
  • Puppy 4ever!
Re: Пересборка ядра
« Ответ #1 : 28 Сентябрь 2008, 22:55:17 »
11. Снова файлы из /lib/modules/2.6.35.10 переносим полностью но уже в распакованное дерево sfs (см. пункт 0)
12. Даем команду depmod -b /mnt/sda8/puppysfs (/mnt/sda8/puppysfs - это путь к каталогу в котором лежит ваш распакованный pupm-200.sfs) 2.6.35.10 - должно совпадать с версией ядра которое вы компилируете.
13. Запаковываем sfs командой mksquashfs и ложим рядом с vmlinuz и initrd.gz


Ещё один вопрос - нужно ли обязательно ядро 2.6.24.7? Можно ли по-новее? Или squashfs просто не работает на самых последних ядрах?

З.Ы. Есть ещё вопросы. Нужно ли обязательно использовать оригинальный конфиг паппика? Или можно свой сделать? И что ещё кроме ndiswrapper придётся пересобирать после смены ядра?
« Последнее редактирование: 15 Март 2011, 06:05:19 от Pro »
Я покинул проект так что прошу в случае чего писать мне на мыло!
Драйверы от разных систем НЕСОВМЕСТИМЫ!
http://wellminded.com/puppy/pupsearch.html -
 - поиск по http://www.murga-linux.com/puppy/
http://www.minus.com/ - для постоянного хранения файлов
http://rghost.ru/ - для временного хранения файлов
http://appdb.winehq.org/ - база данных WINE
http://jabberworld.info/ - всё о Jabber
http://convertfiles.com/ - конвертер файлов

Оффлайн Tarmo

  • Почетный участник
  • Старожил
  • *
  • Сообщений: 360
  • Репутация: +46/-0
Re: Пересборка ядра
« Ответ #2 : 29 Сентябрь 2008, 13:03:37 »
> Или squashfs просто не работает на самых последних ядрах?

По моим наблюдениям - да.

> Нужно ли обязательно использовать оригинальный конфиг паппика?

Неа, но с него лучше начать.

> И что ещё кроме ndiswrapper придётся пересобирать после смены ядра?

Все модули и все дрова...

Оффлайн Tarmo

  • Почетный участник
  • Старожил
  • *
  • Сообщений: 360
  • Репутация: +46/-0
Re: Пересборка ядра
« Ответ #3 : 06 Октябрь 2008, 18:58:29 »
Собственно, чтобы разобрать initrd

mkdir /root/init
cd /root/init
gzip -cd /home/initrd.gz | cpio -imd --quiet

В папке /root/init будет содержимое initrd.

Далее, в папке /root/init после издевательств над ним:

find . | cpio -o -H newc | gzip -9 -n > /home/new.initrd.gz

Пути может нужно будет подправить, сам понимаешь)

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:[Пересборка ядра]
« Ответ #4 : 07 Март 2013, 03:06:02 »
Хорошим дополнением для уменьшения размеров является выполнение
strip --strip-unneeded -R .comment
для всех модулей ядра.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.