Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Виртуальный Сетевой драйвер


Автор: Strell 21.1.2011, 14:02
Доброго времени суток.!!

Пытаюсь разобраться с написание драйверов под Linux (Ubuntu 10).

Как пример хочу написать примитивную VPN с виртуальным сетевым драйвером.
 
Скачал исходники ядра (drivers/net/dummy.c), попытался скомпилировать (gcc -c dumy.c -I/usr/src/linux-headers-2.6.32-26-generic-pae/include/), вылетает очень большее количество ошибок, а том числе и в инклудах.


Как пример попробовал просто подключить инклудом #include <linux/netdevice.h>, 

Код

#include <linux/netdevice.h>
#include <stdio.h>

int main (void)
{
   printf("test\n");
   return 0;
}


выводит ошибки:
Код

gcc -c test.c -I/usr/src/linux-headers-2.6.32-26-generic-pae/include/
In file included from /usr/src/linux-headers-2.6.32-26-generic-pae/include/linux/netdevice.h:28,
                 from test.c:1:
/usr/src/linux-headers-2.6.32-26-generic-pae/include/linux/if.h:173: error: field ‘ifru_addr’ has incomplete type
/usr/src/linux-headers-2.6.32-26-generic-pae/include/linux/if.h:174: error: field ‘ifru_dstaddr’ has incomplete type
/usr/src/linux-headers-2.6.32-26-generic-pae/include/linux/if.h:175: error: field ‘ifru_broadaddr’ has incomplete type
/usr/src/linux-headers-2.6.32-26-generic-pae/include/linux/if.h:176: error: field ‘ifru_netmask’ has incomplete type
/usr/src/linux-headers-2.6.32-26-generic-pae/include/linux/if.h:177: error: field ‘ifru_hwaddr’ has incomplete type



Кто знает в чем может быть дело и как с этим бороться?


P. S. До этого под Linux разрабатывал только прикладное ПО

Спасибо.

Автор: GrayCardinal 21.1.2011, 16:46
Цитата

Linux (Ubuntu 10)

Кто бы сомневался :(

RTFM  smile "Linux Device Driver" третий проканает.

Автор: Strell 21.1.2011, 19:19
Нашел вот книжку,
    http://lwn.net/Kernel/LDD3/

почитаю, попробую что-то написать, сообщу о результатах.

Цитата

Linux (Ubuntu 10)

Кто бы сомневался :(


Только непонятно почему такая проблема с Ubuntu. (исходники - ее собственные, headers files - тоже.. Но при инклуде netdevice.h выдаются приведенные выше ошибки)

Автор: alexvs11 21.1.2011, 19:37
Strell, там сетевое api очень часто и сильно менялось

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)