华为hg556a路由的cpu:BCM6358有两个核心,其中0号核心的icache要比1号核心的大,但默认是使用1号核心作为主核心。
此问题是由BootLoader决定的,跟上面搭载的系统没有关系,不管是官方原系统还是Openwrt等第三方嵌入式系统,都不能改变默认使用的主核心。
所以解决此问题必须得改动BootLoader(CFE),可以通过备份CFE并通过16进制文件修改工具改动CFE而后烧入的方法,也可以通过编译过后的程序进行改动。
放出编译好的程序:
链接: https://pan.baidu.com/s/1nuYBXNj 密码: j7dt
此程序仅适合bcrm63xx的CPU架构,且本人在openwrt版本号15.0.5上进行编译,其余环境请自行测试,鉴于程序涉及到BootLoader,请谨慎操作。
如担心程序运行环境,本人释出相应的openwrt系统镜像,此镜像默认安装了图形WEB界面,openvpn,ddns,MWAN,以及QOS等。
链接: https://pan.baidu.com/s/1nuWAf81 密码: zsb4
程序使用说明:
用SCP工具如winscp上传文件至/tmp目录下,切换到/tmp工作目录,执行 opkg install 命令进行安装。
安装完成后,执行tp0set 0切换到0号核心为主核心(大缓存核心),执行tp0set 1切换1号核心为主核心(原生配置)。
从dmesg可以看到相应的改变:
-
Before:
[ 0.000000] Primary instruction cache 16kB, VIPT, 2-way, linesize 16 bytes.
-
After:
[ 0.000000] Primary instruction cache 32kB, VIPT, 2-way, linesize 16 bytes.
有人反馈能得到15~20%的额外性能提升。
值得注意的是此更改是永久更改,不随更换系统而改变,且原生系统不支持0号核心作为主核心,会引起Voip的硬件错误。
故要换回到原系统请执行tp0set 1切换1号核心为主核心(原生配置)。
以下是源代码:
链接: https://pan.baidu.com/s/1eSd9YeA 密码: y6hg
评论前必须登录!
注册