Linux™ — семейство UNIX-подобных ОС основанных на ядре Linux™. В США Linux™ является зарегистрированной торговой маркой, принадлежащей Линусу Торвальдсу.
Для получения сборки (образа) ядра необходимы:
git clone <адрес-репозитория> <локальная-директория>
make
, patch
, sed
, awk
и др.linux-kernel
:tar xjf linux-kernel.tar.bz2
tar xzf linux-kernel.tar.gz
kernel.patch
gunzip kernel.patch.gz
linux-kernel
cd linux-kernel
patch -p0 < ../kernel.patch
Подразумевается, что файл патча kernel.patch
располагается в той же директории, что и директория исходных кодов ядра linux-kernel
. Номер в параметре p
может быть другим, см. документацию по утилите patch
.
Файл | Размер | Изменение |
---|---|---|
linux-2.6.20.21_tion_svn1713_201111251752.tar.gz | 566559 | 2011/11/25 18:34 |
Файл | Размер | Изменение |
---|---|---|
linux-2.6.22.19_tion270_svn1920_201204021347.tar.gz | 441114 | 2012/04/02 14:09 |
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnu-
arm-linux-gnu-
— префикс используемого инструментарияcd linux-kernel
make tion_defconfig
make tion-pro1_defconfig
make tion-pro2_defconfig
make tion270_defconfig
make tion-pro270_defconfig
ncurses-dev
make menuconfig
make
Модуль — объектный код, который может быть добавлен к ядру во время работы (выполнения) для расширения функциональности. Например, драйвер устройства может быть включён в ядро или собран в виде модуля. Существуют как преимущества, так и недостатки использования модулей в ядре для встроенных систем.
Собранные модули должны быть установлены в КФС целевой платформы в
директории /lib/modules/<version>/
, где <version>
— версия ядра.
make modules
make
export INSTALL_MOD_STRIP=1
<mod_dir>
export INSTALL_MOD_PATH=<mod_dir>
make modules_install
Загрузка модуля (на целевой платформе) выполняется командами modprobe
или insmod
, удаление — rmmod
,
отображение информации о модуле — lsmod
.
Сборки выполнены с конфигурацией по умолчанию (defconfig
).
Файл | Размер | Изменение |
---|---|---|
uImage-2.6.20.21_tion_svn889_eabi | 1710976 | 2010/02/15 19:44 |
uImage-2.6.20.21_tion-pro_svn889_eabi | 1711032 | 2010/02/15 19:44 |
uImage-2.6.20.21_tion-pro2_svn1522_eabi | 1780592 | 2011/06/06 00:00 |
md5.sum | 214 | 2013/08/05 20:09 |
Для Тион270 и Тион-Про270 (rev.2 и rev.1.x):
Для ядра 2.6.35 используется идентификатор machid e66 (шестнадцатеричное)
Файл | Размер | Изменение |
---|---|---|
uImage-2.6.35.14_tion270_zeo9f3547c50612e05e8b21ceada22c0e157e537735 | 2690772 | 2013/08/05 20:35 |
uImage-2.6.35.14_tion-pro270_zeo56212a24a918663f0c156279cf97fd6d6c6438c5 | 2580020 | 2013/08/05 20:35 |
md5.sum | 210 | 2013/08/05 20:53 |
Для плат на основе PXA270 (только rev.1.x):
Для ядра 2.6.22 используется идентификатор machid 2d9 (шестнадцатеричное)
Файл | Размер | Изменение |
---|---|---|
uImage-2.6.22.19_svn818_tion270_eabi | 1526548 | 2010/01/31 19:20 |
uImage-2.6.22.19_svn818_tion-pro270_eabi | 1465320 | 2010/01/31 19:20 |
md5.sum | 147 | 2013/08/05 20:14 |
В процессе загрузки ядро Linux™ выполняет монтирование корневой файловой системы (КФС).
КФС является необходимой частью для работы системы и содержит:
/lib/modules/
)/lib/
)/dev/
)/etc/inittab
, /etc/init.d/
)/sbin
, /bin
, /usr/sbin
)/etc/
)/usr/bin
)Размещение КФС на Flash позволяет сэкономить оперативную память не используя Ramdisk и сохранить данные при отключении питания/перезагрузке. На Flash должна размещаться предназначенная для этого файловая система, например, JFFS2.
root=/dev/mtdblock2 rootfstype=jffs2
, где mtdblock2
— соответствующее блочное устройство для КФС с файловой системой JFFS2
Также можно в параметрах ядра указать ro
, при этом КФС будет смонтирована в режиме только для чтения. Перемонтировать КФС в режиме для записи можно командой: mount -o remount,rw /
Для создания образа JFFS2 в Buildroot в menuconfig указать:
Target filesystem options ---> [*] jffs2 root filesystem Flash Type (Select custom page and erase size) ---> (0x1000) Page Size (0x40000) Erase block size [ ] Do not use Cleanmarker [ ] RootFS in SREC file formet [*] Pad output (0x0) Pad output size (0x0 = to end of EB)
Использование NFS как КФС упрощает процесс разработки, позволяя вносить изменения в файлы КФС с host-компьютера и сразу видеть их на target-платформе.
Для использования NFS как КФС следует:
CONFIG_ROOT_NFS
)root=/dev/nfs nfsroot=10.42.42.12:/nfs/root ip=10.42.42.205:10.42.42.12:10.42.42.1
, где 10.42.42.12
— IP-адрес сервера; 10.42.42.205
— IP-адрес клиента (платы)#auto eth0 #iface eth0 inet dhcp
Для использования КФС на CF-карте следует:
fdisk
, cfdisk
, mke2fs
, mkfs.ext2
mnt
:mount -o loop rootfs.arm.ext2 mnt
cp -a
root=/dev/hda1
, если КФС располагается на первом разделе CF-картыrootdelay
, если попытка монтирования КФС будет выполнена раньше чем определение CF-картыДля использования КФС на SD-карте следует:
root=/dev/mmcblk0p1
, если КФС располагается на первом разделе SD-картыrootdelay
, если попытка монтирования КФС будет выполнена раньше чем определение SD-картыroot=/dev/sda1
, если КФС располагается на первом разделе USB-Flashrootdelay
, если попытка монтирования КФС будет выполнена раньше чем определение USB-FlashЕсли вы не знаете с какой именно сборки начать, рекомендуется сборка выполненная Buildroot.
В некоторых сборках при входе в систему используется логин root
без пароля.
Если название файла начинается на u
, то этот файл уже является образом U-Boot.
Конфигурация, вспомогательный скрипт и дополнительные файлы КФС находятся в директории local/tion
.
В конфигурации используется интерфейс EABI, учтите это и при сборке ядра включите CONFIG_AEABI
.
Основные этапы сборки:
git clone URL
local/tion/tion.config
в .config
и выполнить make oldconfig
make BOARD=tion
При этом конфигурация будет использоваться из local/tion/tion.config
, и если конфигурация изменяется (make menuconfig
), то она должна быть сохранена в local/tion/tion.config
(или сделайте ссылку local/tion/tion.config на .config).
Git репозиторий: http://zao-zeo.ru/media/files/linux/buildroot-2009.08.git
Вы можете собрать КФС и ядро для плат на основе EP93xx с помощью Crater
(модификация системы сборки
Buildroot от Cirrus Logic). См. также
описание сборки Crater.
В конфигурации используется интерфейс OABI, учтите это и при сборке ядра выключите CONFIG_AEABI
или включите CONFIG_OABI_COMPAT
.
Файл | Размер | Изменение |
---|---|---|
crater-1.0.0_svn1082.tar.gz | 8068617 | 2010/07/07 20:48 |
Файл | Размер | Изменение |
---|---|---|
rootfs_crater_svn819mod_tion-pro.jffs2 | 4194304 | 2010/06/02 18:12 |
rootfs_crater_svn819_tion-pro2.jffs2 | 13369344 | 2010/01/31 19:20 |
md5.sum | 148 | 2013/08/05 20:57 |
Конфигурация, вспомогательный скрипт и дополнительные файлы КФС находятся в директории local/tion270
.
В конфигурации используется интерфейс EABI, учтите это и при сборке ядра включите CONFIG_AEABI
.
Основные этапы сборки:
git clone URL
local/tion270/tion270.config
в .config
и выполнить make oldconfig
make BOARD=tion270
При этом конфигурация будет использоваться из local/tion270/tion270.config
, и если конфигурация изменяется (make menuconfig
), то она должна быть сохранена в local/tion270/tion270.config
(или сделайте ссылку local/tion270/tion270.config на .config).
Git репозиторий: http://zao-zeo.ru/media/files/linux/buildroot-2009.08.git
Файл | Размер | Изменение |
---|---|---|
rootfs_tion270_br2009.08_zeoe7b4ce71305a5f52805b8824e3a0e8dd002e5ff1.jffs2 | 25952256 | 2013/08/05 20:40 |
md5.sum | 109 | 2013/08/05 20:41 |
date
hwclock -w
hwclock -r
hwclock -r
выдаётся сообщение hwclock: RTC_RD_TIME: Invalid argument
, то сначала сохраните время в RTC командой hwclock -w
или busybox hwclock -w
Для отключения засыпания дисплея можно использовать:
echo -en "\033[9;0]" > /dev/tty0
При использовании патчей для ядра с http://www.zao-zeo.ru/soft
В параметрах ядра укажите:
video=ep93xxfb:vout=1,vmode=<val>
, где <val>
— номер соответствующий дисплею:
Дисплей | <val> |
---|---|
VGA | 16 |
3.5" (320x240) | 17 |
5.7" (640x480) | 18 |
8", 10.4" (640x480) | 19 |
8" (800x600) | 20 |
8" (800x600) A080SN01 | 22 |
Если тип дисплея не указан, используется VGA-выход.
В параметрах ядра укажите:
video=pxafb:tag=<val>
, где <val>
— значение соответствующее дисплею:
Дисплей | <val> |
---|---|
VGA | vga |
3.5" (320x240) | 3.5 |
5.7" (640x480) | 5.7 |
8" (640x480) | 8 |
8" (800x600) OSD080TN42 | 8-800x600 |
10" (640x480) | 10 |
Дисплей | Параметр ядра |
---|---|
LVDS 10.4"(800x600) | video=pxafb:mode:800x600,pixclockpol:0,pixclock:21600 1) |
Видео контроллер включается в режиме 18 bpp, если у вас адаптер для 16 bpp или Сириус270 старше rev1.0, то нужно добавить :bpp=16
2), например:
video=pxafb:tag=vga:bpp=16
Если тип дисплея не указан, то VGA-выход отключён, потребление уменьшается на ~50 мА.
/sys/class/backlight
).
На адаптерах для различных дисплеев есть перемычки — включить подсветку
(bl_on) или управлять подсветкой
(bright). Замыкается только одна из двух перемычек!
Перед использованием сенсорного экрана (touch screen) его необходимо откалибровать, для этого в составе образа КФС
Linux есть утилита ts_calibrate
(из tslib
), запустите её и откалибруйте сенсорный экран. Проверить работу откалиброванного
сенсорного экрана можно утилитой ts_test
(из tslib
).
Перед калибровкой убедитесь, что устройство не занято другой программой и, в случае если устройство занято, — завершите программу которая занимает устройство.
Если вы используете ramdisk, то в него следует внести изменённые параметры калибровки, см. Как изменить ramdisk, как использовать CF-карту в качестве КФС. Изменённый файл калибровки /etc/pointercal
не должен содержать лишних символов: пробела, табуляции, новой строки и т.д.
Корректное отображение утилит ts_calibrate
и ts_test
при цвете 18 bpp для плат на основе PXA270.
Файл | Размер | Изменение |
---|---|---|
tslib-0.0.2.patch | 1139 | 2010/01/31 19:20 |
Для использования сенсорного экрана нужно установить значение переменной окружения QWS_MOUSE_PROTO
перед запуском OPIE.
Например, для одноплатных компьютеров на основе Cirrus Logic EP9312/15 значение QWS_MOUSE_PROTO
устанавливается в скрипте /sbin/startup
(ранее в /sbin/start-opie
):
export QWS_MOUSE_PROTO=TPanel:/dev/misc/ep93xx_ts
export QWS_MOUSE_PROTO=IntelliMouse:/dev/input/mice
Файл | Размер | Изменение |
---|---|---|
serial-pair_svn1695.c.gz | 2500 | 2012/07/04 14:13 |
QT версии 2.3.10, для других версий, возможно, требуются изменения
Файл | Размер | Изменение |
---|---|---|
leds-qt_svn413.tar.gz | 2431 | 2010/01/31 19:20 |
QT версии 2.3.10, для других версий, возможно, требуются изменения
Файл | Размер | Изменение |
---|---|---|
keypad-qt_svn815.tar.gz | 3251 | 2010/01/31 19:20 |
В ядре должен быть включён evdev (или модуль evdev).
Программа читает указанный файл символьного устройства /dev/input/eventX
Файл | Размер | Изменение |
---|---|---|
event.c | 651 | 2011/08/03 16:47 |
Файл | Размер | Изменение |
---|---|---|
can-test_svn733.tar.gz | 3665 | 2010/01/31 19:20 |
Пример настройки для pppd демона (можно собрать в Buildroot) используемого для соединения по модему, в том числе GSM-модему.
/etc/ppp
/etc/ppp/options
: устройство последовательного порта, скорость и пр.ln -s /etc/ppp/resolv.conf /etc/resolv.conf
/etc/ppp/start
, например /etc/ppp/start mts
Файл | Размер | Изменение |
---|---|---|
ppp_config_svn923.tar.gz | 964 | 2010/03/11 13:01 |
1. Если вы используете Buildroot, то используйте компилятор и библиотеки собранные им (EABI или OABI).
Cross-компиляторы собранные Buildroot 2009.08:
Файл | Размер | Изменение |
---|---|---|
gcc-4.3.4_armv4_arm920t_eabi.tar.gz | 57387260 | 2010/07/13 20:42 |
Для установки распакуйте в /, нужны права на запись в директорию /usr/local/arm.
2. http://arm.cirrus.com/files/tools/arm-linux-gcc-4.1.1-920t.tar.bz2
Для установки распакуйте в /usr/local/arm
, нужны права на запись в эту директорию.
Этим OABI компилятором можно собрать Crater.
1. Если вы используете Buildroot, то используйте компилятор и библиотеки собранные им.
Cross-компиляторы собранные Buildroot 2009.08:
Файл | Размер | Изменение |
---|---|---|
gcc-4.3.4_armv5te_xscale_eabi.tar.gz | 51370840 | 2010/07/14 20:52 |
Для установки распакуйте в /, нужны права на запись в директорию /usr/local/arm.
2. Cross-компиляторы собранные Pengutronix OSELAS®.Toolchain( ) с конфигурацией по умолчанию (библиотека glibc
).
Файл | Размер | Изменение |
---|---|---|
arm-iwmmx-linux-gnueabi_oselas.toolchain-1.1.1.tar.gz | 73272430 | 2010/01/31 19:21 |
arm-xscale-linux-gnu_oselas.toolchain-1.1.1.tar.gz | 69915673 | 2010/01/31 19:21 |
md5.sum | 173 | 2010/01/31 19:21 |
Для установки распакуйте в /
, нужны права на запись в директорию /opt
.
Cross-компиляторы, собранные Ltib (Ядро 2.6.35)
Файл | Размер | Изменение |
---|---|---|
gcc-4.1.3-glibc-2.5-nptl-3.tar.gz | 47730980 | 2013/03/20 16:32 |
gcc-4.3.3-glibc-2.8-cs2009q1-203.tar.gz | 86944029 | 2013/03/20 16:36 |
gcc-4.4.4-glibc-2.11.1-multilib-1.0.tar.gz | 180136632 | 2013/03/20 16:54 |
Cross-компиляторы, собранные Buildroot (Ядро 4x)
Файл | Размер | Изменение |
---|---|---|
gcc-8.3.0.tar.bz2 | 130598402 | 2019/10/25 20:31 |