Задать вопрос
Ответы пользователя по тегу ARM
  • Можно ли запускать на серверах c ARM процессорами, виртуальные машины на х86, amd64?

    @res2001
    Developer, ex-admin
    Это уже не виртуализация, а эмуляция. Как писали выше qemu это умеет, но из-за эмуляции большая потеря производительности. Это можно использовать где-то в тестовой среде или в разработке, но явно не в продакшене.
    Ответ написан
    Комментировать
  • Что значит запись shifter_carry_out = C Flag?

    @res2001
    Developer, ex-admin
    Видимо имеется ввиду бит C (Carry condition flag) регистра CPSR. Обычно по контексту понятно, что имеется ввиду.
    Вообще в таких случаях приводите больше контекстной информации, а то вы выдернули кусок кода откуда то, думай что хочешь.
    Ответ написан
    3 комментария
  • Где найти информацию по конфигурации uboot?

    @res2001
    Developer, ex-admin
    У меня был некоторый опыт с uboot, правда для другой ОС

    Если у вас какая-то стандартная покупная плата, то возможно в uboot уже есть готовый config. Обычно производители плат в документации указывают как собрать uboot под их плату (если они поддерживают uboot), либо это можно нагуглить в интернете.
    Если же плата самодельная, то берете самый близкий для вашей платы config (вы же брали за основу какой-то референс дизайн платы, вот эту плату и берите за основу), переименовываете его и вносите в него соответствующие изменения.
    Бывает, что вместе с config'ом требуется вносить изменения и в dts, они в uboot лежат в ./arch/<platform name>/dts. Название используемых dts лежит в переменной CONFIG_DEFAULT_DEVICE_TREE и/или в CONFIG_OF_LIST в config файле.

    Config файл - это просто набор параметров, которые превращаются в набор инструкций #define при сборке.
    С dts все сложнее. Там целый язык описания железа.

    Для сборки uboot рекомендую следующую последовательность:
    1. Заведите для сборки отдельный пустой каталог. Он будет текущим каталогом для всех дальнейших команд
    2. Пусть каталог где лежит сам uboot хранится в переменной UBOOT_DIR. Архитектура процессора вашей платы (например arm) в переменной ARCH. Префикс для кросскомпилятора в CROSS (например arm-linux-gnueabihf-). Имя выбранного defconfig файла в переменной DEFCONFIG (имя указываете вместе с суффиксом _defconfig)
    3. Очистка каталога сборки:
    make -C $UBOOT_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS distclean

    Эта команда пригодится при пересборках в случае изменения конфигурации
    4. Подготовка конфигурации для сборки:
    make -C $UBOOT_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS $DEFCONFIG

    5. Сборка: make -C $UBOOT_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS

    Несколько полезняшек:
    1. Вы можете задавать дополнительную опцию для make: -O <путь>
    Она задает каталог, в котором будет происходить сборка. Этот каталог make создаст сама. Это бывает удобно, если работаете сразу с несколькими конфигами.
    2. В uboot встроен конфигуратор конфигов :) Конфигурация происходит в текстовом режиме с помощью меню, присутствуют подсказки для опций и т.п. Когда вы создали начальную конфигурацию в п.4 выдайте команду:
    make -C $UBOOT_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS menuconfig

    Тут то же можно добавлять опцию -O для выбора каталога с конфигурацией. После исправления конфигурации, не забудьте ее сохранить.
    Дальше нужно дать команду:
    make -C $UBOOT_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS savedefconfig

    Она создаст на основе текущей конфигурации defconfig файл в каталоге сборки. Этот файл можно переименовать в <имя платы>_defconfig и подложить в каталог с конфигами uboot и в дальнейшем использоавть его для сборки.
    3. В каталоге с uboot дайте комаду make help для получения списка возможных опций.
    4. Обычно я собираю uboot под линукс, но та же схема вполне работает и в WSL под виндой. Набор кросс-компиляторов есть в портах (в WSL исопльзовал дистрибутив ubuntu).

    Желаю удачи!
    Ответ написан
    4 комментария
  • Как запустить arch linux на beaglebone black?

    @res2001
    Developer, ex-admin
    BBB не видит карту

    По ссылке описан raw вариант загрузки с карты памяти.
    Есть еще и вариант загрузки с загрузочного FAT/FAT32 раздела. Но, возможно его надо включать какими-то переключателями на плате.
    Там просто размещаете файлы загрузчика и ядра в корне раздела.
    Вообще у Texas Instruments есть своя сборка Линукс. Используйте ее, а не arch. Там же можете найти описание создания загрузочного носителя для линукс (конечно, применительно к своему дистру). У них толковая дока.
    Ответ написан
  • Как Получить точное синхронное время в миллисекундах на множествах девайсах от rtc?

    @res2001
    Developer, ex-admin
    Раз речь идет о сетевых устройствах, то вам, видимо, нужна реализация NTP для вашего девайса и ОС. Посмотрите RFC 5905, может найдете, что-то готовое или реализуете сами. Собственно, возможно, реализовывать придется только транспортную часть, т.к. логику можно взять из уже существующего ПО.
    Ответ написан