Здравствуйте.
Мне нужно написать собственный маленький модуль и поместить его в пространство ядра.
N.B. Ничего из сделанного ранее уже не поменять, в том числе выбранный линукс.
В наличии:
SK-iMX6S-OEM-Ind
SK-iMX6S/53/50-MB
buildroot-2017.08 на базе ядра 4.1.15-2.1.0 для i.mx6 от sasamy (тык).
Дебиан 9.3, модифицированный sasamy (тык).
Что сделал:
1. Собрал загрузчик и dtb билдрутом.
2. Создал симлинк на билд:
3. Положил в /usr/src/linux-headers-4.1.15-25-boundary-12s файлы .config и Module.symvers из выхлопа buildroot ( _/output/build/linux-custom/ ).
4. Написал модуль а-ля hello world, только для ядра.
5. Выполнил make - получил:
6. Попытался вставить модуль в ядро, получил:
В выхлопе dmesg ничего.
К слову, на компьютере тоже в дебиан 9 код конечно же работает и даёт вот такой выхлоп:
Содержимое файлов:
Makefile
hello.c
Ранее я уже пытался на плате собирать модуль драйвера сетевой карты, но всё тоже не увенчалось успехом.
Вопросы:
1. Что я опять делаю не так?
2. Что мне нужно сделать, чтобы собрать собственный модуль ядра для этого линукса?
если ядро не менялось и используется от boundary - не надо было ничего менять а собрать с тем что было в оигинале. Если ядро заменено тем что собрано в buidroot то проще собирать модуль на хосте кросскомпилятором и тоже ничего менять не надо.
Мне кажется вы по второму кругу начали обсуждение - я это уже пытался объяснить.
В общем случае - замените ядро, модули, загрузчик, DTB тем что собрано в buildroot
/home/user/buildroot/ - путь к buildroot в котором собрано ядро
Тут собранные исходники ядра которое я подменил в архиве корневой (Дебиан 9.3, модифицированный sasamy (тык).) - совсем забыл что там не оригинальное ядро boundary
Можно об этом поподробнее? Если честно, для меня всё это магия.
Я действую так, как Вы мне ранее объясняли: настраиваю конфиг в билдрут, добавляю там поддержку galcore, собираю. По окончании сборки целиком беру папку output/images и кладу в аналогичную в папке с Вашим дебианом, а затем запускаю mk-sd.sh
То, что я делаю, этого недостаточно?
Или если я сейчас соберу модуль на хост машине по указанному способу кросс-компиляции, он заработает?
Большое спасибо за то, что помогаете и делитесь знаниями с тёмным мной))
значит и ядро заменяете а пишете что только загрузчик и DTB, вам кажется что это неважно а это всё меняет. Соберите тогда как я описал с моим Makefile и закиньте полученный модуль на плату любым способом - должно работать