MCom03-Linux: различия между версиями
Kirill (обсуждение | вклад) м (Kirill переименовал страницу 1892ВА018 Drivers and Linux в MCom03-Linux без оставления перенаправления) |
Kirill (обсуждение | вклад) Нет описания правки Метка: визуальный редактор отключён |
||
Строка 1: | Строка 1: | ||
'''Обратно на [[1892ВА018 (Скиф)]]''' | '''Обратно на [[1892ВА018 (Скиф)]]''' | ||
== Добавить пакеты/модули ядра в AltLinux из Buildroot == | |||
В этом руководстве будет добавлен модуль ядра SCTP в AltLinux | |||
=== Добавить модуль ядра в buildroot и собрать === | |||
В папке с распакованным архивом mcom03-defconfig-src.tar.gz применить defconfig (<code>make mcom03_defconfig FRAGMENTS=rockpi</code>) и выполнить команду | |||
make linux-menuconfig | |||
Далее по пути | |||
│ -> Networking support | |||
│ (1) -> Networking options | |||
Включить клавишей '''`M`:''' <M> The SCTP Protocol ---> | |||
M – в виде модуля ядра. | |||
При необходимости можно воспользоваться поиском (клавиша `/`) и ввести '''sctp'''. Чтобы включить дополнительные параметры. | |||
Далее '''Save''' и выйти из menuconfig '''`ESC ESC`''' | |||
В терминале в директории mcom03-defconfig-src: | |||
make linux-rebuild && make | |||
При необходимости протестировать полученный rootfs на плате (удостовериться, что модуль ядра загружен и работает) | |||
=== Сборка AltLinux === | |||
Понадобится rootfs AltLinux и '''rootfs''' из собранного buildroot (с включенными SCTP) | |||
В архиве<ref>[https://box.elvees.com/index.php/s/pgNBei2tfEtqcJb Архив create-alt-rootfs]</ref> скрипт, который копирует нужные папки и ядро из buildroot в Altlinux (см README) | |||
Полученный образ Alt можно прошить на uSD и загрузиться. Также рекомендуем прошить sbl.bin на QSPI из текущей сборки buildroot. | |||
Проверка загрузки модуля ядра на AltLinux | |||
[elvees@altgo1 ~]$ uname -a | |||
Linux altgo1 4 . 19.106 #2 SMP Wed Apr 5 16:24:31 MSK 2023 aarch64 GNU/Linux | |||
[elvees@altgo1 ~]$ lsmod | grep sctp | |||
sctp 397312 4 | |||
== HOWTO: spidev в Buildroot для 1892ВА018 == | == HOWTO: spidev в Buildroot для 1892ВА018 == | ||
Строка 108: | Строка 151: | ||
50000000 10 | 50000000 10 | ||
</pre> | </pre> | ||
== Ссылки == | |||
<references /> |
Версия от 12:09, 5 июня 2023
Обратно на 1892ВА018 (Скиф)
Добавить пакеты/модули ядра в AltLinux из Buildroot
В этом руководстве будет добавлен модуль ядра SCTP в AltLinux
Добавить модуль ядра в buildroot и собрать
В папке с распакованным архивом mcom03-defconfig-src.tar.gz применить defconfig (make mcom03_defconfig FRAGMENTS=rockpi
) и выполнить команду
make linux-menuconfig
Далее по пути
│ -> Networking support
│ (1) -> Networking options
Включить клавишей `M`: <M> The SCTP Protocol --->
M – в виде модуля ядра.
При необходимости можно воспользоваться поиском (клавиша `/`) и ввести sctp. Чтобы включить дополнительные параметры.
Далее Save и выйти из menuconfig `ESC ESC`
В терминале в директории mcom03-defconfig-src:
make linux-rebuild && make
При необходимости протестировать полученный rootfs на плате (удостовериться, что модуль ядра загружен и работает)
Сборка AltLinux
Понадобится rootfs AltLinux и rootfs из собранного buildroot (с включенными SCTP)
В архиве[1] скрипт, который копирует нужные папки и ядро из buildroot в Altlinux (см README)
Полученный образ Alt можно прошить на uSD и загрузиться. Также рекомендуем прошить sbl.bin на QSPI из текущей сборки buildroot.
Проверка загрузки модуля ядра на AltLinux
[elvees@altgo1 ~]$ uname -a Linux altgo1 4 . 19.106 #2 SMP Wed Apr 5 16:24:31 MSK 2023 aarch64 GNU/Linux [elvees@altgo1 ~]$ lsmod | grep sctp sctp 397312 4
HOWTO: spidev в Buildroot для 1892ВА018
На примере исследовательской платы MCom03-BuB.
В файл linux-mcom03/arch/arm64/boot/dts/elvees/mcom03-bub-r1.3.0.dts
(dts-файл может поменяться) добавить:
&spi0 { status = "okay"; num-cs = <1>; cs-gpios = <&gpio0c 6 GPIO_ACTIVE_LOW>; spidev: spidev@0{ status = "okay"; compatible = "spidev"; reg = <0>; #address-cells = <1>; #size-cells = <0>; spi-max-frequency = <500000>; }; };
В сборке Buildroot включить пакет для Python, чтобы можно было запустить тестовый скрипт - python-spidev.
После этого в /dev/
должно появиться устройство вида /dev/spidev2.0
Для тестирования можно воспользоваться либо встроенной утилитой spidev-test (возможно ее нужно включить при конфигурации), либо самописной утилитой test_spi.py (код программы см. ниже).
Для проверки SPI необходимо соединить MISO и MOSI одним проводом (режим loopback).
test_spi.py
import argparse import spidev def freq_test(spi): send = bytearray(b"hello world") good_result = "hello world" kHz = 1000 MHz = 1000000 speeds = [ 10 * kHz, 30 * kHz, 100 * kHz, 300 * kHz, 1 * MHz, 3 * MHz, 10 * MHz, 30 * MHz, 40 * MHz, 50 * MHz, ] print("{:<15} {:<30}".format("Speed, Hz", "error_cnt")) for speed in speeds: i = 0 error_cnt = 0 while i < 10: ret = spi.xfer(send, speed, 0, 8) ret = "".join(chr(e) for e in ret) if ret != good_result: error_cnt += 1 i += 1 print("{:<15} {:<30}".format(speed, error_cnt)) def main(): parser = argparse.ArgumentParser( description="Script for SPI loopback test on different speeds. " "Required to connect MISO and MOSI by one wire. " ) parser.add_argument( "-p", "--port", default="/dev/spidev2.0", help="Spidev device (/dev/spidevX.Y)", ) args = parser.parse_args() spi_bus = int(args.port.replace("/dev/spidev", '')[0]) spi_device = int(args.port.replace("/dev/spidev", '')[-1]) spi = spidev.SpiDev() spi.open(spi_bus, spi_device) freq_test(spi) if __name__ == '__main__': main()
Результаты работы скрипта примерно следующие:
- python spi_test.py -p /dev/spidev2.0
Speed, Hz error_cnt
10000 0 30000 0 100000 0 300000 0 1000000 0 3000000 0 10000000 0 30000000 0 40000000 0 50000000 10