编译

环境准备

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


  • 无标签
写评论...