nixp.ru v3.0

17 января 2017,
вторник,
00:49:32 MSK

Аутсорсинг Linux с компанией «Флант»
Аватар пользователя DimkaS
DimkaS написал 8 июля 2006 года в 19:54 (342 просмотра) Ведет себя как мужчина; открыл 84 темы в форуме, оставил 922 комментария на сайте.

По вполне понятным причинам я собираю ядро для сервера (Pentium 233) на десктопе (Sempron 2800+). Результат надо перекинуто по ssh. Думаю все упаковать в 2 архива:

1) ядро, initrd и прочее, что должно быть в /boot

2) модули

Хочу написать скрипт, который все это сделает, но есть такая проблема: модули раскиданы по дереву исходников. Единственный (?) способ собрать их в кучу — make modules_install, но он требует привелегий root. Можно ли сделать это от имени пользователя?

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

И еще. Я взял старый конфиг и собрал ядро добавив один модуль. После, перекинул этот модуль (8139too.ko) на удаленную машину. Сделал modprobe, но он не нашел модуль. Можно ли как-то установить его или надо пересылать всё полностью?

Genie

собрать ядро в ПАКЕТ ;)

а далее — как обычно.

либо. chroot в каталог, где у тебя копия систем для установки на сервер.

и штатно «make install modules_install» — естественно, дерево исходников и собранных модулей/ядра должно быть внутри твоего chroot.

еднственно — тут с initrd может быть конфуз. того рода и вида, что оно может смотреть на оборудование, которое у тебя установлено в систему… а это будет несколько не то, что у тебя на сервере — то есть тут надо бы несколько осторожно подойти к вопросу сборки оного.

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

Genie
DimkaS
И еще. Я взял старый конфиг и собрал ядро добавив один модуль. После, перекинул этот модуль (8139too.ko) на удаленную машину. Сделал modprobe, но он не нашел модуль. Можно ли как-то установить его или надо пересылать всё полностью?

для этого надо сделать «depmod -a», если я правильно помню — оно строит список модулей и их зависимостей, которые в /lib/modules/`uname -r`/

DimkaS
Genie
собрать ядро в ПАКЕТ ;)

а далее — как обычно.

Идея интересная. make deb-pkg достаточно будет?

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

На дескопе у меня этого не получалось… Надо будет как-нить еще раз попробовать.

Genie
Идея интересная. make deb-pkg достаточно будет?

лучше что-то типа

$ make-kpkg --initrd --append-to-version $APPEND --revision $REVISION binary-arch
DimkaS

Пакет собирать пока не пробовал, depmod сделал. Modprobe ругатеся на неверный формат модуля (*.ko, правильно?). С параметром -f модуль подгружается. А что дальше? Как мне связать модуль с интерфейсом eth1, например?

Dr. Evil

зачем тебе связывать модуль, например, с интерфейсом eth1? этим должно заниматься ядро, …, а не ты.

а ругань на неправильный формат модуля у тебя возникает из-за того, что ты пытаешься его загрузить командой:

modprobe модуль.ko

я прав? ;)

DimkaS

неа. я делаю

modprobe 8139too

но сейчас это уже не так важно — всё равно буду полностью ядро пересобирать

DimkaS
Genie
лучше что-то типа

$ make-kpkg --initrd --append-to-version $APPEND --revision $REVISION binary-arch

1) Вот я что-то не нашёл в apt’e make-kpkg.

2) Попробовал make deb-pkg, а он стал ругаться, что не может изменить владельца файлов где-то в ./linux-2.6.14/debian/tmp… Зачем ему это? Я всю сборку под обычным пользователем делал. Т.е. должен быть владельцем всех этих файлов.

3) Вообщем, собрал с помощью make tarbz2-pkg, закинул на сервер, распаковал. Всё работает, только владелец vmlinuz я, а не root. Это плохо? А еще есть файл vmlinux. Я так понял, это неупакованное ядро и его можно удалить, да?

Genie
1) Вот я что-то не нашёл в apt’e make-kpkg.

$ sudo apt-get install kernel-package

2) Попробовал make deb-pkg, а он стал ругаться, что не может изменить владельца файлов где-то в ./linux-2.6.14/debian/tmp… Зачем ему это? Я всю сборку под обычным пользователем делал. Т.е. должен быть владельцем всех этих файлов.

$ fakeroot make deb-pkg

3) Вообщем, собрал с помощью make tarbz2-pkg, закинул на сервер, распаковал. Всё работает, только владелец vmlinuz я, а не root. Это плохо? А еще есть файл vmlinux. Я так понял, это неупакованное ядро и его можно удалить, да?

см. ответ к п.2

DimkaS
1) Вот я что-то не нашёл в apt’e make-kpkg.

Интересно, какая религия запрещает собирать ядро как:

make menuconfig

make bzImage modules modules_install install

Я понимаю, debian-way, но что такого в том, чтобы ядро собрать просто компилятором без всяких пакетов?

DimkaS

Религия не запрещает, но как потом собрать эти файлы в один архив, чтоб передать его на удалённую машину? Вот здесь-то пакет и приходит на помощь =)

DimkaS
Genie
$ fakeroot make deb-pkg

Получилось! А с make-kpkg я так и не разобрался… Тяжко после работы. Да и разницы я не вижу, только что initrd надо ручками запустить.

Спасибо!

И еще вопросик: как узнать у apt’a, что make-kpkg спрятан именно в kernel-package?

Feuerbach

apt-cache search make-kpkg выдает 16 пакетов, из которых несложно вычленить нужный. Эдакий локальный гугль :)

Genie
Получилось! А с make-kpkg я так и не разобрался… Тяжко после работы. Да и разницы я не вижу, только что initrd надо ручками запустить.

Спасибо!

гугль://debian+make-kpkg+kernel+package+compilation

И еще вопросик: как узнать у apt’a, что make-kpkg спрятан именно в kernel-package?

среди установленных пакетоы — dpkg -S file_name

а вот среди неустановленных — хз. apt-file, судя по всему, должен это предоставлять. но как-то руки попробовать не дошли.

Интересно, какая религия запрещает собирать ядро как:

make menuconfig

make bzImage modules modules_install install

Я понимаю, debian-way, но что такого в том, чтобы ядро собрать просто компилятором без всяких пакетов?

«настоящие форумчане темы не читают"? ;)

DimkaS
Genie
гугль://debian+make-kpkg+kernel+package+compilation

Т.е. у make-kpkg возможностей побольше. Буду знать.

Всем спасибо за ответы!

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.