如何将NI Linux RT实时系统安装到第三方不带Intel和博通网卡的miniPC/SOM/OEM/工控机

您所在的位置:网站首页 linux系统网卡驱动 如何将NI Linux RT实时系统安装到第三方不带Intel和博通网卡的miniPC/SOM/OEM/工控机

如何将NI Linux RT实时系统安装到第三方不带Intel和博通网卡的miniPC/SOM/OEM/工控机

2023-08-09 08:07| 来源: 网络整理| 查看: 265

如何将NI Linux RT OS实时系统安装到第三方不带Intel和博通网卡的miniPC里面去

(比如集成了瑞昱网卡的研盛和淘宝其他卖家出售的miniPC或者OEM)

1、当我们在淘宝上买了一个廉价版的miniPC或者小型工控机回来,比如研盛的NanoJ1900(淘宝上就有卖的,很便宜)。里面自带的网卡芯片是台湾瑞昱的,而非Intel或者BroadCom,那么按照之前的方式用U盘安装cRIO-903x-VM镜像的时候,会因为没有网卡驱动导致无法跟MAX通信,也就无法跳出safemode模式。参考下面的步骤和方法可以解决这个问题!

图1:研盛miniPC OEM主板(NanoJ1900,超高性价比)

2、首先我们需要向卖miniPC或者工控机的厂家要到对应网卡的Linux驱动源文件,比如研盛的NanoJ1900里面的网卡就是瑞昱的8111,对方提供了Linux下的源码和编译文件,但是没有KO驱动文件,如图1所示。

图2:miniPC工控机厂家提供的内置网卡芯片Linux驱动源文件

3、拿到这个网卡的压缩包之后,我们不能直接在NI Linux RT里面做编译,因为第一次安装成功的Linux RT是safemode安全模式,并行里面很多命令都不支持,所以有两种方式可以将这个瑞昱网卡KO编译出来:一是找个电脑安装虚拟机,然后安装Linux RT开发环境,参考前面的2号文档,将所有内核源码和整个解压缩的网卡一起编译下,就会得到r8168.ko驱动文件;第二种方式就是找一个具备Intel网卡的miniPC或者COME或者SOM,比如之前我们用的研华MIO,按照2号文档里面的方式,将所有需要用到的像gcc、opkg、内核build头文件等很多命令集都更新安装好,相当于具备了一个可以在下位机里面直接编译驱动源码的环境。

 

4、上面编译KO的具体过程就不演示了,方法跟编译Xillybus.ko是完全一样的。假设我们现在已经编译出来一个跟Linux RT内核版本一致的KO驱动文件,比如这个“r8168.ko”,如图3所示。

图3:编译出来的瑞昱网卡KO驱动文件

5、找一台研盛的miniPC比如NanoJ1900做实验,先用我们烧录好NI Linux RT OS的镜像U盘作为启动盘,开机的时候,按下Delete,进入BIOS,然后将这个镜像安装到miniPC或者工控机里面。等待完成后,显示器上会提醒拔掉U盘,执行reboot重启一下Linux RT。

 

6、 重启完成后,输入用户名admin,密码为空,登录进去,然后输入lsmod指令,查看一下设备管理器里面有没有网卡驱动,可惜的是,并没有r8168瑞昱网卡驱动,这是因为NI定制的Linux RT OS里面只提供了Intel和BroadCom两家网卡的驱动,其他厂家的网卡驱动没有集成进去,因为需要我们手动安装这个网卡驱动,具体过程如下。

 

1) 首先,找一个U盘,将前面编译好的r8168.ko文件拷贝进去,然后将这个U盘插到安装了Linux RT的miniPC上,然后执行ls /,如果发现了U盘,说明U盘被识别了。

图4:利用ls指令查看一下U盘是否别识别出来了

2) 接着,利用cp指令将这个U盘里面的r8168.ko网卡驱动拷贝到NI Linux RT系统里面的ethernet文件夹里面具体路径,如图5所示。注意:这个r8168文件夹是自己新建的,大家可以百度一下新建文件夹的指令。

图5:可以人为在这个ethernet文件夹里面新建一个用来存放网卡驱动KO文件的文件夹(方便管理)

具体的拷贝指令如下:

cp /u/r8168.ko /lib/modules/4.9.47-rt37-6.1.0f0/kernel/drivers/net/ethernet/r8168

 

3) 拷贝完成后,这个r8168文件夹里面就应该多出来一个r8168.ko的网卡驱动文件了,如图6所示:

图6:将外置U盘里面的网卡驱动KO文件拷贝到Linux RT里面去

4) 接下来,执行一下cd命令,将路径切换到这个包含r8168.ko文件的路径下,具体命令如下:

cd /lib/modules/4.9.47-rt37-6.1.0f0/kernel/drivers/net/ethernet/r8168

 

5) 然后要执行的两条指令就是最重要的了,首先执行depmod,然后再执行 modprobe r8168,注意,这个modprobe后面的文件不要带.ko后缀;有些用户通过执行insmod指令来加载这个ko文件,但是重启Linux RT之后,发现加载的驱动又不见了,失效了,这是因为depmod和modprobe可以解决依赖关系,要比insmod更可靠,所以这里,建议大家加载KO驱动的时候,一律采用depmod和modprobe,不要使用insmod,不然重启Linux RT之后驱动又失效了!

 

6) 为了验证KO驱动是否加载成功,可以执行lsmod查看一下Linux RT下面的驱动列表,如图7所示。显然我们通过depmod和modprobe指令成功的安装了网卡KO驱动,即使重启Linux RT依然存在。

图7:利用depmod和modprobe安装成功后的r8168瑞昱网卡驱动

7、 经过前面6步,基本上将这个第三方网卡芯片的Linux KO驱动安装好了。接下来,就是跟之前2号文档里面一样的步骤操作了,过程是一样的。

1) 首先,利用一根网线将这个miniPC接到路由器或者开发电脑上,然后输入ifconfig -a指令,查询一下当前两个eth网卡分配到的IP地址,比如我们接到路由器之后,可以看到分配的IP地址。

 

2) 如果用户没有路由器,或者找个安装了NI Linux RT的设备是直接卖给最终用户的,也可以将两个或者多个网口的IP地址设置成静态的,具体的操作指令如下:

ifconfig eth0 192.168.1.10 netmask 255.225.225.0

ip route add default via 192.168.1.1

如果还有多个网口需要设置成静态IP,方法还是一样的,比如将eth1设置一下,其他的网卡以此类推:

ifconfig eth1 192.168.1.11 netmask 255.225.225.0

 

3) 设置完成后,同样可以可以通过执行ifconfig -a指令查看一下每个网卡的IP地址具体是多少,看看是否设置成功,如图8所示。

图8:通过路由器分配的或者手动设置成功后的网卡IP地址

8、 接下来就轻松了,我们可以通过开发电脑上位机的MAX软件来给这个Linux RT安装组件并且可以很方便的设置任何参数了,并且可以将Linux RT切换到正常模式,然后就可以像操作NI RT设备那样直接通过LabVIEW对齐编程了。

 

9、 很多用户发现在NI-MAX软件经常发现不了cRIO等RT设备,这里面我们交给大家一种更方便的方式来扫描下位机Linux RT设备。为了确保上下位机网络通信正常,可以在上位机cmd窗口里面执行ping指令,看看能够ping通下位机Linux RT,如果OK,那就说明网络没有问题了。

 

10、打开NI-MAX软件,如果在“远程系统”不能扫描出来Linux RT设备,我们可以右击“远程系统”选择“新建”,然后,在弹出来的对话框里面选择第一项“远程设备”,如图9所示。

图9:手动添加离线的Linux RT设备

11、接着,输入下位机Linux RT的IP地址,注意,这里之所以要输入IP地址而不是主机名称,是为了让MAX更好的发现下位机Linux RT,而主机名通常不靠谱!比如,这里面我们输入刚刚设置完研盛Linux RT的miniPC IP地址,如图10所示;然后点击“下一步”,可以看到MAX立刻发现了下位机Linux RT主机,如图11所示,这里面的主机名称我们后期可以在MAX里面自己重命名修改的,而序列号不用管。

图10:手动输入下位机Linux RT设备IP地址图11:MAX可以根据IP地址快速扫描得到下位机Linux RT设备的具体信息

12、点击“完成”后,可以看到MAX里面就出现了一个在线的Linux RT终端设备了,如图12所示。至此,贡献大家成功了!!!

图12:NI-MAX软件成功发现并且安装好各种组件后的效果

13、接下来的过程,想必大家都很熟悉了,就是通过鼠标操作MAX给下位机Linux RT安装各种驱动和组件,也可以在MAX里面设置IP地址、用户权限、时间等等。其中有几点需要注意的地方,这里给大家指出来:

1)如果用户的上位机安装的LabVIEW版本高于现有的Linux RT内核,可以选择右边的“更新固件”,更新完成后,再选择左侧的“添加软件”。

2)如果用户电脑上的LabVIEW语音版本不是英文的,比如安装了中文版的LabVIEW,那么需要在添加组件里面将支持中文环境的组件安装上。

3)重启之后,可以看到下面的“启用嵌入式UI”是灰色的,这是因为“语音环境”选成中文之后,这个嵌入式UI功能就被禁用了,所以我们需要将“语言环境”改成英文,然后勾选“启用嵌入式UI”,如图13所示。这样重启下位机Linux RT之后,就能看到LabVIEW写的程序前面板了,省去了一台电脑作为人机交互,这也是Linux RT区别于以前的Pharlap RT和VxWorks最重要的特性之一。

图13:将语言环境选成英语之后,下面的嵌入式UI就有效了

4) 但是一旦勾选了下面的“启用嵌入式UI”之后,上面的语言环境下拉列表就不见 ,很多用户反馈说,不知道怎么切换成中文语言环境,因为在后续的LabVIEW RT开发时,如果LabVIEW语言版本跟下位机Linux RT不一致,会导致LabVIEW连不上Linux RT,其实,这里MAX设计的不太友好,下拉列表不见了,如图14所示。导致很多用户改不回去,实际上,必须要先把下面的“启用嵌入式UI”里面的“勾”去掉,然后上面的下拉列表就出现了,就恢复成了上面图13所示的效果。

图14:如果勾选了下面的“启用嵌入式UI”之后,上面的“语言环境”下拉列表就没有了(这一点NI设计的不友好!)

14、最后,我们给出几张测试成功的实物图,分别如图15~19所示。

图15:通过上位机MAX给下位机自定义Linux RT设备安装驱动和组件图16:给下位机Linux RT安装完各种组件包之后,匹配一下LabVIEW语言版本图17:上位机成功的识别到了下位机自定义的Linux RT设备图18:淘宝上买的超高性价比的研盛miniPC OEM(NanoJ1900,瑞昱网卡)图19:下位机安装成功并且开启Linux RT嵌入式UI之后的效果图



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3