- 创建者: 虚拟的现实,上次更新时间:10月 13, 2023 需要 4 分钟阅读时间
编译
环境准备
export GOPROXY="https://goproxy.io,direct" export all_proxy=socks5://127.0.0.1:7891 git stash git pull
首次编译
命令行输入 sudo apt-get update ,然后输入
sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget sudo apt-get install ninja-build git clone https://github.com/coolsnowwolf/lede ./scripts/feeds update -a ./scripts/feeds install -a make menuconfig make -j8 download V=s 下载dl库(国内请尽量全局科学上网) make -j$(($(nproc) + 1)) V=s
二次编译
cd lede git stash git stash list ##保存本地变更 git pull export GOPROXY="https://goproxy.io,direct" ##增加源码镜像网站 ./scripts/feeds update -a && ./scripts/feeds install -a make defconfig make -j8 download make dirclean rm -rf build_dir stagin_dir rm -rf ./tmp && rm -rf .config make menuconfig make -j$(($(nproc) + 1)) V=s
内核更换
将openwrt14.07中的内核版本从3.10.49更换成3.10.102
1、更改文件include/kernel-version.mk
2、修改文件target/linux/<路由器架构> 下的Makefile,将KERNEL_PATCHVER:= ××那一行的xx改成自己希望的版本系列即可,但不能具体为3.10.102,应为3.10。不然会报错。
3、修改target/linux/generic/patches-3.10中的文件。
在这个网址中可以找到相关补丁: https://dev.openwrt.org/browser/trunk/target/linux?rev=44800&order=name
4、修改target/linux/ramips/patches-3.10中的文件,ramips即make menuconfig中选中的platform。
5、在target/linux/generic/中添加config-3.10
6、在target/linux/ramips/mt7620a中添加config-3.10。(mt7620a为编译时选择的开发板,若更新为内核3.14,则添加config-3.14)
7、检查target/linux/generic/files中的文件有没有被修改。
8、更改package/kernel中的文件
9、还要修改include/中的mk文件
更换内核版本后,可能需要运行make kernel_menuconfig进行设置。
有可能packet/文件中与新的linux内核不相符。将来程序若出bug了,可能与只更换了linux内核版本,而没有更新packet/中的文件有关。
错误处理
1、编译时出现错误:Parse error at /home/jing/openwrt/openwrt1407/scripts/kconfig.pl line 137.
修改文件target/linux/<路由器架构> 下的Makefile,其中KERNEL_PATCHVER:=3.18,不能是KERNEL_PATCHVER:=3.18.36
2、出现Package kmod-ipt-conntrack is missing dependencies for the following libraries:nf_conntrack.ko 错误时
可以进行make kernel_menuconfig进行配置试试
opneclash 配置
# Clone 项目 mkdir package/luci-app-openclash cd package/luci-app-openclash git init git remote add -f origin https://github.com/vernesong/OpenClash.git git config core.sparsecheckout true echo "luci-app-openclash" >> .git/info/sparse-checkout git pull origin master git branch --set-upstream-to=origin/master master # 编译 po2lmo (如果有po2lmo可跳过) pushd package/luci-app-openclash/luci-app-openclash/tools/po2lmo make && sudo make install popd # 选择要编译的包 LuCI -> Applications -> luci-app-openclash make menuconfig # 开始编译 make package/luci-app-openclash/luci-app-openclash/compile V=99
修改默认地址
vim package/base-files/files/bin/config_generate
添加 DNS 和网关内容
默认文件中不包含,需要手工增加
可道云配置
openwrt 配置界面
php.ini
vim /etc/php.ini
open_basedir = /mnt/sda2/www:/tmp/:/proc/ disable_functions = disable_classes = expose_php = On max_execution_time = 30 max_input_time = 60 memory_limit = 300M
php7-fpm
vim /etc/php7-fpm.d/www.conf
listen = /var/run/php7-fpm.sock listen.mode = 0666 listen.allowed_clients = 127.0.0.1
nginx
vim /etc/nginx/nginx.conf
安装kodexplorer
下载安装包并解压到指定位置。https://kodcloud.com/download/
注意权限配置
/etc/init.d/php7-fpm start /etc/init.d/nginx start
检查确认
IPTV
安装组件
安装必要的组件,其中 omcproxy 用于配置 IPTV 的组播代理(将组播资源代理到内网网卡);udpxy 用于将组播转为单播实现本地网络播放。
配置 omcproxy
没有 UI 配置界面通过 SSH 进路由器 etc/config/omcproxy 改上行端口
config proxy
option scope global
option uplink iptv
list downlink lan
go.sum 错误处理
按错误提示修改对应的 go.sum 文件中的记录
node 源码更新
1、在feeds.conf.default文件中添加如下语句
src-git node https://github.com/nxhack/openwrt-node-packages.git
2、添加完成后,依次执行以下命令
./scripts/feeds update node rm ./package/feeds/packages/node rm ./package/feeds/packages/node-* ./scripts/feeds install -a -p node
git 代理设置
git config --global https.proxy http://127.0.0.1:1080 git config --global https.proxy http://127.0.0.1:1080 git config --global http.proxy 'socks5://127.0.0.1:1080' git config --global --unset http.proxy git config --global --unset https.proxy npm config delete proxy
gnutls_handshake 设置
git clone 报错提示“fatal: unable to access 'https://github.com/ShixiangWang/VSHunter/': gnutls_handshake() failed: The TLS connection was non-properly terminated.”
使用libcurl4-openssl-dev替换gnutls对git进行编译。
sudo apt-get install build-essential fakeroot dpkg-dev mkdir ~/git-openssl cd ~/git-openssl sudo apt-get source git sudo apt-get build-dep git
如果出现找不到源代码的报错,使用命令sudo vim /etc/apt/sources.list打开文件并取消带deb_src那一行的注释,保存后运行sudo apt update,然后再执行上面最后一条命令
sudo apt-get install libcurl4-openssl-dev sudo dpkg-source -x git_2.17.0-1.dsc cd git_2.17.0 #实际版本可能不同
然后编辑文件debian/control,使用命令sudo vim deebian/control,将全部的libcurl4-gnutls-dev改为libcurl4-openssl-dev 。
sudo dpkg-buildpackage -rfakeroot -b # (if it's failing on test, you can remove the line TEST=test from the file debian/rules) sudo dpkg -i ../git_2.17.0-1_amd64.deb
一般情况下到这就修复了这个问题了,但此时我还是不能进行克隆。
git clone https://github.com/ShixiangWang/VSHunter.git
正克隆到 'VSHunter'...
fatal: unable to access 'https://github.com/ShixiangWang/VSHunter.git/': OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to 127.0.0.1:45077
git config --global http.proxy 'socks5://127.0.0.1:45077' git config --global https.proxy 'socks5://127.0.0.1:45077' git config --global http.proxy 'http://127.0.0.1:45077' git config --global https.proxy 'http://127.0.0.1:45077'
注意端口号也设置代理的端口号,不同vpn,不同系统端口号可能不同。
#查看代理 git config --global http.proxy #删除代理 git config --global --unset http.proxy git config --global --unset https.proxy # 取消curl代理 unset http_proxy unset https_proxy # 如果curl也需要设置代理,配置文件~/.curlrc #proxy = server1.cyberciti.biz:3128 proxy-user = "foo:bar" # 如我使用下面的内容就可以和 git的http代理统一起来了 proxy = http://127.0.0.1:45077
防火墙配置
iptables -I FORWARD -m mac --mac-source E8:9F:80:C7:72:DC -m time --timestart 11:00 --timestop 12:30 --kerneltz -j DROP iptables -I FORWARD -d 192.168.10.241 -m time --timestart 00:00:01 --timestop 19:00:00 --kerneltz -j DROP iptables -I FORWARD -d 192.168.10.241 -m time --timestart 19:30:00 --timestop 23:59:59 --kerneltz -j DROP #MiTV3 有线 16:30 - 19:30禁止看电视 --weekdays Mon,Tue,Wed,Thu,Fri,Sat,Sun iptables -I FORWARD -m mac --mac-source 00:0e:c6:c5:f7:ea -m time --timestart 16:30:01 --timestop 19:30:00 --weekdays Mon,Tue,Wed,Thu,Fri --kerneltz -j DROP
- 无标签
添加评论