Driver rt2860



  • Здравствуйте.
    У меня pfSense развернут внутри ESXi 5.5, все прекрасно работает. Решил установить wi fi карту PCE-N53 (N600). Сам ESXi смог обнаружить карту и через passthrough добавляю карту на VM.
    Пытаюсь установить посредством ndisgen используя драйвера для win xp х32. Использовал для этого отдельно установленную на vm (vmware) FreeBSD, причем компиляция прошла, драйвер подгрузился, интерфейс появился. При попытки подгрузить на pfSense получившийся rt2860_sys.ko получаю на выходе:
    В консоли ssh :

    
    kldload ./rt2860_sys.ko
    kldload: can't load ./rt2860_sys.ko: No such file or directory
    
    

    В это же время в консоли на VM появляется следующее:

    
    kld rt2860_sys.ko : depends on kernel - not available or version mismatch
    
    

    Кроме того пытался закидывать и прописывать полный путь для драйвера kldload /boot/kernel/rt2860_sys.ko, на выходе тоже самое

    Попробовал скомпилировать из http://repo.or.cz/w/ralink_drivers.git. взял ralink_drivers/rt2860_fbsd8.git
    pfSense подгрузил:

    
    [2.1.4-RELEASE][root@pfsense.localdomain]/root(1): kldstat
    Id Refs Address    Size     Name
     1   22 0xc0400000 13bc558  kernel
     2    1 0xc17bd000 5888     vmblock.ko
     3    1 0xc17c3000 d3ac     vmhgfs.ko
     4    1 0xc17d1000 5648     vmxnet.ko
     5    1 0xc17d7000 1a958    rt2860.ko
     6    1 0xc3da7000 175000   zfs.ko
     7    1 0xc3f1c000 3000     opensolaris.ko
     8    1 0xc56a7000 4000     vmmemctl.ko
    
    

    Но интерфейса нового не появилось

    Просьба помочь разрешить данную проблему. Заранее спасибо.



  • kldload: can't load ./rt2860_sys.ko: No such file or directory

    Файл лежит по этому пути ?

    http://forum.lissyara.su/viewtopic.php?f=45&t=20764&start=50



  • Да, специально копировал в модули и все равно. Смысл то такой, что в итоге он ругается на версию

    
    [2.1.4-RELEASE][root@pfsense.localdomain]/root(9): ls -aF /boot/modules/rt*
    /boot/modules/rt2860.ko
    
    [2.1.4-RELEASE][root@pfsense.localdomain]/root(12): kldload /boot/modules/rt2860.ko
    kldload: can't load /boot/modules/rt2860.ko: File exists
    
    

    И в это время в консоле пишет:```

    KLD rt2860.ko : depends on ndis - not available or version mismatch

    
    [2.1.4-RELEASE][root@pfsense.localdomain]/root(15): kldstat
    Id Refs Address    Size     Name
     1   21 0xc0400000 13bc558  kernel
     2    1 0xc17bd000 5888     vmblock.ko
     3    1 0xc17c3000 d3ac     vmhgfs.ko
     4    1 0xc17d1000 5648     vmxnet.ko
     5    1 0xc3d5f000 175000   zfs.ko
     6    1 0xc3ed5000 3000     opensolaris.ko
     7    1 0xc4535000 4000     vmmemctl.ko
     8    1 0xc4bd4000 1a000    ndis.ko
    
    ```


  • https://forum.pfsense.org/index.php?topic=48241.msg254678#msg254678
    http://forum.lissyara.su/viewtopic.php?f=51&t=23498

    P.s. Совет - создайте тему здесь http://forum.lissyara.su . Вам там быстрее ответят.



  • Спасибо за совет, создал там тему. Пока что тоже ни у кого идей нет.
    Тем временем я решил попробовать pfSense-LiveCD-2.2-DEVELOPMENT-i386-20140818-0926.iso
    Дошел до того момента когда начинается компилироваться драйвер выплевывает следующее:

    Building kernel module... mkdep: not found
    build failed. Exiting.
    
    

    Я так понимаю дело в makedepend. Пробую разобраться

    Подставил какой то mkdep

    #!/bin/sh -
    #
    # Copyright (c) 1987 Regents of the University of California.
    # All rights reserved.
    #
    # Redistribution and use in source and binary forms are permitted
    # provided that the above copyright notice and this paragraph are
    # duplicated in all such forms and that any documentation,
    # advertising materials, and other materials related to such
    # distribution and use acknowledge that the software was developed
    # by the University of California, Berkeley.  The name of the
    # University may not be used to endorse or promote products derived
    # from this software without specific prior written permission.
    # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
    # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
    # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
    #
    #   @(#)mkdep.sh   5.12 (Berkeley) 6/30/88
    #
    
    MAKE=Makefile         # default makefile name is "Makefile"
    
    while :
       do case "$1" in
          # -f allows you to select a makefile name
          -f)
             MAKE=$2
             shift; shift ;;
    
          # the -p flag produces "program: program.c" style dependencies
          # so .o's don't get produced
          -p)
             SED='s;\.o;;'
             shift ;;
          *)
             break ;;
       esac
    done
    
    if [ $# = 0 ] ; then
       echo 'usage: mkdep [-p] [-f makefile] [flags] file ...'
       exit 1
    fi
    
    if [ ! -w $MAKE ]; then
       echo "mkdep: no writeable file \"$MAKE\""
       exit 1
    fi
    
    TMP=/tmp/mkdep$$
    
    trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
    
    cp $MAKE ${MAKE}.bak
    
    sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP
    
    cat << _EOF_ >> $TMP
    # DO NOT DELETE THIS LINE -- mkdep uses it.
    # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
    
    _EOF_
    
    # If your compiler doesn't have -M, add it.  If you can't, the next two
    # lines will try and replace the "cc -M".  The real problem is that this
    # hack can't deal with anything that requires a search path, and doesn't
    # even try for anything using bracket (<>) syntax.
    #
    # egrep '^#include[    ]*".*"' /dev/null $* |
    # sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' |
    
    gcc -MM $* |
    sed "
       s; \./; ;g
       $SED" >> $TMP
    
    cat << _EOF_ >> $TMP
    
    # IF YOU PUT ANYTHING HERE IT WILL GO AWAY
    _EOF_
    
    # copy to preserve permissions
    cp $TMP $MAKE
    rm -f ${MAKE}.bak $TMP
    exit 0
    
    

    ndisgen выплевывает

     Generating Makefile... done.
            Building kernel module... build failed. Exiting.
    


  • А что у вас за CPU и мат. плата ?



  • CPU Intel(R) Core(TM) i7 CPU        920  @ 2.67GHz
    Motherboard Asus p6t se



  • Вопрос :
    Судя по этим таблицам - http://ark.intel.com/ru/products/37147/Intel-Core-i7-920-Processor-8M-Cache-2_66-GHz-4_80-GTs-Intel-QPI ,
    http://ark.intel.com/search/advanced?VTD=true , http://ru.wikipedia.org/wiki/Список_микропроцессоров_Core_i7
    Ваш процессор не поддерживает vt-d, хотя  и не сказано у Intel-а об этом прямо\явно.

    P.s. Есть упоминания на некоторых форумах :

    https://communities.intel.com/thread/28389:

    From parsec's reply I thought the i7-920 maybe does not support VT-d but the fact that the VT-d column is missing from ARK and not a definitive 'no' is odd.

    The update for anyone with this issue on the P6T series is that:

    VT-d is working with an i7-920 on a Supermicro board, so this really is ASUS' BIOS problem, and ARK is not telling the complete story about VT-d with previous gen i7 processors.

    I'll make a case with Intel technical support.

    http://wiki.xen.org/wiki/VTd_HowTo :

    For ASUS Desktop Boards, these have VT-d support enabled, but Asus does NOT support Linux, so you are on your own with any Linux or Xen issues like broken BIOSes

    Я к чему это спрашиваю-то? ESXi - все же *NIX и если процессор и чипсет мат. платы не совсем корректно поддерживают vt-d , то из-за этого могут быть проблемы . В том числе и ваша.

    P.p.s. BIOS мат. платы у вас самый свежий из имеющихся - http://www.asus.com/Motherboards/P6T_SE/HelpDesk_Download/ ? В нем явно включены vt-x и vt-d ?



  • Все поддерживается и все включено, иначе ESXi не дал бы воспользоваться passthrough и тому доказательство нормально компилирующаяся и работающая на этих дровах во freebsd 10 stable карточка pce n53, которую я пытаюсь прикрутить к pfsense



  • А во Freebsd 8.3 компилируется драйвер (8.3 - это pfsense 2.1.x) ?

    И еще :

    https://forum.pfsense.org/index.php?topic=69291.0



  • @werter:

    А во Freebsd 8.3 компилируется драйвер (8.3 - это pfsense 2.1.x) ?

    И еще :

    https://forum.pfsense.org/index.php?topic=69291.0

    Да, и в 8,3 9.1 10.0 все компилируется и все работает, но если подцеплять *.ko полученный из 8.3 в pfsense 2.1.4 или из 10.0 в pfsense 2.2 то получаю кукиш



  • Поправочка. Пытался скомпилировать драйвера на отдельной freebsd 10 stable, таже самая ошибка но, удалось установить ndisulator https://github.com/NDISulator/ndisulator/tree/master и с помощью команды ndisload -p -s /root/rt2860.sys -n test_dev -v 0x1814 -d 0x5592 появился дейвайс, сейчас пробую тоже самое проделать в pfsense

    Пытаюсь установить:

    ndisload.c:26:23: fatal error: sys/cdefs.h: No such file or directory
     #include <sys cdefs.h="">^
    compilation terminated.
    *** Error code 1
    
    Stop.
    make[1]: stopped in /root/ndisulator-master/src/usr.sbin/ndisload
    *** Error code 1</sys> 
    

    Беда

    Подставил include

    
    [2.2-ALPHA][root@pfse.localdomain]/root(1): cd /root/ndisulator-master
    [2.2-ALPHA][root@pfse.localdomain]/root/ndisulator-master(2): make
    cd src/usr.sbin/ndisload && make
    Warning: Object directory not changed from original /root/ndisulator-master/src/usr.sbin/ndisload
    gcc49 -O2 -pipe   -I. -I/root/ndisulator-master/src/usr.sbin/ndisload -I/root/ndisulator-master/src/usr.sbin/ndisload/../../sys/compat/ndis -std=gnu99  -fstack-protector  -c ndisload.c
    gcc49 -O2 -pipe   -I. -I/root/ndisulator-master/src/usr.sbin/ndisload -I/root/ndisulator-master/src/usr.sbin/ndisload/../../sys/compat/ndis -std=gnu99  -fstack-protector  -c /root/ndisulator-master/src/usr.sbin/ndisload/../../sys/compat/ndis/subr_pe.c
    gcc49 -O2 -pipe   -I. -I/root/ndisulator-master/src/usr.sbin/ndisload -I/root/ndisulator-master/src/usr.sbin/ndisload/../../sys/compat/ndis -std=gnu99  -fstack-protector   -o ndisload ndisload.o subr_pe.o -ll
    /usr/local/bin/ld: cannot find -ll
    collect2: error: ld returned 1 exit status
    *** Error code 1
    
    Stop.
    make[1]: stopped in /root/ndisulator-master/src/usr.sbin/ndisload
    *** Error code 1
    
    Stop.
    make: stopped in /root/ndisulator-master
    
    

    Теперь застрял на этом