Использование семидюймового дисплея 7inch HDMI LCD[B] от компании Waveshare совместно с одноплатным миникомпьютером ODROID-C1(+). Сборка ядра Linux

Совсем недавно наша компания проводила презентацию одноплатного миникомпьютера ODROID-C1 от южно-корейской компании HARDKERNEL. Изделие вызвало глубокий интерес у многих разработчиков не только и не столько своей ценой (на уровне Raspberry Pi), но и превосходными параметрами, поэтому, кроме презентации, ODROID-C1 стал участником Тест-Драйва (№1) – нашего нового сервиса, работающего на регулярной основе.

Современные компании оперативно учитывают ту конкурентную среду, в которой приходится работать, и стараются очень быстро обновлять линейку своей продукции. Конечно, это касается и HARDKERNEL. В настоящее время компания выпустила обновленную модель ODROID-C1+. Поставку нового изделия на наш склад мы ожидаем в ближайшее время.

Сегодня ни для кого не секрет, что для многих разработчиков электронной аппаратуры задача выбора одноплатного компьютера чаще всего тесно переплетается с задачей выбора средства отображения информации. Зачастую пользователи, они же покупатели электронных устройств, оценивают готовое изделие не только по производительности и различным его возможностям, но и по качеству визуализации информации. В частности, важными являются такие характеристики, как тип дисплея, его диагональ, разрешение, наличие сенсорной панели и ее тип, интерфейс и т.д. К сожалению, не всегда можно учесть все потребности разработчиков. Выбор жидкокристаллических индикаторов, которые предлагаются для совместной работы с ODROID-C1 компанией HARDKERNEL, к сожалению, невелик.

Вместе с тем, среди широкой номенклатуры, представленной в офисах и на складах компании Терраэлектроника можно найти, если не всё, то почти всё, включая и различные дисплеи.

Одна из интересных новинок, которая недавно появилась у нас в продаже – жидкокристаллический индикатор от компании Waveshare с диагональю 7 дюймов,  интерфейсом HDMI и емкостным тачскрином – 7inch HDMI LCD[B].

К сожалению, прямое подключение ODROID-C1 к указанному выше дисплею через HDMI интерфейс оказалось невозможным: при такой попытке отсутствует картинка, ну, и, по определению, не работает тачскрин (никто и не обещал). Поэтому перед сотрудниками нашей компании была поставлена задача собрать образ операционной системы, которая позволила бы реализовать функции вывода изображения на указанный выше дисплей с возможностью работы с сенсорной панелью. Занимаясь указанной задачей в фоновом режиме, за несколько дней был собран новый образ ОС – UBUNTU с ядром 3.10. В результате на дисплей 7inch HDMI LCD[B] выводится качественная картинка с разрешением 800 х 480 60 Hz и работает тачскрин.

На дисплей 7INCHHDMILCD[B] выводится качественная картинка с разрешением 800 х 480 60Hz и работает тачскрин.

7INCHHDMILCD[B] - жидкокристаллический индикатор от компании Waveshare с  интерфейсом  HDMI и емкостным тачскрином

7INCHHDMILCD[B]

А теперь опишем процесс сборки ядра операционной системы, которая может понадобиться в случае подключения специализированного оборудования, не включенного в основной образ, предлагаемый поставщиком Odroid-C1 (HARDKERNEL). Это могут быть как ЖК-дисплеи с тачскрином, так и различная периферия. Полный список довольно громоздкий.

Итак, рассмотрим процесс сборки ядра для Odroid-C1. Сборку будем выполнять на самом устройстве (без кросс-компиляции и дополнительного PC).

  1. Сначала необходимо получить исходный код ядра. Берем его с сайта разработчика.

    # cd /usr/src/

    # git clone --depth 1 https://github.com/hardkernel/linux.git -b odroidc-3.10.y

    # cd linux

    В рассматриваемом примере используется ядро версии 3.10, в случае, если git не установлен, ставим его и выполняем шаг 1. Сначала, в примере, в качестве установщика используется apt, из окружения Debian/ Ubuntu:

    # apt-get install git

  2. Проверяем наличие в нашей среде всего необходимого для сборки, а именно компилятора gcc для arm устройств, утилиты make и др. Если какого-то пакета не хватает, то следует установить его. Все необходимое устанавливаем с помощью apt.

    # apt-get install lib32stdc++6  lib32z1 lzop u-boot-tools build-essential gcc libncurses5-dev

    Версию gcc можно проверить командой # gcc –v. Важно, чтобы поле Target соответствовало arm-linux-gnueabihf, т.е. вида: Target: arm-linux-gnueabihf.

    Теперь все готово для сборки ядра.

  3. Находясь в папке /usr/src/linux даем команду:

    # make menuconfig,
    которая должна открыть окно (Рис.1).

    Сборка ядра

    Рис. 1.

    На Рис. 2 представлено окно конфигурации. Допустим, мы хотим включить поддержку ввода с помощью тачскрина, тогда нам нужно перейти в раздел Device Drivers -> Input Device Support -> Touchscreens, и с помощью пробела отметить usbtouchscreen, буква означает использование в качестве модуля, который может быть дополнительно загружен, либо включить поддержку внутри ядра. На рисунке 2 мы выбрали поддержку usbtouchscreen внутри ядра.

    Окно конфигурации. Необходимо включить поддержку ввода с помощью тачскрина

    Рис. 2

    Также можно пройти по всем опциям, найти и включить все необходимое, например, поддержку Bluetooth и многое другое. После того, как все опции включены, необходимо сохранить конфигурацию, как показано на рисунке 3.

    Сохранение конфигурации

    Рис. 3

  4. Приступаем к сборке

    # make –j4 // Задействуем в сборке ядра 4 потока, процессор же четырехъядерный

    # make –j4 modules // Даем интерпретатору make команду на сборку модулей (все то, что в конфигурации было отмечено буквой M)

    # make uImage // Эта команда создает специальное ядро для ARM-архитектуры

    Если все прошло без ошибок, то продолжаем, если же выдалась ошибка, находим, исправляем и запускаем все сначала с make –j4

    # cp arch/arm/boot/uImage/boot/uImage-3.10.80 // Копируем в каталог /boot uImage и ставим ему версию, согласно версии ядра, формат должен быть  uImage-ver.x.y . Данная процедура необходима для корректной установки нового ядра, так как весь процесс установки проходит через раздел/ boot.

    # makeinstall // Данная команда автоматизирует процесс установки, в который включены создание RAM-диска, корректное копирование ядра в папку/ media/ boot и перенос дополнительных файлов, например meson8b_odroidc.dtb

    # make modules_install // Эта команда установит модули в папку /lib/kernel/modules для последующей работы с ними

    Теперь ядро собрано и установлено. Убедимся, что файлы обновились в каталоге /media/ boot, после чего приступаем к перезагрузке.

  5. Ядро должно корректно загрузиться. Проверить версию ядра можно из консоли командой

    # uname –// и убедиться, что версия соответствует собранной. Теперь можно приступить к работе со специализированным устройство, в нашем случае, это был usbtouchscreen. Данная опция позволяет использовать метод ввода через тачскрин, подключенный как через usb, так и через другие интерфейсы.


Образ системы (архив 1.6ГБ) выложен на нашем FTP-сервере

Мы надеемся, что изложенная здесь информация будет полезной для разработчиков и  всех заинтересованных лиц. 

*

Терраэлектроника – это ваше конкурентное преимущество на рынке современной электроники.

Анонс составили и подготовили
Александр Шрага,
a.shraga@terraelectronica.ru,
Александр Перинский,
avp.spb@compel.ru

Производитель: ODROID
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
ODROID-C1
ODROID-C1
ODROID
Арт.: 1894059 ИНФО OBS
Поиск
предложений
Бюджетный четырехъядерный высокопроизводительный одноплатный миникомпьютер ODROID-C1 на основе процессора Amlogic S805 Cortex-A5 (ARM v7) 1.5ГГц
ODROID-C1
-
Поиск
предложений
Производитель: Waveshare Electronics Ltd.
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
7inch HDMI LCD [B]
7inch HDMI LCD [B]
Waveshare Electronics Ltd.
Арт.: 1919182 ИНФО PDF
Поиск
предложений
Цветной 7'' LCD с HDMI интерфейсом, емкостной сенсорной панелью и поддержкой различных систем.
7inch HDMI LCD [B]
-
Поиск
предложений

Сравнение позиций

  • ()