В дополнение к комментарию от Srh BlueOcean, вы также должны проверить значение, возвращаемое modfind ().Вы предполагаете, что он может найти ваш KLD, и это большое предположение.KLD не может быть загружен по какой-либо причине.
Я считаю, что меньшие шаги лучше, поэтому вызовите modfind и распечатайте целочисленный идентификатор, чтобы увидеть, положительный он или отрицательный (-1 - ошибка).
Примерно так:
int modid;
if ((modid = modfind("my_KLD")) < 0) {
perror("modfind failed");
exit(1);
}
if (modstat(modid, &stat) < 0) {
perror("modstat failed");
exit(1);
}
Функция perror () выдаст вам сообщение об ошибке, и вы можете проверить страницу руководства, чтобы определить причину ошибки.Например, ENOENT: «Модуль не найден (возможно, не загружен)».