Materials:
Software:
To achieve this, you need to identify your WI-FI module and look for the necessary drivers for that module, in my case I am using the 88W8997 module that comes with the i.MX8M Plus, but you can select any other WI-FI module you want.
These instructions apply to SD and MMC cards although for brevity, and usually, only the SD card is listed.
For a Linux image to be able to run, four separate pieces are needed:
The Yocto Project build creates an SD card image that can be flashed directly. This is the simplest way to load everything needed onto the card with one command.
A .wic image contains all four images properly configured for an SD card. The release contains a pre-built .wic image that is built specifically for the one board configuration. It runs the Wayland graphical backend. It does not run on other boards unless U-Boot, the device tree, and rootfs are changed. When more flexibility is desired, the individual components can be loaded separately, and those instructions are included here as well. An SD card can be loaded with the individual components one-by-one or the .wic image can be loaded and the individual
parts can be overwritten with specific components.
The rootfs on the default .wic image is limited to a bit less than 4 GB, but re-partitioning and re-loading the rootfs can increase that to the size of the card. The rootfs can also be changed to specify the graphical backend that is used.
Carry out the following command to copy the SD card image to the SD/MMC card. Change sdx below to match the one used by
the SD card.
$ sudo dd if=<image name>.wic of=/dev/sdx bs=1M && sync
The entire contents of the SD card are replaced. If the SD card is larger than 4 GB, the additional space is not accessible.
As this build does not contain the driver integrated we need to add it manually on Linux user space.
Use the nano editor included in the pre-built image to edit and verify the module parameters in the wifi_mod_para.conf configuration file.
Add the following lines to the configuration file:
PCIE8997 = {
cfg80211_wext=0xf
wfd_name=p2p
max_vir_bss=1
cal_data_cfg=none
drv_mode=7
ps_mode=2
auto_ds=2
fw_name=nxp/pcieuart8997_combo_v4.bin
}
Load the modules in the kernel:
Verify the kernel debug messages in the command output
Verify that the module is now visible to the system:
Modify /etc/resolv.conf file and add the DNS of your preference, for my case I add the one that uses Google, as they have access to the most common web pages.
And with that should work.