OpenIntelWireless / HeliPort

Intel Wi-Fi Client for itlwm
https://OpenIntelWireless.github.io/HeliPort
BSD 3-Clause "New" or "Revised" License
1.09k stars 122 forks source link

[Bug] Not showing any networks #27

Closed igorkulman closed 4 years ago

igorkulman commented 4 years ago

Describe the bug Running the latest version of itlwm.kext (or at least the latest that builds 13ef970) when I run HeliPort on Intel 7260AC it does not shown any networks, connecting to a network manually does not work either. But the itlwm.kext works fine, editing its Info.plist it connects to my networks just fine

To Reproduce Steps to reproduce the behavior:

  1. Run HeliPort
  2. Open the menu
  3. Observe no networks being shown

Expected behavior Showing a list of networks from the scan

Environment (please complete the following information):

Additional context I am a iOS / Swift developer currently using itlwm.kext on my secondary machine (Thinkpad T440s) and I want to help with the development. I can clean up the Swift code, probably help with auto layout, etc. But my problem is I cannot get it to work, not even show a list of networks. The scan always returns an empty list.

ErrorErrorError commented 4 years ago

On HeliPort, compile ClientKit and run the execution and let me know what does it show on the print output. Also, on IOReg/IOJones let me know if it shows itlwm as a service when you load itlwm.kext.

igorkulman commented 4 years ago

First making sure the kext is loaded

❯ kextstat | grep itlwm
  185    0 0xffffff7f840dd000 0xf46000   0xf46000   com.zxystd.itlwm (1) 2B515B9A-B800-3758-99CF-4F24B5D1A28F <18 13 6 5 3 1>

Running ClientKit gives me

ioctl_driver_info  
P{
Hello, World!
Program ended with exit code: 0

grepping ioreg for itlwm gives me

❯ ioreg | grep itlwm
    | |   |     +-o itlwm  <class itlwm, id 0x100000ae9, registered, matched, active, busy 0 (1 ms), retain 8>
    | |   |       +-o en1  <class itlwm_interface, id 0x100000aed, registered, matched, active, busy 0 (1 ms), retain 11>

also shown searching in IOJones Screenshot 2020-06-22 at 08 57 04

This all is using itlwm build from sha 13ef970 as the latest version cannot be build because of some C++ type mismatch

ErrorErrorError commented 4 years ago
ioctl_driver_info  

Hm that is supposed to give you info after ioctl_driver_info. Something might be failing when it calls ioctl_get or ioctl_set. See if you can see the return value and if it's KERN_SUCCESS.

Can you try the latest commit of HeliPort and see if it shows you any info?

igorkulman commented 4 years ago

Ok, so I finally of it to work. The latest version of itlwm was needed because the "last good" commit I was using did not have the user client in itlwm just in itlwmx.

I had to make a fix in the itlwm to make it build (https://github.com/zxystd/itlwm/blob/master/itlwm/io.cpp#L345 needs to be 0 not NULL) and now I finally see a list of networks.

Looking at the HeliPort code, I can send you some swift code improvements if you are interested.

ErrorErrorError commented 4 years ago

Looking at the HeliPort code, I can send you some swift code improvements if you are interested.

That will be great! So far bugs are the ones we're trying to get those fixed before adding more improvements. However feel free to create a PR if you have any fixes! Thanks!