跳至主要内容

(migrated)为Newifi3编译Padavan

 

据说,Padavan比openwrt稳定...


注:第一次尝试,采用最简单的方法处理

操作系统: Ubuntu 18.04 LTS

一、系统准备

1. 操作系统更新

sudo apt update

sudo apt upgrade

2. 安装依赖包

sudo apt install unzip libtool-bin curl cmake gperf gawk flex bison nano xxd \

    fakeroot kmod cpio git python3-docutils gettext automake autopoint \

    texinfo build-essential help2man pkg-config zlib1g-dev libgmp3-dev \

    libmpc-dev libmpfr-dev libncurses5-dev libltdl-dev wget libc-dev-bin

二、编译过程

1. 准备目录

$ sudo mkdir /opt/rt-n56u

$ sudo chmod 0777 /opt/rt-n56u

2. 拉取源码:

   选择github上的代码

git clone --depth=1 https://github.com/hanwckf/rt-n56u.git /opt/rt-n56u

3. 准备toolchain

cd /opt/rt-n56u/toolchain-mipsel

使用脚本下载预编译的工具链:

sh dl_toolchain.sh

4. (如何有必要)编辑配置文件(模板)/opt/rt-n56u/trunk/configs/templates/目录下

   Newifi3的配置文件名为NEWIFI3.config

5. 进行编译

cd /opt/rt-n56u/trunk

对于WSL环境,需要使用sudo进行编译,或者使用fakeroot-tcp代替fakeroot

sudo ./build_firmware_modify NEWIFI3

   坐等编译完成,时间会比较长,应该跟机器速度强相关。

6. 编译完成,拷出固件

   编译好的固件在:

     /opt/rt-n56u/trunk/images

   生成的固件为NEWIFI3_3.4.3.9-099.trx

   有人提醒刷机后为避免各类怪异现象,请到 系统管理->配置管理 重置路由器设置 (NVRAM)和 路由器内部存储 (/etc/storage)进行双清



Pavadan的第一次编译过程比较顺利,相比而言,Openwrt的编译过程总是状况不断。

好感度+1


后记:

用编译后固件刷了NEWIFI3进入后看到的图面如下:

完全没有扩展功能,功能不全,无法使用。



好吧,那先找个大概能用的、编译好的固件看下再说

恩山论坛上到个帖子,给指到hiboyhiboyss订阅列表问题#61,里面有指到hiboyhiboy的固件发布地址,在这里找到了他的固件下载地址

下载RT-N56UB1-newifi3D2-512M_3.4.3.9-099.trx并刷入NEWIFI3,进入后的界面是这样的:

V2RAY”配置菜单在“扩展功能”-“搭建Web环境”里的第二项,里面界面、配置方式与原来在OP里的完全不同,比较难于入手。

放弃!



老毛子Padavan固件编译笔记发现chongshengB的版本可以选择科学上网插件,看样子有可能可用。

跟着老毛子Padavan固件编译笔记的说明做编译。

注:

在编译过程中报了四次错

1. 报错为没有找到7z

处理:安装7z

$sudo apt install p7zip-full

但是,装完7z后还有报错,如下:

make[2]: Entering directory '/opt/rt-n56u/trunk/libs/boost'

( if [ ! -d boost_1_72_0 ]; then \

        7z x -bsp0 boost_1_72_0.7z ; \

        patch -d boost_1_72_0 -p1 -i ../build.patch; \

fi )

Error:

Incorrect command line

patch: **** Can't change to directory boost_1_72_0 : No such file or directory

Makefile:14: recipe for target 'extract_test' failed

make[2]: *** [extract_test] Error 2

make[2]: Leaving directory '/opt/rt-n56u/trunk/libs/boost'

a. 查找问题原因:

查找原因,直接执行 7z x -bsp0 boost_1_72_0.7z报错如下:

/tmp$ 7z x -bsp0 /opt/rt-n56u/trunk/libs/boost/boost_1_72_0.7z

Error:

Incorrect command line

显示的错误一致。

如果修改一下,执行 7z x boost_1_72_0.7z

/tmp$ 7z x  /opt/rt-n56u/trunk/libs/boost/boost_1_72_0.7z

则能正确执行。

通过Google搜索"7z bsp0 error,可以查到一篇"How to disable the output of 7-Zip?",里面有提到

You can use the -bs command to control where output goes. To stop anything but error output, I would add -bso0 -bsp0.

即参数-bsp0可以停止除错误输出之外的任何操作

下一个回复则说到

This is correct, but introduced in 7Zip version 15.01 or after 9.38beta Source: sourceforge.net/p/sevenzip/discussion/45797/thread/8a45fa74 The actual Synology DSM 6.1.x includes 7zip with the version 9.20 and has no such option.

应该是后来的版本里没有这个选项。

由此可以确定是由于7z版本更新后,不再支持-bsp0选项,而造成的这个错误。

b. 解决问题:

解决方法应该是去掉命令中的-bsp0

搜索这个命令的位置:

/opt/rt-n56u/trunk$ grep -r 'bsp0 ' *

libs/boost/Makefile:            7z x -bsp0 $(SRC_NAME).7z ; \

那就是在文件/opt/rt-n56u/trunk/libs/boost/Makefile里,打开该文件

$ vim /opt/rt-n56u/trunk/libs/boost/Makefile

SRC_NAME = boost_1_72_0

THISDIR = $(shell pwd)

CFLAGS := -O3 -ffunction-sections -fdata-sections

CXXFLAGS := -O3 -ffunction-sections -fdata-sections

LDFLAGS := -Wl,--gc-sections

Boost_libs := date_time,program_options,system

all: extract_test config_test

        ( cd $(SRC_NAME); \

        ./b2 -d 0 -j $(HOST_NCPU) toolset=gcc-cross link=static variant=release runtime-link=shared install ; \

        )

extract_test:

        ( if [ ! -d $(SRC_NAME) ]; then \

                7z x -bsp0 $(SRC_NAME).7z ; \

                patch -d $(SRC_NAME) -p1 -i ../build.patch; \

        fi )

config_test:

        ( if [ -f ./config_done ]; then \

                echo "config done"; \

        else \

        cd $(SRC_NAME); \

        ./bootstrap.sh --with-libraries=$(Boost_libs) --prefix=$(STAGEDIR) ; \

        echo "using gcc : cross : $(CXX) : <compileflags>\"$(CPUFLAGS)\" <cxxflags>\"$(CXXFLAGS)\" <cflags>\"$(CFLAGS)\" <linkflags>\"$(LDFLAGS)\" ;" >> project-config.jam ; \

        touch ../config_done; \

        fi )

clean:

        rm -f config_done

romfs:

        cp -fP $(STAGEDIR)/lib/libboost_*.so* $(ROMFSDIR)/lib

修改第15行                 7z x -bsp0 $(SRC_NAME).7z ; \,去掉-bsp0,改为:

                7z x $(SRC_NAME).7z ; \

已确认完成安装后该问题解决。

2. 没有htop-3.0.2.tar.gz,且在试图下载htop-3.0.2.tar.gz时报错报错内容为:

HTTP request sent, awaiting response... 403 Forbidden

2022-05-29 11:09:25 ERROR 403: Forbidden.

帖子C大源码编译到htop时出错里描述了相同的错误,并说明了解决方案,如下:

htop-3.0.2.tar.gz文件放/opt/rt-n56u/trunk/user/htop下就行了

已确认该解决方案可行。

3. 在编译到trojan报错如下:

CMake Error at CMakeLists.txt:1 (cmake_minimum_required):

  CMake 3.7.2 or higher is required.  You are running version 3.5.1

参考Ubuntu18/16 升级默认apt安装的cmake版本CMakedownload下载cmake。

当前cmake版本为3.22.4

/tmp$ wget https://github.com/Kitware/CMake/releases/download/v3.22.4/cmake-3.22.4-linux-x86_64.tar.gz

注意:上面下载的是linux的可执行版本,而不是源代码包。

解压后,移动到/opt目录下,并做链接(ln)

/tmp$ tar zxvf cmake-3.22.4-linux-x86_64.tar.gz 

# 查看版本号

/tmp$ ./cmake-3.22.4-linux-x86_64/bin/cmake --version

# 新建目录

/tmp$ sudo mkdir /opt/cmake-3.22.4

/tmp$ sudo chmod 0777 /opt/cmake-3.22.4

# 移动

/tmp$ mv cmake-3.22.4-linux-x86_64/* /opt/cmake-3.22.4/ -f

# 建立软链接

$ sudo ln -sf /opt/cmake-3.22.4/bin/* /usr/bin/

# 再次查看版本

$ cmake --version

4. 最后编译完成后报错,说包太大

# Padded Kernel Image Size

1273856 /opt/rt-n56u/trunk/images/zImage.lzma

# Original RootFs Size

110628938       /opt/rt-n56u/trunk/romfs

# Compressed RootFs Size

43246464 /opt/rt-n56u/trunk/images/ramdisk

# Padded Kernel Image + Compressed Rootfs Size

44520320 /opt/rt-n56u/trunk/images/zImage.lzma

# !!! Please make sure that Padded Kernel Image + Compressed Rootfs size

# can't bigger than 32964544 !!!

#===========================================

# Pack final image and write headers

# For No padded, need write kernel size in image header 

# to correct mount partition in mtd drivers address

img file: /opt/rt-n56u/trunk/images/NEWIFI3_3.4.3.9-099.trx

查看images目录,包还是生成了

/opt/rt-n56u/trunk$ ll images/

total 132812

drwxr-xr-x  2 root   root       4096 May 30 05:35 ./

drwxrwxr-x 14 jimway jimway     4096 May 30 04:59 ../

-rw-r--r--  1 root   root   44520384 May 30 05:35 NEWIFI3_3.4.3.9-099.trx

-rw-r--r--  1 root   root   43246464 May 30 05:35 ramdisk

-rwxr-xr-x  1 root   root    3692352 May 30 05:35 zImage*

-rw-r--r--  1 root   root   44520320 May 30 05:35 zImage.lzma

多用了12-13M空间,看下怎么能减下来。



综上所述,修改原老毛子Padavan固件编译笔记中的编译操作如下:

一、系统准备

1. 操作系统更新

sudo apt update

sudo apt upgrade

2. 安装依赖包

$  sudo apt install unzip libtool-bin curl cmake gperf gawk flex bison nano fakeroot cpio git python-docutils gettext automake autopoint texinfo build-essential help2man pkg-config zlib1g-dev libgmp3-dev libmpc-dev libmpfr-dev libncurses5-dev libltdl-dev wget p7zip-full

二、编译过程

1. 准备目录

$ sudo mkdir /opt/rt-n56u

$ sudo chmod 0777 /opt/rt-n56u

2. 拉取源码:

   选择github上的代码

$ git clone --depth=1 https://github.com/chongshengB/rt-n56u.git /opt/rt-n56u

3. 准备toolchain

cd /opt/rt-n56u/toolchain-mipsel

使用脚本下载预编译的工具链:

sh dl_toolchain.sh

4. 将前述htop-3.0.2.tar.gz文件拷贝到/opt/rt-n56u/trunk/user/htop目录

cp htop-3.0.2.tar.gz /opt/rt-n56u/trunk/user/htop

5. 修改libs/boost/Makefile

vim /opt/rt-n56u/trunk/libs/boost/Makefile

  修改第15行7z x -bsp0 $(SRC_NAME).7z ; \,改为:

      7z x $(SRC_NAME).7z ; \

6. 升级cmake版本

下载新版本cmake(可执行版本)

/tmp$ wget https://github.com/Kitware/CMake/releases/download/v3.22.4/cmake-3.22.4-linux-x86_64.tar.gz

解压后,移动到/opt目录下,并做链接(ln)

# 解压

/tmp$ tar zxvf cmake-3.22.4-linux-x86_64.tar.gz 

# 新建目录

/tmp$ sudo mkdir /opt/cmake-3.22.4

/tmp$ sudo chmod 0777 /opt/cmake-3.22.4

# 移动

/tmp$ mv cmake-3.22.4-linux-x86_64/* /opt/cmake-3.22.4/ -f

# 建立软链接

$ sudo ln -sf /opt/cmake-3.22.4/bin/* /usr/bin/

7. 查看并修改自定义插件,配置文件是/opt/rt-n56u/trunk/build_firmware_modify

vim /opt/rt-n56u/trunk/build_firmware_modify

   文件中的插件自定义修改y/ny是编译,n是不编译

注意:至少要保留科学上网相关的插件。

8. (可选)编辑配置文件(模板)/opt/rt-n56u/trunk/configs/templates/目录下

   Newifi3的配置文件名为NEWIFI3.config

vim /opt/rt-n56u/trunk/configs/templates/NEWIFI3.config

9. 进行编译

cd /opt/rt-n56u/trunk

对于WSL环境,需要使用sudo进行编译,或者使用fakeroot-tcp代替fakeroot

sudo ./build_firmware_modify NEWIFI3

   坐等编译完成,时间会比较长,大概与机器速度强相关。

10. 编译完成,拷出固件

   编译好的固件在:

     /opt/rt-n56u/trunk/images

   生成的固件为NEWIFI3_3.4.3.9-099.trx

编译成功,功能较多,尚未测试。(5.30)



(第一次成功编译后_5.30之前)用编译后固件刷了NEWIFI3进入后看到的图面如下:

符合预期!


:

经测试,科学功能不稳定!且功能简单,远不如op上的科学功能强大,而且功能远少于op



:

清理代码树并重新开始编译

cd /opt/rt-n56u/trunk

$ sudo ./clear_tree

sudo ./build_firmware_modify NEWIFI3



又又在网上找了一个版本:

2021-01-10NEWIFI3 基于chongshengB源码编译彩虹版主题padavan,更新手机版页面

下载了其中的完整版(似乎并不是这个)

刷机后如下:

功能是有了,但是科学功能依然不稳定:开机后长时间不能科学,但睡一觉后.....又能科学了!(还有,出现在本来能科学,改下科学的配置并保存后,居然也不能科学了!这很不科学!)(之后还又不能科学了/_ \)


成功不完全,就是完全不成功!

换:CM520+自制全套OP办科学,NWF3+自制全套PDV做交换+wifi。

2020.5.30记录

...当前NWF3+PDV还能凑合用,先用着

1. 自制...完成

2. CM520+自制测试,NWF3(不刷+不做拨号和DHCP)做WIFI(如失败,NWF3恢复后继续凑合)

如成功

3. 再刷NWF3

希望最终CM520、NWF3都能独立使用。



2022.6.1记录:

最后还是成功了的(还未上线测), 看图




参考列表

Padavan固件编译办法

    第一次编译时参考

hanwckfPadavan_Github

    最先支持了7915无线芯片,也就是支持了wifi6的机型比如CR660xJCG Q20/Q10 Pro

chongshengBPadavan_Github

    hanwckf的基础上增加修改出了7615/7915kvr的支持

padavanonlyPadavan库 Github

    具有一些别人没有的插件,使用比较方便

immortalwrtPadavan库 Github

    在一些细节上有优化

YucleePadavan-mini库 Github

    看样子是个精简版本


Padavan各源码融合教程_m0_60027682的博客-程序员秘密整合多个源代码的功能


老毛子固件使用说明

    有初始化说明

评论

此博客中的热门博文

(migrated)联通(数码视讯)Q7电视盒子刷机成功, 但这Q7盒子是真的垃圾!

 一、破解方式       联通(数码视讯)Q7(以下简称Q7)有很多种破解方式:          a. 不拆机破解: 主要通过漏洞是装上可以装App的市场或其他工具          b. TTL破解: 连接TTL线,通过进入底层系统打开adb调试, 再通过其它工具安装App, 如:                        “北京联通盒子-数码视讯Q7-破解"             或者在底层的Linux系统里直接安装App.         c. 使用USB Burn方式刷机: 直接刷成别的系统,如:                   " 【2020年11月】北京联通数码视讯Q7破解教程"                          最后用的是这种方式进行刷机 。          相关的包下载地址:          1) 刷机固件:             链接: https://pan.baidu.com/s/18ukQVyQiScAeQPCReoBr0Q                    提取码:yp6t             里面有个压缩包: 20191218-Q7-4.4.2-root-twrp-...

P3TERX/OpenWrt-Newifi_D2的Actions编译配置文件简单分析

  链接 :  https://github.com/P3TERX/OpenWrt-Newifi_D2 Code 目录结构 : 根目录 : .github/ 目录 : .github /workflows / 目录 : 可能需要修改的文件 : .github /workflows /build-openwrt.yml:    文件及参数设置。 文件中可能修改的部分 : name: Build OpenWrt env:   REPO_URL: https://github.com/coolsnowwolf/lede   #  库地址    #  lean 的 https://github.com/coolsnowwolf/lede.git    # or     #  Lienol 的 https://github.com/Lienol/openwrt )   REPO_BRANCH: master           #  不同分支      #  以 Lienol OpenWrt 源码为例 ,  分支 dev-master  激进; dev-19.07 OpenWrt 官方平稳版; dev-lean-lede    lean 的源码   FEEDS_CONF: feeds.conf.default   CONFIG_FILE: open.config         #  编译配置文件  open.config   DIY_P1_SH: diy-part1.sh   ...

(migrated)联通(数码视讯)Q7盒子再刷Openwrt

说明:     联通(数码视讯)Q7盒子(以下简称Q7)做为一个电视盒子应该是没有什么可取之处, 但还可以做点别的, 比如, 做Openwrt盒子。     恩山论坛 的 flippy大侠 推出了 "55+、55+O S905x3、S922x、贝壳云、我家云、微加云等OP固件" , 是基于 amlogic(晶晨) 的S9xx系列arm SOC的openwrt固件, 现在支持包括基于 amlogic(晶晨)  S922x、S912、S905x、s905x2、S905x3、S905d等多款SOC的盒子。    但是,  flippy大侠 的固件说明中, 并未明确指出对S905L的支持, 而Q7用的SOC是S905L。    查到 维基Amlogic 说明中是这么说的:            Amlogic S905L: 与S905X相似,不同之处在于它支持HDMI 2.0b,但缺少VP9解码,摄像头接口和TS输入。     按这种说法, S905L可能是和S905X差不多, 支持S905X应该就能支持S905L, 那么Q7就应该能用。     推论如此, 然后在网上找到了一个实例,  恩山论坛 的 Len_大侠 在 "联通北京数码Q7,S905L电视盒刷成了openwrt系统路由器" 贴子里, 明确说明他已经成功完成了将Q7刷上了Openwrt, 虽然没有详细说明, 但从帖子里可以看出来大概是怎么做的, 那么, 就跟随 Len_大侠 , 让Q7废物利用吧。     为了简单化(偷懒😁), 选用的是使用 外接存储( U盘或TF卡) 启动 Q7的方式。     Q7自带TF卡槽 , 这倒是为数不多的优点之一。 另:       在 Github 上找了下 flippy大侠 的源码,  感觉应该是这个:  lllrrr/mknop       tuanqing/mknop 这个肯定是分支。 另外,  flippy大侠 还做了 Doc...