From 0960374779be4574650504c099448b43d5334577 Mon Sep 17 00:00:00 2001 From: iansun2 Date: Sat, 13 Aug 2022 14:00:27 +0800 Subject: [PATCH] README --- README.md | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..6945658 --- /dev/null +++ b/README.md @@ -0,0 +1,112 @@ +# 編譯OpenWrt for ZTE E8820S +> 以版本 22.03-rc5 為例 + +## 環境建置 +> 需要一個非ROOT但有sudo權限的使用者 +> 系統版本建議為Ubuntu 20.04以上 + +- #### 安裝需要的軟體 [[Debian / Ubuntu]](https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem) +```console +sudo apt update +sudo apt install build-essential ccache ecj fastjar file g++ gawk gettext git java-propose-classpath libelf-dev libncurses5-dev libncursesw5-dev libssl-dev python python2.7-dev python3 unzip wget python-distutils-extra python3-setuptools python3-dev rsync subversion swig time xsltproc zlib1g-dev +``` +- #### 下載OpenWrt程式碼 +```console +#為求方便,放在使用者家目錄 +cd ~ +mkdir e8820s +git clone --depth 1 --branch v22.03.0-rc5 https://github.com/openwrt/openwrt.git +``` +- #### 安裝依賴的packages +```console +cd openwrt +./scripts/feeds update -a +./scripts/feeds install -a +``` + +## 編譯設定 + +- #### 加入E8820S的DTS檔案 +```console +cd target/linux/ramips/dts +#從LEDE那邊拿 +wget https://gitce.net/mirrors/lede/raw/branch/master/target/linux/ramips/dts/mt7621_zte_e8820s.dts +``` +- #### 將E8820S加入編譯列表 +``` +#target/linux/ramips/image/mk7621.mk +#將以下行加入檔案尾端 +define Device/zte_e8820s + $(Device/dsa-migration) + $(Device/uimage-lzma-loader) + BLOCKSIZE := 128k + PAGESIZE := 2048 + KERNEL_SIZE := 4096k + UBINIZE_OPTS := -E 5 + IMAGE_SIZE := 32768k + IMAGES += factory.bin + IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata + IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | check-size + DEVICE_VENDOR := ZTE + DEVICE_MODEL := E8820S + DEVICE_PACKAGES := kmod-mt7603 kmod-mt76x2 kmod-usb3 kmod-usb-ledtrig-usbport wpad-openssl +endef +TARGET_DEVICES += zte_e8820s +``` +- #### 新增E8820S LED設定 +``` +#target/linux/ramips/mt7621/base-files/etc/board.d/01_leds +#將以下行新增到檔案尾端的"esac"的前一行 +zte,e8820s) + ucidef_set_led_netdev "wlan2g" "WiFi 2.4GHz" "white:wlan2g" "ra0" + ucidef_set_led_netdev "wlan5g" "WiFi 5GHz" "white:wlan5g" "rai0" + ;; +``` +- #### 使用OpenWRT官方編譯設定 [[Using official build config]](https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem) +```console +wget https://downloads.openwrt.org/releases/22.03.0-rc5/targets/ramips/mt7621/config.buildinfo -O .config +make defconfig +``` +- #### 圖形化設定 +```console +make menuconfig +#以下是必要更改的 +Target System -> MediaTek Ralink MIPS +SubTarget -> MT7621 based boards +Target Profile -> ZTE E8820S +#以下是我常用的設定 +Build the OpenWrt Image Builder -> N +Build the OpeWrt SDK -> N +Package the LLVM-BPF toolchain tarball -> N +Package the OpenWrt-based Toolchain -> N +[Global build settings] + Select all target specific packages by default -> N + Select all kernal module packages by default -> N + Make debug information reproducible -> N + Collect kernel debug information -> N +#剩下就是預安裝的部分,按照喜好選擇即可 +#Kernal Module裡面的東西只能不包進去(選到M),不能不編譯,否則會導致vermagic改變,裝不上官方kmod +``` + +## 編譯 + +- #### 普通編譯 +```console +#線程數 -j 一般是(核心數*2)+1 +#詳細輸出 V=s +make -j 13 V=s +#如果遇到錯誤,可以嘗試只使用單線程編譯 +``` +- #### 清除編譯結果 [[Cleaning up]](https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem) +```console +#普通清除(最常用) +make clean +#其他清除指令請參閱上方連結 +``` +- #### 確認vermagic [[Check the vermagic]](https://hamy.io/post/0015/how-to-compile-openwrt-and-still-use-the-official-repository/) +```console +#僅編譯kernel,通樣可以加線成數及詳細輸出的參數 +make target/linux/{clean,compile} -j 13 +#顯示vermagic +find build_dir/ -name .vermagic -exec cat {} \; +``` \ No newline at end of file