osnosn

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

SFT1200_便携路由器_试用_用SDK编译软件包

转载注明来源: 本文链接 来自osnosn的博客,写于 2022-09-11.

参考

官方固件

试用

  • 路由器显示,装的 v3.212 固件。已经是官方最新的稳定版。
  • 插上手机,打开手机的usb网络共享(在个人热点中)。打开sft1200的ipv6支持,在Tethering中,能获取ipv4地址,无ipv6地址(应该是手机的问题)。能上网。
  • Repeater 模式,连上一个5G wifi信号,能正常上网,同时还能提供2.4g和5g的WiFi连入。wan口能获取到一个eui64的ipv6地址。不过lan口就不会往下分发ipv6地址了(这个是上级路由的问题)。
    • Repeater 支持连接 EAP 认证的网络。原版web配置页面就支持。
  • 插网线,能正常上网。wan口能获取到一个eui64的ipv6地址。不过lan口就不会往下分发ipv6地址了(这个是上级路由的问题)。
    • wan插网线dhcp。在原版web上,重新启用一下ipv6。lan口上的设备也能获取到ipv6地址,能访问外部ipv6。
      有意思的是,上级路由从运营商获取前缀是/60,这个sft显示获取的前缀是/62,它自己在多出的2bit上,加了1。
      sft的wan口获取的ipv6用的是/60的前缀,lan口的ipv6用的是/62的前缀。
      从luci界面看到,ipv6启用为relay模式。
      连接到 SFT1200 的电脑,获取的ipv6,是上级路由的前缀。(因为是relay模式)。
  • 插网线,PPPOE拨号,没测试。
  • Wireless 无线的认证配置中,支持 WPA-EAP 和 WPA2-EAP 认证。即支持radius认证。要在luci页面才有支持。原版web页面没有EAP支持。
  • 测速。wan口插网线,dhcp。
    • 2.4g,下载有50-80MB/s。
    • 5g,下载有260-300MB/s。
    • 有线接lan,下载 > 600MB/s。大概是我的电脑太慢。h5的测速网页,就只能测到这个值了。
    • lan to lan 的交换机测速,没测,听说能跑满千兆。
  • /etc/os-release, 显示 LEDE_RELEASE="OpenWrt 18.06 LEDE"
  • uname -a, 显示,
    Linux GL-SFT1200 4.14.90 #27 SMP Mon May 16 16:06:51 CST 2022 mips GNU/Linux
  • /proc/version,显示
    Linux version 4.14.90 (deng@ubuntu) (gcc version 7.4.0 (OpenWrt GCC 7.4.0 r0-d5ed025)) #27 SMP Mon May 16 16:06:51 CST 2022
  • /proc/cpuinfo, 显示有 4 个核心。
    system type             : MIPS sf19a28
    machine                 : GL-SFT1200
    processor               : 0
    cpu model               : MIPS interAptiv (multi) V2.8  FPU V0.0
    BogoMIPS                : 531.66
    wait instruction        : yes
    microsecond timers      : yes
    tlb_entries             : 64
    extra interrupt vector  : yes
    hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
    isa                     : mips1 mips2 mips32r1 mips32r2
    ASEs implemented        : mips16 dsp dsp2 mt eva
    
  • /proc/meminfo, 内存 128MB。
    MemTotal:         118788 kB
    MemFree:           40888 kB
    MemAvailable:      61796 kB
    Buffers:            7208 kB
    Cached:            21864 kB
    SwapCached:            0 kB
    Active:            22396 kB
    Inactive:          12484 kB
    
  • df -hT , flash有 128MB。
    Filesystem           Type            Size      Used Available Use% Mounted on
    /dev/root            squashfs       13.5M     13.5M         0 100% /rom
    tmpfs                tmpfs          58.0M    192.0K     57.8M   0% /tmp
    /dev/ubi0_1          ubifs          93.5M    728.0K     88.1M   1% /overlay
    overlayfs:/overlay   overlay        93.5M    728.0K     88.1M   1% /
    tmpfs                tmpfs         512.0K      4.0K    508.0K   1% /dev
    
  • opkg opkg print-architecture 显示 arch mips_siflower 10
  • /etc/opkg/distfeeds.conf 指向 https://fw.gl-inet.com/releases/v18.06.5/packages-3.6/siflower/
    这个网站的所有目录都不让浏览。所以不知道sft1200还支持op的哪个版本。
  • opkg instal luci 其实装了19个包.
    rpcd liblua luci-lib-ip libubus-lua libiwinfo-lua luci-theme-bootstrap luci-app-firewall lua luci-proto-ppp luci-lib-nixio luci-lib-jsonc liblucihttp liblucihttp-lua luci-base luci-mod-admin-full luci-proto-ipv6 uhttpd rpcd-mod-rrdns luci
    但系统不认。
  • 只好用系统提供的界面安装。"MORE SETTING"->"Advanced"。装了21个包。多了两个luci-lib-json luci-mod-rpc
    luci-lib-json luci-mod-rpc rpcd liblua luci-lib-ip libubus-lua libiwinfo-lua luci-theme-bootstrap luci-app-firewall lua luci-proto-ppp luci-lib-nixio luci-lib-jsonc liblucihttp liblucihttp-lua luci-base luci-mod-admin-full luci-proto-ipv6 uhttpd rpcd-mod-rrdns luci
    装完 df -h 显示 overlayfs:/overlay 93.5M 2.0M 86.8M 2% /
    • 网上有文章说,要先手动安装了 luci,才能在菜单中见到 "Advanced" 项。
    • 装luci之前,剩余 88.1MB,装完luci之后剩余86.8MB。
  • "APPLICATIONS"->"RemoteAccess" 中打开,Cloud Management,后台有一个进程 gl_mqtt_servic 连接52.193.100.100:18883/tcp。 应该是用来提供远程访问路由器管理页面用的。你自己不需要有公网IP。
    关掉它,gl_mqtt_servic就消失了,不影响本地的 ssh,web 登录。
  • 设备送了一个 ddns,解析不太稳定,似乎只支持 ipv4,不支持 ipv6。
    启用后,可以在后台看到这个域名。形如"xxxx.glddns.com"。xxxx是路由器背面的"设备ID"。

SDK

为官方固件v3.212编译包。
官方固件中,有的库升级了。但官方sdk并没同步升级,需要手工修改。比如openssl。

  • GL.iNet新品SFT1200大战小米CR6608结果意外 | 原生支持手机热点分享 USB上网模块 轻量NAS| 小巧便携OpenWrt系统】(含第三方包)
  • 主要参考这篇:【GL-iNet SF1200 官方SDK编译固件教程
  • 国产芯片路由器,GL-SF1200,测试与固件编译教程、固件分享
  • gl.inet SF1200 SFT1200自编译openwrt】,【zheshifandian/openwrt-sf1200
  • 官方SDK,gl-inet/gl-infra-builder
  • git clone -v https://github.com/gl-inet/gl-infra-builder.git,大约51MB。
  • cd gl-infra-builder
  • 拉取 siflower 源码,(需apt install python3-yaml)
    python3 setup.py -c configs/config-siflower-18.x.yml 下载 823MB。
    这个命令结束后,openwrt-18.06/ 目录,最终有2.9GB。
  • 再更新一下 siflower 里头的东西。
    cd openwrt-18.06/siflower/
    git pull
  • 生成编译配置文件
    cd openwrt-18.06 , (实际进入的是 gl-infra-builder/openwrt-18.06/siflower/openwrt-18.06/ 目录)
    ./scripts/gen_config.py list , 列出可用的参数,其中就有 target_siflower_gl-sft1200
    ./scripts/gen_config.py target_siflower_gl-sft1200 ,
    • 在 feeds/packages/ 大概要下载47MB.
    • 在 feeds/luci/ 大概要下载137MB.
    • 其他几个目录,各有3MB.
    • 网络不好的话,这个命令要多执行几次。把东西下载完整。
  • 添加第三方包的源码,修改配置。
    • 我从 https://github.com/kiddin9/openwrt-packages 挑选了几个我有兴趣的包。
    • 3proxy 是用的这个 https://github.com/osnosn/3proxy-openwrt
  • make menuconfig
  • make -j1 V=s 编译。
  • 如果是debian-11,装 apt install gcc-9 gcc-9-multilib g++-9-multilib。(不知道是不是都有用,先装着吧)
    staging_dir/host/bin/ 中, rm gcc; ln -s /usr/bin/gcc-9 gcc, 把链接替换一下,达到降级的目的。用完再改回来。
    记得 make clean 再重新编译。
  • 有的包编译失败,是因为要求用 golang-1.18 。仔细看输出的信息,就会发现原因。
    staging_dir/host/bin/ 中,ln -s /usr/lib/go-1.18/bin/go go 不用去改 /usr/bin/go 的链接。
  • upx 可以下载一个3.93版的,然后把 upx 在 staging_dir/host/bin/ 做个链接。
    3.96 版不合适给 mips程序用,压出来的,执行时会卡住。只适合x86程序用。
  • 还需要python2.7的支持,apt install python
  • 那些golang的程序,生成的包,希望体积小点。
    打开对应包的目录中的 Makefile, 找到 install 的部分,
    $$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/usr/bin/$(1) $$(1)/usr/bin/后面加上,
    $(STAGING_DIR_HOST)/bin/sstrip $$(1)/usr/bin/$(1)
    $(STAGING_DIR_HOST)/bin/upx --lzma --best $$(1)/usr/bin/$(1) || true
    • 代码不一定一样。总之就是,copy 到 bin 目录后,先 sstrip,再 upx 压缩,就行了。
    • 使用了upx压缩,运行时使用的内存就多一点SFT1200内存太小, 才128M, 不建议用upx压缩。如果有256M就没问题。

      交叉编译一个golang可执行程序到SFT1200上,不用upx压缩是18MB,使用upx压缩约5MB多。
      先启动一个进程作为服务运行,18MB的版本执行后,内存free值约10MB。5MB的版本执行后,内存free约9MB多。
      这个时候,再次手工执行这个程序,18MB的版本能够正常启动(加载偏慢,约3秒),有正常的输出。5MB的版本加载约3秒后,被内核杀掉,启动失败,无任何输出。
      没有upx压缩的程序,执行多个副本进程,代码部分是可以在内存中共享的。upx压缩的,只共享了解压部分的代码,解压后的代码不能共享,导致内存使用过大,OOM被杀。如果内存够大,就没这问题。

  • ipk 文件,应该在 bin/ 目录中。实际目录是 gl-infra-builder/openwrt-18.06/siflower/openwrt-18.06/bin/
    • 第三方包,在 bin/packages/ 里头。
    • 内核包,在 bin/targets/ 里头。

其他

  • hostapd-opensslwpad-openssl 好像是互斥的,同时选择,就编译不出来了。
    menuconfig 中每次单独选择一个,然后,
    make package/network/services/hostapd/compile V=s -j2单独编译它,就行了。
  • 官方sdk中 openssl 的版本比较低,是 1.0.2p。要手动改为 1.1.1i。因为官方固件v3.212用的是1.1.1i。
    打开 package/libs/openssl/Makefile , 改版本号,bug号,hash值。 不行,patches都不对。
    • git clone -v https://git.openwrt.org/openwrt/openwrt.git openwrt-base 拉op官方的,下载约180MB, 占用405MB。
      去openssl包中,checkout 1.1.1i 出来。然后把 openssl 整个目录copy到 sft1200的对应位置,替换原来的。
      再重新编译。
      否则 wpad,hostapd 编译出来的运行不了。
  • 修改一下 hostapd/Makefile 中的 PKG_RELEASE:=5 版本号要变一下。
    否则,老是自己去官网下载,不装你编译的。用--force-reinstall --force-depend 也不行。
    改变版本号之后,就能顺利装上,显示这个包 upgrade 成功。
    或者,不改也行,安装包时,不要opkg update 并且 rm -f /var/opkg-list/* 就可以安装。
    还有个办法,强制装本地 ipk文件,opkg -f /dev/null install xxxxx.ipk
  • 好不容易,编译成功几个包。备份在【这里】。
  • WiFi 的 WPA2-EAP 认证配置,看【CentOS7用hostapd做radius服务器为WiFi提供802.1X企业认证】。
  • 3proxy 安装后的配置,参考【Danted/Socks5 代理服务_多IP_多出口的配置_3proxy】,
    创建编译环境_编译OPENWRT固件_用SDK为官方固件编译第三方软件3proxy
  • 最终,编译完。sft1200 的 sdk 占用硬盘 13GB。

gl-inet SDK

  • 这个似乎是个新的sdk,不知道是不是好用。
    gl-inet/sdk

imageBuilder

第三方固件

第三方包

  • SFT1200原厂系统安装第三方包
    • wget https://cdn.jsdelivr.net/gh/ericwang2006/sft1200_buddha/install.sh
      然后,执行 /bin/sh install.sh xx,
      xx可以有两个选择。程序不长,看一下就懂了。
    • install.sh 会把中文也装了。如果不想要中文,看看脚本,跳开中文包,手动安装。
    • github.com/ericwang2006/sft1200_buddha
    • openWRT 中ln -s /root/5config_files/xray_conf /usr/share/xray 补上这个存放 geoip.dat 的路径。
  • 这个服务比较依赖系统时间的准确度。

----end----


转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/16686059.html
来自 osnosn的博客 https://www.cnblogs.com/osnosn/ .


posted on 2022-09-12 13:59  osnosn  阅读(1999)  评论(0编辑  收藏  举报