卡西 发表于 2023-10-5 22:12

根据a_guy大佬的指点,打开offload和 packet steering后测速相对正常了,也就比原厂固件慢了点点而已

ra13u 发表于 2023-10-5 22:28

对的 等nss驱动了 直接硬件offload 都不占用cpu的

ArmStronger 发表于 2023-10-10 00:31

ra13u 发表于 2023-7-15 23:36
等有时间我写个教程,主要是目前还是需要拆机TTL从tftp启动刷机不然会更简单。
大致步骤:
1. 备份配置, ...

(别忘了备份18和20分区)
老哥,备份这两个分区的作用是什么,如何操作呢?

ra13u 发表于 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交换机研究好了就会做,现在暂时不会放出来

ljy1414 发表于 2023-10-13 13:45

卡西 发表于 2023-10-10 10:42
另一个消息是国内做OP固件的LEAN组在半年前已经对这个设备进行了适配,NSS也驱动了,就是那个RTL9301交换机 ...

希望lean大神能找到固件降级办法,原厂固件速度虽快,但是常常出现100ms的延迟

553720tv 发表于 2023-10-13 14:08

linxijun 发表于 2022-12-22 11:58
小米的万兆路由器不是更强么,官方支持docker和WiFi7(国内还没有认证通过),改第三方固件估计不会太久 ...

我用的这个,我真想说一句小米真是浪费了这么好的硬件了,固件依托答辩,而且还是基于openwrt的,暴殄天物!

faninx 发表于 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颗螺丝,大力出奇迹把外壳从底部那里拉出来
装的时候把顶盖翘起来,装回去拧上螺丝就可以了,不需要把底部标签撬开

faninx 发表于 2023-10-13 22:18

顶盖是要先撬开,再拆三颗螺丝?还是先拆螺丝再撬。

zcyandrew 发表于 2023-10-13 22:58

faninx 发表于 2023-10-13 22:18
顶盖是要先撬开,再拆三颗螺丝?还是先拆螺丝再撬。

顶盖直接撬,底盖有三颗螺丝,其中两颗在标签下,我当时没发现撬了半天撬不动

卡西 发表于 2023-10-13 23:12

但是我全拆了后发现底盖那三个根本不需要拆下来,直接拆顶上那三个

faninx 发表于 2023-10-14 15:55

🙄 看一个人间惨剧

机箱 发表于 2023-10-14 18:27

faninx 发表于 2023-10-14 15:55
🙄 看一个人间惨剧

请问在哪家买的?是techg11-20?

faninx 发表于 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刚收到

faninx 发表于 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无所谓,搞错可以全赔的

zcyandrew 发表于 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)
import os
import subprocess
import shlex
import sys
import argparse
import tarfile
import io

unobfuscated_key = bytes.fromhex(
    '65676a796f646c746a6870646b67746b6832333470363536376c613230666c760000000000000000000000000000000000000000000000000000000000000000'
)
hardcoded_iv = bytes.fromhex(
    '36613730363436633639363637373634'
)
dot_encrypt_data = bytes.fromhex(
    '2e0ce09b5d412c36430bed8fb61af11b8834877351293fceedb55e812b9e8daa81e0c617117de5b87c93b505200c9b20'
)

iv_size = 0x10
key_size = 0x20

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

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

def decrypt_config(input, output):
    with open(input, 'rb') as f:
      file_size = os.fstat(f.fileno()).st_size
      payload = f.read(file_size - iv_size)
      iv = f.read(iv_size)
   
    unwrapped_key = aes_decrypt(key=unobfuscated_key, iv=hardcoded_iv, payload=dot_encrypt_data)
   
    decrypted_payload = aes_decrypt(key=unwrapped_key, iv=iv, payload=payload)
    decrypted_payload_io = io.BytesIO(decrypted_payload)
   
    tar = tarfile.open(fileobj=decrypted_payload_io)
    tar.extractall(path=output)
   
    print(f"decrypted: {len(decrypted_payload)} bytes")
    print(f"done: written output to {output}")

def encrypt_config(input, output):
    with open(input + os.path.sep + 'backup_md5', 'wb') as f:
      # firmware has a bug where it doesn't actually generate or check real md5.
      f.write(bytes("d41d8cd98f00b204e9800998ecf8427e-\n", 'utf-8'))
   
    encrypted_payload_io = io.BytesIO()
    tar = tarfile.open(fileobj=encrypted_payload_io, mode='w:gz')
   
    for filename in os.listdir(input):
      full_path = os.path.join(input, filename)
      tar.add(full_path, arcname=filename)
   
    tar.close()
   
    unwrapped_key = aes_decrypt(key=unobfuscated_key, iv=hardcoded_iv, payload=dot_encrypt_data)
    encrypted_payload = aes_encrypt(key=unwrapped_key, iv=hardcoded_iv, payload=encrypted_payload_io.getbuffer())
   
    with open(output, "wb") as f:
      f.write(encrypted_payload)
      f.write(hardcoded_iv)
      
    print(f"encrypted: {len(encrypted_payload)} bytes")
    print(f"done: written output to {output}")

parser = argparse.ArgumentParser()

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

args = parser.parse_args()

if args.command == 'encrypt':
      input = os.path.realpath(args.input)
      
      if not os.path.exists(input) or os.path.isfile(input):
            print(f"{input} doesn't exist or is not a directory")
            sys.exit(1)
      
      encrypt_config(input, args.output or input + '.cfg')
      
elif args.command == 'decrypt':
      input = os.path.realpath(args.input)
      
      if not os.path.isfile(input):
            print(f"{input} doesn't exist or is not a file")
            sys.exit(1)
      
      decrypt_config(input, args.output or os.path.splitext(input))
解包:python3 cr1000_config.py -i <path to .cfg>
打包:python3 cr1000_config.py -c encrypt -i <path to config directory>

ljy1414 发表于 2023-10-16 04:28

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

3.2.0.11表示想降级都没办法

[流泪]https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

zcyandrew 发表于 2023-10-16 06:55

ljy1414 发表于 2023-10-16 04:28
3.2.0.11表示想降级都没办法

我现在把openwrt刷进emmc了但是无法通过webui管理(ssh能连上,也能上网)。。。。。。

ArmStronger 发表于 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口

ArmStronger 发表于 2023-10-17 14:03

卡西 发表于 2023-10-17 13:46
中间固件运行起来后,要把网线接回lan口

换了的,还是不行;重启又回到testmode,试了两次也不行。

卡西 发表于 2023-10-17 14:16

退出TestMode,在TTL界面输入:setenv TestMode,回车,输入saveenv回车后重启,接回lan,重新进入ssh,再来一次

ArmStronger 发表于 2023-10-17 14:17

卡西 发表于 2023-10-17 14:16
退出TestMode,在TTL界面输入:setenv TestMode,回车,输入saveenv回车后重启,接回lan,重新进入ssh,再来 ...

好,抽空再试试,非常感谢。

zcyandrew 发表于 2023-10-18 06:59

ArmStronger 发表于 2023-10-17 14:17
好,抽空再试试,非常感谢。

我也遇到过你说的问题,最后发现是chrome自动https访问的192.168.1.1,要手动设置下用http访问
页: 1 2 3 4 5 6 7 8 9 [10] 11 12 13
查看完整版本: 顶级规格的万兆无线路由器CR1000A - Openwrt固件已出