【[color=inherit !important]飞凌嵌入式OKMX8MP-[color=inherit !important]C [color=inherit !important]开发板试用体验】移植USBWIFI [color=inherit !important]RTL8192EU驱动并设置开机自启动原文出自:https://www.forlinx.com/article_view_850.html
我(笔者)在[color=inherit !important]飞凌OKMX8MP-C开发板上移植了自行搭建的Debian系统之后,发现板卡原有的WiFi模块无法使用,在内核里面添加了支持项也没用,后面跟飞凌的技术支持工程师王工沟通,了解到需要将/lib/modules整个驱动文件夹复制并替换才可以,所以我就暂时搁置了。

f_7fdb02697aa836a981b4b380a696caf9&t=png&o=&s=&v=1652667690.jpg


WiFi[color=inherit !important]方案可以用市面上已经非常成熟的RTL8192EU方案,一个USB WiFi模块,几十块钱就能买到,网上也可以下载各种[color=inherit !important]Linux内核版本适配的源码。


下载RTL8192EU源码,打开Makefile文件:


f_ecc6b61ed9e48feb06eadf25441eec8f&t=jpg&o=&s=&v=1652669482.jpg


f_9c44131d0f45c11d78627dd3a6d98744&t=jpg&o=&s=&v=1652669495.jpg


修改I386_PC选项的架构和内核源码位置:


ifeq ($(CONFIG_PLATFORM_I386_PC), y)

EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN

EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -   DRTW_USE_CFG80211_STA_EVENT

SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)

ARCH ?= [color=inherit !important]ARM64

CROSS_COMPILE ?=

KVER  := $(shell uname -r)

KSRC := /home/OK8MP-linux-kernel/

MODDESTDIR := /home/OK8MP-linux-   kernel/drivers/net/wireless/

INSTALL_PREFIX :=

STAGINGMODDIR := /home/OK8MP-linux-   kernel/drivers/staging

endif


编译生成8192eu.ko文件,直接insmod即可。但是只有这个ko文件是不够的,因为这个ko驱动还会调用/lib/firmware/rtlwifi下的固件文件,名为rtl8192eu_nic.bin,必须要有这个文件,不然的话驱动是无法正常加载的:


f_9859f38e86b747282799cbe4ebf69adf&t=jpg&o=&s=&v=1652669613.jpg


加载成功之后,使用ifconfig[color=inherit !important]命令可以查看正确加载的网卡设备:


f_a36c8e9b4d90fd5ddd9cbb99e7078106&t=jpg&o=&s=&v=1652669662.jpg


然后使用networkmanager软件可以管理连接WiFi热点:


nmcli dev wifi connect "xxx" password "xxx"


在xxx处填入热点名称和密码即可。然后是开机自启动加载WiFi驱动,这个也很简单,在/etc/下新建一个名为autorun.sh的shell脚本:


f_480c6036ba8d9fdc7d90f8262f3d31dc&t=jpg&o=&s=&v=1652669682.jpg


f_8e786caa172abe74146e920413f07c25&t=jpg&o=&s=&v=1652670012.jpg


#!/bin/sh

insmod /home/rtl8192eu-linux-driver-realtek-4.4.x/8192eu.ko


然后在/usr/lib/systemd/system/目录下新建autorun.service文件:


f_57c15e20104454828f272f8fd33dee27&t=jpg&o=&s=&v=1652670023.jpg


[Unit]

Description=autorun

After=basic.service X.service thermal-zone-init.service

[Service]

ExecStart=/etc/autorun.sh

[Install]

WantedBy=multi-user.target


输入命令:


systemctl -f enable /lib/systemd/system/autorun.service

chmod 777 /etc/autorun.sh


这样就能在开机的时候自动运行insmod命令。