Building kernel modules for L4Linux

Paul Boddie paul at boddie.org.uk
Tue Feb 2 15:19:41 CET 2016


On Tuesday 2. February 2016 14.44.34 Nourhan Mohamed wrote:
> 
> I wanted to build a simple character device module for L4Linux on ARM
> device.  However, I don't know who should I compile it for the L4Linux
> version (version 4.3.0). Can you please help me with what files should I
> download to cross compile the module and what should be included in the
> Makefile? My machine is a 64-bit machine running Ubuntu with Linux kernel
> version 4.3.3.

I know that others will be able to offer far more assistance than I can, but 
is the problem related to cross-compiling in general or the specific task of 
cross-compiling the module?

On the more general topic, I've been using Debian to cross-compile L4Re and 
Fiasco.OC, and it's been possible to use the cross-toolchains in the unstable 
version of Debian. I guess the following packages are relevant for ARM:

https://packages.debian.org/sid/gcc-arm-linux-gnueabi
https://packages.debian.org/sid/gcc-arm-linux-gnueabihf

I've been using the following package for MIPS:

https://packages.debian.org/sid/gcc-mipsel-linux-gnu

I believe that Ubuntu has raced ahead with some aspects of providing cross-
toolchains for ARM, and I found these:

http://packages.ubuntu.com/xenial/gcc-arm-linux-gnueabi
http://packages.ubuntu.com/xenial/gcc-arm-linux-gnueabihf

On a slightly less general topic, I've followed these instructions for the 
most part to get L4Re and Fiasco.OC cross-compiled:

https://github.com/MIPS/fiasco-l4re/blob/master/HOWTO.fiasco-l4re#L75

The SYSTEM_TARGET setting seems to be pertinent here.

I also found that I needed to do this (for MIPS):

ln -s /usr/share/pkg-config-crosswrapper /usr/bin/mipsel-linux-gnu-pkg-config

But I did read once that Ubuntu's packages set up various symbolic links for 
ARM (ignoring the need to do this generically for many architectures).

And I also found that I needed to change src/l4/mk/Makeconf so that the 
correct pkg-config would be used:

PKG_CONFIG      = $(SYSTEM_TARGET)pkg-config

I hope this isn't telling you things you already know, and I can't help you 
with your specific topic of Linux module compilation, unfortunately.

Paul



More information about the l4-hackers mailing list