hanxi / blog

涵曦的博客
https://blog.hanxi.cc
56 stars 5 forks source link

给我的斐讯 K2 编译了个 padavan #15

Open hanxi opened 6 years ago

hanxi commented 6 years ago

之前都是刷的别人编译的路由器固件,除了padavan , 还试过 PandoraBox,Openwrt/LEDE 等其他 K2 能刷的固件。PandoraBox 已停止更新,LEDE用了一个月后 2.4G 网络基本废掉了。其他像高恪,不死鸟固件,刷了试试觉得不好用就立马删了。回想起以前刷的 padavan 除了功能少,但是很稳定,最终还是选择了 padavan。

选择现成的 padavan 包觉得有的精简包确实 curl 和 openssl,选择功能多的包又担心不稳定,我需要 curl 和 openssl 的原因是因为要用 aliyun 的域名解析来实现 ddns。然后我就决定自己用源码编译一个,结果在网上找到编译教程,很简单的就编译出一个包了。

今天尝试了用 dnspod 的 ddns 失败了(为啥选择 dnspod? 因为 api 不需要 openssl),github 上找的 shell 脚本都有问题,大多是需要 bash,而我的固件只有 ash。最后还是用回了我的 aliddns

汉化使用的是 livepu/padavan,第一次源码用的是 padavan/rt-n56u。后面在恩山找了个对 K2 做了优化的,源码是 stevengan/padavan

最后发现编译出来的包没有 curl。但是有 openssl。为了能够编译出 curl,也在网上找了一些资料,自己也查看 Makefile 发现了其中的原理。编译出 openssl 的开关配置在 .config 文件,然后找到 libs/Makefile 文件,在里面看到配置是否编译 openssl 的。那如何配置编译出 curl 呢?

  1. 在 .config 里新增配置
    CONFIG_FIRMWARE_INCLUDE_CURL_EXE=y
  2. 在 libs/Makefile 里新增配置
    dir_$(CONFIG_FIRMWARE_INCLUDE_CURL_EXE)         += libcurl
  3. 修改 libs/libcurl/Makefile 的配置
    
    install:
       $(MAKE) -C $(SRC_NAME) install DESTDIR="$(STAGEDIR)"

romfs: ifeq ($(CONFIG_FIRMWARE_INCLUDE_CURL_EXE),y) $(ROMFSINST) $(SRC_NAME)/src/curl /usr/bin/curl endif



---

发现这个固件的 ssh 端口转发功能没开放,抽空建议一个自己的仓库,再把这段代码合并一下 https://bitbucket.org/remittor/rt-n56u/commits/3481dab7dc8c714e70cbaf659ade7b79ecf0ea13