Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

USB-wifi dongle als AP op Ubuntu

Pagina: 1
Acties:

Vraag


  • Tjolk
  • Registratie: juni 2007
  • Laatst online: 14-10 16:22
Ik heb afgelopen weekend deze gekocht: pricewatch: Asus USB-AC51
Deze wil ik gebruiken op mijn werk-desktop met Ubuntu 18.04LTS om effectief de bekabelde internetaansluiting te delen zodat ik mijn telefoon via KDE connect kan verbinden met de PC. Op de doos staat specifiek hotspot functionaliteit en Linux ondersteuning. So far, so good.

In eerste instantie werkte het niet zomaar en de meegeleverde driver moet je nog zelf compilen... Met instructies die mij nogal als stenografie overkomen en iig een error geven:
=======================================================================
Features:
==========
This driver implements basic IEEE802.11. Infrastructure and adhoc mode with
open or shared or WPA-PSK or WPA2-PSK authentication method.
NONE, WEP, TKIP and AES encryption.


=======================================================================
Build Instructions:
====================

1> $tar -xvzf DPB_RT2870_Linux_STA_x.x.x.x.tgz
go to "./DPB_RT2870_Linux_STA_x.x.x.x" directory.

2> In Makefile
set the "MODE = STA" in Makefile and chose the TARGET to Linux by set "TARGET = LINUX"
define the linux kernel source include file path LINUX_SRC
modify to meet your need.

3> In os/linux/config.mk
define the GCC and LD of the target machine
define the compiler flags CFLAGS
modify to meet your need.
** Build for being controlled by NetworkManager or wpa_supplicant wext functions
Please set 'HAS_WPA_SUPPLICANT=y' and 'HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y'.
=> #>cd wpa_supplicant-x.x
=> #>./wpa_supplicant -Dwext -ira0 -c wpa_supplicant.conf -d
** Build for being controlled by WpaSupplicant with Ralink Driver
Please set 'HAS_WPA_SUPPLICANT=y' and 'HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n'.
=> #>cd wpa_supplicant-0.5.7
=> #>./wpa_supplicant -Dralink -ira0 -c wpa_supplicant.conf -d

4> $make
# compile driver source code
# To fix "error: too few arguments to function ¡¥iwe_stream_add_event"
=> $patch -i os/linux/sta_ioctl.c.patch os/linux/sta_ioctl.c

5> $cp RT2870STA.dat /etc/Wireless/RT2870STA/RT2870STA.dat

6> load driver, go to "os/linux/" directory.
#[kernel 2.4]
# $/sbin/insmod rt2870sta.o
# $/sbin/ifconfig ra0 inet YOUR_IP up

#[kernel 2.6]
# $/sbin/insmod rt2870sta.ko
# $/sbin/ifconfig ra0 inet YOUR_IP up

7> unload driver
$/sbin/ifconfig ra0 down
$/sbin/rmmod rt2870sta
Met name stap 3 zet mij voor een raadsel: wat is GCC en LD, hoe weet ik wat de juiste waarde is en waar moet ik dat dan invullen?

Ik zie in dat bestand:

code:
1
2
CC := $(CROSS_COMPILE)gcc
LD := $(CROSS_COMPILE)ld


Werkelijk geen flauw idee wat ik daarmee moet.

En deze:
=> #>cd wpa_supplicant-x.x
=> #>./wpa_supplicant -Dwext -ira0 -c wpa_supplicant.conf -d
Ik zie nergens een directory die daarop wijst? :?

Maar goed, die buiten beschouwing gelaten dan maar, en make aangeroepen... No dice:
/home/ger/Downloads/UT_USB_AC51_1016/Linux/mt7610u_wifi_sta_v3001_dpo_20130725/os/linux/../../sta/sta_cfg.c: In function ‘RTMPIoctlShow’:
/home/ger/Downloads/UT_USB_AC51_1016/Linux/mt7610u_wifi_sta_v3001_dpo_20130725/os/linux/../../sta/sta_cfg.c:5401:85: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]
snprintf(extra, size, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__ );
^~~~~~~~
/home/ger/Downloads/UT_USB_AC51_1016/Linux/mt7610u_wifi_sta_v3001_dpo_20130725/os/linux/../../sta/sta_cfg.c:5401:95: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]
snprintf(extra, size, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__ );
^~~~~~~~
Ik ben geen held (of überhaupt bedreven) in C, dus Google to the rescue... Die leerde mij al gauw dat sinds Kernel 4.19 deze dongle standaard gesupport wordt. Jeuj! *O*
Dus kernel bijgewerkt, reboot, en inderdaad: dongle werkt. Ik kan wifi netwerken zien. Echter: ga ik naar Wifi instellingen, dan staat de functie "Wifi hotspot inschakelen" uit -O-

Nog maar eens verder spitten dan. Inmiddels heb ik geleerd dat de onderliggende chipset een [Mediatek MT7610/Ralink RT2870] is. En ik blijk via nmcli ook een hotspot te kunnen forceren.... DACHT ik:

code:
1
nmcli device wifi hotspot con-name my-hotspot ssid hotspotje band bg password wachtwoord

Error: Device 'wlx04922687b509' supports neither AP nor Ad-Hoc mode.
Geef nooit op! :D
Volgens diverse threads op AskUbuntu, Stackoverflow etc. is de hardwarematige ondersteuning voor accesspoints er wel degelijk want het werkt onder Windows schijnbaar wel. Ik heb inmiddels ook 6 verschillende forks van de firmware gevonden en uitgeprobeerd, maar allemaal geven ze errors tijdens compilen. Ook heb ik Create AP geprobeerd, maar die geeft ook aan
ERROR: Your adapter does not support AP (master) mode
Ik raak een beetje vast zo...

Ergens krijg ik haast het idee dat de fout bij mij ligt dat ik die drivers niet gecompileerd krijg?

Uiteindelijk wil ik alleen maar een Wifi-connectie tussen mijn (android) telefoon en mijn desktop. Zo moeilijk moet dat toch niet zijn? :?

Heeft iemand een goed idee?

Tjolk is lekker. overal en altijd.

Beste antwoord (via Tjolk op 14-02-2019 08:32)


  • Thralas
  • Registratie: december 2002
  • Laatst online: 22:59
Tjolk schreef op woensdag 13 februari 2019 @ 10:15:
@Thralas
lsusb-t relevante regel:

code:
1
Port 2: Dev 8, If 0, Class=Vendor Specific Class, Driver=mt76x0, 480M

Je gebruikt dus de mt76x0 driver - en die werkt, dus je hebt inderdaad een MediaTek chipset, geen Ralink.
Waar STA voor staat, heb ik geen idee van.
Station, ofwel een 802.11 client device. De andere relevante rol heet AP ;)

Driver met enkel STA in de naam suggereert dat het dus geen AP mode ondersteunt.
Ik begrijp van jou dat ik eigenlijk zou moeten uitvinden welke chip er daadwerkelijk in ligt. Weet je hoe ik dat kan uitzoeken?
En als ik dan de Ralink chip heb, kijken of ik een specifieke Ralink driver kan verkrijgen/bouwen?
Met ralink had het zo gewerkt, zonder zelf zaken te compileren. Maar de MediaTek-driver die je van de fabrikant krijgt is blijkbaar oud, en support in de standaardkernel is (blijkbaar) relatief nieuw.

Zie ook: [v3,00/14] Add mt76x0 driver

Juli 2018 dus. En:
Add mt76x0 driver for MT7610U based USB dongles. Currently driver
support only STA mode.
Daarna nog wel wat wijzigingen, ook AP mode voor de PCIe-versie, maar niet voor USB.
@anderen: ding weggooien/terugbrengen is altijd een optie natuurlijk, maar ik wil uiteindelijk ook gewoon iets dat werkt. Ik dacht dat ik mijn huiswerk goed had gedaan door te checken op ondersteuning voor zowel Linux als hotspots, maar als ik daar al niet voldoende op kan vertrouwen dan wordt het wel een lastig verhaal.
Yup, dat is vervelend. Staat ook nooit duidelijk in marketingmateriaal, dus je kunt er weinig aan doen.

Ik denk dat je het beste een andere dongle kunt zoeken. Deze gaat vooralsnog niet werken.

Een wat oudere dongle is ook niet perse een probleem - voor 2.4 GHz tenminste. Voor 5 GHz/802.11ac AP mode moet je heel goed onderzoek doen, want sommige adapters die prima ondersteund worden (bv. Intel) doen alsnog weinig/geen 5 GHz vanwege regulatory issues.

Alle reacties


  • The Eagle
  • Registratie: januari 2002
  • Laatst online: 21:39

The Eagle

I wear my sunglasses at night

Ja, breng dat ding terug en koop een accesspoint. Dit kost je meer dan dat het oplevert.

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • Knee-Buckler
  • Registratie: mei 2012
  • Laatst online: 04-10 12:41
Haal een KPN wifiversterker pricewatch: KPN WiFi Versterker DualBand (Arcadyan)

Bijvoorbeeld.. er zijn natuurlijk nog veel meer opties.

doe de kabel van de pc in de wifi versterker :) en ga dan verder naar de PC. de versterker maak je een AP van en klaar :)

Knee-Buckler wijzigde deze reactie 12-02-2019 14:32 (8%)


  • tafkaw
  • Registratie: december 2002
  • Laatst online: 23:27
Niet alle netwerk devices ondersteunen AP mode. Zie bijv. https://help.ubuntu.com/community/WifiDocs/MasterMode

Heb zelf erg goede ervaring met de sticks van Alfa.

tafkaw wijzigde deze reactie 12-02-2019 17:58 (19%)


  • Mijzelf
  • Registratie: september 2004
  • Niet online
Tjolk schreef op dinsdag 12 februari 2019 @ 14:03:
Ik zie in dat bestand:

code:
1
2
CC := $(CROSS_COMPILE)gcc
LD := $(CROSS_COMPILE)ld


Werkelijk geen flauw idee wat ik daarmee moet.
Niets. Niet als je lokaal compileert op je target machine. Als je zou cross-compilen, dan moet de environment variabele CROSS_COMPILE de juiste prefix bevatten. Maar als die leeg is staat hier gewoon
code:
1
2
CC := gcc
LD := ld

wat in de meeste gevallen prima is.

code:
1
2
3
snprintf(extra, size, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__ );
^~~~~~~~
/home/ger/Downloads/UT_USB_AC51_1016/Linux/mt7610u_wifi_sta_v3001_dpo_20130725/os/linux/../../sta/sta_cfg.c:5401:95: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]

Dat is een flauwe. De te compileren binary bevat de datum en tijd van het moment van compileren. Dat betekend dat de build niet reproduceerbaar is, en je dus niet met een md5sum of iets dergelijks kan controleren of een binary van deze code is gebouwd. Blijkbaar wordt dat als probleem gezien.
Je kunt proberen om in de Makefile bij 'CFLAGS' -Wno-error=data-time toe te voegen.

  • Thralas
  • Registratie: december 2002
  • Laatst online: 22:59
Tjolk schreef op dinsdag 12 februari 2019 @ 14:03:
Nog maar eens verder spitten dan. Inmiddels heb ik geleerd dat de onderliggende chipset een [Mediatek MT7610/Ralink RT2870] is. En ik blijk via nmcli ook een hotspot te kunnen forceren.... DACHT
Dat is wel dubieus. RT2870 óf MT7610 volgens het USB ID.

Kijk eerst eens welke driver er nu in gebruik is met `lsusb -t`. Het feit dat je zegt een nieuwere kernel nodig te hebben om het te laten werken suggereert dat het Mediatek is. En vendors zijn er niet vies van om van chipset te wisselen als de oude er niet meer zijn (Ralink is ook nog eens van MediaTek tegenwoordig).

RT28xx is al zo oud als de weg naar Rome, en zou zó moeten werken met rt2800usb - Ralink is inderdaad een prima chipset voor AP mode.

Mediatek? Geen idee. Veel wireless drivers hebben een pagina op de kernel wiki waarin staat wat er wel-en-niet kan. Die weet je vast wel te vinden.

Tenzij je een hele goede reden hebt (bijvoorbeeld: AP support) heeft het de voorkeur om gewoon de drivers uit de upstream kernel te gebruiken.

Volgens mij ben je nu een Mediatek STA driver aan het bouwen - ik zou je met klem willen aanraden om eerst bovenstaande in acht te nemen en vervolgens óók even uit te zoeken waar STA voor staat om teleurstellingen te voorkomen.

Thralas wijzigde deze reactie 12-02-2019 19:00 (5%)


  • Tjolk
  • Registratie: juni 2007
  • Laatst online: 14-10 16:22
@Thralas
lsusb-t relevante regel:

code:
1
Port 2: Dev 8, If 0, Class=Vendor Specific Class, Driver=mt76x0, 480M



Waar STA voor staat, heb ik geen idee van. Ik kom wat suggesties tegen hier en daar, maar niets wat ook maar enig vertrouwen geeft in "dat klopt". Static, standard, dat soort dingen - en eerlijk gezegd zegt me dat niets. Dus als jij een betere suggestie hebt laat ik me graag informeren - en ook waarom dat dan niet goed is ;)

De meegeleverde driver - voor alle volledigheid - heet: mt7610u_wifi_sta_v3001_dpo_20130725
En dus inderdaad een MediaTek STA driver van bijna 6 jaar oud.

Ik begrijp van jou dat ik eigenlijk zou moeten uitvinden welke chip er daadwerkelijk in ligt. Weet je hoe ik dat kan uitzoeken?
En als ik dan de Ralink chip heb, kijken of ik een specifieke Ralink driver kan verkrijgen/bouwen?

@anderen: ding weggooien/terugbrengen is altijd een optie natuurlijk, maar ik wil uiteindelijk ook gewoon iets dat werkt. Ik dacht dat ik mijn huiswerk goed had gedaan door te checken op ondersteuning voor zowel Linux als hotspots, maar als ik daar al niet voldoende op kan vertrouwen dan wordt het wel een lastig verhaal. Daarnaast vind ik het ook wel leuk om me hier eens wat verder in te verdiepen.

Tjolk is lekker. overal en altijd.


Acties:
  • Beste antwoord
  • +2Henk 'm!

  • Thralas
  • Registratie: december 2002
  • Laatst online: 22:59
Tjolk schreef op woensdag 13 februari 2019 @ 10:15:
@Thralas
lsusb-t relevante regel:

code:
1
Port 2: Dev 8, If 0, Class=Vendor Specific Class, Driver=mt76x0, 480M

Je gebruikt dus de mt76x0 driver - en die werkt, dus je hebt inderdaad een MediaTek chipset, geen Ralink.
Waar STA voor staat, heb ik geen idee van.
Station, ofwel een 802.11 client device. De andere relevante rol heet AP ;)

Driver met enkel STA in de naam suggereert dat het dus geen AP mode ondersteunt.
Ik begrijp van jou dat ik eigenlijk zou moeten uitvinden welke chip er daadwerkelijk in ligt. Weet je hoe ik dat kan uitzoeken?
En als ik dan de Ralink chip heb, kijken of ik een specifieke Ralink driver kan verkrijgen/bouwen?
Met ralink had het zo gewerkt, zonder zelf zaken te compileren. Maar de MediaTek-driver die je van de fabrikant krijgt is blijkbaar oud, en support in de standaardkernel is (blijkbaar) relatief nieuw.

Zie ook: [v3,00/14] Add mt76x0 driver

Juli 2018 dus. En:
Add mt76x0 driver for MT7610U based USB dongles. Currently driver
support only STA mode.
Daarna nog wel wat wijzigingen, ook AP mode voor de PCIe-versie, maar niet voor USB.
@anderen: ding weggooien/terugbrengen is altijd een optie natuurlijk, maar ik wil uiteindelijk ook gewoon iets dat werkt. Ik dacht dat ik mijn huiswerk goed had gedaan door te checken op ondersteuning voor zowel Linux als hotspots, maar als ik daar al niet voldoende op kan vertrouwen dan wordt het wel een lastig verhaal.
Yup, dat is vervelend. Staat ook nooit duidelijk in marketingmateriaal, dus je kunt er weinig aan doen.

Ik denk dat je het beste een andere dongle kunt zoeken. Deze gaat vooralsnog niet werken.

Een wat oudere dongle is ook niet perse een probleem - voor 2.4 GHz tenminste. Voor 5 GHz/802.11ac AP mode moet je heel goed onderzoek doen, want sommige adapters die prima ondersteund worden (bv. Intel) doen alsnog weinig/geen 5 GHz vanwege regulatory issues.

  • Tjolk
  • Registratie: juni 2007
  • Laatst online: 14-10 16:22
Bedankt voor je uitgebreide antwoord - al is de conclusie teleurstellend maar dat valt jou niet aan te rekenen ;)

Ik ga deze jongen eens terugbrengen. Eventuele opvolger ga ik eens voor neuzen bij een daadwerkelijke specialist i.p.v. de MediaMarkt.

Tjolk is lekker. overal en altijd.


  • Harsh Critic
  • Registratie: juni 2010
  • Laatst online: 13-10 15:03
Ik ben bang dat ik ook niet echt een te beste ervaring heb met Asus USB wifi dongles op Linux. Uiteindelijk heb ik de AC68 (RTL8814AU, ook dus van Realtek) wel werkend gekregen (geen idee hoe het zit met AP), maar in het begin had ik gewoon 0 WiFi ondersteuning. Beetje lastig als je dan na een fresh install wat drivers moet gaan installeren.

Uiteindelijk heb ik een driver gevonden gemaakt door de community die nog beter werkt dan de Windows drivers (van dat onding) waardoor het nu een perfecte WiFi dongle is geworden.

Misschien eens Github afzoeken of er een betere driver is misschien?

  • wian_gn
  • Registratie: oktober 2005
  • Laatst online: 13-10 10:28
Voor het beschreven doel (mijn laptop is dan mijn eigen AP in hotels, soms via kabel, soms via een ingebouwde WiFi verbinding) gebruik ik al een behoorlijke tijd een Edimax EW-7811UN. Die is voor minder dan een tientje te krijgen op Amazon. Het is een zogenaamde Nano-adapter, net zo groot als die USB-dongles van muizen die je wel eens ziet.

Heeft Realtek 8192, draait zonder problemen met Linux Mint (en volgens mij zo'n beetje alle andere distro's) en doet het soms dagen achter elkaar zonder reboots en serveert dan dus WiFi voor 5 apparaten. Ik gebruik dan het create_ap script van oblique zoals hierboven ook genoemd. Werkt uit de kunst.

wian_gn wijzigde deze reactie 17-02-2019 08:55 (4%)


  • Tjolk
  • Registratie: juni 2007
  • Laatst online: 14-10 16:22
Ja, ik had wel door dat de Realtek ondersteuning voor Linux beter is dan die van Asus/Ralink/Mediatek.

Maar goed, afgelopen week de genoemde dongle maar eens teruggebracht. Ik heb voor nu mijn geld terug, later ga ik nog wel eens verder neuzen. Leerpuntje is met name geweest: uitzoeken welke onderliggende chip erin ligt en is daarvoor een recente driver beschikbaar.

Tjolk is lekker. overal en altijd.

Pagina: 1


Apple iPhone 11 Nintendo Switch Lite LG OLED C9 Google Pixel 4 FIFA 20 Samsung Galaxy S10 Sony PlayStation 5 Elektrische voertuigen

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True