找回密码
 加入我们
搜索
      
楼主: ra13u

[网络] 顶级规格的万兆无线路由器CR1000A - Openwrt固件已出

 火.. [复制链接]
发表于 2023-10-5 22:12 | 显示全部楼层
根据a_guy大佬的指点,打开offload和 packet steering后测速相对正常了,也就比原厂固件慢了点点而已
 楼主| 发表于 2023-10-5 22:28 来自手机 | 显示全部楼层
对的 等nss驱动了 直接硬件offload 都不占用cpu的
发表于 2023-10-10 00:31 | 显示全部楼层
ra13u 发表于 2023-7-15 23:36
等有时间我写个教程,主要是目前还是需要拆机TTL从tftp启动刷机不然会更简单。
大致步骤:
1. 备份配置, ...
(别忘了备份18和20分区)

老哥,备份这两个分区的作用是什么,如何操作呢?
 楼主| 发表于 2023-10-10 08:25 | 显示全部楼层
ArmStronger 发表于 2023-10-9 10:31
老哥,备份这两个分区的作用是什么,如何操作呢?

一个是原厂的内核还有固件,具体命令我也不记得了可以参考别的刷机教程的mtd命令 是一样的

flashing kernel to /dev/mmcblk0p18
flashing rootfs to /dev/mmcblk0p20
发表于 2023-10-10 10:37 | 显示全部楼层
千万记得备份,我就没有备份,刷不回原厂固件了,只能在op上一路黑了
发表于 2023-10-10 10:42 | 显示全部楼层
另一个消息是国内做OP固件的LEAN组在半年前已经对这个设备进行了适配,NSS也驱动了,就是那个RTL9301交换机还在研究,用的闭源驱动,固件等这RTL9301交换机研究好了就会做,现在暂时不会放出来

微信图片_20231010104241.jpg
发表于 2023-10-13 13:45 来自手机 | 显示全部楼层
卡西 发表于 2023-10-10 10:42
另一个消息是国内做OP固件的LEAN组在半年前已经对这个设备进行了适配,NSS也驱动了,就是那个RTL9301交换机 ...

希望lean大神能找到固件降级办法,原厂固件速度虽快,但是常常出现100ms的延迟
发表于 2023-10-13 14:08 | 显示全部楼层
linxijun 发表于 2022-12-22 11:58
小米的万兆路由器不是更强么,官方支持docker和WiFi7(国内还没有认证通过),改第三方固件估计不会太久 ...

我用的这个,我真想说一句小米真是浪费了这么好的硬件了,固件依托答辩,而且还是基于openwrt的,暴殄天物!
发表于 2023-10-13 14:30 | 显示全部楼层
是从顶上拆吗?怎么这么难
发表于 2023-10-13 16:17 | 显示全部楼层
本帖最后由 卡西法 于 2023-10-14 09:41 编辑
faninx 发表于 2023-10-13 14:30
是从顶上拆吗?怎么这么难


顶部先撬开拆三颗螺丝,顶部黑色的中心位置,垂直往底部按下就好了
发表于 2023-10-13 16:52 | 显示全部楼层
不需要底部撬开,从顶上3个边中间孔里,用长点的螺丝刀伸进去拧开3颗螺丝,大力出奇迹把外壳从底部那里拉出来
装的时候把顶盖翘起来,装回去拧上螺丝就可以了,不需要把底部标签撬开
发表于 2023-10-13 22:18 | 显示全部楼层
顶盖是要先撬开,再拆三颗螺丝?还是先拆螺丝再撬。
发表于 2023-10-13 22:58 | 显示全部楼层
faninx 发表于 2023-10-13 22:18
顶盖是要先撬开,再拆三颗螺丝?还是先拆螺丝再撬。

顶盖直接撬,底盖有三颗螺丝,其中两颗在标签下,我当时没发现撬了半天撬不动
发表于 2023-10-13 23:12 | 显示全部楼层
但是我全拆了后发现底盖那三个根本不需要拆下来,直接拆顶上那三个
发表于 2023-10-14 15:55 来自手机 | 显示全部楼层
🙄 看一个人间惨剧
58af1276ea0fa1002dd59683546d0c4d.jpeg
发表于 2023-10-14 18:27 | 显示全部楼层
faninx 发表于 2023-10-14 15:55
🙄 看一个人间惨剧

请问在哪家买的?是techg11-20?
发表于 2023-10-14 19:11 来自手机 | 显示全部楼层
机箱 发表于 2023-10-14 18:27
请问在哪家买的?是techg11-20?

叫cleyc。买之前我还跟他确认了是A
发表于 2023-10-14 20:57 | 显示全部楼层
faninx 发表于 2023-10-14 19:11
叫cleyc。买之前我还跟他确认了是A

techg11-20是一个,这又一个;我也一样没叫仓库拍照买到一个B;最近A刚收到
发表于 2023-10-14 22:27 | 显示全部楼层
本帖最后由 faninx 于 2023-10-14 22:40 编辑
卡西法 发表于 2023-10-14 20:57
techg11-20是一个,这又一个;我也一样没叫仓库拍照买到一个B;最近A刚收到 ...


我这个老哥可能也不是故意的,他有一个A,以为两个是一样的,没仔细看就发了。
发表于 2023-10-15 07:33 | 显示全部楼层
ArmStronger 发表于 2023-10-10 00:31
老哥,备份这两个分区的作用是什么,如何操作呢?

备份分区
dd if=/dev/mmcblk0p18 of=/tmp/18.bin
dd if=/dev/mmcblk0p20 of=/tmp/20.bin

有文件生成,不知道对不对
发表于 2023-10-15 07:34 | 显示全部楼层
faninx 发表于 2023-10-14 22:27
我这个老哥可能也不是故意的,他有一个A,以为两个是一样的,没仔细看就发了。 ...

在US无所谓,搞错可以全赔的
发表于 2023-10-16 01:51 | 显示全部楼层
本帖最后由 zcyandrew 于 2023-10-16 09:50 编辑

提醒:刷入Openwrt之后访问webUI一定要用http,chrome默认强制https让我白忙了一下午

不确定CFG是不是和硬件绑定,我刷教程提供的cfg文件直接ping不到路由器,最后解包了自己的cfg把default_uci文件夹加进去再打包解决
解包和打包的python代码(我稍微改了下让代码可以在3.10一下的版本跑,原始代码用了match语句只支持3.10)
  1. import os
  2. import subprocess
  3. import shlex
  4. import sys
  5. import argparse
  6. import tarfile
  7. import io

  8. unobfuscated_key = bytes.fromhex(
  9.     '65676a796f646c746a6870646b67746b6832333470363536376c613230666c760000000000000000000000000000000000000000000000000000000000000000'
  10. )
  11. hardcoded_iv = bytes.fromhex(
  12.     '36613730363436633639363637373634'
  13. )
  14. dot_encrypt_data = bytes.fromhex(
  15.     '2e0ce09b5d412c36430bed8fb61af11b8834877351293fceedb55e812b9e8daa81e0c617117de5b87c93b505200c9b20'
  16. )

  17. iv_size = 0x10
  18. key_size = 0x20

  19. def aes_decrypt(key, iv, payload):
  20.     cmd = f"openssl enc -d -aes-256-cbc -K {key[:key_size].hex()} -iv {iv.hex()}"
  21.     proc = subprocess.Popen(shlex.split(cmd),
  22.                             stdin=subprocess.PIPE,
  23.                             stdout=subprocess.PIPE,
  24.                             stderr=subprocess.PIPE)
  25.     out, err = proc.communicate(payload)
  26.     return out

  27. def aes_encrypt(key, iv, payload):
  28.     cmd = f"openssl enc -e -aes-256-cbc -K {key[:key_size].hex()} -iv {iv.hex()}"
  29.     proc = subprocess.Popen(shlex.split(cmd),
  30.                             stdin=subprocess.PIPE,
  31.                             stdout=subprocess.PIPE,
  32.                             stderr=subprocess.PIPE)
  33.     out, err = proc.communicate(payload)
  34.     return out

  35. def decrypt_config(input, output):
  36.     with open(input, 'rb') as f:
  37.         file_size = os.fstat(f.fileno()).st_size
  38.         payload = f.read(file_size - iv_size)
  39.         iv = f.read(iv_size)
  40.    
  41.     unwrapped_key = aes_decrypt(key=unobfuscated_key, iv=hardcoded_iv, payload=dot_encrypt_data)
  42.    
  43.     decrypted_payload = aes_decrypt(key=unwrapped_key, iv=iv, payload=payload)
  44.     decrypted_payload_io = io.BytesIO(decrypted_payload)
  45.    
  46.     tar = tarfile.open(fileobj=decrypted_payload_io)
  47.     tar.extractall(path=output)
  48.    
  49.     print(f"decrypted: {len(decrypted_payload)} bytes")
  50.     print(f"done: written output to {output}")

  51. def encrypt_config(input, output):
  52.     with open(input + os.path.sep + 'backup_md5', 'wb') as f:
  53.         # firmware has a bug where it doesn't actually generate or check real md5.
  54.         f.write(bytes("d41d8cd98f00b204e9800998ecf8427e  -\n", 'utf-8'))
  55.    
  56.     encrypted_payload_io = io.BytesIO()
  57.     tar = tarfile.open(fileobj=encrypted_payload_io, mode='w:gz')
  58.    
  59.     for filename in os.listdir(input):
  60.         full_path = os.path.join(input, filename)
  61.         tar.add(full_path, arcname=filename)
  62.    
  63.     tar.close()
  64.    
  65.     unwrapped_key = aes_decrypt(key=unobfuscated_key, iv=hardcoded_iv, payload=dot_encrypt_data)
  66.     encrypted_payload = aes_encrypt(key=unwrapped_key, iv=hardcoded_iv, payload=encrypted_payload_io.getbuffer())
  67.    
  68.     with open(output, "wb") as f:
  69.         f.write(encrypted_payload)
  70.         f.write(hardcoded_iv)
  71.         
  72.     print(f"encrypted: {len(encrypted_payload)} bytes")
  73.     print(f"done: written output to {output}")

  74. parser = argparse.ArgumentParser()

  75. parser.add_argument('-c', '--command', choices=['encrypt', 'decrypt'], default='decrypt')
  76. parser.add_argument('-i', '--input', required=True)
  77. parser.add_argument('-o', '--output', required=False)

  78. args = parser.parse_args()

  79. if args.command == 'encrypt':
  80.         input = os.path.realpath(args.input)
  81.         
  82.         if not os.path.exists(input) or os.path.isfile(input):
  83.             print(f"{input} doesn't exist or is not a directory")
  84.             sys.exit(1)
  85.         
  86.         encrypt_config(input, args.output or input + '.cfg')
  87.         
  88. elif args.command == 'decrypt':
  89.         input = os.path.realpath(args.input)
  90.         
  91.         if not os.path.isfile(input):
  92.             print(f"{input} doesn't exist or is not a file")
  93.             sys.exit(1)
  94.         
  95.         decrypt_config(input, args.output or os.path.splitext(input)[0])
复制代码

解包:
  1. python3 cr1000_config.py -i <path to .cfg>
复制代码

打包:
  1. python3 cr1000_config.py -c encrypt -i <path to config directory>
复制代码

发表于 2023-10-16 04:28 | 显示全部楼层
zcyandrew 发表于 2023-10-16 01:51
不确定CFG是不是和硬件绑定,我刷教程提供的cfg文件直接ping不到路由器,最后解包了自己的cfg把default_uci ...

3.2.0.11表示想降级都没办法

发表于 2023-10-16 06:55 | 显示全部楼层
ljy1414 发表于 2023-10-16 04:28
3.2.0.11表示想降级都没办法

我现在把openwrt刷进emmc了但是无法通过webui管理(ssh能连上,也能上网)。。。。。。
发表于 2023-10-17 13:25 来自手机 | 显示全部楼层
首先感谢卡西的帮助,大概率是需要从自己设备的.cfg文件修改来开启SSH。
在SSH连接成功后,我参照教程先把设备切换到了TestMode,然后连接TTL。
这个时候出现了第一个坑点,部分TTL模块的RX和TX丝印是反过来的,这让我卡了很久,一度以为把机器搞成砖了,后来换了RX和TX的线序后进入了uboot。
然后在uboot里,上传中间固件,并在RAM中运行;可以在TTL里连接到OPENWRT,但无法访问webUI(本机固定IP 192.169.1.10 ,访问192.168.1.1) 也没有搜索到WiFi(WiFi芯片那一面的散热片都是冰凉的),目前无解,卡住了。
发表于 2023-10-17 13:46 | 显示全部楼层
ArmStronger 发表于 2023-10-17 13:25
首先感谢卡西的帮助,大概率是需要从自己设备的.cfg文件修改来开启SSH。
在SSH连接成功后,我参照教程先把 ...

中间固件运行起来后,要把网线接回lan口
发表于 2023-10-17 14:03 来自手机 | 显示全部楼层
卡西 发表于 2023-10-17 13:46
中间固件运行起来后,要把网线接回lan口

换了的,还是不行;重启又回到testmode,试了两次也不行。
发表于 2023-10-17 14:16 | 显示全部楼层
退出TestMode,在TTL界面输入:setenv TestMode,回车,输入saveenv回车后重启,接回lan,重新进入ssh,再来一次
发表于 2023-10-17 14:17 来自手机 | 显示全部楼层
卡西 发表于 2023-10-17 14:16
退出TestMode,在TTL界面输入:setenv TestMode,回车,输入saveenv回车后重启,接回lan,重新进入ssh,再来 ...

好,抽空再试试,非常感谢。
发表于 2023-10-18 06:59 | 显示全部楼层
ArmStronger 发表于 2023-10-17 14:17
好,抽空再试试,非常感谢。

我也遇到过你说的问题,最后发现是chrome自动https访问的192.168.1.1,要手动设置下用http访问
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-1-12 13:17 , Processed in 0.013593 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表