2013-04-17 3 views
0

Я пытаюсь построить пакет debug ядра i386 для Linux на хосте Debian amd64.Перекрестное ядро ​​linux i386 на хосте amd64

Теперь я делаю это по заданию --cross-compile flag. Это делает работу greate самой ядре. Но проблема в том, что инструменты ядра, которые по-прежнему компилируются как локальные машинные формы. Только изменение переменной HOSTCC не может решить эту проблему из-за несоответствия компоновщика.

Я знал chroot или linux32 Окружающая среда будет работать. Но являются ли они единственными способами? Должно быть другое решение, потому что кто-то может захотеть создать ядро ​​для рук.

PS: Вот команда, я использую:

CONCURRENCY_LEVEL=8 DEB_HOST_ARCH=i386 MAKEFLAGS="HOSTCC=/home/csl/bin/i486-linux-gnu-gcc"\ 
make-kpkg --rootcmd fakeroot --initrd --arch i386 --cross-compile /home/csl/bin/i486-linux-gnu- --append-to-version=-liquorix-csl binary-arch \ 
> >(tee stdout.log) 2> >(tee stderr.log >&2) 

ответ

2

Я сделал это так:

  1. Судо DPKG --add-архитектуры i386
  2. Sudo APT-получить обновление & & Sudo APT-получить установку ia32-ЛИЭС НКУ-многобиблиотечный
  3. делают i386_defconfig
  4. make ARCH = i386 -j5 deb-pkg

У меня нет времени для изучения, если ia32-libs действительно нужен. Но я хочу указать, что make-kpkg устарел, как объясняется в книге debian.

+0

'make-kpkg', похоже, хорошо работает с' setarch'. – user2288954

+0

Да, но make-kpkg устарел. См. [Руководство по ядру Linux Debian] (http://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s-common-building) – txomon

0

Я делаю это сейчас, как это:

CONCURRENCY_LEVEL=6 DEB_HOST_ARCH=i386 setarch i386 make-kpkg --initrd --arch i386 binary-arch 

я не видел ни жаловаться на косметику kpkg в DEBiAN книге, так что вы можете показать свою ссылку в DEBiAN книге?

Я считаю, что настоящая проблема заключается в том, что инструменты ядра, содержащиеся в каталоге scripts, должны быть скомпилированы как собственные форматы, что может способствовать созданию ядра ядра. Но эти инструменты нельзя использовать повторно при выполнении DKMS, это просто потому, что DKMS конфликтует с кросс-компиляцией. Я взломаю сломанное кросс-построенное ядро.

Смежные вопросы