目录
* 一、运行环境
* 二、安装步骤
* 参考资料
* 参考命令
** 快速安装 **
一、运行环境
硬件平台:NI IC-3173 / NI CRIO-9064
软件平台:NI Real-time Linux
目标:1. 在NI Real Time终端上安装USB 无线网卡驱动实现无线上网;
2. 在NI Real Time终端上安装CH340G串口驱动,实现USB扩展串口,包括 RS232/RS485。
二、安装步骤
---安装思路---
1. 下载配套驱动
2. 编译对应平台下的驱动
3. 安装驱动到对应平台并测试
4. 设置为开机自动加载驱动
--- 准备工作---
1. 安装gcc
opkg update
opkg install gcc
由于在NI 平台上安装gcc后可能不能直接使用,因为gcc此时使用的是x86_64-nilrt-linux-gcc,所以需要配置一下
source /usr/local/natinst/tools/versioning_utils.sh
setup_versioning_env
# 调用gcc 的时候使用
versioning_call gcc
此时 使用 find命令查找到gcc所在位置,加入到Path路径即可
export PATH=$PATH:yourpath
2. 安装 wireless-tools (iwconfig)工具
opkg update
opkg install wireless-tools
在使用 iwconfig 命令时,可能会出现 SIOCSIFFLAGS: Operation not possible due to RF-kill 错误提示,可参考下文解决
SIOCSIFFLAGS: Operation not possible due to RF-kill
运行
rfkill list all
rfkill unblock wifi
3.
注意:在安装时需要从NI 的仓库更新程序,由于NI服务器在国外,速度可能会限制,此时可以发挥主观能动性(爬梯)
(一) 下载驱动
1) 【RTL8292EU】根据NI论坛上网友的使用经验,Realtek瑞昱RTL8xxxx系列的网卡有成功使用者,故笔者调查后选用了 RTL8192EU 芯片的无线网卡,驱动可以从官网或者github上下载。
https://github.com/lingqing/rtl8192eu_nirtlinux_driver
可以先安装git ,使用git下载
opkg install git
git clone https://github.com/lingqing/rtl8192eu_nirtlinux_driver
cd rtl8192eu_nirtlinux_driver
versioning_call make
等待编译成功
![](https://img.haomeiwen.com/i1653010/96516883f97349a2.png)
此仓库包含 IC-3173和Crio-9064的驱动,分别在master和crio分支
(注意:安装驱动后一定要保证Target(3173orcrio时间保持最新,否则Max无法识别网卡 )
2) 【CH340G】此驱动亦可从网上搜索下载,或者从GitHub行下载。https://github.com/lingqing/ch34x_nirtlinux_driver
(二)编译驱动
驱动编译时需参考NI官方文档
Tutorial: Adding Kernel Modules on NI Linux Real-Time
在本驱动中,需要注意及修改的地方主要包括
1) Makefile文件
(1) 修改平台 配置,主要包括 内核源码目录 为 /var/volatile/tmp/headers/kernel
(参考Tutorial 文档)
(四) 开机启动
驱动开机驱动方法参考上述 Tutorial文档
![](https://img.haomeiwen.com/i1653010/a8fedc3b9bb44685.png)
(五) 其他设置
1. 由于NI系统的原因,无线配置需要起作用最好使用NI-Max 配置,方便易行
![](https://img.haomeiwen.com/i1653010/492037509798244c.png)
但对于Usb 无线配置,需要开机启动 运行
wpa_supplicant -B -iwlan0 -c /etc/natinst/share/wpa_supplicant.conf -Dwext &
设置开机启动方法需参考NI官方文档
Tutorial: Installing Startup Scripts on NI Linux Real-Time
2. 在安装3173驱动时,编译成功后,使用insmod 8192eu.ko,提示错误:insmod: ERROR: could not insert module 8192eu.ko: Unknown symbol in module
原因是由于该模块有其他依赖,我的解决办法:
# modinfo ./8192eu.ko | grep depend
depends: cfg80211
# modprob cfg80211
# insmod 8192eu.ko
这是因为需要cfg80211内核模块支持,
参考insmod: error inserting './igb.ko': -1 Unknown symbol in module 的问题所在
==参考资料
1. 论坛驱动安装参考 RAD Utility doesn't properly copy over USB Wi-Fi Dongle
2. 论坛Wifi配置参考 Re: [SOLVED] myRIO-1950 - Wifi dongle driver compilation
3. iwconfig 启动wifi故障:SIOCSIFFLAGS: Operation not possible due to RF-kill
4. 在Linux 使用 wpa_cli配置无线网络:在Linux上配置无线网络,Linux 下命令行连接Wifi方法
5. iwconfig用法:wifi测试相关(iwconfig,WPA Supplicant用法)
==参考命令
1. 查找命令: find dir -name name
==快速安装
1. IC-3173
cd yourpath
git clone -b master https://github.com/lingqing/rtl8192eu_nirtlinux_driver.git
cd rtl8192eu_nirtlinux_driver
cp 8192eu.ko /lib/modules/`uname -r`/kernel
depmod
modprobe 8192eu.ko
reboot
2 CRIO-9064
cd yourpath
git clone -b crio https://github.com/lingqing/rtl8192eu_nirtlinux_driver.git
cd rtl8192eu_nirtlinux_driver
cp 8192eu.ko /lib/modules/`uname -r`/kernel
depmod
modprobe 8192eu.ko
reboot
========== 分割线 =====
网友评论