Czyli nawijaj z Cezarym w pierwszej kolejności - to jego buildy i podpowie Ci co najlepiej zrobić w tej sytuacji.
I oczywiście wiadomo - nie instaluj modułu jądra 3.18.17 w jajku 3.18.18 - to najgorszy możliwy scenariusz postępowania i 99 % pewności, że: 1) nie da się zainstalować b) będzie powodował problemy w działaniu (i ma prawo). Może ścieżki masz niezgodne w opkg.conf ? Może być też tak, że Cezary nie zbudował danego modułu do swojej bazy pakietów, więc opkg szuka go tam gdzie ma podane dodatkowo ścieżki (tu openwrt.org) - tyle, że w tamtym repo moduły kernela są do w ogóle innego jądra, w sumie wystarczy, że nie do tej samej wersji (bo mógłbyś spróbować użyć opcji --nodeps, czy --force, nie pamiętam już dokładnie - sprawdzisz sobie, by zainstalować dany moduł gdyby była ta sama wersja). Nie próbuj jednakże w ogóle instalacji jak to nie do tej wersji jądra.
Ogólnie moduły kernela i kernel - czyli w sumie baza jądra + dodatkowe moduły wkompilowane na stałe i startujące wraz z ładowaniem jądra do ram/uruchamianym systemem - tworzą razem coś w rodzaju rejestru, każdy moduł ma swoje określone miejsce w całości co warunkuje głównie adres w pamięci ram.
I dlatego się nie miesza modułów jądra z różnych kerneli tylko razem wszystko buduje - niektóre jako włączone do jądra na stałe, a pozostałe jako dostępne do instalacji - ale z tej samej kompilacji.
EDIT:
Dla pewności podaj jeszcze wynik uname -a