LINUX.ORG.RU

Сборка ядерного модуля в chroot


0

0

Здравствуй, ЛОР. По итогам этого топика, пытаюсь настроить USB/IP на своей n900.
Поставил easy-debian-chroot, делаю по этой инструкции. Затык произошёл на этапе сборки модуля usbip-source. Сначала module-assistant ругнулся на отсутствие сырцов ядра. Поскольку ядро у меня Maemo'вское, я вышел из chroot, и поставил пакет kernel-power-headers. Потом я вручную смонтировал образ ФС Debian'а в директорию ~/mydebian, и отдельно каталог с сырцами:

mount --bind /usr/src/ ~/mydebian/usr/src
Потом чрутнулся туда и попробовал запустить сборку модуля снова:
sh-4.1# m-a a-i usbip-source --kernel-dir /usr/src/kernel-power-headers/
Updated infos about 1 packages
Bad kernel version specification at /usr/bin/m-a line 566, <$apt> line 7.[br]
sh-4.1#
Поверхностный гуглёж ничего полезного не дал, поэтому прошу помощи у вас.

★★★★★
Ответ на: комментарий от wfrr

зачем модуль ядра в chroot собирать?

Во-первых, потому что в репах Maemo нет соответствующих инструментов. А во-вторых, потому что пользоваться им мне предстоит так же в чруте.

Axon ★★★★★
() автор топика

а зачем собирать модуль в чруте? ведь в чруте все равно работает-то маемовское ядро, и именно для него нужен модуль

Ingwar ★★★★★
()
Ответ на: комментарий от Axon

Какая у вас версия ядра? У меня на 2.6.35.4 не собралась ядерная часть:
$ make KSOURCE=/usr/src/linux-`uname -r`/ -s

/home/kozi/usbip-0.1.7/drivers/head/stub_dev.c: In function 'stub_probe':
/home/kozi/usbip-0.1.7/drivers/head/stub_dev.c:401:42: error: 'struct device' has no member named 'bus_id'
make[2]: *** [/home/kozi/usbip-0.1.7/drivers/head/stub_dev.o] Error 1
make[1]: *** [_module_/home/kozi/usbip-0.1.7/drivers/head] Ошибка 2
make: *** [default] Ошибка 2

anon_666
()
Ответ на: комментарий от anon_666
uname -r
2.6.28-omap1

Кстати, первым делом я настроил серверную сторону - ноут с Ubuntu 10.04. Ядро - 2.6.32-21-generic, всё собралось и запустилось без проблем.

Axon ★★★★★
() автор топика
Ответ на: комментарий от Ingwar

а зачем собирать модуль в чруте? ведь в чруте все равно работает-то маемовское ядро, и именно для него нужен модуль

Я уже объяснял выше, что в Maemo просто нет пакетов с нужными зависимостями.

Axon ★★★★★
() автор топика
Ответ на: комментарий от elipse

все видимо уже проще стало.

Я так пробовал. То, что это работает на убунте, может объясняться тем, что там этот пакет, видимо, собран с зависимостями от usbip-source и module-assistant, а так же скриптом, который собирает модуль.

Axon ★★★★★
() автор топика
Ответ на: комментарий от elipse

не а, это работает и в Debian testing тоже.

Однако же, у меня не работает.

# modprobe vhci-hcd
FATAL: Could not load /lib/modules/2.6.28.10power37/modules.dep: No such file or directory
Да, к слову, я поставил kernel-power, от которого и были хидеры, и в котором заявлена, собственно, поддержка, в т. ч. и USB/IP, но это ничего не изменила...

Axon ★★★★★
() автор топика
Ответ на: комментарий от elipse

uname -r 2.6.32-5-amd6

Вероятно, дело в ядре. Повторю, что у меня под убунтой тоже всё заработало. Но надо, чтобы оно заработало именно на n900, иначе для меня смысла во всей затее нет.

Axon ★★★★★
() автор топика
Ответ на: комментарий от elipse

Внимание, вопрос: как загрузить это ядро и не превратить девайс в кирпич?

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Модуль собранный в чруте(squeeze) не загрузится:

Nokia-N900:/lib/modules/current# modprobe 9p
WARNING: Error inserting 9pnet (/lib/modules/2.6.28.10power40/9pnet.ko): Invalid module format
FATAL: Error inserting 9p (/lib/modules/2.6.28.10power40/9p.ko): Invalid module format

Лень было копать(как минимум разные версии gcc), собрал в sdk, чего и вам советую.

Во-первых, потому что в репах Maemo нет соответствующих инструментов.

Nokia-N900:~# apt-get build-dep kernel-power
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  binutils build-essential bzip2 cpio cpp cpp-4.2 debhelper diffstat dpkg-dev g++ g++-4.2 gawk gcc gcc-4.2 gettext gettext-base html2text intltool-debian
  libc6-dev libgomp1 libncurses5-dev libstdc++6-4.2-dev libtimedate-perl linux-kernel-headers make perl perl-modules po-debconf quilt sdk-fiasco-gen
0 upgraded, 30 newly installed, 0 to remove and 33 not upgraded.
Need to get 7957kB/26,4MB of archives.
After this operation, 99,6MB of additional disk space will be used.
Do you want to continue [Y/n]?

Nokia-N900:~# grep -v '^#' /etc/apt/sources.list
deb-src http://repository.maemo.org/extras/ fremantle free
deb-src http://repository.maemo.org/extras-testing/ fremantle free
deb-src http://repository.maemo.org/extras-devel/ fremantle free
deb http://repository.maemo.org/ fremantle/sdk free non-free
deb-src http://repository.maemo.org/ fremantle/sdk free
deb http://repository.maemo.org/ fremantle/tools free non-free
deb-src http://repository.maemo.org/ fremantle/tools free

А это как?

Както так

kostian ★★★★☆
()
Ответ на: комментарий от kostian

Модуль собранный в чруте(squeeze) не загрузится

Если дело в GCC, то он и без чрута собранный не загрузится, потому что ведро, если верить документации, собрано с 3.4, а в репах Maemo версия, ЕМНИП, 4.2.
Видимо, придётся собирать в scratchbox'е. Осталось найти комп, на который его можно было бы поставить... P.S.

Както так

Спасибо за ссылочку.

Axon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.