Cubox-i

Материал из ALT Linux Wiki

Вторая версия ARM мини-компьютера Cubox носит название Cubox-i и базируется на Freescale i.MX6 чипе.

Установка из готового образа

TBD

Сначала сделаем все руками и только потом автоматизируем!!!

Ручная сборка

toolchain

Удобно использовать сборки от Linaro. Качать архив, начинающийся с gcc-linaro-armeb-linux-gnueabihf-

wget http://releases.linaro.org/latest/components/toolchain/binaries/gcc-linaro-armeb-linux-gnueabihf-4.9-2014.09_linux.tar.bz2

TBD

bootloader

git clone https://github.com/SolidRun/u-boot-imx6.git

TBD

Kernel

Оригинальное описание сборки на Wiki Solid-run.

export CROSS_COMPILE=armeb-linux-gnueabihf- export ARCH=arm

git clone https://github.com/SolidRun/linux-imx6-3.14

make imx_v7_cbi_hb_defconfig

make zImage imx6q-cubox-i.dtb imx6dl-cubox-i.dtb imx6dl-hummingboard.dtb imx6q-hummingboard.dtb

cp arch/arm/boot/dts/*.dtb arch/arm/boot/zImage <PATH_TO_FAKE_ROOT>/boot/

make modules make modules_install INSTALL_MOD_PATH=<PATH_TO_FAKE_ROOT>

Вменяемое описание процесса загрузки ядра у Russell King в блоге.


Железо

Графика

Звук

Работает из коробки.

  • HDMI -- не проверял
  • SPDIF -- не проверял

WiFi

Работает.

Для работы необходимы файлы прошивки. Работающая версия для ядра 3.14: рецепт. Правила для udev не нужны.

wget http://myplugbox.com/cb/cuboxi-brcm-firmware.tar.gz

Файлы нужно положить в системный путь: /lib/firmware/brcm/

Перезагрузить машинку либо удалить, а затем загрузить модуль brcmfmac. Для проверки работоспособности устройства:

ip link set dev wlan0 up
iwlist scan


Ethernet

Работает из коробки.

Загрузка по сети работает.

USB

Работает из коробки.

e-SATA

TBD

IR

TBD

"Лампочки на панельке"

В конфиге ядра:

CONFIG_LEDS_PWM=y


Выключить:

echo 0 > /sys/devices/soc0/pwmleds.24/leds/imx6:red:front/brightness

Включить:

echo 1 > /sys/devices/soc0/pwmleds.24/leds/imx6:red:front/brightness

Разработка

Для работы с ARM-chroot

На хосте установить:

  • qemu-user-binfmt_misc: пакет содержит статические бинарники для эмулятора железа
  • systemd-utils: в составе есть сервис lib/systemd/system/systemd-binfmt.service, который регистрирует обработчики форматов binfmt.

binfmt

По-умолчанию нет обработчика для архитектуры armh. А обработчик arm использует динамически слинкованный бинарник.

Чтобы исправить -- регистрируем обработчик для архитектуры armh и удаляем архитектуру arm:


echo ":qemu-armh:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/.host/qemu-arm:" > /etc/binfmt.d/qemu-armh.conf
rm /lib/binfmt.d/qemu-arm.conf
systemctl restart systemd-binfmt.service

Note: в качестве обработчика используется статически слинкованный qemu-armh.static, который должен быть скопирован в "/.host/qemu-arm" для совместимости с hasher и другим софтом на его основе: Ports/arm/BuildHowto

Настройка загрузки по сети

TBD

mkimage-profiles

TBD