L4linux - паравиртуализованное ядро Linux. Управление ресурсами осуществляет микроядро L4, ядро Linux работает как пользовательская задача микроядра.
Кратко для чего это нужно - благодаря микроядру возможно построить систему реального времени с высокой устойчивостью к сбоям и ошибкам в пользовательском ПО.
Знакомство можно начать отсюда
http://wiki.tudos.org/L4Linux
В архиве
ftp://pub@starterkit.ru/l4re-snapshot-2011042112-sk.tar.bz2
порт одного из снапшотов (ядро linux 2.6.38) на плату SK-AT91SAM9G45. В текущем варианте все драйверы взяты от ядра Linux (usb host к сожалению я не смог заставить работать).
Что нужно чтобы собрать
1 разархивировать
2 указать путь до своего кросскомпилятора, например:
#export GCC_PATH_PREFIX=/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-
3 сконфигурировать, в корне исходников набрать:
#make setup
выбрать там архитектуру arm и вариант исполнения - at91 atmel.
4 после конфигурации будет предложено добавить путь с линками на кросскомпилятор в переменную окружения PATH:
NOTE: You should add the bin directory to your path:
export PATH=/home/sasa/test/l4re-snapshot-2011042112-sk/bin:$PATH
нужно просто скопировать-вставить предложенную строку
5 собственно сборка имиджа
#make
После сборки имиджи лежат тут
l4re-snapshot-2011042112-sk/obj/l4/arm-at91/bin/arm_armv5te/
Один из полученных имиджей будет называться bootstrap_L4Linux.uimage - это имидж который может загружать uboot, в принципе можно загружать его как угодно, мне удобнее с SD.
Сделать два раздела на SD карте, один с fat, второй например с ext3. в раздел с fat положить загрузчик, вот мой готовый
ftp://pub@starterkit.ru/BOOT.BIN
и переименованный имидж в image.bin, можно взять мой готовый для пробы
ftp://pub@starterkit.ru/image.bin
Корневая ФС на втором разделе - можно хоть от дебиана, я делал обычную из buildroot. Тут важно помнить - памяти RAM всего 27 Мбайт для Linux, чтобы корректно работала отладочная консоль,
нужно исправить в /etc/inittab
ttyLv0::respawn:/sbin/getty -L ttyLv0 115200 vt100
потому что последовательный порт там виртуальный - название у него ttyLv0, кроме этого добавить этот порт в /etc/securetty чтобы руту можно было залогиниться.
Это кратко - если кого заинтересуют подробности спрашивайте, что знаю - подскажу.