Page 1 of 1

How to connect Lenovo Thinkpad wifi in EasyOS?

Posted: Tue Nov 24, 2020 5:56 pm
by measter

I have a Lenovo x131e ThinkPad which has a 'difficult' wifi broadcom BCM43228 which needs the wl driver which is typically not recognized out-of-the-box by almost all linux distro/s w/ the exception of MX whether the XFCE or KDE v.

I've been attempting to get live Easy OS 2.5 to recognize it by connecting its ethernet, installing the wl aka broadcom-sta package, and then doing a modprobe, but that hasn't worked out yet.

This is an example of the Debian Buster instructions for the driver https://wiki.debian.org/wl This page describes how to enable support for WiFi devices based on Broadcom wireless LAN chips, using the vendor driver on Debian systems.

That installation process involves both pupget & sfsget and ultimately I have succssfully installed the packages, but I can't find the wl.ko according to the instructions and I can't seem to navigate the EasyOS dir/s as described in the Debian page and dpkg-reconfigure doesn't work in EasyOS (command not found).

inxi -Nn recognizes the wifi device correctly but has no driver.


Re: EasyOS 2.5 broadcom driver

Posted: Tue Nov 24, 2020 6:10 pm
by measter
measter wrote: Tue Nov 24, 2020 5:56 pm

inxi -Nn recognizes the wifi device correctly but has no driver.

# inxi -Nni
Network:
Device-1: Broadcom Limited BCM43228 802.11a/b/g/n driver: N/A
Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
driver: r8169
IF: eth0 state: up speed: 1000 Mbps duplex: full mac: 08:9e:01:38:0e:ff
IP v4: 192.168.1.122/24 type: dynamic noprefixroute scope: global
IP v6: fe80::373b:b05b:f875:fae/64 type: noprefixroute scope: link


Re: EasyOS 2.5 broadcom driver

Posted: Tue Nov 24, 2020 7:14 pm
by measter
measter wrote: Tue Nov 24, 2020 5:56 pm

inxi -Nn recognizes the wifi device correctly but has no driver.

inxi & lspci recognize the device, but none of the network wizards can see it; network manager, frisbee, simple network setup, or ultra simple.


Re: EasyOS 2.5 broadcom driver

Posted: Wed Nov 25, 2020 9:11 am
by BarryK

@measter
Have you tested whether the kernel did have a driver, but failed to load firmware for it?

See blog post:

https://bkhome.org/news/202011/report-m ... ootup.html

The inxi report that you posted shows there is a driver, 'r8169', which is available.


Re: EasyOS 2.5 broadcom driver

Posted: Wed Nov 25, 2020 7:00 pm
by measter
BarryK wrote: Wed Nov 25, 2020 9:11 am

@measter
Have you tested whether the kernel did have a driver, but failed to load firmware for it?

See blog post:

https://bkhome.org/news/202011/report-m ... ootup.html

The inxi report that you posted shows there is a driver, 'r8169', which is available.

The only thing dmesg | grep firmware mentions is the thinkpad trackpoint, which I'm not using in favor of a USB mouse.

The inxi report of the r8169 driver is for the ethernet which I'm trying to use to establish the wl driver for the broadcom wifi which the same inxi report for its driver says N/A. Another Pup tool indicates kernel module bcma which is not correct,

PupSysInfo SysApps PupScan PCI Interfaces
correctly id/s the broadcom but says kernel module bcma. I'm not posting from EasyOS so I can't paste the report here.

I can modprobe remove bcma, but I don't believe that I've been able to properly employ the broadcom-sta-dkms as described in the Debian page I referred above.

There is also an Arch page about the wl driver and the kernel https://wiki.archlinux.org/index.php/br ... roadcom-wl

I think that I have successfully downloaded the package but I have not comleted 'building the module' as described in both the Debian and Arch pages

<Arch page>
Tip: The DKMS variant broadcom-wl-dkms

is kernel agnostic. This means it supports different kernels you may use (e.g. linux-ckAUR).
is kernel-release agnostic, too. It will be automatically rebuilt after every kernel upgrade or fresh installation. If you use broadcom-wl or another kernel release dependant variant (e.g. broadcom-wl-ckAUR), it may happen that kernel upgrades break wireless from time to time until the packages are in sync again.
will need the linux-headers package for the installed kernel(s) in order to build the module. Those packages are optional to the DKMS package and will need to be installed manually.
/<Arch page>


Re: EasyOS 2.5 broadcom driver

Posted: Wed Nov 25, 2020 7:32 pm
by measter
measter wrote: Tue Nov 24, 2020 5:56 pm

That installation process involves both pupget & sfsget and ultimately I have succssfully installed the packages, but I can't find the wl.ko according to the instructions and I can't seem to navigate the EasyOS dir/s as described in the Debian page a

# modprobe wl
modprobe: ERROR: ../libkmod/libkmod-module.c:832 kmod_module_insert_module() could not find module by name='wl'
modprobe: ERROR: could not insert 'wl': Unknown symbol in module, or unknown parameter (see dmesg)
modprobe: ERROR: ../libkmod/libkmod-module.c:979 command_do() Error running install command for wl
modprobe: ERROR: could not insert 'wl': Operation not permitted

I don't have the wl.ko anywhere in spite of downloading the Debian package for it. I don't understand the concept of 'building' the module as described on the Debian and Arch pages. It is not some kind of compile. The tar.gz at the broadcom site is a makefile operation, but I think somehow the .deb package is supposed to work differently.


Re: EasyOS 2.5 broadcom driver

Posted: Wed Nov 25, 2020 8:34 pm
by measter
measter wrote: Tue Nov 24, 2020 5:56 pm

That installation process involves both pupget & sfsget and ultimately I have succssfully installed the packages, but I can't find the wl.ko according to the instructions and I can't seem to navigate the EasyOS dir/s as described in the Debian page and dpkg-reconfigure doesn't work in EasyOS (command not found).

How can I perform the equivalent of this command from the Debian page in EasyOS?

# apt-get install linux-image-$(uname -r|sed 's,[^-]*-[^-]*-,,') linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') broadcom-sta-dkms

The broadcom-sta-dkms is already installed, but easyos doesn't do apt-get.


Re: EasyOS 2.5 broadcom driver

Posted: Wed Nov 25, 2020 8:57 pm
by measter
measter wrote: Tue Nov 24, 2020 5:56 pm

I have a Lenovo x131e ThinkPad which has a 'difficult' wifi broadcom BCM43228 which needs the wl driver which is typically not recognized out-of-the-box by almost all linux distro/s w/ the exception of MX whether the XFCE or KDE v.

From MX 19.2 KDE:

$ inxi -Nn
Network:
Device-1: Broadcom Limited BCM43228 802.11a/b/g/n driver: wl
IF: wlan0 state: dormant mac: a4:17:31:ba:90:c9
Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169
IF: eth0 state: up speed: 1000 Mbps duplex: full mac: 08:9e:01:38:0e:ff

Notice inxi shows the wl driver for the broadcom instead of N/A. With the ethernet active, the system chooses to keep the wifi dormant, but w/ MX if I disconnect the ethernet, the wifi will be active w/ the wl driver.

MX kernel is Kernel: 5.6.0-2-amd64 x86_64

MX location of wl.ko is:
$ locate wl.ko
/usr/lib/modules/5.6.0-2-amd64/updates/dkms/wl.ko
/var/lib/dkms/broadcom-sta/6.30.223.271/5.6.0-2-amd64/x86_64/module/wl.ko


Re: EasyOS 2.5 broadcom driver

Posted: Wed Nov 25, 2020 9:18 pm
by measter
measter wrote: Tue Nov 24, 2020 5:56 pm

I have a Lenovo x131e ThinkPad which has a 'difficult' wifi broadcom BCM43228 which needs the wl driver which is typically not recognized out-of-the-box by almost all linux distro/s w/ the exception of MX whether the XFCE or KDE v.

I believe for the time being I'll just use MX for this thinkpad. I don't understand how EasyOS works its packages well enough to solve the broadcom problem.


Re: EasyOS 2.5 broadcom driver

Posted: Thu Nov 26, 2020 1:38 am
by ozsouth

@measter - the wl driver is kernel specific & needs to be compiled for Easy's kernel. I have source, but would need devx, kernel sources & maybe kernel headers to do that. Also need to blacklist b43, bcma, brcmsmac & ssb to avoid conflicts. Alternative is to use a kernel for which wl driver has been made & do 4 blacklists too. I made a driver for my 64bit 5.4.50 kernel. LINK EXPIRED.


Re: EasyOS 2.5 broadcom driver

Posted: Thu Nov 26, 2020 1:34 pm
by BarryK
BarryK wrote: Wed Nov 25, 2020 9:11 am

The inxi report that you posted shows there is a driver, 'r8169', which is available.

Oh yeah, sorry about that, I did not look close enough at the inxi report. r8169 is for ethernet driver.


Re: EasyOS 2.5 broadcom driver

Posted: Thu Nov 26, 2020 1:41 pm
by BarryK
ozsouth wrote: Thu Nov 26, 2020 1:38 am

@measter - the wl driver is kernel specific & needs to be compiled for Easy's kernel. I have source, but would need devx, kernel sources & maybe kernel headers to do that. Also need to blacklist b43, bcma, brcmsmac & ssb to avoid conflicts. Alternative is to use a kernel for which wl driver has been made & do 4 blacklists too. I made a driver for my 64bit 5.4.50 kernel. (See Kernels section then Drivers section, of forum).

Yes, as ozsouth says, you have to compile the module for the kernel that is running in EasyOS. You can click on "sfsget" icon at top of screen and download 'devx' SFS and kernel source SFS, install to main desktop, reboot, and you will be ready to compile the 'wl' source -- which is usually just a matter of "make" and "make install".

It should not be necessary for a kernel headers SFS.


Re: EasyOS 2.5 broadcom driver

Posted: Thu Nov 26, 2020 4:19 pm
by measter
BarryK wrote: Thu Nov 26, 2020 1:41 pm

Yes, as ozsouth says, you have to compile the module for the kernel that is running in EasyOS. You can click on "sfsget" icon at top of screen and download 'devx' SFS and kernel source SFS, install to main desktop, reboot, and you will be ready to compile the 'wl' source -- which is usually just a matter of "make" and "make install".

Now I have the devx & kernel on the desktop. If I open either I'm at a sakura terminal (which I prefer over the urxvt) but I don't know exactly how to do the make and make install. Excuse the ignorance; this is all new to me. I didn't have to do this when I installed the broadcom-sta-dkms on other distro/s such as Ubuntu. Somehow the compiling process just 'did itself' from the install including making the necessary blacklists.


Re: EasyOS 2.5 broadcom driver

Posted: Thu Nov 26, 2020 5:26 pm
by measter
measter wrote: Thu Nov 26, 2020 4:19 pm

Now I have the devx & kernel on the desktop. If I open either I'm at a sakura terminal (which I prefer over the urxvt) but I don't know exactly how to do the make and make install. Excuse the ignorance; this is all new to me. I didn't have to do this when I installed the broadcom-sta-dkms on other distro/s such as Ubuntu. Somehow the compiling process just 'did itself' from the install including making the necessary blacklists.

Now I've read the page about using containers, but my earlier installation of the broadcom-sta-dkms resulted in the .deb being in mnt/sdb2/easyos/session/audit/packages I suppose it should be in the proper container.


Re: EasyOS 2.5 broadcom driver

Posted: Thu Nov 26, 2020 11:30 pm
by ozsouth

@measter - broadcom source I use is here: https://archive.org/download/Puppy_Linu ... 4-2020.txz UPDATED LINK

Download to main / folder, cd / then run tar -Jxvf broadcom-sta-15-wl64-2020.txz
Then do blacklisting - edit /etc/modprobe.d/blacklist.conf, adding the following lines to the end & save:

blacklist b43
blacklist bcma
blacklist brcmsmac
blacklist ssb

Then, with devx & kernel modules installed, cd /broadcom-sta, run make, then run make install
Reboot & hopefully wireless should work.


Re: EasyOS 2.5 broadcom driver

Posted: Fri Nov 27, 2020 9:23 pm
by measter
ozsouth wrote: Thu Nov 26, 2020 11:30 pm

@measter - broadcom source I use is here: http://www.filepup.net/files/38ef3be91606431870.html

Download to main / folder, cd / then run tar -Jxvf broadcom-sta-15-wl64-2020.txz
Then do blacklisting - edit /etc/modprobe.d/blacklist.conf, adding the following lines to the end & save:

blacklist b43
blacklist bcma
blacklist brcmsmac
blacklist ssb

done

Then, with devx & kernel modules installed, cd /broadcom-sta, run make, then run make install

The devx & kernel dirs are on the desktop from sfspup, but I don't know if they are 'installed'.

# cd broadcom-sta
# pwd
/broadcom-sta
# make
bash: make: command not found


Re: EasyOS 2.5 broadcom driver

Posted: Sat Nov 28, 2020 12:09 am
by measter
measter wrote: Fri Nov 27, 2020 9:23 pm

The devx & kernel dirs are on the desktop from sfspup, but I don't know if they are 'installed'.

I don't understand what the icons on the desktop kernel and devx are. If I try to see what they are, the information I get is that they are ec-chroot-kernel and ec-chroot-devx. I don't know what that is. I understand that they are some kind of package which easy os is all about but I have no comprehension of such a thing. This ignorance is holding me back.


Re: How to connect Lenovo Thinkpad wifi in EasyOS?

Posted: Sat Nov 28, 2020 3:39 am
by ozsouth

@measter - your post 2 posts up shows devx & kernel sources are not loaded.

I downloaded EasyOS2.5 & devx & kernel-modules - is more complicated than I'm used to, but was able to compile a couple of wireless drivers for 64bit kernel 5.4.78. Use at own risk.

WITHDRAWN as kernel superseded & BarryK is including wl driver in future.


Re: How to connect Lenovo Thinkpad wifi in EasyOS?

Posted: Sat Nov 28, 2020 4:32 pm
by measter
ozsouth wrote: Sat Nov 28, 2020 3:39 am

@measter - your post 2 posts up shows devx & kernel sources are not loaded.

I tho't as much.

I downloaded EasyOS2.5 & devx & kernel-modules - is more complicated than I'm used to, but was able to compile a couple of wireless drivers for 64bit kernel 5.4.78. Use at own risk. Download then install by clicking on appropriate .pet in File Manager.

broadcom-wl : http://www.filepup.net/files/045bf8f31606559239.html (must do blacklisting before install).

Thank you. The blacklisting I had done earlier.

Even w/o my doing a modprobe wl, inxi shows me the wl is now the driver.

# inxi -Nn
Network:
Device-1: Broadcom Limited BCM43228 802.11a/b/g/n driver: wl
IF: wlan0 state: dormant mac: a4:17:31:ba:90:c9
Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
driver: r8169
IF: eth0 state: up speed: 1000 Mbps duplex: full mac: 08:9e:01:38:0e:ff


Re: How to connect Lenovo Thinkpad wifi in EasyOS?

Posted: Sat Nov 28, 2020 4:54 pm
by measter
measter wrote: Sat Nov 28, 2020 4:32 pm

# inxi -Nn
Network:
Device-1: Broadcom Limited BCM43228 802.11a/b/g/n driver: wl
IF: wlan0 state: dormant mac: a4:17:31:ba:90:c9

Now ethernet disconnected; connecting via wifi;

# inxi -Nn
Network:
Device-1: Broadcom Limited BCM43228 802.11a/b/g/n driver: wl
IF: wlan0 state: up mac: a4:17:31:ba:90:c9
Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
driver: r8169
IF: eth0 state: down mac: 08:9e:01:38:0e:ff


Re: EasyOS 2.5 broadcom driver

Posted: Sat Nov 28, 2020 11:21 pm
by williwaw
measter wrote: Sat Nov 28, 2020 12:09 am
measter wrote: Fri Nov 27, 2020 9:23 pm

The devx & kernel dirs are on the desktop from sfspup, but I don't know if they are 'installed'.

I don't understand what the icons on the desktop kernel and devx are. If I try to see what they are, the information I get is that they are ec-chroot-kernel and ec-chroot-devx. I don't know what that is. I understand that they are some kind of package which easy os is all about but I have no comprehension of such a thing. This ignorance is holding me back.

the devx is additional software needed to compile. After you download devx you have some choices whether to install it as a container or in the main filesystem. it is loaded as a container if evidenced by a magenta lock mini icon overlaid on the white icon.

To use it in the main file system, bring up the Easy Boot Manager to elect to have the sfs to load at subsequent boots. I have not tried to use the buster containerized desktop to compile, but that may be where the "containerized" devfs becomes useful.


Re: How to connect Lenovo Thinkpad wifi in EasyOS?

Posted: Sun Nov 29, 2020 3:29 am
by ozsouth

@measter - glad it worked. The .pets run depmod then modprobe upon install.


Re: EasyOS 2.5 broadcom driver

Posted: Sun Nov 29, 2020 11:29 am
by BarryK
measter wrote: Thu Nov 26, 2020 4:19 pm
BarryK wrote: Thu Nov 26, 2020 1:41 pm

Yes, as ozsouth says, you have to compile the module for the kernel that is running in EasyOS. You can click on "sfsget" icon at top of screen and download 'devx' SFS and kernel source SFS, install to main desktop, reboot, and you will be ready to compile the 'wl' source -- which is usually just a matter of "make" and "make install".

Now I have the devx & kernel on the desktop. If I open either I'm at a sakura terminal (which I prefer over the urxvt) but I don't know exactly how to do the make and make install. Excuse the ignorance; this is all new to me. I didn't have to do this when I installed the broadcom-sta-dkms on other distro/s such as Ubuntu. Somehow the compiling process just 'did itself' from the install including making the necessary blacklists.

No, wrong!

Please go into menu Filesystem -> Easy Container Management and delete those two "devx" and "kernel" on the desktop.

When you ran "sfsget" you had the option of installing to the main desktop, NOT as containers. See my instructions quoted above.

Anyway, easy to fix. After deleting the two containers, choose menu Filesystem -> Easy BootManager, then click on "Load extra SFS files", and choose the devx and kernel sfs files, then reboot. Then you will be able to compile.


Re: EasyOS 2.5 broadcom driver

Posted: Sun Nov 29, 2020 5:52 pm
by measter
BarryK wrote: Sun Nov 29, 2020 11:29 am

Please go into menu Filesystem -> Easy Container Management and delete those two "devx" and "kernel" on the desktop.

When you ran "sfsget" you had the option of installing to the main desktop, NOT as containers. See my instructions quoted above.

Anyway, easy to fix. After deleting the two containers, choose menu Filesystem -> Easy BootManager, then click on "Load extra SFS files", and choose the devx and kernel sfs files, then reboot. Then you will be able to compile.

I understand all the above.

# pwd
/broadcom-sta
# make
KBUILD_NOPEDANTIC=1 make -C /lib/modules/5.4.78/build M=`pwd`
make[1]: Entering directory '/usr/src/linux-5.4.78'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
Kernel architecture is X86_64
AR /broadcom-sta/built-in.a
CC [M] /broadcom-sta/src/shared/linux_osl.o
CC [M] /broadcom-sta/src/wl/sys/wl_linux.o
/broadcom-sta/src/wl/sys/wl_linux.c: In function ‘wl_pci_probe’:
/broadcom-sta/src/wl/sys/wl_linux.c:785:2: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if ((val & 0x0000ff00) != 0)
^~
/broadcom-sta/src/wl/sys/wl_linux.c:787:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
bar1_size = pci_resource_len(pdev, 2);
^~~~~~~~~
CC [M] /broadcom-sta/src/wl/sys/wl_iw.o
CC [M] /broadcom-sta/src/wl/sys/wl_cfg80211_hybrid.o
In file included from /broadcom-sta/src/wl/sys/wl_cfg80211_hybrid.c:43:
/broadcom-sta/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_set_auth_type’:
/broadcom-sta/src/wl/sys/wl_cfg80211_hybrid.h:52:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
if (wl_dbg_level & WL_DBG_DBG) { \
^
/broadcom-sta/src/wl/sys/wl_cfg80211_hybrid.c:792:3: note: in expansion of macro ‘WL_DBG’
WL_DBG(("network eap\n"));
^~~~~~
/broadcom-sta/src/wl/sys/wl_cfg80211_hybrid.c:793:2: note: here
default:
^~~~~~~
LD [M] /broadcom-sta/wl.o
CFG80211 API is prefered for this kernel version
Using CFG80211 API
Kernel architecture is X86_64
Building modules, stage 2.
MODPOST 1 modules
CC [M] /broadcom-sta/wl.mod.o
LD [M] /broadcom-sta/wl.ko
make[1]: Leaving directory '/usr/src/linux-5.4.78'

I see the wl.ko module. I didn't go any further because i already had it installed w/ the .pet, but I wanted to see if I could accomplish the compile by doing what I was supposed to do instead of something else :-)


Re: How to connect Lenovo Thinkpad wifi in EasyOS?

Posted: Wed Dec 02, 2020 12:47 am
by BarryK

Good!

A problem with compiling a module yourself, is that I keep bumping the kernel with a new version of Easy.

Another problem, with that wl module, is, as mentioned, you have to blacklist some other modules.

I will check it out, perhaps I can compile it automatically each time compile a new kernel, and at least provide it as a PET.


Re: How to connect Lenovo Thinkpad wifi in EasyOS?

Posted: Wed Dec 02, 2020 10:40 am
by BarryK

OK, this should make things easier for anyone who needs the 'wl.ko' module:

https://bkhome.org/news/202012/broadcom ... river.html

So, next release of EasyOS, you should be able to find the wl.ko PET online, to match the new kernel.

Note, when the PET is installed, the module will be at:

/lib/modules/<kernel version>/kernel/drivers/net/wireless/wl.ko

Note: I compiled it with just the 'devx' sfs, the kernel source sfs is not required. The 'devx' sfs has all required kernel headers.