Не могу скомпилировать драйвер для dm9601 usb lan - PullRequest
0 голосов
/ 25 июня 2019

Я пытался заставить мой USB-адаптер работать с Ubuntu. Это davicom dm9601.

Я пытался следовать этому https://askubuntu.com/questions/116615/davicom-dm9601-usb-lan-nic-ubuntu-11-10-issue/116880#116880?newreg=e7fd2b254294414a838b32ea3ce332af

Когда я запускаю команду "make", я получаю ошибки. Я считаю, у меня есть все необходимые пакеты и зависимости. После запуска команды make я получаю:

chris@s59:~$ make
make: *** No targets specified and no makefile found.  Stop.
chris@s59:~$ cd driver/
chris@s59:~/driver$ cd dm9601/
chris@s59:~/driver/dm9601$ make
make -C /lib/modules/4.15.0-52-generic/build M=/home/chris/driver/dm9601
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-52-generic'
  CC [M]  /home/chris/driver/dm9601/dm9601.o
/home/chris/driver/dm9601/dm9601.c: In function ‘ctrl_callback’:
/home/chris/driver/dm9601/dm9601.c:167:4: error: implicit declaration of functio                                                                                                                                                             n ‘warn’; did you mean ‘__warn’? [-Werror=implicit-function-declaration]
    warn("%s: status %x",__FUNCTION__, urb->status);
    ^~~~
    __warn
/home/chris/driver/dm9601/dm9601.c: In function ‘get_registers’:
/home/chris/driver/dm9601/dm9601.c:186:3: error: implicit declaration of functio                                                                                                                                                             n ‘interruptible_sleep_on’ [-Werror=implicit-function-declaration]
   interruptible_sleep_on( &dbi->ctrl_wait );
   ^~~~~~~~~~~~~~~~~~~~~~
/home/chris/driver/dm9601/dm9601.c:210:3: error: implicit declaration of functio                                                                                                                                                             n ‘err’ [-Werror=implicit-function-declaration]
   err("%s: BAD CTRLs %d",__FUNCTION__,ret);
   ^~~
/home/chris/driver/dm9601/dm9601.c: In function ‘read_bulk_callback’:
/home/chris/driver/dm9601/dm9601.c:420:3: error: implicit declaration of functio                                                                                                                                                             n ‘dbg’ [-Werror=implicit-function-declaration]
   dbg("DM9601 Rx busy");
   ^~~
/home/chris/driver/dm9601/dm9601.c: In function ‘write_bulk_callback’:
/home/chris/driver/dm9601/dm9601.c:528:3: error: implicit declaration of functio                                                                                                                                                             n ‘info’; did you mean ‘insl’? [-Werror=implicit-function-declaration]
   info("%s: TX status %d", dbi->net->name, urb->status);
   ^~~~
   insl
/home/chris/driver/dm9601/dm9601.c:530:12: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘trans_start’; did you mean ‘mem_start’?
  dbi->net->trans_start = jiffies;
            ^~~~~~~~~~~
            mem_start
/home/chris/driver/dm9601/dm9601.c: In function ‘dm9601_tx_timeout’:
/home/chris/driver/dm9601/dm9601.c:600:32: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘priv’
  dm9601_board_info_t *dbi = net->priv;
                                ^~
/home/chris/driver/dm9601/dm9601.c: In function ‘dm9601_start_xmit’:
/home/chris/driver/dm9601/dm9601.c:616:32: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘priv’
  dm9601_board_info_t *dbi = net->priv;
                                ^~
/home/chris/driver/dm9601/dm9601.c:646:8: error: ‘struct net_device’ has no memb                                                                                                                                                             er named ‘trans_start’; did you mean ‘mem_start’?
   net->trans_start = jiffies;
        ^~~~~~~~~~~
        mem_start
/home/chris/driver/dm9601/dm9601.c: In function ‘dm9601_netdev_stats’:
/home/chris/driver/dm9601/dm9601.c:657:37: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘priv’
  return &((dm9601_board_info_t *)dev->priv)->stats;
                                     ^~
/home/chris/driver/dm9601/dm9601.c: In function ‘init_dm9601’:
/home/chris/driver/dm9601/dm9601.c:785:55: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘priv’
  dm9601_board_info_t *dbi = (dm9601_board_info_t *)net->priv;
                                                       ^~
/home/chris/driver/dm9601/dm9601.c: In function ‘dm9601_open’:
/home/chris/driver/dm9601/dm9601.c:825:55: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘priv’
  dm9601_board_info_t *dbi = (dm9601_board_info_t *)net->priv;
                                                       ^~
/home/chris/driver/dm9601/dm9601.c: In function ‘dm9601_close’:
/home/chris/driver/dm9601/dm9601.c:865:32: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘priv’
  dm9601_board_info_t *dbi = net->priv;
                                ^~
/home/chris/driver/dm9601/dm9601.c: In function ‘dm9601_ioctl’:
/home/chris/driver/dm9601/dm9601.c:898:32: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘priv’
  dm9601_board_info_t *dbi = net->priv;
                                ^~
/home/chris/driver/dm9601/dm9601.c: In function ‘dm9601_set_multicast’:
/home/chris/driver/dm9601/dm9601.c:934:32: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘priv’
  dm9601_board_info_t *dbi = net->priv;
                                ^~
/home/chris/driver/dm9601/dm9601.c:935:35: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘mc_list’; did you mean ‘dev_list’?
  struct dev_mc_list *mcptr = net->mc_list;
                                   ^~~~~~~
                                   dev_list
/home/chris/driver/dm9601/dm9601.c:936:17: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘mc_count’
  int count = net->mc_count, i, hash_val;
                 ^~
/home/chris/driver/dm9601/dm9601.c:955:44: error: dereferencing pointer to incom                                                                                                                                                             plete type ‘struct dev_mc_list’
   for (i = 0; i < count; i++, mcptr = mcptr->next) {
                                            ^~
/home/chris/driver/dm9601/dm9601.c: In function ‘dm9601_probe’:
/home/chris/driver/dm9601/dm9601.c:1014:2: error: implicit declaration of functi                                                                                                                                                             on ‘init_MUTEX’; did you mean ‘init_rwsem’? [-Werror=implicit-function-declarati                                                                                                                                                             on]
  init_MUTEX(&dbi->ctrl_sem);
  ^~~~~~~~~~
  init_rwsem
/home/chris/driver/dm9601/dm9601.c:1018:5: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘priv’
  net->priv = dbi;
     ^~
/home/chris/driver/dm9601/dm9601.c:1019:5: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘open’
  net->open = dm9601_open;
     ^~
/home/chris/driver/dm9601/dm9601.c:1020:5: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘stop’
  net->stop = dm9601_close;
     ^~
/home/chris/driver/dm9601/dm9601.c:1022:5: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘tx_timeout’
  net->tx_timeout = dm9601_tx_timeout;
     ^~
/home/chris/driver/dm9601/dm9601.c:1023:5: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘do_ioctl’
  net->do_ioctl = dm9601_ioctl;
     ^~
/home/chris/driver/dm9601/dm9601.c:1024:5: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘hard_start_xmit’
  net->hard_start_xmit = dm9601_start_xmit;
     ^~
/home/chris/driver/dm9601/dm9601.c:1025:5: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘set_multicast_list’
  net->set_multicast_list = dm9601_set_multicast;
     ^~
/home/chris/driver/dm9601/dm9601.c:1026:7: error: ‘struct net_device’ has no mem                                                                                                                                                             ber named ‘get_stats’; did you mean ‘reg_state’?
  net->get_stats = dm9601_netdev_stats;
       ^~~~~~~~~
       reg_state
cc1: some warnings being treated as errors
scripts/Makefile.build:337: recipe for target '/home/chris/driver/dm9601/dm9601.                                                                                                                                                             o' failed
make[2]: *** [/home/chris/driver/dm9601/dm9601.o] Error 1
Makefile:1552: recipe for target '_module_/home/chris/driver/dm9601' failed
make[1]: *** [_module_/home/chris/driver/dm9601] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-52-generic'
Makefile:37: recipe for target 'default' failed
make: *** [default] Error 2
chris@s59:~/driver/dm9601$

Я не понимаю, что это значит

...