linux系统中wifi移植方法

news2024/11/26 21:22:50

第一:移植wifi现象

                在linux系统的RK3399中空板上,确认rk3399中控板linux系统已经可以正常运行。本操作是在rk3399中控板上的WIFI模块,linux内核加载wifi驱动后,再配置上正确的wifi密码,就可以实现rk3399中控板通过wifi无线上网了。

第二:wifi功能测试方法

1、根据操作步骤配置完成内核,重新编译内核。

2、更新好boot.img映射后重启rk3399中控板,等待进入桌面系统。

3、根据操作方法配置wifi账号密码,重启系统可以rk3399中控板上可以使用wifi上网了。

第三:wifi操作方法与实现

 第一步:启动开发板,等待ubuntu桌面系统启动完成。

 第二步:在rk3399中控板屏上打开命令终端,查看当前开发板的IP地址。

root@SOM-RK3399v2:~#
root@SOM-RK3399v2:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.106  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::24de:b444:2687:a032  prefixlen 64  scopeid 0x20<link>
        ether 1e:a0:8e:c1:a7:47  txqueuelen 1000  (Ethernet)
        RX packets 46  bytes 5812 (5.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 36  bytes 3700 (3.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 24

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 168  bytes 11768 (11.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 168  bytes 11768 (11.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

root@SOM-RK3399v2:~#

补充:记住这里查看到的IP地址 192.168.1.106 ,后面需要使用到。

第三步:在RK3399板子中安装FTP服务器

注意:如果已经在rk3399板子上安装过FTP服务器了,就需要重复操作。

1、安装vsftp服务器

      在终端中输入以下命令(板子rk3399可以连接互联网):

      sudo apt-get install vsftpd


root@SOM-RK3399v2:~# sudo apt-get install vsftpd
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  cron logrotate ssl-cert
Suggested packages:
  anacron checksecurity exim4 | postfix | mail-transport-agent bsd-mailx
  | mailx openssl-blacklist
The following NEW packages will be installed:
  cron logrotate ssl-cert vsftpd
0 upgraded, 4 newly installed, 0 to remove and 3 not upgraded.
Need to get 222 kB of archives.
After this operation, 745 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://ports.ubuntu.com bionic/main arm64 cron arm64 3.0pl1-128.1ubuntu1 [65.3 kB]

2、查看服务状态

输入命令:sudo service vsftpd status


root@SOM-RK3399v2:~# sudo service vsftpd status
● vsftpd.service - vsftpd FTP server
   Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: e
   Active: active (running) since Sat 2023-09-30 03:07:21 UTC; 1min 53s ago
 Main PID: 1809 (vsftpd)
    Tasks: 1 (limit: 4601)
   CGroup: /system.slice/vsftpd.service
           └─1809 /usr/sbin/vsftpd /etc/vsftpd.conf

Sep 30 03:07:21 SOM-RK3399v2 systemd[1]: Starting vsftpd FTP server...
Sep 30 03:07:21 SOM-RK3399v2 systemd[1]: Started vsftpd FTP server.

说明:上面输出显示vsftpd服务已经成功启动并运行中了。

3、修改配置文件

     首先找到配置文件vsftpd.conf

     修改文件前配置文件,放置修改破坏了无法恢复:

sudo cp	/etc/vsftpd.conf /etc/vsftpd.conf-back

     使用vim编辑器打开/etc/vsftpd.conf文件

sudo vim /etc/vsftpd.conf

     把write_enable=YES 开启(即去掉前面的#就行了),即把第 31 行。

     #write_enable=YES

     修改为:

     write_enable=YES

     保存并退出。

4、重启vsftpd服务

      由于修改了配置文件,要让配置文件生效,需要重启 vsftpd 服务。

  sudo service vsftpd restart

5、添加用户并设置密码

       这里我们设置用户名为fireflyftp 

sudo useradd -m fireflyftp

     设置 fireflyftp 用户的密码

$ sudo passwd fireflyftp
Enter new UNIX password: Retype new UNIX password:#这里输入密码 fireflyftp
passwd: password updated successfully    #这里重复输入相同的确认密码 fireflyftp

然后输入两次密码,回车后出现以下的提示则成功了。

注意:输入密码的时候是看不见的,不用管它

第四:linux内核支持wifi驱动方法

       rk3399对应的linux内核源码已经用了wifi无线网卡驱动,只需要配置上即可使用。

说明:配套资料的 Linux 内核源码默认已经配置上 WIFI 无线网卡驱动支持,以下配置过程目的是让大家掌握如果内核源码还没有支持 WIFI 无线网卡,你应该配置上哪些选项才可以驱动 WIFI 无线网卡。

命令终端切换到内核目录:

cd ~/work/FTLinuxCode/

复制 Linux 内核源码到 ~/work/FTLinuxCode :

 cp /mnt/hgfs/UbuntuShare/kernel.tar.bz2	~/work/FTLinuxCode/

注意:/mnt/hgfs/UbuntuShare/ 是我的共享目录,我把内核存放在这个目录中,请大家根据自己的实际情况修改,或使用鼠标复制复制,粘贴到Ubuntu 系统工作目录中。

解压 linux内核源码到当前  ~/work/FTLinuxCode/目录:

tar -xf	~/work/FTLinuxCode/kernel.tar.bz2	-C ~/work/FTLinuxCode/

        进入解压后的linux内核源码目录

cd ~/work/FTLinuxCode/kernel/

         加载基础配置:

make firefly_linux_defconfig

命令终端切换到linux 内核源码顶层目录,进入内核配置菜单,输入配置菜单命令:

make menuconfig

按以下层级关系,找到红外遥控按键驱动,确保它是被选中的。

  1. 配置 CFG80211

CFG80211 是内核中 WiFi 驱动和用户态进程的标准接口,在 CFG80211 出现之前是WEXT,现在越来越多的使用 CFG80211,WiFi Direct 功能只有 CFG80211 才支持。

进入 Network support->Wireless,设置 cfg80211 和 mac80211 为 M,如下所示。

保证以下两项是选中状态,这两项也以被其他内核配置项反选,即不配置它,当选项了某些相关选项时,这两项会自动配置上,在配置界面上查看 help 信息可以知道配置哪些选项会被自动选中。

cfg80211 - wireless configuration API 项说明中有以下信息:

Selected by: WL_ROCKCHIP [=y] && NETDEVICES [=y] && WLAN [=y] || AP6XXX [=y] && NETDEVICES [=y] && WLAN [=y] && WL_ROCKCHIP [=y]

即可表示WL_ROCKCHIP 、NETDEVICES 和WLAN 三项都配置为选中时AP6XXX 、NETDEVICES 、、WLAN 和WL_ROCKCHIP 四项都选中时,cfg80211 - wireless configuration API 项会自动选中

Generic IEEE 802.11 Networking Stack (mac80211) 项说明中有以下信息:

Selected by: WL_ROCKCHIP [=y] && NETDEVICES [=y] && WLAN [=y] || AP6XXX [=y] && NETDEVICES [=y] && WLAN [=y] && WL_ROCKCHIP [=y] || R8723AU [=n] && STAGING [=y] && USB [=y] && WLAN [=y] && RFKILL [=y]

2、配置 Wireless Extension

WEXT 是内核中 WiFi 驱动和用户态进程的标准接口,调试工具 iwconfig、iwlist、iwpriv 需要使用该接口。如果没有配置改接口,有些驱动会有编译错误。

WEXT 在内核配置中没有单独的配置项, 只能通过打开依赖它的配置项来间接打开。配置了CFG80211 后,进入 Device Drivers->Network device support->Wireless LAN-> Rockchip Wireless LAN suppor -> ,设置 ap6xxx wireless sdio cards support 为 Y。如下图所示。

Wireless Extension 配置

-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> Wireless LAN (WLAN [=y])
-> Rockchip Wireless LAN support
-> ap6xxx wireless sdio cards support

找到后 ap6xxx wireless sdio cards support 配置为 Y 。

保存配置,退出配置界面。

3、更新 RK3399 中控板 Linux 内核映像

     make ARCH=arm64 rk3399-firefly.img -j8

4、重新烧录生成的boot.img镜像文件到开发板

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1053147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeNet网络复现

文章目录 1. LeNet历史背景1.1 早期神经网络的挑战1.2 LeNet的诞生背景 2. LeNet详细结构2.1 总览2.2 卷积层与其特点2.3 子采样层&#xff08;池化层&#xff09;2.4 全连接层2.5 输出层及激活函数 3. LeNet实战复现3.1 模型搭建model.py3.2 训练模型train.py3.3 测试模型test…

shopify目录层级释义

└── theme├── assets // assets目录包含主题中使用的所有资源文件&#xff0c;包括图像、CSS和JavaScript文件。├── config // config目录包含主题的配置文件。 配置文件在主题编辑器的主题设置区域中定义设置&#xff0c;并存储它们的值。├── layout // layou…

会议AISTATS(Artificial Intelligence and Statistics) Latex模板参考文献引用问题

前言 在看AISTATS2024模板的时候&#xff0c;发现模板里面根本没有教怎么引用&#xff0c;要被气死了。 如下&#xff0c;引用(Cheesman, 1985)的时候&#xff0c;模板是自己手打上去的&#xff1f;而且模板提供的那三个引用&#xff0c;根本也没有Cheesman这个人&#xff0c…

Mysql各种锁

一.不同存储引擎支持的锁机制 Mysql数据库有多种数据存储引擎&#xff0c;Mysql中不同的存储引擎支持不同的锁机制 MyISAM和MEMORY存储引擎采用的表级锁 InnoDB存储引擎支持行级锁&#xff0c;也支持表级锁&#xff0c;默认情况下采用行级锁 二.锁类型的划分 按照数据操作…

【LeetCode热题100】--21.合并两个有序链表

21.合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val)…

flutter开发实战-应用更新apk下载、安装apk、启动应用实现

flutter开发实战-应用更新apk下载、安装apk、启动应用实现 在开发过程中&#xff0c;经常遇到需要更新下载新版本的apk文件&#xff0c;之后进行应用更新apk下载、安装apk、启动应用。我们在flutter工程中实现下载apk&#xff0c;判断当前版本与需要更新安装的版本进行比对判断…

FFmpeg 命令:从入门到精通 | ffmpeg 命令分类查询

FFmpeg 命令&#xff1a;从入门到精通 | ffmpeg 命令分类查询 FFmpeg 命令&#xff1a;从入门到精通 | ffmpeg 命令分类查询ffmpeg -versionffmpeg -buildconfffmpeg -formatsffmpeg -muxersffmpeg -demuxersffmpeg -codecsffmpeg -decodersffmpeg -encodersffmpeg -bsfsffmpeg…

LabVIEW学习笔记五:错误,visa关闭超时(错误-1073807339)

写的串口调试工具&#xff0c;其中出现了这个错误 这是串口接收的部分&#xff0c;如果没有在很短的时间内收到外界发进来的数据&#xff0c;这里就会报错。 先在网上查了一下&#xff0c;这个问题很常见&#xff0c;我找到了官方的解答&#xff1a; VISA读取或写入时出现超时…

视频高效剪辑,批量调整视频速度,让视频更加精彩

你是否曾经需要调整多个视频的速度&#xff0c;但却苦于手动操作效率低下&#xff1f;如果你也遇到了这样的问题&#xff0c;那么是时候采取行动&#xff0c;使用一款高效易用的视频处理工具了。 首先&#xff0c;我们要进入好简单批量智剪&#xff0c;并在板块栏里选择“任务…

26358-2022 旅游度假区等级划分 思维导图

声明 本文是学习GB-T 26358-2022 旅游度假区等级划分. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了旅游度假区的等级划分和依据、总则、基本条件、省级和国家级旅游度假区条件。 本文件适用于旅游度假区的等级认定与复核依据…

pandas数据处理之构建联邦学习数据

本文以天池比赛《车辆贷款违约预测》的数据为例&#xff0c;通过pandas处理数据&#xff0c;构建联邦学习数据&#xff0c;用于FATE框架联邦学习。 通过pandas处理数据 1. 读取数据 下载car_loan_train.csv数据后&#xff0c;用pandas读取数据。 import pandas as pddatapd…

Transformers.js v2.6 现已发布

&#x1f92f; 新增了 14 种架构 在这次发布中&#xff0c;我们添加了大量的新架构&#xff1a;BLOOM、MPT、BeiT、CamemBERT、CodeLlama、GPT NeoX、GPT-J、HerBERT、mBART、mBART-50、OPT、ResNet、WavLM 和 XLM。这将支持架构的总数提升到了 46 个&#xff01;以下是一些示例…

IntelliJ IDEA 控制台中文乱码的四种解决方法

前言 IntelliJ IDEA 如果不进行配置的话&#xff0c;运行程序时控制台有时候会遇到中文乱码&#xff0c;中文乱码问题非常严重&#xff0c;甚至影响我们对信息的获取和程序的跟踪。开发体验非常不好。 本文中我总结出四点用于解决控制台中文乱码问题的方法&#xff0c;希望有助…

分布式事务-TCC异常-空回滚

1、空回滚问题&#xff1a; 因为是全局事务&#xff0c;A服务调用服务C的try时服务出现异常服务B因为网络或其他原因还没执行try方法&#xff0c;TCC因为C的try出现异常让所有的服务执行cancel方法&#xff0c;比如B的try是扣减积分 cancel是增加积分&#xff0c;还没扣减就增…

【动态规划】动态规划经典例题 力扣牛客

文章目录 跳台阶 BM63 简单跳台阶扩展 JZ71 简单打家结舍 LC198 中等打家劫舍2 LC213中等最长连续递增序列 LC674 简单乘积最大子数组LC152 中等最长递增子序列LC300 中等最长重复子数组LC718最长公共子串NC BM66最长公共子序列LC1143 中等完全平方数LC279零钱兑换 LC322 中等单…

【图像分割】图像检测(分割、特征提取)、各种特征(面积等)的测量和过滤(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

基于SSM+Vue的医院住院综合服务管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

前端最新支持四级及以下结构仿企查查、天眼查关联投资机构 股权结构 tree树形结构 控股结构

随着技术的发展&#xff0c;开发的复杂度也越来越高&#xff0c;传统开发方式将一个系统做成了整块应用&#xff0c;经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改&#xff0c;造成牵一发而动全身。通过组件化开发&#xff0c;可以有效实现单…

数据结构——堆(C语言)

本篇会解决一下几个问题&#xff1a; 1.堆是什么&#xff1f; 2.如何形成一个堆&#xff1f; 3.堆的应用场景 堆是什么&#xff1f; 堆总是一颗完全二叉树堆的某个节点总是不大于或不小于父亲节点 如图&#xff0c;在小堆中&#xff0c;父亲节点总是小于孩子节点的。 如图&a…

外包干了3个月,整个人都萎靡不振了。。。。。

先说一下自己的情况&#xff0c;本科生生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…