Говорю же, добился не я, а дядьки, которые сочиняли проект linux-c6x.

В общем итоге, драйвер в виде модуля я собрал, platform_device из него зарегистрировал, устройство (UART внешний) теперь поднимается при insmod и вполне себе живет.
Прикрутил еще vlynq_device на шину, теперь на шине есть device вида /sys/bus/vlynq/devices/<dev-id>/
Что-то только проморгал я, где надо было зарегистрировать и что, чтобы было вида /sys/bus/vlynq/<bus_no>/devices/<dev-id>/.
Но пока это не страшно, так как шина все равно одна. Но правильнее, когда там номер стоит, в некоторых чипах бывают по два кора VLYNQ (кто их видел?).
Цитата
Как я понимаю, все unresolved external там есть. А правильный он или нет, разбирается insmod, и ругается, если что. А отличие от ".o" лишь в одной букве расширения.
Не, на этапе сборки оно тоже разбирается. Сделал просто функцию aaaa, и вот:
Код
__modpost: vmlinux .../Linux/Drivers/m8_hub/m8_hub.o [.../Linux/Drivers/m8_hub/m8_hub.o FORCE]
MODPOST 1 modules
WARNING: "aaaa" [.../Linux/Drivers/m8_hub/m8_hub.ko] undefined!
так что умеет оно видеть ссылки, что не в ядре.