【技术分享】RK356X Android11 以太网共享4G网络

本文基于IDO-SBC3566-V1B Android11系统实现开机后以太网自动共享4G网络功能。

IDO-SBC3566基于瑞芯微RK3566研发的一款高性能低功耗的智能主板,采用四核A55,主频高达1.8GHz,专为个人移动互联网设备和AIOT设备而设计,内置了多种功能强大的嵌入式硬件引擎,为高端应用提供了优异的性能,支持几乎全格式的4K编解码,内置3DGPU,能够完全兼容OpenGL ES1.1/2.0/3.2、OpenCL2.0和Vulkan1.0.特殊的MMU2D硬件引擎,此外,凭借其强大的兼容性,可以轻松地转换基于TensorFlow/MXNet/PyTorch/Caffe等一系列框架的网络模型。

支持Android,Linux,OpenHarmony,麒麟OS等多种操作系统,可广泛应用于平板、教育平板、带屏音箱、词典笔、云终端、视频会议系统等安卓/Linux类应用方案,以及其他带屏消费类、或轻量级AI应用场景。

产品规格书查看深圳触觉智能官网-产品中心

添加以太网共享服务

在源码目录下新建以太网共享服务文件,实现系统开机启动时开启以太网共享。

packages/apps/Settings/src/com/android/settings/StartEth1ShareRunnable.java

文件内容如下:

package com.android.settings;//以太网共享
import android.app.Service;
import android.content.Context;
import android.os.Handler;
import android.util.Log;
import android.content.Intent;
import android.os.IBinder;import android.net.ConnectivityManager;
import static android.net.TetheringManager.TETHERING_ETHERNET;
import android.net.ConnectivityManager.OnStartTetheringCallback;public class StartEth1ShareRunnable extends Service {private static final String TAG = "StartEth1ShareRunnable";private Context mContext;//以太网共享private ConnectivityManager mCm;private OnStartTetheringCallback mStartTetheringCallback;@Overridepublic IBinder onBind(Intent arg0) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {super.onCreate();mCm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);mStartTetheringCallback = new OnStartTetheringCallback();mHandler.post(StartEth1ShareRunnable);//启用以太网}private Handler mHandler = new Handler();private class OnStartTetheringCallback extends ConnectivityManager.OnStartTetheringCallback {@Overridepublic void onTetheringStarted() {Log.d(TAG, "ethernet onTetheringStarted!\n");}@Overridepublic void onTetheringFailed() {Log.e(TAG, "ethernet onTetheringFailed!\n");}}//以太网共享private Runnable StartEth1ShareRunnable = new Runnable() {@Overridepublic void run() {try {if (mCm != null)mCm.startTethering(TETHERING_ETHERNET, true, mStartTetheringCallback, mHandler);//开启以太网共享} catch (Exception e) {Log.e(TAG, "ethernet startTethering error!\n");e.printStackTrace();mHandler.postDelayed(StartEth1ShareRunnable, 10000);//延迟10秒后重新执行}}};
}

在packages/apps/Settings/src/com/android/settings/ 添加一个广播 MyBootReceiver.java 用于接收启动完成事件,在收到广播后调用StartEth1ShareRunnable服务

package com.android.settings;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;public class MyBootReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubString action = intent.getAction();if (action.equals(Intent.ACTION_BOOT_COMPLETED)){Intent service = new Intent(context, StartEth1ShareRunnable.class);context.startService(service);}}
}

功能验证

SBC3566主板插入可使用的EC20 4G模块以及SIM卡,如下图所示:

  

从SBC3566主板网口接一根网线到另外一块主板网口上,并给两个主板供电。

在SBC3566系统查看网口及4G获取的IP

共享的网口网络IP:192.168.5.1 4G网卡IP:10.47.102.124

console:/ # ifconfig
eth0 Link encap:Ethernet HWaddr 02:ed:83:f3:50:c4 Driver rk_gmac-dwmacinet addr:192.168.5.1  Bcast:192.168.5.255  Mask:255.255.255.0inet6 addr: fe80::7a78:d959:9bff:28cd/64 Scope: LinkUP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1RX packets:133 errors:0 dropped:0 overruns:0 frame:0TX packets:158 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:17758 TX bytes:37405Interrupt:38ppp0 Link encap:Point-to-Point Protocolinet addr:10.47.102.124  P-t-P:10.64.64.64  Mask:255.255.255.255UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500  Metric:1RX packets:104 errors:0 dropped:0 overruns:0 frame:0TX packets:111 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:3RX bytes:27734 TX bytes:11416

通过ping 百度地址能正常上网

console:/ # ping www.baidu.com
PING www.baidu.com (157.148.69.74) 56(84) bytes of data.
64 bytes from 157.148.69.74: icmp_seq=1 ttl=52 time=32.8 ms
64 bytes from 157.148.69.74: icmp_seq=2 ttl=52 time=24.0 ms
64 bytes from 157.148.69.74: icmp_seq=3 ttl=52 time=24.1 ms
64 bytes from 157.148.69.74: icmp_seq=4 ttl=52 time=24.4 ms
64 bytes from 157.148.69.74: icmp_seq=5 ttl=52 time=23.8 ms
64 bytes from 157.148.69.74: icmp_seq=6 ttl=52 time=24.1 ms
64 bytes from 157.148.69.74: icmp_seq=7 ttl=52 time=25.4 ms
64 bytes from 157.148.69.74: icmp_seq=8 ttl=52 time=24.7 ms
^C
--- www.baidu.com ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7012ms
rtt min/avg/max/mdev = 23.808/25.447/32.874/2.852 ms

另外一块主板通过网络共享获取到的IP 为192.168.5.X网段

console:/ # ifconfig
eth1 Link encap:Ethernet HWaddr 3a:1d:f7:26:49:0a Driver r8168inet addr:192.168.5.199  Bcast:192.168.5.255  Mask:255.255.255.0inet6 addr: fe80::4a59:7a31:cc45:1b53/64 Scope: LinkUP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1RX packets:286671 errors:0 dropped:0 overruns:0 frame:0TX packets:586 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:27238966 TX bytes:64962Interrupt:169 Base address:0x3000

通过测试可以ping通互联网网址

console:/ # ping www.baidu.com
PING www.baidu.com (157.148.69.74) 56(84) bytes of data.
64 bytes from 157.148.69.74: icmp_seq=1 ttl=51 time=37.7 ms
64 bytes from 157.148.69.74: icmp_seq=2 ttl=51 time=28.7 ms
64 bytes from 157.148.69.74: icmp_seq=3 ttl=51 time=22.9 ms
64 bytes from 157.148.69.74: icmp_seq=4 ttl=51 time=23.2 ms
64 bytes from 157.148.69.74: icmp_seq=5 ttl=51 time=23.4 ms
64 bytes from 157.148.69.74: icmp_seq=6 ttl=51 time=48.0 ms
64 bytes from 157.148.69.74: icmp_seq=7 ttl=51 time=23.0 ms
64 bytes from 157.148.69.74: icmp_seq=8 ttl=51 time=24.9 ms
64 bytes from 157.148.69.74: icmp_seq=9 ttl=51 time=69.8 ms
^C
--- www.baidu.com ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 8012ms
rtt min/avg/max/mdev = 22.930/33.577/69.879/15.184 ms

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android开发市场被抢占,鸿蒙能入行吗?

根据最新的数据,华为Mate60系列在上市第二周就成功占据了国内手机市场的17%份额,排名第二。而机构预测,华为手机在第37周有望超过20%的市场份额,成为国内手机市场的冠军。 一开始,人们对HarmonyOSNEXT持保留态度&…

GODOC命令无效,原因是需要手动安装

在看《GO程序设计语言》这本书,按照其中的内容,想看下GO自带的包的文档。 书中讲,可以直接输入GoDOC命令来打开一个服务器,从而可以用浏览器访问文档库。输入命令后,系统提示找不到该命令。 查了资料后才发现&#xff…

代码随想录算法训练营 ---第五十五天

今天是 动态规划:编辑距离问题。 第一题: 简介: 动态规划五部曲: 1.确定dp数组的含义 dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]。 2.确定递推公…

unity | 动画模块之循环滚动选项框

一、作者的话 评论区有人问,有没有竖排循环轮播选项框,我就写了一个 二、效果动画 如果不是你们想要的,就省的你们继续往下看了 三、制作思路 把移动分成里面的方块,还有背景(父物体),方块自…

【隐私计算】安全三方计算(3PC)的加法和乘法计算协议

ABY3中采用replicated secret sharing(复制秘密分享)机制,即2-out-of-3秘密分享,三个参与方的每一方都拥有share中的两份。下面来看一下这样做有什么好处。 2-out-of-3秘密分享 有 x , y x, y x,y两个操作数,先进行秘…

①归并排序、快速排序 、堆排序、计数排序[算法、代码模板、面试题]

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 排序[算法、代码模板、面试题] ①归并排序、快…

波奇学C++:类型转换和IO流

隐式类型转换 int i0; double pi; 强制类型转换 int* pnullptr; int a(int)p; 单参数构造函数支持隐式类型转换 class A { public:A(string a):_a(a){} private:string _a; }; A a("xxxx"); //"xxx" const char* 隐式转换为string 多参数也可以通过{…

【6】PyQt信号和槽

1. 信号和槽简介 信号和槽机制是 QT 的核心机制,应用于对象之间的通信 信号和槽是用来在对象间传递数据的方法当一个特定事件发生的时候,signal会被emit出来,slot调用是用来响应相应的signal的Qt中对象已经包含了许多预定义的 signal&#…

Android进阶之路 - TextView文本渐变

那天做需求的时候,遇到一个小功能,建立在前人栽树,后人乘凉的情况下,仅用片刻就写完了;说来惭愧,我以前并未写过文本渐变的需求,脑中也仅有一个shape渐变带来的大概思路,回头来看想着…

Web网页安全策略的研究及其实现方案

摘 要 越来越多的人使用电脑来接触互联网,事实上,使用Web技术的实现基于网络的不断完善和发展的交流网站,人们可以利用计算机网络技术,方便得到想要的任何信息。计算机网络的发展,也促进了相关产业的发展,…

【vue-router】useRoute 和 useRouter 的区别

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

5个超实用GPT技巧,包括绩效总结、头脑风暴、营销策略等(内附提示词)

今天和大家分享5个用于工作上的GPT技巧,例如进行绩效总结、自我评估、头脑风暴,还是制作PPT方案等等,最大化提升你工作效率,本期内容对于大家来说都非常受用,记得收藏起来哦! 那么接下来就直接进入正题吧&a…

postgresql pg_hba.conf 配置详解

配置文件之pg_hba.conf介绍 该文件用于控制访问安全性,管理客户端对于PostgreSQL服务器的访问权限,内容包括:允许哪些用户连接到哪个数据库,允许哪些IP或者哪个网段的IP连接到本服务器,以及指定连接时使用的身份验证模…

Leetcode—205.同构字符串【简单】

2023每日刷题&#xff08;五十&#xff09; Leetcode—205.同构字符串 算法思想 参考自k神思路 实现代码 class Solution { public:unordered_map<char, char> s2t, t2s;bool isIsomorphic(string s, string t) {int n s.size();for(int i 0; i < n; i) {char …

梦回吹角连营(2)(快速幂快乘)

Description 给定f(n)(a1)*n^a(a2)*n^(a1)...b*n^(b-1) 求f(n)%10000000033 Input 输入一个正整数T(T<10),表示有T组数据&#xff0c;每组数据包括三个整数a,b,n (0<n<10^9,1<a < b-1<10^20) Output 输出 f(n)%10000000033 的结果 Sample Input 1 1 2…

抽奖.html(网上收集8)

<!doctype html> <html> <head><meta charset"utf-8"><title>在线抽奖 随机选取 自动挑选</title><script src"https://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script><style>body {backg…

基于Springboot的秒杀系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的秒杀系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xf…

【Linux】ln命令使用

ln命令 ln是linux中又一个非常重要命令&#xff0c;请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同步的链接&#xff0c;这个命令最常用的参数是-s&#xff0c;具体用法是&#xff1a;ln –s 源文件 目标文件。 当我们需要在不同的目录&#xff0c;用到相…

【4】PyQt输入框

1. 单行文本输入框 QLineEdit控件可以输入单行文本 from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QVBoxLayout from PyQt5.QtCore import * from PyQt5.QtGui import QIcon import sysdef init_widget(w: QWidget):# 修改窗口标题w.setWindowTitle(单行输…

【Spark入门】基础入门

【大家好&#xff0c;我是爱干饭的猿&#xff0c;本文重点介绍Spark的定义、发展、扩展阅读&#xff1a;Spark VS Hadoop、四大特点、框架模块、运行模式、架构角色。 后续会继续分享其他重要知识点总结&#xff0c;如果喜欢这篇文章&#xff0c;点个赞&#x1f44d;&#xff…