skysilver

 
<<< Назад

Кросс-компиляция ядра для 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 /

Профит!

Обсуждение (0) (6)

Смотрите так же:
06.04.2020 Получение данных о COVID с карты Яндекс
12.07.2019 MajorDoMo и Яндекс Алиса. Алиса, включи канал Карусель.
20.06.2019 MajorDoMo и Яндекс Алиса. Алиса, измени цвет бра на красный.
18.06.2019 MajorDoMo и Яндекс Алиса. Алиса, сделай ярче настольную лампу.
17.06.2019 MajorDoMo и Яндекс Алиса. Алиса, включи свет на кухне.
10.06.2019 MajorDoMo и Яндекс Алиса. Модуль Yandex Home.
06.06.2019 MajorDoMo и Яндекс Алиса. Объединение аккаунтов.
05.06.2019 MajorDoMo и Яндекс Алиса. Регистрация приватного навыка.
03.06.2019 Загрузка PHP-расширения PDO MySQL в Windows
01.06.2019 MajorDoMo и Яндекс Алиса. Публикация вебхуков.
29.05.2019 MajorDoMo и Яндекс Алиса. Общие сведения.
22.05.2019 Экспресс контроль состояния циклов в Linux
08.05.2019 Сценарий контроля состояния SSL сертификатов сайтов
26.02.2019 Экспорт графиков в PNG-файл в модуле Charts
26.01.2019 Мультисерийный кастомный график в модуле Charts
13.12.2018 График с цветовой индикацией выхода величины за пределы
12.11.2018 Кастомный график в модуле Charts
15.08.2018 Кронштейн NB F120 (North Bayou)
18.07.2018 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 3.
20.06.2018 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 2.
15.06.2018 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 1.
14.05.2018 Ссылки на ресурсы по MajorDoMo
02.03.2018 Знакомство и тестирование Banana Pi M2U
21.02.2018 Распаковка Banana Pi M2U
14.02.2018 Одноплатный ПК для MajorDoMo
14.08.2018 Заметки по железу
23.01.2018 Мой взгляд на вопрос голосового управления в MajorDoMo
17.01.2018 Обзор цен на устройства Xiaomi
24.12.2017 Гирлянда на ESP8266 и WS2812
20.12.2017 Блог им. skysilver

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

На форуме: skysilver

Веб-сайт:
http://connect.smartliving.ru/profile/461