если на BananaPi M1 не работает SPI (падает на вызове ioctl(SPI_IOC_MESSAGE) с errno = 22 Invalid argument) — проверьте структуру spi_ioc_transfer в хедере /usr/include/linux/spi/spidev.h (у меня так на Armbian 5.25), дожно быть так:
CODE
struct spi_ioc_transfer {
__u64 tx_buf;
__u64 rx_buf;
__u32 len;
__u32 speed_hz;
__u16 delay_usecs;
__u16 interbyte_usecs;
__u8 bits_per_word;
__u8 cs_change;
__u8 tx_nbits;
__u8 rx_nbits;
__u16 pad;
};

у меня не хватало поля interbyte_usecs, в результате чего в потрохах ioctl не проходила проверка на размер структуры. видимо ядро собрано с одной структурой, а хедер — непонятно откуда sm.gif

лекарство взято вот отсюда:
https://groups.google.com/forum/#!msg/c...fU/4msuJgZYQJcJ