Инструменты пользователя

Инструменты сайта


odroidc1

ODROID-C1

Протестированные дистрибутивы Linux

Board: ODROID-C1+ REV 0.4.20150930
Chipset: USB GL852G, LAN RTL8211F

LinuxKernelРезультат
arch linux 2017-023.10.104-7OK
arch linux 2017-023.10.104-9OK
arch linux 2017-043.10.104-11Иногда зависание всех консолей с клавиатурой USB после выхода из X
armbian 5.243.10.104Проблемы с USB
ubuntu MATE 16.04, ubuntu minimal 16.043.10.96-154Проблемы с USB
odrobian-jessie 2.0 vanilla3.10.80-20Проблемы с USB
odrobian-jessie 2.0 vanilla3.10.96-45Проблемы с USB

Установка ArchLinux

С версии 2017-04 перестал нормально распаковываться архив с образом rootfs через bsdtar. В консоль выходит ряд предупреждений, заканчивающихся строкой:

bsdtar: Error exit delayed from previous errors.

Решение проблемы: распаковывать просто через Midnight Commander.

Настройка

Опции ядра

Опции ядра в файле /boot/boot.ini:

  1. Настроить тип монитора (HDMI, DVI или VGA), разрешение экрана (переменные vout_mode,m).
  2. Установить тактовую частоту (переменная max_freq).
  3. Установить терминал доступа (переменная bootargs): по умолчанию стоит ttyS0 (отдельный разъем на плате), но можно поставить ttyS2 (40-контактный разъем GPIO).

Настройка видеорежима

Рекомендации по настройке видеорежима в файле /boot/boot.ini.

  • Если подключается монитор или телевизор по HDMI, выбрать
    setenv vout_mode "hdmi"
  • Если подключается монитор через переходник HDMI-VGA с разрешением 1280×1024 или выше, выбрать
    setenv vout_mode "hdmi"
  • Если подключается монитор через переходник HDMI-VGA с разрешением 800×600 или ниже, выбрать
    setenv vout_mode "vga"
  • Если подключается монитор через переходник HDMI-DVI, выбрать
    setenv vout_mode "dvi"

Композитный видеовыход (CVBS)

В файле /boot/boot.ini установить видеорежим:

setenv m "576cvbs" (для PAL)
setenv m "480cvbs" (для NTSC)

В списке bootargs поставить соответствующий параметр, например cvbsmode=576cvbs.

Источники:
http://forum.odroid.com/viewtopic.php?f=111&t=7726

Программный курсор в терминале

В Linux для плат ODROID по-умолчанию отключен программный курсор в терминале при отсутствии аппаратного курсора. Создаем файл /usr/local/bin/swcursor:

#!/bin/bash
echo -n -e '\e[?16;0;32c'

Последнее число определяет цвет (зеленый) и должно быть кратно 16.

В файле /etc/profile добавляем в конец:

swcursor

Если после работы какой-либо терминальной программы курсор отключается, его можно вернуть через команду swcursor.

Источники:
https://archlinuxarm.org/forum/viewtopic.php?f=63&t=8389
http://linuxgazette.net/137/anonymous.html

Адаптация ОС для работы с flash-накопителем

Отключение записи системного журнала

Для экономии места на карте памяти и ресурса по числу записей можно отключить запись логов journald. В файле /etc/systemd/journald.conf поставить:

[Journal]
Storage=none

Саму службу отключать не надо, в крайнем случае замаскрировать (systemctl mask systemd-journald.service). Логи удалить вручную из каталога /var/log/journal.

Отключение других служб

Отключение фонового индексирования страниц руководства man:

# systemctl mask man-db.timer

Подключение терминала к UART

Управление через терминал может быть полезно при отсутствии клавиатуры и монитора, а также невозможности использования SSH (сеть еще не настроена). Кроме того, для диагностики сообщений ядра отдельный терминал удобнее, т.к. сообщения остаются в нем после перезагрузки или зависания системы.

Для подключения к UART 2 (устройство /dev/ttyS2) через 40-контактный разъем GPIO использовать контакты:

N контактаНазваниеНазначение
6GNDОбщий
8TxD1Выход UART платы, подключить ко входу (RxD) UART терминала
10RxD1Вход UART платы, подключить к выходу (TxD) UART терминала

Напряжение лог. «1» - 3.3 В.

Arch Linux

X Window

Информация с сайта ArchLinux:
X.org video driver package: xf86-video-odroid-c1.
Mali EGL and GLES drivers (installed with xf86-video-odroid-c1): odroid-c1-libgl

Установить пакеты в указанном порядке:

  • xf86-video-odroid-c1
  • xorg-server
  • xorg-xinit
  • xterm
  • icewm

Добавить пользователей в группу video для доступа к устройствам /dev/mali и /dev/ump. Например, добавить пользователя alarm:

usermod -a -G video alarm

В файле /etc/X11/xinit/xinitrc (в конце) удалить загрузку ненужных программ:

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

Источники:
https://wiki.archlinux.org/index.php/Xinit
https://archlinuxarm.org/forum/viewtopic.php?f=60&t=8276
http://forum.odroid.com/viewtopic.php?f=117&t=7745

Ubuntu 16.04 LTS

Рекомендуемые пакеты

Рекомендуемые пакеты:

  • для работы: mc, minicom, man, lsof, usbutils.
  • для разработки: libssl-dev (для сборки Poco), gdb, wiringpi, git, cmake.

Пакеты, которые можно удалить после установки: ureadahead.

После установки можно очистить кеш скаченных пакетов:

apt-get clean

X Window

Минимальный набор пакетов для X Window: xserver-xorg, xserver-common, xinit, xterm, mali-x11, xserver-xorg-video-mali. Пакеты устанавливать через команду:

apt-get install --no-install-recommends <пакеты...>

После установки добавить обычных пользователей в группы: video и input:

usermod -a -G video,input <пользователь>

Проверить все группы пользователя можно командой groups <пользователь>.

Настройка X на ODROID-C1+ и Ubuntu 16.04

Шина Dallas 1-Wire

Support for Dallas 1 Wire is included on Kernel 3.10.67-52 and upwards. Make sure you are updated. Will cover an example of a temperature sensor well known DS1820 other 1 wire IC's are supported too.

Default GPIO for 1-Wire is Pin #7 (GPIO83)

Pin 1 (Left) Ground (-)
Pin 2 (Middle) Pin #7 C1
Pin 3 (Right) VCC (3.3V)

Источник: http://odroid.com/dokuwiki/doku.php?id=en:c1_hardware_1w

Известные проблемы

Проблемы с USB шиной

Отключение USB устройств с последующим падением ядра

В процессе работы может отвалиться USB-устройства, например, клавиатура, с сообщением в dmesg типа:

[   15.857444] hid_irq_in too many eproto,try to reset device
[   15.857616] hub 1-1.4:1.0: cannot reset port 4 (err = -71)

Через 2 минуты после этого возникает падение ядра (kernel panic).

Источники:
http://forum.odroid.com/viewtopic.php?f=111&t=16885&p=115521

Отключение USB устройств с продолжение работы системы

Внезапное отключение CH341 после работы в течение нескольких часов:

[ 3620.176078] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[ 3620.176942] ch341 1-1.2:1.0: device disconnected
[ 3622.698996] usb 1-1.1: new full-speed USB device number 7 using dwc_otg
[ 3622.800363] ch341 1-1.1:1.0: ch341-uart converter detected
[ 3622.802329] usb 1-1.1: ch341-uart converter now attached to ttyUSB0
[ 7464.049812] urb_enqueue:urb(edf87900) had been killed
[ 7464.050882] WARN::urb_dequeue:964: urb->hcpriv == NULL! urb = edf87900 status=-2
[ 9976.448483] hid_irq_in too many eproto,try to reset device
[ 9976.718857] usb 1-1.4: reset low-speed USB device number 4 using dwc_otg

Источники:
http://forum.odroid.com/viewtopic.php?f=117&t=25659
http://forum.odroid.com/viewtopic.php?t=23033&p=154710 (ODROID C1+: Computer freezes when reading from USB devices)

Причина проблем с устройствами USB

  • плохое питание платы (через тонкий кабель) или питание через разъем miniUSB/OTG;
  • ошибки драйвера USB, необходимо установить Linux с ядром не ниже 3.10.104-7.

Искажения в видеокартинке через HDMI

Если устройство отображения подключить после загрузки ОС, то возможно искажение «растра» и сбой в виде сжатия рабочей области экрана по вертикали, наличие мусора, остатков от изображения консоли tty1 и пр. Устройство отображения информации по HDMI необходимо подключать до включения питания платы. Проблема выявлена при настройке видеовыхода на режим DVI.

GPIO и библиотека wiringc1

Установка и настройка

Для ODROID-C1 необходимо установить пакет wiringc1. Пакет wiringpi устанавливать не надо!

После установки необходимо обеспечить доступ к устройству /dev/gpiomem, которое отображает регистры управления GPIO в область памяти. Для этого необходимо выполнить действия:

1) создать группу gpio и включить в неё пользователя (например, alarm для ArchLinux):

groupadd gpio
usermod -a -G gpio alarm

2) настроить правило для udev:

cat > /etc/udev/rules.d/90-gpiomem.rules
SUBSYSTEM=="meson-gpiomem", GROUP="gpio", MODE="0660"

Источники:
https://wiki.odroid.com/troubleshooting/gpiomem

Схема расположения выводов

odroidc1.txt · Последние изменения: 2018/03/15 15:08 — reug