從零開(kāi)始:自己編譯OpenWrt系統(tǒng)!一個(gè)視頻就夠了!100%保證成功!
? ? ? 這一期和大家來(lái)分享一下,如何打造屬于自己的openwrt系統(tǒng)固件,其實(shí)編譯真的很簡(jiǎn)單,只需要按照我的方法來(lái)操作,保證你也可以成功編譯。

? ? ? 開(kāi)始前我們先來(lái)解決一些網(wǎng)友的疑問(wèn)?為什么網(wǎng)上那么多系統(tǒng),我們還要自己編譯呢?其中有二點(diǎn)原因:
第一點(diǎn):從安全上考慮,畢竟我們的網(wǎng)絡(luò)數(shù)據(jù),都是要通過(guò)openwrt系統(tǒng),要是有人動(dòng)手腳,在系統(tǒng)里放了后門,那么我們的隱私就沒(méi)有保障了。
第二點(diǎn):從穩(wěn)定性上考慮,因?yàn)閯e人分享的固件,是用來(lái)適配他自己的設(shè)備,就算你的設(shè)備和他的型號(hào)一樣,不同批次的設(shè)備,硬件都很有可能不一樣,特別是像外貿(mào)電視盒子,這種問(wèn)題很常見(jiàn)。我們使用opengwrt,就是為了實(shí)現(xiàn)一些想要的功能,自己編譯,能很好的使插件和系統(tǒng)更好的兼容,同時(shí)想要什么功能就集成什么插件,不過(guò)度的集成插件,確保系統(tǒng)的穩(wěn)定。
? ? ? 大家來(lái)看看,這是我自己編譯的固件,在x96 max+的電視盒上運(yùn)行,面對(duì)高溫的天氣,到目前已經(jīng)運(yùn)行2個(gè)多月了,從來(lái)沒(méi)斷過(guò)網(wǎng),非常的穩(wěn)定。接下來(lái)手把手教大家怎么編譯openwrt系統(tǒng),時(shí)間有點(diǎn)長(zhǎng),大家耐心看完,你也一定能編譯出屬于自己的系統(tǒng)。
編譯openwrt系統(tǒng)固件,主要分為三大步驟:
第一步:安裝虛擬機(jī)
第二步:安裝ubuntu 22.04系統(tǒng)
第三步:編譯openwrt
圖文安裝教程
一,準(zhǔn)備工具:
1,虛擬機(jī)軟件VMware
2,ubuntu-22.04.2系統(tǒng)
3,SSH登錄工具 finalshell
4,科學(xué)上網(wǎng)工具(自備)
配套工具:點(diǎn)擊下載
二,環(huán)境搭建:
1,安裝好虛擬機(jī),打開(kāi)軟件,點(diǎn)擊創(chuàng)建新的虛擬機(jī),選擇典型下一步,安裝程序光盤映像,點(diǎn)擊下一步,這過(guò)程比較簡(jiǎn)單就不多做介紹,注意網(wǎng)卡需要設(shè)置成橋接模式。
2,安裝ubuntu系sudo apt update -y統(tǒng),點(diǎn)擊新建虛擬機(jī),選擇默認(rèn)進(jìn)行安裝!
三,編譯固件
注意:
1,不要用 root 用戶進(jìn)行編譯
2,國(guó)內(nèi)用戶編譯前最好準(zhǔn)備好梯子
3,默認(rèn)登陸IP 192.168.1.1 密碼 password
—————————————————————————————————————
1,安裝編譯依賴
sudo apt update -y
sudo apt full-upgrade -y
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev
2,下載源代碼
打開(kāi)科學(xué)上網(wǎng)工具,最好全局!以下源碼三選一下載,也可以使用其他團(tuán)隊(duì)的源碼!
git clone https://github.com/openwrt/openwrt? ? ? ? ? ? ? ??官方版本
git clone https://github.com/coolsnowwolf/lede? ? ? ? ? ? ??lede版本
git clone -b 22.03 --single-branch https://github.com/Lienol/openwrt? ? ??lienol版本
cd openwrt? ? ? ? ? ? ? ? ? ? ? ??切換到文件目錄
如需指定openwrt版本,可以使用以下命令
git tag? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 查看穩(wěn)定版,回車鍵拉到最低,按Q結(jié)束!
git checkout?v22.03.3? ? ? ? ? ? ? ? ? ? ? 指定版本,紅色部分位版本號(hào)
3,添加插件或主題
打開(kāi)openwrt文件夾,找到feeds.conf.default文件打開(kāi),添加到最下面!
src-git amlogic https://github.com/ophub/luci-app-amlogic? ? ? ??電視盒子必須添加
src-git alist https://github.com/sbwml/luci-app-alist? ? ? ? ? ? ? ? ? ? ?Alist插件
src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages
src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci
src-git kenzo https://github.com/kenzok8/openwrt-packages
src-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main? ? ??主題
4,更新源碼
./scripts/feeds update -a? ? ? ? ? ? ? ??更新源碼
./scripts/feeds install -a? ? ? ? ? ? ? ? ??拷貝源碼
5,定制openwrt系統(tǒng)
make menuconfig 打開(kāi)openwrt配置面板
———————————————————————————————————
#必須設(shè)置項(xiàng)目(CPU架構(gòu),鏡像文件格式,)
Target System -> QEMU ARM Virtual Machine? ? ?(注意:這是電視盒子 x96 max+)
Subtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)? ?
Target Profile -> Default
Target Images -> tar.gz
CPU架構(gòu)查詢表:點(diǎn)擊此處
*** 必選軟件包(基礎(chǔ)依賴包,僅保證打出的包可以寫入EMMC,可以在EMMC上在線升級(jí),不包含具體的應(yīng)用):
Languages -> Perl
? ? ? ? ? ? ? ? ? ? ? ? ? ? -> perl-http-date
? ? ? ? ? ? ? ? ? ? ? ? ? ? -> perlbase-file
? ? ? ? ? ? ? ? ? ? ? ? ? ? -> perlbase-getopt
? ? ? ? ? ? ? ? ? ? ? ? ? ?-> perlbase-time
? ? ? ? ? ? ? ? ? ? ? ? ? ?-> perlbase-unicode
? ? ? ? ? ? ? ? ? ? ? ? ? ?-> perlbase-utf8
Utilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz
? ? ? ? ? ? ?-> Disc -> blkid、fdisk、lsblk、parted
? ? ? ? ? ? ?-> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs
? ? ? ? ? ? ?-> Shells -> bash
? ? ? ? ? ? -> gawk、getopt、losetup、tar、uuidgen
*** Wifi基礎(chǔ)包,打出的包可支持博通SDIO無(wú)線模塊,Firmware不用選,因?yàn)榇虬创a中已經(jīng)包含了來(lái)自Armbian的firmware,會(huì)自動(dòng)覆蓋openwrt rootfs中已有的firmware
Kernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)
? ? ? ? ? ? ? ? ? ? ? ? ?-> kmod-brcmutil
? ? ? ? ? ? ? ? ? ? ? ? ?-> kmod-cfg80211
? ? ? ? ? ? ? ? ? ? ? ? ?-> kmod-mac80211
? ? ? ? ? ? ? ? ? ? ? ?-> USB Support -> kmod-usb-net-asix
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-> kmod-usb-net-asix-ax88179
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-> kmod-usb2
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-> kmod-usb3
紅色為選填,如果你需要!USB3.0轉(zhuǎn)千兆網(wǎng)卡(型號(hào):亞信asix-ax88179)則必選!
Network -> WirelessAPD -> hostapd-common
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -> wpa-cli
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -> wpad-basic
? ? ? ? ? ? ? -> iw
*** 插件和主題,語(yǔ)言設(shè)置選項(xiàng),根據(jù)需求設(shè)置,為了減少編譯失敗的概率,除了必要的晶晨插件,其他都不要安裝,主題也是。可以編譯成功后單獨(dú)編譯插件在安裝。
LUCI -> 2.Modules -> Translations -> Chinese simplified? ? ? ? ? ? ? ? 簡(jiǎn)體中文 自選!
? ? ? ? -> 3.Applications -> luci-app-amlogic? ? ? ? ? ? ? ? ? ? ? 晶晨插件,電視盒子必選!
? ? ? ? -> 4. Themes? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 盡量不要安裝,不然容易后臺(tái)面板進(jìn)不去!
######如果需要重新配置##########
方法:使用命令
rm -rf ./tmp && rm -rf .config
make menuconfig
make V=s -j$(nproc)
6,下載 dl 庫(kù),編譯固件 (-j 后面是線程數(shù))
make -j8 download V=s? ? ? ? ? ? ? ? ? ? ?下載dl庫(kù),V=s 顯示任務(wù)詳細(xì)情況
make V=s -j4? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4代表線程,根據(jù)個(gè)人實(shí)際情況調(diào)整
如果編譯失敗,可以執(zhí)行以下命令:
make clean? ? ? ? ? ? ? ?刪除編譯目錄/bin和/build_dir目錄中的文件
make dirclean? ? ? ? ? 除了刪除編譯目錄之外還刪除編譯工具目錄,刪除/bin和/build_dir目錄的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更換CPU架構(gòu)的情況下才操作。
7,下載編譯壓縮包
編譯完成后輸出路徑:home/用戶名/openwrt/bin/targets,下載到本地電腦,需要通過(guò)SSH遠(yuǎn)程登錄進(jìn)行下載。ubuntu默認(rèn)是沒(méi)開(kāi)通SSH登錄,所以我們需要進(jìn)行開(kāi)通。
開(kāi)通SSH登錄方法:
1,必須切換成為root用戶
sudo -i
2,先更新軟件列表和更新軟件
sudo apt-get update
3,先更新軟件列表和更新軟件
sudo apt-get upgrade
4,安裝ssh
apt-get install ssh
5,啟動(dòng)ssh服務(wù)
sudo /etc/init.d/ssh start
6,檢查是否有ssh環(huán)境
ps -e | grep ssh
ubuntu開(kāi)通root登錄SSH權(quán)限
1, 使用普通用戶登錄后切換root
sudo -i
2,創(chuàng)建root管理員密碼
passwd root
3,開(kāi)啟root登錄
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
4,開(kāi)啟密碼驗(yàn)證
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config
5,重啟ssh服務(wù)
service sshd restart
6,檢查是否有ssh環(huán)境
ps -e | grep ssh