Для анализа ошибок в работе драйвера смотрим лог dmesg
Видим сообщение от адаптера:
Read file "/etc/Wireless/RT2870AP/RT2870AP.dat" failed
no file read method
Попробуем найти сообщение об ошибке в исходных кодах драйвера, с помощью Notepadqq
Search->Find in files
Заменяем код:
//rt_linux.c Line 1162
int RtmpOSFileRead(RTMP_OS_FD osfd, char *pDataPtr, int readLen)
{
/* The object must have a read method */
if (osfd->f_op && osfd->f_op->read) {
return osfd->f_op->read(osfd, pDataPtr, readLen, &osfd->f_pos);
} else {
DBGPRINT(RT_DEBUG_ERROR, ("no file read method\n"));
return -1;
}
}
На код:
int RtmpOSFileRead(RTMP_OS_FD osfd, char *pDataPtr, int readLen)
{
DBGPRINT(RT_DEBUG_ERROR, ("add: %p %p\n", osfd->f_op, osfd->f_op->read));
/* The object must have a read method */
if (osfd->f_op /*&& osfd->f_op->read*/) {
//return osfd->f_op->read(osfd, pDataPtr, readLen, &osfd->f_pos);
return vfs_read(osfd, pDataPtr, readLen, &osfd->f_pos);
} else {
DBGPRINT(RT_DEBUG_ERROR, ("no file read method\n"));
return -1;
}
}
Теперь можем собрать драйвер (make, make install)! по данной инструкции
Более подробно здесь: http://lo-li.net/tag/linux
Комментариев нет:
Отправить комментарий