Siflower软件服务介绍

2020/07/31 SYSTEM 共 4072 字,约 12 分钟

Siflower软件服务介绍

1 介绍

1.1 适用人员

适用于想要了解siflower openwrt系统的人员

1.2 开发环境

siflower SDK环境

1.3 相关背景

本文档的目的是描述Siflower路由器软件的体系结构,给Siflower 硬件平台上开发路由器功能的人员提供帮助

2 项目引用

2.1 参考文档

opwewrt1806发行说明

siflower软件SDK获取以及使用参考快速入门手册

3 开发详情

3.1 功能设计和流程

  • Siflower路由器软件概述

    本节介绍Siflower路由器软件解决方案的主要组件,下图显示了路由器软件的提供的所有功能

    img1

3.1.1 openwrt架构

根据GNU通用公共许可证第2版的规定,OpenWrt项目是免费软件。它拥有一个完整的软件堆栈,可由OEM和其他设备实现者移植并在自己的硬件上运行。此地图显示openwrt项目提供的主要软件

img2

3.1.1.1 源码结构

现在我们使用openwrt18.06作为我们的基本openwrt项目分支,它是2018年7月由openwrt.org发布的最新稳定版本,下表显示了OpenWrt提供的主要源文件夹和包

文件夹描述
tools获取代码和编译时使用的主机端工具
toolchain包括内核头文件,C库,交叉编译器,调试器
target定义供应商文件和图像工具
package包含OpenWrt提供的所有基本包
include包含主要的Makefiles和编译规则
scripts包括配置脚本,补丁脚本,软件源脚本
dl编译时包含所有下载包
build_dir编译时的临时文件以及提取的源代码
staging_dir编译环境包括常见的头文件和工具链
feeds所有可选软件包由openwrt或thirdparty提供
bin包含输出文件

更多说明可以参考官方openwrt guide

3.1.1.2 主要服务

下表是Openwrt启动时的主要服务

服务描述
dropbear为小型内存环境设计的小型SSH2服务器/客户端
dnsmasq它旨在为LAN提供耦合的DNS和DHCP服务
telnetdtelnet服务器的Telnet守护进程
uhttpd小巧的单线程HTTP服务器
netifd网络接口管理器服务
odhcpd用于ipv6的DHCP服务器
ubusd进程间通信服务
logd记录用户空间的服务
ntpd网络时间同步守护进程
hostapdIEEE 802.1x / WPA / EAP / RADIUS认证器
3.1.1.3 Siflower移植代码

所有用于OpenWrt的siflower移植代码都放置在target / linux / siflower /中 Linux的siflower移植代码都放在package / kernel /中,我们保持所有其他文件夹是干净的。

3.1.1.4 Siflower Openwrt框架介绍

基于Openwrt源生框架,Siflower进行了自有服务开发,相应功能代码位于package/siflower下。

用户界面我们开发一套用于商用的网页界面,再Luci中作为一个独立包可以选择。 用户接口以http接口的方式对外提供了一套可以控制路由器功能的API接口。

对于底层和中间层我们也进行了大量的开发和优化,以linux 模块 api + 上层应用程序的方式提供一些系统应用。

APP应用方面,我们开发了IOS和Android应用,云端服务。可以支持远程路由器操作,OTA等功能。

3.1.1.5 Siflower Openwrt服务介绍

基于Openwrt源生代码,Siflower开发了多种个性化服务,详细服务介绍如下:

  • WAN/LAN自适应服务介绍

    针对用户不清楚wan口lan口,插错网线导致不能上网的情况,我们进行了wan/lan自适应的开发,其会自动根据当前的网线连接情况划分wan/lan口。如果不小心将外网网线插错到了lan口,路由器会自动将wan重新划分到该网口上,成功配置后路由器依旧可以上网。开发使用脚本语言,开机自启动。

    开发详情参考wan-lan自适应开发手册

  • Repeater自动弹窗服务介绍

    针对中继器产品形态,提供独立的中继器页面,以及用户连接之后,手机/PC自动跳转浏览器显示配置页面,快速引导用户完成配置。

    开发详情参考中继器配置相关说明

  • 设备上下线服务介绍

    设备上下线服务用于检测设备上下线状态,在网页和APP上正确显示。可以通过远程/本地方式,app显示通知。

  • 设备管理

    可以针对每台连接到路由器的设备进行管理,包括url限制,流量限制,时间限制,拉黑等操作。

  • WiFi双频合一

    2.4G 5G 合并ssid+密码设置,同时根据客户设备的接入情况,选择性的引导客户接入5G网络。

    开发详情参考wifi双频合一使用手册

  • WiFi无感接入

    通过siflower私有协议,设备和路由器之间可以跳过扫描+输入密码流程,直接连接路由器。

  • 一键中继

    一键中继功能,路由器虚拟出一个station设备,并通过WPS和上级路由连接,然后通过路由器本身的wifi网络,提供其他设备接入,扩展wifi覆盖。

  • AC/AP

    路由器本身也支持作为AC,最多可以控制128个AP,进行AP配置管理,带宽管理。

  • 租赁网络

    在绑定路由器后,用户可以开启租赁网络功能。该功能为开放网络,但需要认证。 认证方式包括免费模式、支付宝微信付费模式、短信验证模式。主要用于陌生用户有偿或无偿使用用户网络。 现支持大部分手机在连接到网络时主动弹出认证页面,未主动弹出的可以在浏览器访问页面进行验证

  • 管理网页/app

    siflower自行设计了适用于路由器、86v、AC、中继器等不同产品的管理页面,并且支持在管理页面快速客制化修改和二次开发。 同时也开发了Android/IOS 矽路由app进行路由设备功能管理,我们也提供android/ios SDK供客户进行二次开发。

    网页开发参考管理网页客制化手册 管理网页开发手册

    app开发参考Android SDK集成指南 iOS SDK集成指南

3.1.1.6 Siflower Linux模块介绍

为了保证对上层服务的应用支持,我们在底层开发了统一的操作接口,对接不同外部硬件。同时也开发一些基于我们硬件特有的底层功能。

  • ethtool_ops

    对于使用外部switch芯片,我们开发了特别的ethtool_ops接口。
    除了支持GPHY的速度双工获取/设置,也支持GSWITCH每个口的速度双工获取/设置。

    参考有线网络和服务介绍

  • WiFi动态功耗调整

    根据设备信息动态调整wifi的发射功率,降低功耗。

  • hnat_ops

    hnat模块操作接口,向上层提供nat offload功能。

    参考HNAT对接和使用手册

  • pkt send tool

    底层开发工具,支持自定义任何报文字段和长度,发送时间,带宽等,方便进行性能优化。

  • 支持的外围芯片列表

    目前Siflower有线网络已支持如下外围芯片,如需增加新的外围设备可联系我们进行支持。

    设备类型设备型号
    千兆PHYRealtek8211
    千兆SWITCHRealtek8367C
    千兆SWITCHIntel7084
    千兆SWITCHIP1707

    外围芯片对接参考外网switch芯片对接和使用手册

3.1.1.7 Siflower 其它应用服务介绍
  • WiFi ATE TOOL

    基于siflower芯片的ATE测试工具SFATETESTTOOL,可以用来测试WIFI TX、RX的性能。 SFATETESTTOOL工具基于操作方式的不同分为两款,第一个是通过Windows系统的操作界面来控制的(SFATETESTTOOL UI), 另一个是基于串口输入命令行来控制的(SFATETESTTOOL Command)

    使用详情参考ATE TOOL使用手册

  • siflower pcba test tool

    使用PCBA测试工具,在产线上对产品进行测试,旨在自动化、批量化、快速地完成产品基本功能的测试。 包含WiFi校准测试,以太网测试,WiFi耦合测试,按键LED测试,写入mac地址和产品信息等基本功能

    使用详情参考PCBA TEST TOOL使用手册

3.1.2 FLASH布局

Flash分区:

Layer0 raw flash 16M
Layer1 uboot partitions mtd3 factory
64K
mtd4
firmware
15744K
Layer2 mtd0
spl_loader
128k
mtd1
uboot
384K
mtd2
uboot_env
64k
mtd5
kernel
1477K
uImage_lzma
mtd6
rootfs
14267K
mounted: "/"
Layer3 /dev/root
mounted: "/rom"
5371K
root.squashfs (increase in 256K for mkfs with block size 256K)
mtd7
rootfs_data
8896K
mounted: "/overlay"
used:632K

每个分区的描述:

分区描述
Spluboot的第一阶段,负责将Uboot加载到dram和init hw中
Uboot负责从spi中提取uImage.lzma到dram并跳转到内核
Uboot-env存储uboot使用的通用参数,例如波特率
FactoryStore参数在重置或升级时不会被删除
Linux标准Linux内核与硬件交互
Rootfs除内核以外的所有openwrt文件系统
Rootfs_datarootfs_data Jffs2 rw文件系统

详细介绍参考FLASH分区开发手册

3.1.3 软件代码获取

siflower SDK代码使用及获取参考快速入门手册

文档信息

Search

    Table of Contents