LINUX.ORG.RU
решено ФорумAdmin

При компилировании hostapd игнорируется CONFIG_DRIVER_RALINK=y

 ,


0

2

Привет Имею USB вай-фай Ralink (MediaTek) MT7601U, ID 148f:7601. Драйвер DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2, mt7601Usta.ko. При сборке драйвера зашёл в config.mk и поменял HAS_HOSTAPD_SUPPORT=n на HAS_HOSTAPD_SUPPORT=y Думал, щас раздам.

cat /etc/hostapd.conf
# Define interface
interface=ra0
# Select driver
driver=nl80211
# Set access point name
ssid=tochkadostupa
# Set access point harware mode to 802.11g
hw_mode=g
# Set WIFI channel (can be easily changed)
channel=13
# Enable WPA2 only (1 for WPA, 2 for WPA2, 3 for WPA + WPA2)
wpa=2
wpa_passphrase=parol123456789
# ifconfig ra0 192.168.150.1 up
# /etc/init.d/dnsmasq start
Starting name service masq caching server                            done
# hostapd /etc/hostapd.conf
Configuration file: /etc/hostapd.conf
nl80211: 'nl80211' generic netlink not found
Failed to initialize driver 'nl80211'
Ошибка сегментирования

Но hostapd говорит что с драйвером nl80211 у меня ничего не получится. Но ведь есть же драйвер ralink! В исходниках hostapd он называется driver_ralink.c! Раскомментировал в defconfig строчку CONFIG_DRIVER_RALINK=y, иии...

zenitur@linux-athlon64x2:/usr/src/packages/BUILD/hostapd-1.0/hostapd> make
  CC  main.c
  CC  config_file.c
  CC  ../src/ap/hostapd.c
  CC  ../src/ap/wpa_auth_glue.c
  CC  ../src/ap/drv_callbacks.c
  CC  ../src/ap/ap_drv_ops.c
  CC  ../src/ap/utils.c
  CC  ../src/ap/authsrv.c
  CC  ../src/ap/ieee802_1x.c
  CC  ../src/ap/ap_config.c
  CC  ../src/ap/ieee802_11_auth.c
  CC  ../src/ap/sta_info.c
  CC  ../src/ap/wpa_auth.c
  CC  ../src/ap/tkip_countermeasures.c
  CC  ../src/ap/ap_mlme.c
  CC  ../src/ap/wpa_auth_ie.c
  CC  ../src/ap/preauth_auth.c
  CC  ../src/ap/pmksa_cache_auth.c
  CC  ../src/ap/ieee802_11_shared.c
  CC  ../src/ap/beacon.c
  CC  ../src/drivers/drivers.c
  CC  ../src/utils/eloop.c
  CC  ../src/utils/common.c
  CC  ../src/utils/wpa_debug.c
  CC  ../src/utils/wpabuf.c
  CC  ../src/utils/os_unix.c
  CC  ../src/utils/ip_addr.c
  CC  ../src/common/ieee802_11_common.c
  CC  ../src/common/wpa_common.c
  CC  ../src/eapol_auth/eapol_auth_sm.c
  CC  dump_state.c
  CC  ../src/eapol_auth/eapol_auth_dump.c
  CC  ../src/radius/radius.c
  CC  ../src/radius/radius_client.c
  CC  ../src/ap/accounting.c
  CC  ../src/ap/vlan_init.c
  CC  ctrl_iface.c
  CC  ../src/ap/ctrl_iface_ap.c
  CC  ../src/crypto/md5.c
  CC  ../src/ap/iapp.c
  CC  ../src/ap/peerkey_auth.c
  CC  ../src/drivers/driver_hostap.c
  CC  ../src/drivers/driver_wired.c
  CC  ../src/drivers/driver_nl80211.c
  CC  ../src/utils/radiotap.c
  CC  ../src/drivers/driver_none.c
  CC  ../src/drivers/netlink.c
  CC  ../src/drivers/linux_ioctl.c
  CC  ../src/drivers/rfkill.c
  CC  ../src/l2_packet/l2_packet_linux.c
  CC  ../src/eap_server/eap_server_md5.c
  CC  ../src/eap_server/eap_server_tls.c
  CC  ../src/eap_server/eap_server_peap.c
  CC  ../src/eap_common/eap_peap_common.c
  CC  ../src/eap_server/eap_server_ttls.c
  CC  ../src/eap_server/eap_server_mschapv2.c
  CC  ../src/eap_server/eap_server_gtc.c
  CC  ../src/eap_server/eap_server_sim.c
  CC  ../src/eap_common/eap_sim_common.c
  CC  ../src/eap_server/eap_sim_db.c
  CC  ../src/eap_server/eap_server_pax.c
  CC  ../src/eap_common/eap_pax_common.c
  CC  ../src/eap_server/eap_server_psk.c
  CC  ../src/eap_common/eap_psk_common.c
  CC  eap_register.c
  CC  ../src/eap_server/eap_server.c
  CC  ../src/eap_common/eap_common.c
  CC  ../src/eap_server/eap_server_methods.c
  CC  ../src/eap_server/eap_server_identity.c
  CC  ../src/drivers/driver_ralink.c
  CC  ../src/crypto/ms_funcs.c
  CC  ../src/eap_common/chap.c
  CC  ../src/eap_server/eap_server_tls_common.c
  CC  ../src/crypto/tls_openssl.c
  CC  ../src/crypto/crypto_openssl.c
  CC  ../src/crypto/fips_prf_openssl.c
  CC  ../src/crypto/aes-wrap.c
  CC  ../src/crypto/aes-eax.c
  CC  ../src/crypto/aes-ctr.c
  CC  ../src/crypto/aes-encblock.c
  CC  ../src/crypto/aes-omac1.c
  CC  ../src/crypto/aes-cbc.c
  CC  ../src/crypto/sha1.c
  CC  ../src/crypto/sha1-pbkdf2.c
  CC  ../src/crypto/sha1-tlsprf.c
  CC  ../src/crypto/random.c
  CC  ../src/radius/radius_server.c
  CC  ../src/ap/wmm.c
  CC  ../src/ap/ap_list.c
  CC  ../src/ap/ieee802_11.c
  CC  ../src/ap/hw_features.c
  CC  ../src/ap/ieee802_11_ht.c
  CC  ../src/drivers/driver_common.c
  LD  hostapd
  CC  hostapd_cli.c
  CC  ../src/common/wpa_ctrl.c
  CC  ../src/utils/edit_simple.c
  LD  hostapd_cli
zenitur@linux-athlon64x2:/usr/src/packages/BUILD/hostapd-1.0/hostapd>

Оно не «подхватывается»!

# hostapd /etc/hostapd.conf
Configuration file: /etc/hostapd.conf
Line 4: invalid/unknown driver 'ralink'
1 errors found in configuration file '/etc/hostapd.conf'

Несмотря на то, что в конфиге ясно указано, что «подхватиться» оно должно! Что за кусок какашки? Как заставить hostapd сделать это?

Полный лог сборки, SRPM.

P.S. Недавно в ядро Linux добавили опенсорсную реализацию драйвера (мне тут сказали). Ещё не пробовал.

При сборке драйвера зашёл в config.mk и поменял

А ты уверен что ему больше ничего не надо кроме этой опции?

invalid/unknown driver 'ralink'

Опять же - уверен что название такое? Сам драйвер можешь подгрузить?

upcFrost ★★★★★ ()
Последнее исправление: upcFrost (всего исправлений: 1)
Ответ на: комментарий от upcFrost

Через modprobe? Это не тот драйвер. Я говорил про драйверы самого hostapd.

  CC  ../src/drivers/driver_hostap.c
  CC  ../src/drivers/driver_wired.c
  CC  ../src/drivers/driver_nl80211.c
  CC  ../src/drivers/driver_none.c
  CC  ../src/drivers/netlink.c
  CC  ../src/drivers/linux_ioctl.c
  CC  ../src/drivers/rfkill.c
ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Знаешь, если верить манам, то подобные свистки заводятся с nl80211 в качестве драйвера. Вообще та проблема что ты написал на форумах возникает довольно часто. для начала проверь подгружен ли модуль mac80211

и еще - interface=ra0 это точно правильно?

upcFrost ★★★★★ ()
Ответ на: комментарий от upcFrost

Привет, пришёл, проверил.

Да, ra0 это такой сетевой интерфейс. Драйвер-то проприетарный.

Возможно что у тех, у кого работает, у них открытый драйвер, который недавно появился в ядре.

linux-athlon64x2:/home/zenitur # ifconfig ra0 192.168.150.1 up
linux-athlon64x2:/home/zenitur # hostapd /etc/hostapd.conf
Configuration file: /etc/hostapd.conf
nl80211: 'nl80211' generic netlink not found
Failed to initialize driver 'nl80211'
Ошибка сегментирования
// Извлекаю устройство
linux-athlon64x2:/home/zenitur # modprobe -r mt7601Usta
linux-athlon64x2:/home/zenitur # modprobe mac80211
linux-athlon64x2:/home/zenitur # modprobe mt7601Usta
linux-athlon64x2:/home/zenitur # ifconfig ra0 192.168.150.1 up
linux-athlon64x2:/home/zenitur # hostapd /etc/hostapd.conf
Configuration file: /etc/hostapd.conf
nl80211 driver initialization failed.

Уже другая ошибка! Вот бы gdb прогнать, но он почему-то не хочет видеть пробел между «hostapd» и «/etc/hostapd.conf», и выдаёт хелп к hostapd, и «„/etc/hostapd.conf“ is not a core dump: Формат файла не распознан»

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 2)
Ответ на: комментарий от upcFrost

https://w1.fi/cgit/hostap/plain/wpa_supplicant/ChangeLog

2013-01-12 - v2.0
* removed unmaintained driver wrappers broadcom, iphone, osx, ralink, hostap, madwifi (hostap and madwifi remain available for hostapd; their wpa_supplicant functionality is obsoleted by wext)

В hostapd 2.0 исключили то, что я хочу (а я хочу driver_ralink.c). Вероятно, в версии 1.0 не очевиден способ включения.

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от upcFrost

Я внезапно понял что пакет wpa_supplicant у меня отдельно, а не из одних исходников с hostapd. Обновил до 1.1, и тоже включил опцию из заголовка темы. Перезагрузился. Ничего не изменилось.

А тем временем, рабочий день кончился.

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Был у меня секс с этим чипсетом.
hostapd здесь не канает.
Точку поднимал на уровне ядра.
Брал здесь: https://github.com/muratdemirtas/MT7601u/
Собирал правда на rpi, но думаю что и на x86 особых проблем быть не должно.
ps: Конфиг точки будет лежать в /etc/Wireless/RT2870AP
Родной mt7601u.ko переименуй в *.old и сделай depmod.
Можно и заблеклистить.

У меня как-то работало.

hbars ★★★★★ ()
Ответ на: комментарий от hbars

Эээ... ты уточни только - WPA2 был или пришлось довольствоваться WEP-ом? Просто когда я в лохматом 2009 подымал точку на неподдерживаемом hostapd чипе - у меня был только WEP.

А в 2017 году WEP - это даже не смешно...

Pinkbyte ★★★★★ ()
Ответ на: комментарий от hbars

Огромное тебе спасибо! Завтра потрахаюсь, и наконец-то раздам интернет на смартфон :-)

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Мне вообще открытая была нужна, так что не заморачивался.
А так в конфиге есть что-то типа того:


AuthMode=WPA2PSK
#AuthMode=OPEN
EncrypType=TKIP;AES
#EncrypType=NONE
RekeyInterval=0
RekeyMethod=DISABLE
PMKCachePeriod=10
WPAPSK=hbars12121

Вроде тоже работало.

hbars ★★★★★ ()
Ответ на: комментарий от hbars

Слушай, а можно ли интерфейс ppp0 отмаскарадить прямо в ra0? Так чтобы интернет не пробрался в eth0? А то там у меня локалка. Вендокомпьютеры немного не готовы к выходу в интернет, похватают вирусняки.

Нужно поднимать br0?

ZenitharChampion ★★★★★ ()

судя по коду, для nl80211 ему нужны CONFIG_AP_SUPPORT и CONFIG_STA_SUPPORT.

Iron_Bug ★★★★ ()
Ответ на: комментарий от ZenitharChampion

br0 не поднимал. imho, с ra0 (wlan0) можно больше играться с iptables.
А так на вскидку:

iptables -t nat -A POSTROUTING -o ppp+ -s 192.168.2.0/24 -j SNAT --to-source 192.168.3.2

192.168.2.0/24 - сеть ra0
192.168.3.2 - ip ppp0
Это если у тебя на ppp0 статика.
iptables -t nat -A POSTROUTING -o ppp+ -s 192.168.2.0/24 -j MASQUERADE

Если не статика.
192.168.2.0/24 - сеть ra0
iptables -A FORWARD -p icmp -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o ppp+ -i ra0 -s 192.168.2.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited

192.168.2.0/24 - сеть ra0

зы: у меня там все не так. Писалось по памяти.
Во всяком случае из локалки никакого инета быть не должно. :)
Если вообще так он будет :))
Пробуй.

hbars ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Забыл еще про в /etc/sysctl.conf
net.ipv4.ip_forward = 1

hbars ★★★★★ ()
Ответ на: комментарий от hbars

Привет. Не могу распарсить конфиг.

CountryRegion=5
CountryRegionABand=7
CountryCode=TW

Что тут надо указать?

RADIUS_Server=192.168.2.3
RADIUS_Port=1812
RADIUS_Key=ralink
own_ip_addr=192.168.5.234
EAPifname=br0
PreAuthifname=br0

А это что?

И куда надо положить конфиг, чтобы этот самый конфиг подхватился? После включения драйвера и втыкания устройства, точка доступа не поднимается.

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 2)
Ответ на: комментарий от Iron_Bug

Ух ты. Сейчас включу.

Нет, не включу: в config.mk таких параметров нет. Может вписать? Щас попробую.

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

ты не торопись вписывать. сначала разобраться нужно. он тащит эти настройки явно из ядра, судя по названию CONFIG_xxx. но у тебя может быть ядро не той версии :)

Iron_Bug ★★★★ ()
Ответ на: комментарий от Iron_Bug

Уже попробовал - не, не пашет. Буду мучить модифицированный драйвер.

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

я вижу в сети, что люди просто убирали патчем эти ifdef'ы. даже не могу сказать, откуда они. то ли из очень старых ядер, то ли ещё откуда. readme там бодро даёт рекомендации по запуску на ядрах 2.4 и 2.6, что какбэ наводит на странные мысли. в общем, попробуй эти флаги ему как-то подсунуть. он с ними должен увидеть nl80211. но не факт, что заведётся, потому что он тоже менялся, а драйвер, судя по всему, - то ещё ископаемое.

Iron_Bug ★★★★ ()
Ответ на: комментарий от ZenitharChampion

Я в него сам интуитивно врубаюсь. :) Чем он делался не знаю.
Толковых комментов в инете не нашел.
Вот мой что остался. С ним работало.
Лежит в /etc/Wireless/RT2870AP/RT2870AP.dat
Что-то можно найти если гуглить RT2870AP.dat.

#The word of "Default" must not be removed
Default
CountryRegion=5
CountryRegionABand=7
CountryCode=VE
BssidNum=1
SSID=RADIONET-RPiNAS
# точка
WirelessMode=9
TxRate=0
Channel=6
BasicRate=15
BeaconPeriod=100
DtimPeriod=1
TxPower=100
DisableOLBC=0
BGProtection=0
TxAntenna=
RxAntenna=
TxPreamble=0
RTSThreshold=2347
FragThreshold=2346
TxBurst=1
PktAggregate=0
TurboRate=0
WmmCapable=0
APSDCapable=0
DLSCapable=0
APAifsn=3;7;1;1
APCwmin=4;4;3;2
APCwmax=6;10;4;3
APTxop=0;0;94;47
APACM=0;0;0;0
BSSAifsn=3;7;2;2
BSSCwmin=4;4;3;2
BSSCwmax=10;10;4;3
BSSTxop=0;0;94;47
BSSACM=0;0;0;0
AckPolicy=0;0;0;0
NoForwarding=0
NoForwardingBTNBSSID=0
HideSSID=0
StationKeepAlive=0
ShortSlot=1
AutoChannelSelect=0
IEEE8021X=0
IEEE80211H=0
CSPeriod=10
WirelessEvent=0
IdsEnable=0
AuthFloodThreshold=32
AssocReqFloodThreshold=32
ReassocReqFloodThreshold=32
ProbeReqFloodThreshold=32
DisassocFloodThreshold=32
DeauthFloodThreshold=32
EapReqFooldThreshold=32
PreAuth=0
AuthMode=WPA2PSK
#AuthMode=OPEN
# открытая или нет
EncrypType=TKIP;AES
#EncrypType=NONE
RekeyInterval=0
RekeyMethod=DISABLE
PMKCachePeriod=10
WPAPSK=hbars2016b
#^^^^^^^^^^^^^^^^^^
#пароль
DefaultKeyID=1
Key1Type=0
Key1Str=
Key2Type=0
Key2Str=
Key3Type=0
Key3Str=
Key4Type=0
Key4Str=
HSCounter=0
AccessPolicy0=0
AccessControlList0=
AccessPolicy1=0
AccessControlList1=
AccessPolicy2=0
AccessControlList2=
AccessPolicy3=0
AccessControlList3=
WdsEnable=0
WdsEncrypType=NONE
WdsList=
WdsKey=
#RADIUS_Server=192.168.4.3
#RADIUS_Port=1812
#RADIUS_Key=ralink
own_ip_addr=192.168.2.2
# здесь я написал адрес wifi интерфейса
# может и не нужно
EAPifname=br0
PreAuthifname=br0
HT_HTC=0
HT_RDG=0
HT_EXTCHA=0
HT_LinkAdapt=0
HT_OpMode=0
HT_MpduDensity=5
HT_BW=1
HT_AutoBA=1
HT_AMSDU=0
HT_BAWinSize=64
HT_GI=1
HT_MCS=33
MeshId=MESH
MeshAutoLink=1
MeshAuthMode=OPEN
MeshEncrypType=NONE
MeshWPAKEY=
MeshDefaultkey=1
MeshWEPKEY=
WscManufacturer=
WscModelName=
WscDeviceName=
WscModelNumber=
WscSerialNumber=
RadioOn=1
PMFMFPC=0
PMFMFPR=0
PMFSHA256=0

hbars ★★★★★ ()
Ответ на: комментарий от hbars

Спасибо за конфиг. Применил.

# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

eth1      no wireless extensions.

ppp0      no wireless extensions.

Warning: Driver for device ra0 has been compiled with an ancient version
of Wireless Extension, while this program support version 11 and later.
Some things may be broken...

ra0       RTWIFI SoftAP  ESSID:off/any  Nickname:""
          NWID:off/any  Mode:Unknown/bug  Frequency=inf GHz  
          Access Point: D7:EA:FF:7F:00:00   Bit Rate=-354952 kb/s   Sensitivity=-354953512 dBm  
          RTS thr:off   Fragment thr:off
          Encryption key:0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000
          Power Management:off

Что за быдлокод... Окей, раздам интернет по Bluetooth.

Upd:

 # ifconfig ra0 192.168.150.1 up
 # iwconfig 
lo        no wireless extensions.

eth0      no wireless extensions.

eth1      no wireless extensions.

ra0       RTWIFI SoftAP  ESSID:"MyOwnWiFi"  
          Mode:Managed  Channel=6  Access Point: 60:E3:27:14:24:C8   
          Bit Rate=54 Mb/s
ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

Ну и? Видно хоть точку?
ra0 RTWIFI SoftAP ESSID:«MyOwnWiFi»
Mode:Managed Channel=6 Access Point: 60:E3:27:14:24:C8
Bit Rate=54 Mb/s

hbars ★★★★★ ()
Ответ на: комментарий от hbars

Привет. Сделал откат к предыдущей версии системы (openSUSE 11.4 - 11.1). Теперь драйвер намертво вешает систему при поднимании интерфейса. В очень редких случаях драйвер поднимается и работает. Не знаешь почему так может быть?

ZenitharChampion ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.