找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3408|回复: 0

openwrt编译DIY

[复制链接]
发表于 2016-3-28 00:44:45 | 显示全部楼层 |阅读模式
   这一期和大家来分享一下,如何打造属于自己的openwrt系统固件,其实编译真的很简单,只需要按照我的方法来操作,保证你也可以成功编译。, a3 _' g; f- y2 j" C* j& U9 l) R

& J- L& K. b, }/ a8 s
5 a$ u: X' Z- o0 w: t开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:; h" b, O9 a% |- D) q( ^. v
& U) Y. Q5 }, V* K
第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。
+ t( ]8 @3 q1 C3 N+ L6 h" O6 ?
第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。
0 q8 ~: c2 y1 ]) x0 Z
2 ?- `+ ~5 K4 m0 W2 Z! G" J* ~      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。9 x9 q1 R1 l( O7 x% z

9 Y% {( @1 w  X: }8 m4 V# V8 @! }! D1 I1 }. z; d) T" _
5 Y) w1 O9 p! S& h1 `6 n  K& Y! s
编译openwrt系统固件,主要分为三大步骤:% A0 H' Z5 i( g1 Y7 w# A8 M! \2 [

1 N! t) t. U/ H第一步:安装虚拟机
* M1 Z' K- a9 C# J1 v4 ^/ a2 H
第二步:安装ubuntu 22.04系统5 o8 A* P1 W. w2 {- Y5 c4 C( N+ o
第三步:编译openwrt+ S4 x( K) O8 Z: O
视频安装教程
9 E+ l9 W7 {+ i, E% a4 ~
4 v$ D/ J3 T$ N) ?4 u  e

' d/ r% v+ K* e, u
图文安装教程
4 C& p" O1 |& G! i. j, Y& m( t
" \, e! a) J% d1 t: m! L
一,准备工具:
. x. X9 \) V. N. I  N
/ Z5 @3 Z4 |$ d7 \1,虚拟机软件VMware
- v: \& I* O. `& h" K* K2,ubuntu-22.04.2系统
' |( ^6 O: p" Q1 Z3,SSH登录工具 finalshell" T* l9 X  c$ V8 j
4,科学上网工具(自备)& w, E! Q/ X9 u

8 o" K/ n' V, O% k配套工具:点击下载
+ y: o5 Z' A0 [; J9 E- U; A( d$ O4 ^! D  j( p* C) t! [# D  {
二,环境搭建:
3 x/ _, t" k. F  h  D; N" ]# u/ o- A, w2 i
1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。
7 ]# a: T! u+ m1 Q2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!$ D7 n  j' w' R# }

* o* g$ b' Q3 a三,编译固件
) d; i( ]7 V. G9 f) P: f
% [4 t+ l; b- @/ A注意:; M  U* @1 u) h3 z/ n
1,不要用 root 用户进行编译8 b* X% X7 r1 ]+ \7 h
2,国内用户编译前最好准备好梯子
6 `8 Z9 _2 n9 S/ @: }3 y3,默认登陆IP 192.168.1.1 密码 password
' `1 u& t3 {; m4 G, E& z—————————————————————————————————————* ?5 R, a4 I" S" ]
1,安装编译依赖( Q. B& e5 r" J  Q# f+ ~9 P0 q

. e1 [' _' Z" q( U3 [$ Bsudo apt update -y, V! l/ C9 }3 C& A5 u- u
sudo apt full-upgrade -y
: A' Q+ r+ q0 C2 e* I* r$ b* Ssudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \0 j0 K/ T; i6 ]: o  n8 v
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \0 [) o$ k, |$ S. {( U
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \" x& S5 q& w6 h  n) ~: m5 y
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \4 X/ r* s6 n, E' z) [
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \9 P; Z+ X) j4 \4 h
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev
( W* r8 Q8 x# O. B  z0 h( t2 a3 C$ V$ W
2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!
8 l' d6 o( U4 Q4 ^$ a7 F8 R: ?" k
5 e* U& K6 ]9 o  \+ j7 j# egit clone https://github.com/openwrt/openwrt                官方版本: y- R6 L2 f/ v! q) u+ t+ l% {
git clone https://github.com/coolsnowwolf/lede              lede版本- k3 `3 i9 U- W
git clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本  ~# V: [$ y  c6 z4 H, {4 H8 U
cd openwrt                        切换到文件目录5 G) ^! o* ^1 C" v
$ k" R# Z1 u8 S" L% _
如需指定openwrt版本,可以使用以下命令
/ R6 _) N- S5 x/ z. A' P# E: j+ `
; Y! w6 e0 s% A+ J% n, J: Lgit tag                                              查看稳定版,回车键拉到最低,按Q结束!
6 T! Q( w8 g5 S8 ^( g6 ugit checkout v22.03.3                      指定版本,红色部分位版本号3 R5 k  W3 W8 A3 e1 L6 z* b
8 O: K2 q3 x  O7 k1 Z% x/ t- Z
3,添加插件或主题
9 O1 b' w; |( U5 Z' @6 V4 f! C) }0 N+ k' w1 \
打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!
: }8 Y* S: \0 m  W* r8 e
% m4 ]) P9 f" {: Tsrc-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加- F. O! ]) f- C1 f  q5 X+ v
src-git alist https://github.com/sbwml/luci-app-alist                     Alist插件: n2 D. I# a- Q7 r5 k/ u3 }* j
src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages
" k$ d) n9 Q. S: b6 Qsrc-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci& l1 O4 M4 s: s0 a/ v% H6 m- S
src-git kenzo https://github.com/kenzok8/openwrt-packages& @. K# A: d9 |6 f4 g+ Q
src-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题; X* U% A( v4 ^2 l: J  V. A

( R5 d! ~2 w3 h) z; {: f4,更新源码
5 a3 T! Y) \& z/ L+ O9 o4 l4 k2 N  v6 ?6 o# ]8 P% ?
./scripts/feeds update -a                更新源码
. i$ j4 Z3 |6 |( k./scripts/feeds install -a                  拷贝源码
, e; T# X* M6 l6 O: r& e1 {6 v$ a/ w) `4 j
5,定制openwrt系统9 q" l2 o, o3 X+ P" [" V. H9 i( N, T
3 B; u9 m9 `( D: n. L! \7 q
make menuconfig 打开openwrt配置面板6 i% }, L" P) c/ p
———————————————————————————————————8 a0 S) }- t% s. a
#必须设置项目(CPU架构,镜像文件格式,)
% f" n( Q' p; w: n: ]+ X; ?3 f
% U; b! \  i, Z6 e) k- E- kTarget System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)1 S# e$ U  _/ b1 W" d: f" \
Subtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   
/ A" c5 ^4 z# ?" O5 u; y7 DTarget Profile -> Default0 Z. Q6 X5 i8 Y" F* C8 ~; C
Target Images -> tar.gz
# b: l* I1 b" g5 B7 n
2 Q6 O/ v: n+ B, wCPU架构查询表:点击此处
( r( W( \8 i* v/ i
, g) G2 f( e  ~) ?, u7 y*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):. O) A7 w) N, a2 w5 j" @; X
7 a7 A" ?/ o8 Z' L( T
Languages -> Perl
/ O6 Y& \3 _# f7 W                            -> perl-http-date2 x$ ?& q& @1 }2 f# |4 f
                            -> perlbase-file
. w" H8 B! i( U0 J* Y: W: l                            -> perlbase-getopt% j. Q( Q5 i+ o
                           -> perlbase-time
* r9 U% R3 N$ B! N; t- i                           -> perlbase-unicode. G' c8 T9 U/ ?2 q" }
                           -> perlbase-utf8
& u9 w# S+ i; T+ o8 _4 A' d# T3 O3 _4 X
Utilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz+ f9 S( J- k+ S3 f/ _
             -> Disc -> blkid、fdisk、lsblk、parted8 h& v0 _; N2 b9 D* R0 q
             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs6 r" j) L2 W* z" r. t% @
             -> Shells -> bash8 J# c8 T. |2 i
            -> gawk、getopt、losetup、tar、uuidgen
. A  `2 J( _7 @. |5 N7 P
  U) Y- n+ j1 e* v- s, y*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware& R9 l! b/ M* d

/ \" H' s1 ]& ]' @& [2 v+ e8 }* OKernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)
! M( y( ]* [: V/ Y5 D" W  ~  u                         -> kmod-brcmutil3 T5 m3 w  u' f
                         -> kmod-cfg80211+ U& Y' f8 z3 e" @
                         -> kmod-mac80211
- R7 J8 @8 y' i4 v/ `& u9 _                       -> USB Support -> kmod-usb-net-asix/ }3 S4 J; L; c4 |% t
                                                 -> kmod-usb-net-asix-ax88179
/ b- ^9 z5 I9 L$ {3 V$ e! B; W                                                 -> kmod-usb2; ~+ {. B, h5 t- n. E! K
                                                 -> kmod-usb3
" \; `6 A7 D" H. J红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!* ^4 I/ F0 M. `, C; x5 H+ d
: @- i1 ~, W. ?5 @  L
Network -> WirelessAPD -> hostapd-common2 M7 i5 @. B6 J8 S  Q1 L  K# {
                                        -> wpa-cli  U' s: v3 `. {$ e! m5 [+ ?, r% T
                                        -> wpad-basic
" V+ o8 W% D& [              -> iw* m7 V0 ]0 E/ v9 J5 w2 c$ R
* I" T: C  z" A9 s# ^) B) N$ V
*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。2 d9 z% Y' @" q/ w! x* Y* s

+ E8 R0 d# p: P( x9 \/ j6 W
. J1 I0 C+ E6 o5 v. p2 P& GLUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!* V3 G' ]# X! T: U9 Y& n/ c
        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!
1 B+ |( s* h( S2 k" R        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!; w$ n/ r. b4 H, M

0 G9 L) r; L& s' _5 O* U######如果需要重新配置##########3 y- a) N# B2 j5 L
3 t1 W, r" S; Q  l- R) m
方法:使用命令
- O+ b" }9 ?& z; d  y( p5 I9 w9 d9 C6 |9 ?
rm -rf ./tmp && rm -rf .config: ?0 K0 ^% Z$ u4 B* T
make menuconfig
9 o8 |# N) ?& q0 y* R( Imake V=s -j$(nproc): z0 u5 I7 u4 {" @4 T( u; Q
8 _' @; i7 U6 ]9 x6 d9 A6 h
6,下载 dl 库,编译固件 (-j 后面是线程数)
. r1 U1 ]/ g& O5 k! M& E+ d9 @! s% ~: r' O; Q
make -j8 download V=s                     下载dl库,V=s 显示任务详细情况# \8 ?. Y" y* @
make V=s -j4                                      4代表线程,根据个人实际情况调整
, F2 ?7 J0 A" j3 |( M" K( v
. A* F3 Z- I# q0 z如果编译失败,可以执行以下命令:
% `/ _/ f, j# |5 j# x+ h3 ?
) g; u8 ^- n/ m- Cmake clean               删除编译目录/bin和/build_dir目录中的文件
$ T- T, `. x+ c$ ~* qmake dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。
7 l, U7 A/ J: j! G; K8 F; A# Y, n, i' p/ V, A1 D9 B
7,下载编译压缩包
# F( k0 p6 f' {& Q- Q$ Z+ Q: L, v. v
编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。
$ {4 z8 u+ `. O  z9 ?) h
% Q; A7 c- |, a开通SSH登录方法:/ q% V3 X7 x$ E- p4 I9 p) r
) R' ^$ i" Q0 |% K/ a
1,必须切换成为root用户
3 I& Q/ T& `2 O6 dsudo -i  Z5 h8 }4 a' y$ g
2,先更新软件列表和更新软件2 N. G9 _& x! Z/ {6 q
sudo apt-get update6 }) r# \/ {" B9 s4 X  y
3,先更新软件列表和更新软件# A1 m$ l7 l; X1 u4 {+ D; j8 \
sudo apt-get upgrade
2 W: b. w6 G7 y! e: j' H; r" j4,安装ssh
: v2 l% g; `9 Y/ R. D# Capt-get install ssh
4 y5 O2 Y5 a/ O  ^* M1 }( }5,启动ssh服务9 U7 v  ~$ t  J* o6 l* K3 m! R
sudo /etc/init.d/ssh start
6 c- S% v2 F4 N: V! t. V0 `5 i6,检查是否有ssh环境
' S1 F; w% t0 s: Lps -e | grep ssh8 R0 B/ t+ M& x4 z# {5 Q
4 J9 c5 I+ ]! M" Y+ r: q) Y
ubuntu开通root登录SSH权限
0 Y. p) q' c( v% `( c9 \6 c4 X1 ~' n6 o  s2 M- c  c" @
1, 使用普通用户登录后切换root
6 B2 k( H- J7 |5 Q) A8 h! P  Osudo -i
% A6 r1 t5 A/ ~- |) }' {7 Y. ^2,创建root管理员密码
, f( z. E- ~: _# hpasswd root3 N+ S( W+ E" q9 f' d
3,开启root登录6 O& M+ m5 M/ c4 ~6 W
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
( n7 A, Z4 a% D4 Z7 L5 D9 Y4,开启密码验证
" G# j) l, s+ R( ], a! D7 \1 i' Rsudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config
2 U) E1 r: |  i: L% w5,重启ssh服务
! o$ I- R+ M* N7 wservice sshd restart& a3 r5 g! F6 H! L% t, F
6,检查是否有ssh环境
9 Z& h" z7 N% u* i5 G  eps -e | grep ssh1 h. i* _; a, f

$ w2 @, F) l# @: R; {% p* h$ n! ~$ Y  z( V# n6 e4 e) y- o
, _5 {& J! v! r+ ]* o8 m
3 K; T0 c& E2 a1 o  f; [: E
) b( |: r& k! ]) A

# k5 u4 o. L# s6 @$ u# H1 ?& s% T3 k
从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)1 [* A7 r; o% u
  }( P) Q& S$ b6 W  F/ F4 x0 {  v
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|赛格电脑 华强北 电脑城 南山赛格 龙岗电子世界 龙华电脑城 沙井电脑城 松岗电脑城 pc4g.com ( 粤ICP备16039863号 )

GMT+8, 2026-3-7 08:01 , Processed in 0.090304 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表