# 大多数时候已经安装了
pacman -S zlib libtool findutils gawk gengetopt grep gettext unzip zip rsync subversion which
# 下面的是编译需要安装的
pacman -S binutils bzip2 gcc diffutils patch quilt flex make cmake automake autoconf automake bison screen asciidoc python perl
下载23.05.5稳定版[最新]
git clone -b v23.05.5 git://git.openwrt.org/openwrt/openwrt.git
或:
wget https://github.com/openwrt/openwrt/archive/refs/tags/v23.05.5.tar.gz
解压缩
tar xzvf v23.05.5.tar.gz
cd openwrt-23.05.5
这里使用feeds增加部分功能
增加xray的洁面
nano -w feeds.conf.default
...
src-git-full luci_app_xray https://github.com/yichya/luci-app-xray
更新索引
./scripts/feeds update -a
./scripts/feeds install -a
修改默认语言
nano -w feeds/luci/modules/luci-base/root/etc/config/luci
config core main option lang zh_cn option mediaurlbase /luci-static/bootstrap option resourcebase /luci-static/resources config extern flash_keep #如果没有,增加下列保留的配置项 option uci "/etc/config/" option dnsmasq "/etc/dnsmasq.conf" option dropbear "/etc/dropbear/" option openvpn "/etc/openvpn/" option ocserv "/etc/ocserv/" option openconnect "/etc/openconnect" option samba "/etc/samba/" option qemu "/etc/qemu" option passwd "/etc/passwd" option opkg "/etc/opkg.conf" option firewall "/etc/firewall.user" option uploads "/lib/uci/upload/"
修改网络接口配置
nano -w package/base-files/files/bin/config_generate
case "$protocol" in
static)
local ipad
case "$1" in
lan) ipad=${ipaddr:-"172.16.1.1"} ;;
*) ipad=${ipaddr:-"172.16.$((addr_offset++)).1"} ;;
esac
netm=${netmask:-"255.255.255.0"}
uci -q batch <<-EOF
set network.$1.proto='static'
set network.$1.ipaddr='$ipad'
set network.$1.netmask='$netm'
EOF
[ -e /proc/sys/net/ipv6 ] && uci set network.$1.ip6assign='60'
;;
修改默认主机名
nano -w package/base-files/files/bin/config_generate
时区和LED设置也在这个文件中
推荐
set system.@system[-1].hostname='ovsea'
set system.@system[-1].timezone='CST-8'
set system.@system[-1].zonename='Asia/Shanghai'
#这句话要加上,不然还是UTC
修改无线配置
nano -w package/kernel/mac80211/files/lib/wifi/mac80211.sh
set wireless.radio${devidx}.disabled=1改成0,默认开启wifi。
修改默认SSD:
uci -q batch <<-EOF
set wireless.${name}=wifi-device
set wireless.${name}.type=mac80211
${dev_id}
set wireless.${name}.channel=${channel}
set wireless.${name}.band=${mode_band}
set wireless.${name}.htmode=$htmode
set wireless.${name}.disabled=0
set wireless.default_${name}=wifi-iface
set wireless.default_${name}.device=${name}
set wireless.default_${name}.network=lan
set wireless.default_${name}.mode=ap
set wireless.default_${name}.ssid=OpenWrt
set wireless.default_${name}.encryption=none
默认情况下root是没有密码的,需设定密码才能开启ssh。
修改shadow文件,位于package/base-files/files/etc/shadow
root:$1$vIDSOWoT$r1PxjIHpBZ1w5u3xHkZOk/:19691:0:99999:7:::
samba:HWp9sw69nPASU:18188:0:99999:7:::
密码经过加密,将密码修改成admin, samba用户是用户共享磁盘的,密码是admin123
增加用户
修改passwd文件,位于package/base-files/files/etc/passwd
samba:x:6801:6801::/home/samba:/bin/false
密码经过加密,将密码修改成admin。
增加用户
修改shadow文件,位于package/base-files/files/etc/password
samba:x:6801:6801::/home/samba:/bin/false
添加第三方源码ipk
把第三方ipk源码的package包放进source/feeds/packages目录
把第三方ipk源码的luci包放进source/feeds/luci/applications目录
部分默认参数的修改
增加代理ARP
nano -w package/base-files/files/etc/sysctl.d/10-default.conf
# Enables Proxy ARP on all interfaces
net.ipv4.conf.all.proxy_arp = 1
# Enables Proxy ARP on a specific interface (Replace M-!M-0interfacenameM-!M-1
# with your interface, eg.eth0, eth0.100, wlan0, etc.)
#net.ipv4.conf.eth0.proxy_arp = 1
增加一些别名到shell
nano -w package/base-files/files/etc/profile
alias ls='ls --color=auto'
alias ll='ls -ls --color=auto'
alias dir='dir --color=auto'
alias halt='halt -p'
增加diskman的界面
mkdir -p package/download/luci-app-diskman && \
wget https://raw.githubusercontent.com/lisaac/luci-app-diskman/master/applications/luci-app-diskman/Makefile -O package/download/luci-app-diskman/Makefile
mkdir -p package/download/parted && \
wget https://raw.githubusercontent.com/lisaac/luci-app-diskman/master/Parted.Makefile -O package/download/parted/Makefile
增加docker的界面
mkdir -p package/download/luci-lib-docker && \
wget https://github.com/lisaac/luci-lib-docker/blob/master/collections/luci-lib-docker/Makefile -O package/download/luci-lib-docker/Makefile
mkdir -p package/download/luci-app-dockerman && \
wget https://github.com/lisaac/luci-app-dockerman/blob/master/applications/luci-app-dockerman/Makefile -O package/download/luci-app-dockerman/Makefile
最后执行make menuconfig
Global build settings
[*] Compile with full language support
进入配置菜单
Target System (x86)
Subtarget (x86_64)
Target Profile (Generic x86/64)
Target Images —>
(OvseaLink) Title for the menu entry in GRUB
[*] Build LiveCD image (ISO)
[*] Build VMware image files (VMDK)
(512) Root filesystem partition size (in MB)
Image configuration —>
[*] Preinit configuration options —>
(172.16.1.1) IP address for preinit network messages
(255.255.255.0) Netmask for preinit network messages
(172.16.1.255) Broadcast address for preinit network messages
— Version configuration options
((OvseaLink) Release distribution
(1.0.0) Release version number
(Zebra) Release version code
(http://dl.magicwall.org:8/openwrt/18.06.4) Release repository
(http://gating.site) Release Homepage
(ZOTAC) Manufacturer name
(http://www.zotac.com) Manufacturer URL
(ZBOX) Product name
(CI325) Hardware revision
先选择LUCI,会自动选择依赖包
LuCI —> Collections —>
<*> luci
<*> luci-lib-docker
LuCI —> Modules —> Translations
<*> Chinese
LuCI —> Applications —>
<*> luci-app-adblock-fast
<*> luci-app-cshark
<*> luci-app-ddns
<*> luci-app-diskman
<*> luci-app-dockerman
<*> luci-app-frpc
<*> luci-app-frps
<*> luci-app-hd-idle
<*> luci-app-ksmbd
<*> luci-app-ntpc
<*> luci-app-ocserv
<*> luci-app-p910nd
<*> luci-app-qos
<*> luci-app-statistics
<*> luci-app-transmission
<*> luci-app-upnp
<*> luci-app-wol
<*> luci-app-xfrpc
LuCI —> Protocols
<*> luci-proto-openconnect<*> luci-proto-vpnc. 千万不能有,否则依赖libgpg-error,无法编译
<*> luci-proto-wireguard
Base syatem
–> <*> blockd
–> <*> dnsmasq
–> <*> wireless-tools
Administration
–> <*> btop
Firmware —>
<*> intel-microcode
<*> iwlwifi-firmware-iwl7260
<*> iwlwifi-firmware-iwl7265
<*> iwlwifi-firmware-iwl7265d
<*> iwlwifi-firmware-iwl8260c
<*> iwlwifi-firmware-iwl8265
<*> iwlwifi-firmware-iwl9000
<*> iwlwifi-firmware-iwl9260
Kernel modules
–>Block Devices
<*> kmod-nvme
–>Filesystems
-*- kmod-fs-cifs
<*> kmod-fs-ext4
<*> kmod-fs-ntfs
–>Native Language Support
—> kmod-nls-utf8
–>Input modules
–>Network Devices
<*> kmod-e1000e
<*> kmod-igb
<*> kmod-igbvf
<*> kmod-vmxnet3
–>Network Support
<*> kmod-pptp
<*> kmod-veth
–>USB Support —>
<*> kmod-usb-hid
<*> kmod-usb-storage
<*> kmod-usb-storage-extras
<*> kmod-usb2
<*> kmod-usb3
Virtualization —>
<*> kmod-kvm-intel
–>Wireless Drivers 无线网卡驱动
Libraries —>
<*> libintl-full
<*> libpam
Network
–>File Transfer
<*> curl
<*> rsync
<*> wget-ssl
–>SSH
<*> openssh-sftp-client
<*> openssh-sftp-server
–>VPN
<*> ocserv
<*> openconnect
SSL library
(X) OpenSSL
————————————–
<*> 6rd
<*> cifsmount
<*> ethtool-full
<*> ipset
<*> ipset-dns
<*> samba4-admin
<*> samba4-client
–*- samba4-server
<*> tcpdump
Utilities —>
<*> dockerd
Compression->
<*> gzip
<*> unrar
<*> unzip
<*> xz-utils
<*> zstd
Disc ->
<*> blkid
<*> cfdisk
<*> hdparm
Editors —>
<*> nano-full
Encryption —>
<*> gnupg
<*> gnutls-utils
Virtualization —>
<*> qemu-bridge-helper
<*> qemu-firmware-efi
<*> qemu-firmware-seabios
<*> qemu-firmware-seavgabios
<*> qemu-img
<*> qemu-nbd
<*> qemu-x86_64-softmmu
[*] QEMU VNC support
[*] QEMU ZSTD compression support
<*> virtio-console-helper
Extra packages —>
<*> luci-app-xray
最后回到界面选择 EXIT 点保存回到命令提示符界面,
修改一次BUG, 否则会导致:
configure: error: Package requirements (protobuf >= 2.6.0) were not met:
需要把feeds/packages/libs/protobuf-c/Makefile的PKG_BUILD_DEPENDS:=protobuf-c/host改为PKG_BUILD_DEPENDS:=protobuf/host
SSR-PLLUS被隐藏了,编译好后装好机,输入以下命令即可出来
echo 0xDEADBEEF > /etc/config/google_fu_mode
输入nohup make -j8 download V=s & 可以下载dl包
输入nohup make -j1 V=sc &就可以正常编译了(耗时70分钟)
查看详细日志:nohup nohup.out
编译完成后清除之前的编译作业。(使用这个命令前,记得把编译好的固件备份出来,不然会被删除掉,切记)
make clean
恢复默认编译环境
make defconfig
编译单个模块
make package/qos/clean (清除某个模块)
make package/qos/compile (#单独编译某模块 #V=99表示输出详细的debug信息)
make package/qos/install