По вполне понятным причинам я собираю ядро для сервера (Pentium 233) на десктопе (Sempron 2800+). Результат надо перекинуто по ssh. Думаю все упаковать в 2 архива:
1) ядро, initrd и прочее, что должно быть в /boot
2) модули
Хочу написать скрипт, который все это сделает, но есть такая проблема: модули раскиданы по дереву исходников. Единственный (?) способ собрать их в кучу — make modules_install, но он требует привелегий root. Можно ли сделать это от имени пользователя?
Предполагается, что скрипт кидает файлы в мой дом на удаленной машине, а дальше я там становлюсь рутом и все распаковываю. Права рута на локольной машине использовать нежелательно.
И еще. Я взял старый конфиг и собрал ядро добавив один модуль. После, перекинул этот модуль (8139too.ko) на удаленную машину. Сделал modprobe, но он не нашел модуль. Можно ли как-то установить его или надо пересылать всё полностью?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
собрать ядро в ПАКЕТ ;)
а далее — как обычно.
либо. chroot в каталог, где у тебя копия систем для установки на сервер.
и штатно «make install modules_install» — естественно, дерево исходников и собранных модулей/ядра должно быть внутри твоего chroot.
еднственно — тут с initrd может быть конфуз. того рода и вида, что оно может смотреть на оборудование, которое у тебя установлено в систему… а это будет несколько не то, что у тебя на сервере — то есть тут надо бы несколько осторожно подойти к вопросу сборки оного.
проще всего, конечно же, включить всё необходимое для загрузки на сервере статично в ядро, тогда у тебя этой проблемы не возникнет.
для этого надо сделать «depmod -a», если я правильно помню — оно строит список модулей и их зависимостей, которые в /lib/modules/`uname -r`/
Идея интересная. make deb-pkg достаточно будет?
На дескопе у меня этого не получалось… Надо будет как-нить еще раз попробовать.
лучше что-то типа
Пакет собирать пока не пробовал, depmod сделал. Modprobe ругатеся на неверный формат модуля (*.ko, правильно?). С параметром -f модуль подгружается. А что дальше? Как мне связать модуль с интерфейсом eth1, например?
зачем тебе связывать модуль, например, с интерфейсом eth1? этим должно заниматься ядро, …, а не ты.
а ругань на неправильный формат модуля у тебя возникает из-за того, что ты пытаешься его загрузить командой:
я прав? ;)
неа. я делаю
но сейчас это уже не так важно — всё равно буду полностью ядро пересобирать
1) Вот я что-то не нашёл в apt’e make-kpkg.
2) Попробовал make deb-pkg, а он стал ругаться, что не может изменить владельца файлов где-то в ./linux-2.6.14/debian/tmp… Зачем ему это? Я всю сборку под обычным пользователем делал. Т.е. должен быть владельцем всех этих файлов.
3) Вообщем, собрал с помощью make tarbz2-pkg, закинул на сервер, распаковал. Всё работает, только владелец vmlinuz я, а не root. Это плохо? А еще есть файл vmlinux. Я так понял, это неупакованное ядро и его можно удалить, да?
$ sudo apt-get install kernel-package
$ fakeroot make deb-pkg
см. ответ к п.2
Интересно, какая религия запрещает собирать ядро как:
make menuconfig
make bzImage modules modules_install install
Я понимаю, debian-way, но что такого в том, чтобы ядро собрать просто компилятором без всяких пакетов?
Религия не запрещает, но как потом собрать эти файлы в один архив, чтоб передать его на удалённую машину? Вот здесь-то пакет и приходит на помощь =)
Получилось! А с make-kpkg я так и не разобрался… Тяжко после работы. Да и разницы я не вижу, только что initrd надо ручками запустить.
Спасибо!
И еще вопросик: как узнать у apt’a, что make-kpkg спрятан именно в kernel-package?
apt-cache search make-kpkg выдает 16 пакетов, из которых несложно вычленить нужный. Эдакий локальный гугль :)
гугль://debian+make-kpkg+kernel+package+compilation
среди установленных пакетоы — dpkg -S file_name
а вот среди неустановленных — хз. apt-file, судя по всему, должен это предоставлять. но как-то руки попробовать не дошли.
«настоящие форумчане темы не читают"? ;)
Т.е. у make-kpkg возможностей побольше. Буду знать.
Всем спасибо за ответы!