skysilver

 
<<< Back

Кросс-компиляция ядра для Banana Pi M2U

Инструкция по настройке окружения для выполнения кросс-компиляции ядра или его модулей для Banana Pi M2U.

Очевидно, что использовать одноплатные ПК с ARM-архитектурой для сборки ядра, дело неблагодарное, т.к. их производительность в этом плане крайне низкая, и времени занимает очень много. В связи с этим широко применяется кросс-компиляция, выполняемая на обычных ПК.

Порядок по настройке окружения для выполнения кросс-компиляции ядра (или его модулей) для Banana Pi M2U получается такой.

  1. Подготавливаем виртуальную машину с 64-разрядной Ubuntu 16.04 (server или desktop). В качестве гипервизора я использовал Oracle VM VirualBox. Размер диска в настройках ВМ указываем не менее 20 Гб. Имя пользователя задаем pi, такое же, как и по умолчанию в Bananapi.

  2. Подключаемся к ВМ по SSH и ставим необходимые пакеты.
    sudo apt-get update
    sudo apt-get install bc make git gcc gcc-arm-linux-gnueabihf u-boot-tools ncurses-dev -y
    sudo dpkg --add-architecture i386
    sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 -y
  3. Клонируем официальный репозиторий с исходниками с Github.

    cd ~/
    git clone https://github.com/BPI-SINOVOIP/BPI-M2U-bsp.git
    cd BPI-M2U-bsp

    При необходимости редактируем файл build.sh, чтобы выставить предпочитаемый видео выход и его разрешение.

    nano build.sh

    По умолчанию установлено BOARD=BPI_M2U_LCD5. Для себя я ставлю BOARD=BPI_M2U_720P.

  4. Теперь все готово к кросс-компиляции. Запускаем мастер.

    sudo ./build.sh
  5. Выбираем нужные опции и ждем окончания. При первом запуске рекомендую выбрать п. 1 и прогнать всю процедуру сборки.

  6. По завершению скомпилированные файлы будут размещаться в /home/pi/BPI-M2U-bsp/SD.

Пересборка ядра мне потребовалась для того, чтобы появилась возможность пользоваться утилитой iotop, которая ни в какую не запускается на дефолтных ядрах в официальных образах для Banana Pi M2U, т. к. в них ядро собрано без трех нужных опций:

sudo iotop -ao
Could not run iotop as some of the requirements are not met:
- Linux >= 2.6.20 with
  - I/O accounting support (CONFIG_TASKSTATS, CONFIG_TASK_DELAY_ACCT, CONFIG_TASK_IO_ACCOUNTING)

Чтобы исправить этот казус, внесем изменения в конфиг ядра, выбрав опцию "4. Kernel configure."
В открывшемя редакторе конфигурации ядра включаем нужные модули:

  • General setup -> CPU/Task time and stats accounting
  • General setup -> CPU/Task time and stats accounting -> Export task/process statistics through netlink
  • General setup -> CPU/Task time and stats accounting -> Export task/process statistics through netlink -> Enable extended accounting over taskstats
  • General setup -> CPU/Task time and stats accounting -> Export task/process statistics through netlink -> Enable extended accounting over taskstats -> Enable per-task storage I/O accounting

kernel_cfg

Сохраняем изменения, выходим из конфигуратора и запускаем полную сборку "1. Build all, uboot and kernel and pack to download images."

После завершения в /home/pi/BPI-M2U-bsp/SD забираем архивы BPI-BOOT-bpi-m2u.tgz и 3.10.108-BPI-M2U-Kernel.tgz и переносим их на Banana Pi M2U.

Архив BPI-BOOT-bpi-m2u.tgz распаковываем в /dev/mmcblk0p1 (раздел загрузчика), предварительно примонтировав его куда-либо:

sudo mount /dev/mmcblk0p1 /media/BPI-BOOT
sudo tar –xvf BPI-BOOT-bpi-m2u.tgz -C /media/BPI-BOOT/

Архив 3.10.108-BPI-M2U-Kernel.tgz распаковываем в корневой раздел:
sudo tar -xvf 3.10.108-BPI-M2U-Kernel.tgz -C /

Профит!

Discuss (0) (6)

See also:
2020-04-06 Получение данных о COVID с карты Яндекс
2019-07-12 MajorDoMo и Яндекс Алиса. Алиса, включи канал Карусель.
2019-06-20 MajorDoMo и Яндекс Алиса. Алиса, измени цвет бра на красный.
2019-06-18 MajorDoMo и Яндекс Алиса. Алиса, сделай ярче настольную лампу.
2019-06-17 MajorDoMo и Яндекс Алиса. Алиса, включи свет на кухне.
2019-06-10 MajorDoMo и Яндекс Алиса. Модуль Yandex Home.
2019-06-06 MajorDoMo и Яндекс Алиса. Объединение аккаунтов.
2019-06-05 MajorDoMo и Яндекс Алиса. Регистрация приватного навыка.
2019-06-03 Загрузка PHP-расширения PDO MySQL в Windows
2019-06-01 MajorDoMo и Яндекс Алиса. Публикация вебхуков.
2019-05-29 MajorDoMo и Яндекс Алиса. Общие сведения.
2019-05-22 Экспресс контроль состояния циклов в Linux
2019-05-08 Сценарий контроля состояния SSL сертификатов сайтов
2019-02-26 Экспорт графиков в PNG-файл в модуле Charts
2019-01-26 Мультисерийный кастомный график в модуле Charts
2018-12-13 График с цветовой индикацией выхода величины за пределы
2018-11-12 Кастомный график в модуле Charts
2018-08-15 Кронштейн NB F120 (North Bayou)
2018-07-18 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 3.
2018-06-20 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 2.
2018-06-15 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 1.
2018-05-14 Ссылки на ресурсы по MajorDoMo
2018-03-02 Знакомство и тестирование Banana Pi M2U
2018-02-21 Распаковка Banana Pi M2U
2018-02-14 Одноплатный ПК для MajorDoMo
2018-08-14 Заметки по железу
2018-01-23 Мой взгляд на вопрос голосового управления в MajorDoMo
2018-01-17 Обзор цен на устройства Xiaomi
2017-12-24 Гирлянда на ESP8266 и WS2812
2017-12-20 Блог им. skysilver

Киров, Россия

На форуме: skysilver

Web-site URL:
http://connect.smartliving.ru/profile/461