Could use some help with missing Wifi network

So, I have NomadBSD up and running. The Wifi isn’t connecting though. I read through the forum and handbook something about wlan doesn’t work, but I could tether my iPhone. Okay, so I don’t know how to do it, so that was a minor setback. Reading through messages here, I learned a protocol RNDIS was the ticket, but it has to be powered by urndis.

That seemed ok. I got:
$ sudo kldstat | grep if_urndis 1 0xffffffff829b1000 2700 if_urndis.ko

A google search put me at this article: How to connect a FreeBSD box to the internet through an Android device via an USB port.

It says on that page:

If output comes out in the form of if_urndis.ko, everything is fine and the kernel module is loaded so you will be able to make use of the driver. If it comes empty something has gone wrong.

It kinda’ loos to me like I got something – at least it isn’t empty. Then it got a little more dissappointing with:

$ ifconfig
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
ether 20:89:84:39:35:61
inet6 fe80::2289:84ff:fe39:3561%re0 prefixlen 64 scopeid 0x1
media: Ethernet autoselect (none)
status: no carrier
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
inet 127.0.0.1 netmask 0xff000000
groups: lo
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
$ ifconfig ue0
ifconfig: interface ue0 does not exist
$ ping google.com
ping: cannot resolve google.com: Host name lookup failure

Note: I have an iPhone and this says using an Android but mainly it just tells you how to use your personal hotspot to share your internet connection with other devices. I must have done something right. That other little box at the top, beside the networkmanager thing, picked up the iphone announcing other storage had been added.

I can’t plug in an Ethernet cable. It’s on another floor.

Anyways, that’s today’s dilemma.

Hi Steve,
thank you for sharing this idea, it works with my Android.
On NomadBSD:

sudo kldload if_urndis

Connect with a USB cable the telephone to the laptop.
Enable Tethering USB on the phone.
On NomadBSD you should have :

ifconfig ue0
ue0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 76:04:06:95:1d:cb
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

Get the new IP from the phone:

sudo dhclient ue0
DHCPREQUEST on ue0 to 255.255.255.255 port 67
DHCPNAK from 192.168.42.129
DHCPDISCOVER on ue0 to 255.255.255.255 port 67 interval 4
DHCPOFFER from 192.168.42.129
DHCPREQUEST on ue0 to 255.255.255.255 port 67
DHCPACK from 192.168.42.129
bound to 192.168.42.119 – renewal in 1800 seconds.

and test it

ping -c2 google.it
PING google.it (216.58.209.35): 56 data bytes
64 bytes from 216.58.209.35: icmp_seq=0 ttl=114 time=8.916 ms
64 bytes from 216.58.209.35: icmp_seq=1 ttl=114 time=8.119 ms

Regards
Maurizio

1 Like

FreeBSD has traditionally had poor support for Realtek wifi devices. You need to take a look at the FreeBSD documentation for their supported devices list. You may find you need a special driver, but easier would be to use a supported USB wifi device.

If you find your device IS supported, make sure the correct driver is loaded in the kernel, you have configured wpa_supplicant (/etc/wpa_supplicant.conf) and make sure you have the correct configuration for your device in /etc/rc.conf. You can find all this information in the FreeBSD documentation. NetworkManager is supposed to do all that for you, but I have run into problems like that with NM in the past.

Your wpa_supplicant.conf file should look something like this:

network={
 ssid="your network name"
 key_mgmt=WPA-PSK
 proto=RSN
 psk="yourpassword"
}

Your rc.conf file should have the following lines somewhere in it (if you don’t use ipv6 you can comment out or delete the lines with ipv6 in them):

ipv6_activate_all_interfaces="YES"
wlans_re0="wlan0"
create_args_wlano="down country US [or your country code]"
ifconfig_wlan0="up scan WPA DHCP"
ifconfig_wlan0_ipv6="inet6 accept_rtadv"

Be very careful in directly editing your /etc/rc.conf file, because if you mess up the wrong line your system may not boot properly.

kldstat will tell you what drivers are installed in the kernel. If you do not find your device’s driver there, you can load it with kldload. See the documentation.

Although this might not work out to 100%, you could also embed the driver you need into the provided NDIS wrapper by FreeBSD and compile it into your kernel for your architechture and system as described in the FreeBSD Handbook:

32.3.3. Basic Setup
32.3.3.1. Kernel Configuration
:

! Note
[…] A list of available wireless drivers and supported adapters can be found in the FreeBSD Hardware Notes, available on the Release Information page of the FreeBSD website. If a native FreeBSD driver for the wireless device does not exist, it may be possible to use the Windows® driver with the help of the NDIS driver wrapper.

My wpa_supplicant.conf file looks like this:

network={
ssid=“SPSETUP-688D”
#psk=“apple7858filter”
psk=923293140461e81c41cc546e279ce535c3ab2fa0c699eafedce70ad4ecf0fa5c
}

My rc.conf:

allscreens_flags=“green”
bsdstats_enable=“NO”
clear_tmp_X=“NO”
cupsd_enable=“YES”
dbus_enable=“YES”
devfs_system_ruleset=“desktopuser”
dsbdriverd_enable=“YES”
dsbmd_enable=“YES”
entropy_file=“NO”
hostname=“NomadBSD”
kld_list=“cuse4bsd”
ldconfig_insecure=“YES”
local_startup=“/usr.local.etc/rc.d”
lpd_enable=“NO”
ntpd_enable=“YES”
ntpd_sync_on_start=“YES”
powerdxx_enable=“YES”
savecore_enable=“NO”
sendmail_enable=“NO”
sendmail_msp_queue_enable=“NO”
sendmail_outbound_enable=“NO”
sendmail_submit_enable=“NO”
setup_mouse_enable=“YES”
syslogd_enable=“YES”
update_motd=“NO”
webcamd_enable=“YES”
economy_cx_lowest=“C2”
performance_cx_lowest=“C2”
initgfx_enable=“YES”
gsched_enable=“YES”
slim_enable=“YES”
init_vbox_enable=“YES”
avahi_daemon_enable=“YES”
ipv6_activate_all_interfaces=“YES”
ackfwl_enable=“YES”
load_iichid_enable=“YES”
keymap=“us.kbd”
initgfx_kmods=“/boot/modules/radeonkms.ko”
ifconfig_re0=“DHCP”

You said:

Be very careful in directly editing your /etc/rc.conf file, because if you mess up the wrong line your system may not boot properly.

The laptop I’m having trouble connecting to the Internet is a 6 year old Lenovo.

I have a 14 year old HP laptop I’ve been trying to sell, after fixing it up. It has Linux-lite 5.8 on it. Just for the fun of it, I plugged my USB flash drive into it. I didn’t have to go through any extra settings. It fired up NoamdBSD, connected to the WiFi without my password, and in the “Network” link in my file manager, it automatically connected samba to share files with my main desktop.

I could add the extra lines to rc.conf file but I don’t know what this is: ```
create_args_wlano=“down country US [or your country code]”

The only thing I can think of is the country code to our phones if you're calling overseas which is 1+ the number. But if I was calling the US, or they were calling me, it isn't needed. If you can't tell by now, you lost me on this. :-)

> kldstat will tell you what drivers are installed in the kernel. If you do not find your device’s driver there, you can load it with kldload. See the documentation

I copied the kldstat info into a file, but the flash drive I was using to transfer info from the laptop to this machine won't mount now in Nomad. I don't know what my device driver is from the list. If I type it out by hand (tomorrow -- it's getting late here) would you know which one it is?

Thank you Yodar101.

I started on Linux about a year ago. I’m not at a level yet where I can understand anything you’re telling me. I don’t know what a NDIS is, and I don’t know how to compile things. I would have to search and find information for every term you’re using, and the release information is all greek to me. I have no idea what I’m looking at, or any idea how to use it. I think before I could get through all of that, I will likely give up trying to have Nomad connect to the internet on this laptop.

Then you said this might not work 100%. So I could literally waste days trying to learn this stuff and then find out it doesn’t work. Really, I might have to wait a year or two before I tackle something like this. I don’t have enough experience or knowledge yet.

I do appreciate your help though, even if I don’t understand it.

Which one of these would be my wifi adapter?

This is what I got from kldstat:

kldstat
Id Refs Address Size Name
1 88 0xffffffff80200000 2279d20 kernel
2 1 0xffffffff8247b000 7130 ums.ko
3 1 0xffffffff82719000 88c0 tmpfs.ko
4 1 0xffffffff82722000 4df4 cuse.ko
5 1 0xffffffff82727000 2698 intpm.ko
6 1 0xffffffff8272a000 b40 smbus.ko
7 1 0xffffffff8272b000 35b4 geom_uzip.ko
8 1 0xffffffff8272f000 2e30 xz.ko
9 1 0xffffffff82732000 103f0 fusefs.ko
10 1 0xffffffff82743000 1860 uhid.ko
11 1 0xffffffff82745000 1a40 wmt.ko
12 1 0xffffffff82747000 1490 amdtemp.ko
13 1 0xffffffff82749000 818 amdsmn.ko
14 1 0xffffffff8274a000 2940 nullfs.ko
15 1 0xffffffff8274d000 acf mac_ntpd.ko
16 1 0xffffffff8274e000 157310 radeonkms.ko
17 2 0xffffffff828a6000 75c50 drm.ko
18 5 0xffffffff8291c000 12d30 linuxkpi.ko
19 4 0xffffffff8292f000 13f30 linuxkpi_gplv2.ko
20 2 0xffffffff82943000 6d0 debugfs.ko
21 1 0xffffffff82944000 f061 ttm.ko
22 1 0xffffffff82954000 1303 radeon_PALM_pfp_bin.ko
23 1 0xffffffff82956000 1701 radeon_PALM_me_bin.ko
24 1 0xffffffff82958000 d83 radeon_SUMO_rlc_bin.ko
25 1 0xffffffff82959000 322a3 radeon_SUMO_uvd_bin.ko
26 1 0xffffffff8298c000 18f28 ext2fs.ko
27 1 0xffffffff829a5000 3d64 geom_linux_lvm.ko
28 1 0xffffffff829a9000 2a80 acpi_video.ko
29 2 0xffffffff829ac000 3c68 geom_sched.ko
30 1 0xffffffff829b0000 fae gsched_rr.ko
31 1 0xffffffff829b1000 1a6 msdosfs_iconv.ko
32 1 0xffffffff829b2000 2fb0 libiconv.ko

Hello @Steve,

none of them…
the output of ifconfig in your first post has no wlan-interface, so the standard WiFi-kernel-modules on NomadBSD doesn’t seem to work with your wifi-chipset (like on your HP laptop).

You’ll have to find out what WiFi-chipset your Lenovo has, and what kernel-module it needs.
If your Lenovo laptop still have the model-sticker underneath go to Lenovo’s support site and type it in. Then you’ll get every little detail…

When you know the name of the chipset, search for it on FreeBSD 13.0-RELEASE Hardware Notes (assuming you haven’t upgraded to 13.1).
If the chipset is supported the required kernel-module is mentioned - otherwise you’ll have to google…

The above is step 2 in the " 32.3.2. Quick Start" for WiFi in the FreeBSD Handbook.
Now follow the rest of the steps :slight_smile:

PS.
When you talk about (USB) tethering it is mainly connecting your mobile phone to your computer via USB-cable and use it as an internet modem. See the FreeBSD-Handbook. That is what Maurizio’s post was all about, but for you to use his commands with an iPhone, you have to use kldload if_ipheth and not the if_urndis-module (not tested, don’t have an iPhone)
This method is not utilizing WiFi, but is another viable option.

PPS.
If you want to know something about the kernel-modules listed by kldstat, many of them have a man-page ie.

> man ums

happy reading :wink:

You can use this command, tested on my ThinkPad T450:

pciconf -lv | grep -B3 network
em0@pci0:0:25:0:	class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x15a2 subvendor=0x17aa subdevice=0x2226
    vendor     = 'Intel Corporation'
    device     = 'Ethernet Connection (3) I218-LM'
    class      = network
--
ppt0@pci0:3:0:0:	class=0x028000 rev=0x61 hdr=0x00 vendor=0x8086 device=0x095b subvendor=0x8086 subdevice=0x5202
    vendor     = 'Intel Corporation'
    device     = 'Wireless 7265'
    class      = network

The wifi adapter is the Intel Corporation Wireless 7265 adapter.
Regards

1 Like

Steve:
I’m going to try to sum up a few things to help you understand what you need to get your NomadBSD wifi running.

Firstly, your "ifconfig does not show a wifi device, which is why NetworkManager is not able to get it to connect to your wifi network. That probably means the wifi device on your Lenovo is not supported out-of-the-box by NomadBSD’s kernel. That means you need to install the correct driver…if there is one available for it.

Now you need to identify your wifi device. You can do that as suggested above by Maurizio or by going to the manufacturer’s site and searching your laptop model number or talking to support (maybe). Once you know what wifi chip you have in your laptop, you can go to the FreeBSD.org website and look at their supported devices documentation. IF your device is listed, it will be listed under the correct driver for that device. You will need to load that driver (it will be a “.ko” file) into your kernel, using the kldload command. However, here you are going to run into a problem, because NomadBSD does not install FreeBSD source or the FreeBSD ports tree by default, because it is an OS intended to run from a USB stick, so space is a consideration, which means you will need to either find and download the necessary driver file manually or you will have to install FreeBSD source on your laptop. There are a number of threads on this forum about that process. Once FreeBSD source is installed, you can use the “kldload” command to load the driver file into your kernel.

Once that is done, NetworkManager should be able to automatically configure your wifi device and you should be able to connect to your network. “ifconfig” will confirm that you are connected and have an IP address.

If your wifi device is NOT supported by FreeBSD, all is not lost. You can buy a simple wifi dongle for about $15 that will plug into a USB port on your laptop and will work just fine. However, once you select your wifi dongle, BEFORE BUYING, MAKE SURE IT IS SUPPORTED BY FREEBSD!!! In fact, that might just be the easiest route for you anyway.

I got:

$ pciconf -lv | grep -B3 network
re0@pci0:2:0:0: class=0x020000 card=0x397f17aa chip=0x813610ec rev=0x05 hdr=0x00
vendor = ‘Realtek Semiconductor Co., Ltd.’
device = ‘RTL810xE PCI Express Fast Ethernet controller’
class = network

none0@pci0:6:0:0: class=0x028000 card=0x051b14e4 chip=0x472714e4 rev=0x01 hdr=0x00
vendor = ‘Broadcom Inc. and subsidiaries’
device = ‘BCM4313 802.11bgn Wireless Network Adapter’
class = network

I’ll have a look at FreeBSD.

Thanks!

I have a feeling that my “wpa_supplicant.conf” and “rc.conf” files are okay. When I run NomadBSD on my HP laptop, everything works fine, and I can connect to the Internet. And, of course, here at home, they are both on the same network.

I’ll take a look at FreeBSD but a dongle might be better. – Thank you!

1 Like

Just to make sure you understand, NomadBSD is not like a linux distro. NomadBSD IS FreeBSD, with some things pre-configured and customized for you. NomadBSD is to FreeBSD sort of what KDE is to a Linux distro…more or less. What I mean to say is that pretty much everything in the FreeBSD handbook and other documentation applies to NomadBSD, whereas with linux, there is commonality between distros (the linux kernel), but what works on one does not necessarily work on another. So, get well acquainted with the FreeBSD handbook and the FreeBSD user forums. Personally, I find FreeBSD to be more organized and easy to understand than linux.

GhostBSD is another FreeBSD-based OS that I like. I run it on an old Toshiba laptop in my workshop. I’ve been playing with NomadBSD on a Dell laptop I bought used a couple months ago and have been comparing the two. One thing I have noticed is that there is more current development on GhostBSD than Nomad. I rarely see a Nomad dev visiting this forum.

Hello,

This is your wired network controller.

This is your wireless network controller.

Doing a search for BCM4313 on FreeBSD 13.0-RELEASE Hardware Notes returns empty, so the card is not directly supported.

Doing a search for BCM4313 on FreeBSD Forum, the newest post I can find is this post.
The user in this post gave up on the NDIS-solution-way and chose to buy another WiFi-card.
Unfortunately it is not positive reading for an owner of this card. Buying a USB-wifi-dongle might be the easiest solution…

Hopes this helps you and have a nice day
Ludensen, a happy NomadBSD-user

Thank you!

I’ve never bought a wireless adaptor, and have no experience with them. Can you offer some recommendations?

Buy a dongle that works in FreeBSD.

Vermaden is a well known user in the FreeBSD community.
Realtek RTL8188CUS – USB 802.11n WiFi Review

Thank you! I really appreciate your help!

As the Handbook mentions it, NDIS is a wrapper for Windows drivers, originally developed for Linux at a time, where Linux was in a horrible state and support by companies for it was absolutely non-existent, say in the early 2000’s. It eventually got merged in FreeBSD’s base system later on.

Here is the link for wifi adapter compatibility for 13.1-RELEASE:

Scroll down to the wifi adapter section. Don’t buy a device that has a wifi chip that is not on that list.