Cubox-i
Вторая версия ARM мини-компьютера Cubox носит название Cubox-i и базируется на Freescale i.MX6 чипе.
Установка из готового образа
TBD
Сначала сделаем все руками и только потом автоматизируем!!!
Ручная сборка
toolchain
Удобно использовать сборки от Linaro. Качать архив, начинающийся с gcc-linaro-armeb-linux-gnueabihf-
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 в блоге.
Железо
Графика
- 2D -- фреймбуфер из коробки
- 3D -- TBD (должно как-то работать)
- Аппаратая поддержка видео -- TBD
Звук
Работает из коробки.
- 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