Open Gictorbit opened 3 years ago
Hi there, thanks for feedback.
The log shows 5e
was the first byte of the wifi interface, which was abnormal. device manufacturers' MAC address' first byte should always be multiple of 4.
I found sometimes creating virtual wifi interface causes the real wifi interface turning into a random strange MAC address. I'm still confused why that happends (so I added a delay at https://github.com/garywill/linux-router/blob/2341938b762005230fef8199c478d462f6f9cfc7/lnxrouter#L1598 sometimes the MAC address goes back again automatically)
Please check what wlp0s20f3
's original MAC address is. For example macchanger
can do that:
macchanger -s wlp0s20f3
it will return something like
Current MAC: xxxxx
Permanent MAC: xxxxx
Try these:
If MAC changed, use macchanger -p wlp0s20f3
to set it back then try again.
If still fail, try increasing the sleep time
rfkill unblock wifi
before running lnxrouter
try with --no-virt
are you using the latest commit?
does create_ap work?
I found sometimes creating virtual wifi interface causes the real wifi interface turning into a random strange MAC address. I'm still confused why that happends (so I added a delay at
hmm, that's weird. also I tested create_ap
on the same device using same linux distribution and it worked fine without any problem
Please check what
wlp0s20f3
's original MAC address is. For examplemacchanger
can do that:
here is the output of macchanger -s wlp0s20f3
Current MAC: 92:cc:2a:xx:xx:xx (unknown)
Permanent MAC: 80:32:53:xx:xx:xx (unknown)
4. are you using the latest commit?
yes and create_ap was ok and worked great
3. try with
--no-virt
I tried this method and works fine without creating virtual interface but sometimes we really need to set a virtual interface up
- If MAC changed, use
macchanger -p wlp0s20f3
to set it back then try again. If still fail, try increasing the sleep time
also I increased sleep time to 6 and error occurred again also I checked macchanger
and here is the output
sudo macchanger -p wlp0s20f3
Current MAC: f2:39:68:xx:xx:xx (unknown)
Permanent MAC: 80:32:53:xx:xx:xx (unknown)
[ERROR] Could not change MAC: interface up or insufficient permissions: Device or resource busy
I tried this method and works fine without creating virtual interface but sometimes we really need to set a virtual interface up increased sleep time to 6 and error occurred again
When creating virtual interface, is the error happening always or sometimes?
NetworkManager is a possible reason. If NM running, it will give the new virtual interface a random MAC. MAC will go back after setting NM unmanaged. But why wlp0s20f3
too? Wired. Only the virtual interface should go a random MAC.
Try increasing this sleep time (after setting NM unmanaged) https://github.com/garywill/linux-router/blob/2341938b762005230fef8199c478d462f6f9cfc7/lnxrouter#L778
When creating virtual interface, is the error happening always or sometimes?
This error always happens, but it works fine with create_ap
I think it is a bug maybe
Try increasing this sleep time (after setting NM unmanaged)
I tried this,it doesn't help. same error occurs. I increased sleep to 6 second in line 778 and here is the output:
[sudo] password for victor:
PID: 194580
Target interface is wlp0s20f3
Use random LAN IPv4 address 192.168.197.1
Creating a virtual WiFi interface...
x0wlp0s20f3 created)
Set x0wlp0s20f3 unmanaged by NetworkManager
Assigning MAC address 42:6d:9b:07:9e:b4 to virtual interface x0wlp0s20f3 according to wlp0s20f3 ...
RTNETLINK answers: Device or resource busy
Error occured
ERROR: Failed bringing x0wlp0s20f3 up
Doing cleanup..
iptables: stop NAT
iptables: unallow DNS
iptables: unallow dhcp
Exiting: This is the only running instance
Cleaning up done
I did some test with
watch -n 0.1 ip a
I found every time I check/uncheck the "enabe wifi" on NM, my wlan0
MAC changes.
Having NM wifi on, runing rfkill (un)block wifi
also makes MAC random.
Recently I upgrade Linux last month. Then the strange MAC behavior began. Did you upgrade recently? I'm using
create_ap writes NM's config file to set unmanaged before creating virtual interface.
linux-router uses nmcli
to set after creating.
Could you try
sudo systemctl stop NetworkManager
, reset everything, then run lnxrouter
found every time I check/uncheck the "enabe wifi" on NM, my
wlan0
MAC changes. Having NM wifi on, runingrfkill (un)block wifi
also makes MAC random.
Interesting. I use arch Linux. Since it is rolling release, the packages are updated to the last version. the packages specs are below
create_ap writes NM's config file to set unmanaged before creating virtual interface. linux-router uses
nmcli
to set after creating
hmm, so that is why create_ap
works and linux-router
encounters error
Could you try
sudo systemctl stop NetworkManager
, reset everything, then run
lnxrouter
I did it then I restart NetworkManager
service and I ranlnxrouter
command, same error happened
I did this
sudo systemctl stop NetworkManager
sudo systemctl restart NetworkManager
sudo ./lnxrouter --ap wlp0s20f3 victorAP -p 12345678
I think create_ap
solution with network manager is better and works great at all situations
Hello, just wanted to add that after upgrading to Fedora 32, create_ap doesn't work anymore (the ap is created and accessible, but the connecting device is stuck in the connection step and eventualy timeout)
I tired linux-router to see if it would fix the issue, but I run into the same error with a virtual interface : RTNETLINK answers: Device or resource busy
Is there a fix planned for this issue ?
@fmichaut-dev
after upgrading to Fedora 32, create_ap doesn't work anymore (the ap is created and accessible, but the connecting device is stuck in the connection step and eventualy timeout)
Other Fedora users report similar issue https://github.com/garywill/linux-router/issues/19#issuecomment-873337509 Currently in my mind is that we need someone to disable system services one by one to figure out which service is causing problem.
I tired linux-router to see if it would fix the issue, but I run into the same error with a virtual interface : RTNETLINK answers: Device or resource busy
I said in above posts:
create_ap writes NM's config file to set unmanaged before creating virtual interface. linux-router uses nmcli to set after creating.
So I guess it's the NetworkManager causing that.
So could someone encountering RTNETLINK answers: Device or resource busy
try disabling NM then run?
Sorry for these issues but I've been busy on other jobs (still need 1-2 months. or even longer). That's why we need more people for this linux-router
So could someone encountering
RTNETLINK answers: Device or resource busy
try disabling NM then run?
So I just tried that on my fedora and it allows linux-router
to start and I can connect with another device.
But I fall back to the same issue of device timing out trying connecting to the ap like in the other issue you linked.
I downloaded Arch Linux and Fedora live iso, tested on a laptop with Intel Centrino wifi device.
Did not reproduce this problem RTNETLINK answers: Device or resource busy
.
archlinux-gui-xfce-pure-2021.08-x86_64.iso Kernel 5.13.6 Network manager 1.32.10
Fedora-Workstation-Live-x86_64-34-1.2.iso Kernel 5.11.12 Network manager 1.30.2
If you still meet that problem, could you provide more info? For example your wifi model, kernel version, dmesg
log ....
Seems not every one has that problem. I guess we need to file a bug to NM
Hello, I have the same problem. I'm on Archlinux with NM 1.32.12-1. If i stop NM it's start without problem.
lspci -k
[...]
00:14.3 Network controller: Intel Corporation Cannon Lake PCH CNVi WiFi (rev 10)
DeviceName: Onboard - Ethernet
Subsystem: Intel Corporation Wireless-AC 9560
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
[...]
The output:
sudo ./lnxrouter --ap wlan0 test -p 1234567890
linux-router 0.6.6 (https://github.com/garywill/linux-router)
Released under LGPL, with no warranty. Use on your own risk.
PID: 29663
Target interface is wlan0 (90:78:xx:xx:xx:xx)
Use random LAN IPv4 address 192.168.186.1
wlan0 already in channel 6 (2437 MHz)
Channel fallback to 6
Creating a virtual WiFi interface...
x3wlan0 created
Set x3wlan0 unmanaged by NetworkManager
Assigning MAC address 90:78:xx:xx:xx:yy to virtual interface x3wlan0 according to wlan0 ...
RTNETLINK answers: Device or resource busy
Error occured
ERROR: Failed bringing x3wlan0 up
Doing cleanup..
Undoing iptables changes ..
bash: /dev/shm/lnxrouter_tmp/lnxrouter.wlan0.conf.hGRTtF/undo_iptables.sh: No such file or directory
Exiting: This is the only running instance
Killing PGID 29662 ...
Cleaning up done
In Logs (journalctl) if it can help:
déc. 06 17:11:26 archlinux.localhost NetworkManager[23744]: <info> [1638807086.0581] device (x3wlan0): driver supports Access Point (AP) mode
déc. 06 17:11:26 archlinux.localhost NetworkManager[23744]: <info> [1638807086.0592] manager: (x3wlan0): new 802.11 Wi-Fi device (/org/freedesktop/NetworkManager/Devices/24)
déc. 06 17:11:26 archlinux.localhost systemd-udevd[29725]: Using default interface naming scheme 'v249'.
déc. 06 17:11:26 archlinux.localhost NetworkManager[23744]: <info> [1638807086.0852] device (x3wlan0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
déc. 06 17:11:26 archlinux.localhost NetworkManager[23744]: <warn> [1638807086.0893] platform-linux: do-change-link[57]: failure changing link: failure 16 (Périphérique ou ressource occupé)
déc. 06 17:11:26 archlinux.localhost NetworkManager[23744]: <info> [1638807086.0900] device (x3wlan0): set-hw-addr: set MAC address to 36:B3:45:F1:A7:CA (scanning)
déc. 06 17:11:26 archlinux.localhost NetworkManager[23744]: <warn> [1638807086.0901] platform-linux: do-change-link[57]: failure changing link: failure 16 (Périphérique ou ressource occupé)
déc. 06 17:11:26 archlinux.localhost wpa_supplicant[23748]: Could not set interface x3wlan0 flags (UP): Device or resource busy
déc. 06 17:11:26 archlinux.localhost wpa_supplicant[23748]: nl80211: Could not set interface 'x3wlan0' UP
déc. 06 17:11:26 archlinux.localhost wpa_supplicant[23748]: nl80211: deinit ifname=x3wlan0 disabled_11b_rates=0
déc. 06 17:11:26 archlinux.localhost wpa_supplicant[23748]: Could not set interface x3wlan0 flags (UP): Device or resource busy
déc. 06 17:11:26 archlinux.localhost wpa_supplicant[23748]: WEXT: Could not set interface 'x3wlan0' UP
déc. 06 17:11:26 archlinux.localhost wpa_supplicant[23748]: x3wlan0: Failed to initialize driver interface
déc. 06 17:11:26 archlinux.localhost NetworkManager[23744]: <error> [1638807086.1054] device (x3wlan0): Couldn't initialize supplicant interface: GDBus.Error:fi.w1.wpa_supplicant1.UnknownError>
déc. 06 17:11:28 archlinux.localhost NetworkManager[23744]: <info> [1638807088.3265] device (x3wlan0): state change: unavailable -> unmanaged (reason 'removed', sys-iface-state: 'removed')
déc. 06 17:11:28 archlinux.localhost NetworkManager[23744]: <info> [1638807088.3270] device (x3wlan0): set-hw-addr: reset MAC address to 90:78:xx:xx:xx:xZ (unmanage)
déc. 06 17:11:28 archlinux.localhost NetworkManager[23744]: <warn> [1638807088.3272] platform-linux: do-change-link[57]: failure changing link: failure 16 (Périphérique ou ressource occupé)
déc. 06 17:11:28 archlinux.localhost audit[23744]: USYS_CONFIG pid=23744 uid=0 auid=4294967295 ses=4294967295 msg='op=device-managed interface="x3wlan0" ifindex=57 args=false pid=29761 uid=0 r>
déc. 06 17:11:28 archlinux.localhost kernel: audit: type=1111 audit(1638807088.324:989): pid=23744 uid=0 auid=4294967295 ses=4294967295 msg='op=device-managed interface="x3wlan0" ifindex=57 ar>
déc. 06 17:11:28 archlinux.localhost NetworkManager[23744]: <info> [1638807088.3280] audit: op="device-managed" interface="x3wlan0" ifindex=57 args="false" pid=29761 uid=0 result="success"
déc. 06 17:11:29 archlinux.localhost rfkill[29788]: unblock set for id 1
Kernel version :
uname -a
Linux archlinux.localhost 5.15.6-arch2-1 #1 SMP PREEMPT Thu, 02 Dec 2021 15:47:09 +0000 x86_64 GNU/Linux
I noticed that the line 1995 return the error # bring subnet interface up ip link set up dev ${SUBNET_IFACE} || die "Failed bringing ${SUBNET_IFACE} up"
I also noticed that create_ap
works.
Also I tried to use iwd
as backend for NM and it works so wpa_supplicant
may be responsible for the problem
I hope it could help you... If you need some other information let me know...
I added some delays and log gathering code in branch dev-12
@ThomasK7775 Could you who encounter this issue do some tests and show the results for us? I can't do it myself cause I can't reproduce on my machine.
Run the master
branch with --no-virt
:
lnxrouter --ap wlan0 wifi -p 12345678 --no-virt
(according to users reported above, this worked. I just want to make sure it still works now)
Run the dev-12
branch (e1ccfac) (without --no-virt
), and record the logs
Comment out this line then run again: https://github.com/garywill/linux-router/blob/e1ccfac40cc969863a3bc0581409ce286eed837d/lnxrouter#L1656
Disable MAC randomization during Wi-Fi scanning ( restart NM (also wpa_supplicant) ) then run:
/etc/NetworkManager/conf.d/wifi_rand_mac.conf
[device]
wifi.scan-rand-mac-address=no
(https://wiki.archlinux.org/title/NetworkManager#Configuring_MAC_address_randomization)
Thanks in advance. We still need tests and info
Recent log on dev-12 branch: https://gist.github.com/DeadSix27/1a6ecc56f2e8addbe1eacae666d2efbe
Facing the same issues as outlined above
wpa_supplicant
with -dd
to get more logRun into this error. Setup: Kubuntu 21.04
Solved this by deactivating wireless connections, (DO NOT TURN ON AIRPLANE MODE), then running the command. The hotspot is created successfully. Then because the wireless connection was disabled, enable it again. Then connect to the target WiFi, and the internet connection should be passed through to the hotspot devices.
Note that I'm using the same, inbuilt WiFi adapter.
From the above, you can only create a Hotspot first, then connect the same interface to an internet connection second.
create_ap
worked fine on me (Slackware 15.0 - Intel Wi-Fi 6 AX201)
Using lnxrouter
must use these steps for it to work
nmcli radio wifi off
lnxrouter --ap wlan0 MyAccessPoint -p MyPassPhrase &
sleep 6
nmcli radio wifi on
If I use --no-virt
then the wifi is disconnected/disabled so I can't share the internet connection.
nmcli radio wifi off
This doesn't work in Ubuntu 24.04. nmcli radio wifi off puts the machine in Airplane mode according to network manager and lnxrouter fails (setting hostapd-debug 2 doesn't give additional info):
`linux-router 0.7.6b (https://github.com/garywill/linux-router) Released under LGPL, with no warranty. Use on your own risk.
PID: 254671 Target interface is wlp1s0 (9e:01:81:11:c3:49) PCI: 0000:01:00.0 System-already-loaded driver: mt7921e Network controller [0280]: MEDIATEK Corp. MT7922 802.11ax PCI Express Wireless Network Adapter [14c3:0616] (rev 01)
Use random LAN IPv4 address 192.168.196.1 Creating a virtual WiFi interface... x0wlp1s0 created Channel not specified, use default Error occured
ERROR: Your adapter can not transmit to channel 1, frequency band 2.4GHz.
Doing cleanup.. Undoing iptables changes .. Exiting: This is the only running instance Cleaning up done `
an error occurred while bringing the virtual interface up command:
output: