Age | Commit message (Collapse) | Author |
|
Instead of maintaining mk/modules.mk which defines compilations of
related kernel modules to pack together into a single package, follow an
automatic approach: For every kernel module found in the modules
installation directory, create a single package.
There are a few caveats to cover:
=== Module Loading Order ===
Upon bootup, module loading is ordered based on the number-prefixed
files in /etc/modules.d/. The correct number was previously managed in
mk/modules.mk on a per-collection basis. The new approach is to have
levels which modules are to be assigned to. Level 0 contains modules
with no dependencies at all. Level 1 contains modules which have only
level 0 dependencies, and so on. This information is determined at
compile-time by make-module-ipkgs.sh.
=== Module Installation to Target RootFS ===
Since module packages are created automatically from the modules the
script finds, ADK build system has no knowledge about the connection
between what the user has selected in menuconfig and the actual module
packages. Therefore the earlier approach to install selected packages
into rootfs does not hold anymore. Instead, use wildcards to find all
packages in firmware directory prefixed by 'kmod-' and install them all
(hopefully doing the right thing).
=== Kernel Version ===
KERNEL_VERSION now contains KERNEL_RELEASE already
By creating a localversion file, make KERNEL_RELEASE part of the
kernel's version number (so KERNEL_VERSION is correct in most
situations)
Signed-off-by: Phil Sutter <phil@nwl.cc>
|
|
to avoid namespace collisions in some packages, rename TOPDIR.
Sorry you need to make cleandir && make prereq && make
|
|
|
|
|
|
|
|
After Joerg asked me about the difference between
ADK_TARGET_ARCH and ADK_TARGET_CPU_ARCH I recognized many duplication
of variables for this information.
These patch fixes this up. Use make cleandir && make menuconfig && make
|
|
|
|
|
|
cleanup target/*/Makefile stuff.
|
|
after onger discussion with Phil, I understood his old
patches and fixed support for x86 systems with 32 Bit userland
and 64 Bit kernel by using a biarch toolchain instead of
a multilib one.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
resulting firmware
|
|
|
|
|
|
ld.so in latest glibc/eglibc setups, just remove the redirect for now. enable automatic building of debug subpackages. update TODO
|
|
|
|
|
|
|
|
|
|
Using the kernel tools is a lot better than calling cpio ourselfs, as
this way we can have it create device nodes for us. So no need to reopen
/dev/console and things like that.
While here, fix also initramfs compression (untested), as in my
experience the kernel drops all symbols regarding compression from it's
.config in the first compile phase. Probably one should make the actual
compression algorithm configurable (and ideally depending on what the
kernel supports for the given architecture).
This is a rough hack based on what I'm using in the custom viprinux
build file, so something like this is already running somewhere. ;)
|
|
|
|
|
|
Make configuration of new targets cheap.
Just add a new file in target/arch/sys-enabled/foo.
See other files for syntax. While doing runtime tests
with the new infrastructure I've updated a lot of other
stuff:
- gcc 4.5.2
- uClibc 0.9.32-rc1 (NPTL)
- strongswan, php, miredo, parted, util-linux-ng, e2fsprogs
I promise, this is the last big fat commit this year ;)
|
|
you can now choose between specific embedded systems like PC Engines
ALIX boards, Foxboard, .. or between generic architecture support like
x86, x86_64, mips, ...
This does reduce the overhead of duplicate configuration files in target
directory. Now qemu, toolchain and ibm x40 support is combined in one target
directory target/x86. Distinguishing between hardware profiles happens
via menu based configuration. (CPU choice for kernel, CFLAGS for package
building, ..). We will see if this is the right direction.
|
|
|
|
Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
|
|
|
|
|
|
use hardware profiles, instead of extra target dirs.
fix dependencies.
|