Size: a a a

️Одноплатники чат

2021 August 11

l

linxuil in ️Одноплатники чат
Товарищи, добрый день.
Прошу помощи, уже третий день туплю...

Есть задача - надо прошить spi nand flash в корпусе wson-8, подключив его к расбери 4 по spi. Для этого надо добавить еще один драйвер устройства spi nand flash, чтобы иметь возможность записывать флешки определенного производителя по spi. Исходники того драйвера есть, они были на другой архитектуре в системе линукс и я хочу прикрутить их к расбери. Данные драйвера в итоге заработают на расьери - коллега уже делал жто, но давно и не помнит как.

Подскажите - куда что класть и что добавлять в систему сборки, как правильно собрать (скомпилировать) кастомный образ расбери?
Может слово "образ" не совсем верное и я говорю про "собрать ядро" - как правильно говорить пока тоже не понял, не ругайте строго)

Знаю, что можно записать дефолтный образ с сайиа расьери на карту памяти с помощью спец программы расбери, вроде называется rasberry-imager.
Далее изменить настройки системы и файлы на карте как хочется и после изменений сделать образ (слепок) равный размеру карты карты памяти, на будующее, с уже сделаными изменениями. Сразу говорю - это совсем не то, что мне нужно.

Мне нужно именно добавить драйвера в систему, видимо нужно пересобрать ядро из исходников, предварительно добавив нужный драйвер.

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

Но видимо я ошибся и в реальности  компилируется только ядро (kernel), которое хранится на флешке в разделе boot. Root не трогается совсем.
Делал по этой инструкции.
https://www.raspberrypi.org/documentation/computers/linux_kernel.html

Врпросы:
1) Если я компилирую только ядро, то полуяается в ядре монолитно вкорчеваны все драйвера одним бинарем?
2) Почему настройка ядра идет после его компиляции, а не до этого, это мне вообще крышу сносит и не понимаю зачем тогда этап компиляции быо раньше?
3) Какие файлы нужно изменить, чтобы корректно вкорчевать новый драйвер в кернел, просто положить файлы в папку с драйверами, я так понимаю не вариант - ведь система сборки их не увидит. Читал про лейауты, но если честно не понял имеют ли они отношение к моей задаче или нет - куда копать, направьте пожалуйста.
источник

🔥

🔥🔥Диктор (Дрям Дрон)... in ️Одноплатники чат
жаль, я ничем не могу помочь, я в ядро боюсь ввобще нос сувать =(
источник

/

/home/anton in ️Одноплатники чат
1) в menuconfig выбираешь Y (built-in) или M (module). для всего что M нужно копировать модули в /lib/modules в rootfs и/или initramfs, а ещё лучше собрать пакет.
как M нужно выносить то что либо подключаемое, либо если одно ядро для нескольких плат и тогда выносить нужно различные в них компоненты
2) она идёт до компиляции
3) добавить драйвер в директорию как ты и сказал, но ещё добавить его в Kconfig и Makefile
источник

DP

Dmitry Ponyatov in ️Одноплатники чат
если вядро модульное ничего пересобирать не надо — пиши драйвер модулем, и запускай через insmod/rmmod.
разве что с i/o возможно потребуется скорректировать device tree и подсунуть загрузчику
источник

/

/home/anton in ️Одноплатники чат
страшно
источник

DP

Dmitry Ponyatov in ️Одноплатники чат
если нужна именно спец.прошивка, и обычный raspbian etc точно не подходит, возьми Buildroot и грузи RPi по сети с компа разработчика.

та же схема с сетевой загрузкой должна работать и для отладки драйверов — я бы начал с того что проверил включен ли в обычной сборке kdb  и удалённая отладка по сети, единственный случай когда на самом деле придётся штатное ядро пересобрать
источник

DP

Dmitry Ponyatov in ️Одноплатники чат
если совсем нуб, можно начать со сборок своих прошивок на базе Buildroot, можно сначала для x86 / QEMU — по этой теме есть наибольшие шансы найти мануалы в инете: когда появится понимание, можно будет перейти на ARM-железо, и копать глубже
источник

DP

Dmitry Ponyatov in ️Одноплатники чат
но для написания драйверов это не нужно — всё можно on host делать, только задолбаешься перезагружаться
источник

DP

Dmitry Ponyatov in ️Одноплатники чат
оптимум — как раз удалённая отладка, через kdb/gdb есть шансы сохранять контроль над системой, не доводя до глухого зависания и необходимости ресета
источник

DP

Dmitry Ponyatov in ️Одноплатники чат
совсем примитивные вещи позволяет делать эмуляция в QEMU — попробовать написание драйверов можно в эмуле, прежде чем соваться на реальное железо, и отладочный стенд не придётся вначале собирать
источник

DP

Dmitry Ponyatov in ️Одноплатники чат
ЗЫ: если нужно доп.питания и USB не хватает, подключай 5В с БП компа — у соседа был случай из-за внешнего блока питания, не сгорело но работать не хотело, непредсказуемые зависоны железа
источник

VZ

Vit Zloi in ️Одноплатники чат
А в каком виде исходники? Ну и это точно драйвер а не софтина которая умеет писать в spi для определенных микросхем?
источник

/

/home/anton in ️Одноплатники чат
я имею ввиду страшно потому что можно потратить на 20 минут больше (один раз), собрать пакет, после чего разворачивать и обновлять будет куда проще
источник

/

/home/anton in ️Одноплатники чат
ну если собирать драйвер модулем то от него не должно падать ядро
источник
2021 August 17

VC

Verum Corner in ️Одноплатники чат
источник
2021 August 18

l

linxon in ️Одноплатники чат
Потому что пускай лучше повар делает еду, плотник делает мебель, а сапожник - обувь. Иначе будет треш от широкого профиля до импортозамещения ...
источник

l

linxuil in ️Одноплатники чат
Хм, а 20 млн нищих, это из 140 млн с участием младенцев и пенсионеров?)

Таким постам сразу хочется ответить, что то вроде - начни с себя и изучения статистики/логики
источник

AG

Andrey GL in ️Одноплатники чат
20м нищих - это среди официально работающего или нет трудоспособного населения, у которого официальная зп / пособие по безработице ниже МРОТа.
И хватит тут про политоту. Все понимают что у нас диктатура и геноцид народа, но это не имеет отношения к одноплатникам. Давайте оставаться в русле тематики канала :)
источник

VC

Verum Corner in ️Одноплатники чат
Никакой политики. Только не в этом чате
источник

c

cyberkotik in ️Одноплатники чат
Ахаха
источник