[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Make d-i capable to cross compile armel|* firmware images



Hi all,

INTRO
  It's been a while since we[1] built our first cross compiler. Debian
gcc package is able to produce compilers that spit your favorite arch
code from your i386|amd64 host machine. There are many fields in
Debian that could improve by the higher compilation speed obtained
when cross compiling  (kernel development, ...).

ARM[2] architecture (mobile devices, ...), formerly "armel" has been
very popular on later days as well as MIPS (router devices, ...) and
other embedded arches. Currently in debian-installer there is support
for some of this devices (nslu2, thecus n2100, ...).

A while back I tried to build an image on my host for one of the ARM
devices and I found out that debian-installer did not support such
feature. So I think it is worth trying to add such feature even I am
new to debian-installer.

FEATURE
  How could this feature be implemented? As a first glance from an ARM
device i am able to do:
(armel) $ make build_iop32x_netboot

on my i386|amd64:
$ make build_netboot

So, the idea is that i want to be able to type and make successfully
work on my i386|amd64 host:
$ make build_iop32x_netboot

For now, I guess netboot will be sufficient, but it would be nice also
harder to be able to do (thoughts?):
$ make build_iop32x_firmware

   Note: This should provide a set of files capable to perform tftp
boot, also files for  kernel|bootloader|jtag flashing to the target
device. Currently blocked.

CODE HACKING
  1) Get udebs for the favorite arch ("target arch") instead build
host arch. This might need some tweaking of the util/get-packages tool
and Makefile
  2) A new variable DEB_CROSS should be included in order to keep
cross bits independent from non-cross bits
  3) Kernel modules tweaking to fit target arch
  4) Create proper device nodes for the target
  5) cdebconf replaced by a script configuring udebs just after kernel
boot on target (any other ways?)
  6) Should we expect some trouble when cross generating initrd?
  7) Any other stuff to take into account?

QUESTIONS
Do you think this is a useful feature or a waist of time?
Do you see any blocker to be able to do so?

ACKNOWLEDGMENTS
  debian-embedded, debian-arm, debian-boot and all the people and
teams making Debian being so fun to hack with ;-D

REFERENCES
  [1] www.emdebian.org
  [2] www.debian.org/ports/arm

Kind Regards

-- 
 Héctor Orón


Reply to: