华强北电脑城 龙岗电子世界 龙华电脑城  凯尔电脑

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3096|回复: 0

openwrt编译DIY

[复制链接]
发表于 2016-3-28 00:44:45 | 显示全部楼层 |阅读模式
   这一期和大家来分享一下,如何打造属于自己的openwrt系统固件,其实编译真的很简单,只需要按照我的方法来操作,保证你也可以成功编译。  ]8 p: z5 p& u; X
! o$ R4 H9 l/ r, J. z- q" O

& t# x2 v, N! Y7 t开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:; @$ _/ O- r! I/ D, j/ e8 Z

( D2 ^. x3 G- X$ q第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。
5 k! P& m; |+ Z5 g9 L8 ~$ x
1 O, f2 q& v$ b2 q4 B第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。
; m4 C# [4 C" K8 \/ k  @$ h4 e+ ?/ a* B, K& E) @2 A
      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。
: v2 d) r8 H% O: @% y' B
3 g6 W1 M9 o  x8 j
: L; J8 E2 o+ i( [+ l# ?2 h, {0 S& }+ O
编译openwrt系统固件,主要分为三大步骤:& s+ u$ S: ^4 U

/ V0 }5 V  F3 n6 t, X# m3 r第一步:安装虚拟机
' B: N; ^4 O4 o4 Z
第二步:安装ubuntu 22.04系统
5 V9 W6 r' q6 P; g3 f8 V0 O( I第三步:编译openwrt8 n2 r, L- F4 o, p8 G  S8 s4 A
视频安装教程

( X/ |% d( I" L# a' U

1 x6 r* z7 Y+ ?# x! M( e3 Y
- \' z3 h0 e5 r  a/ e5 r; l% c
图文安装教程

$ S4 S1 F/ h' [/ ~- w
; O* m  u( z  D& B* T: ^一,准备工具:
$ f# c# K7 q: y& A, @. k1 w
! g/ n3 Y& }% g- U0 w: U3 i1,虚拟机软件VMware* }7 e! C8 B% ]+ x* A
2,ubuntu-22.04.2系统
) M% }6 \) y% |; y: O3,SSH登录工具 finalshell( i9 x" O5 f0 P+ ?" O& m
4,科学上网工具(自备)& u5 X( \9 b) m: ^

/ R1 I/ C) i8 ]0 Y3 L8 f配套工具:点击下载
" _: M: \5 \, t$ g  G* W7 [7 v, H
: B( }) {1 G- s9 s二,环境搭建:: |  n# V& O% g: f8 o
* Y) J: l! d( u/ P1 n
1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。
$ O# t6 @  ]. I! _( @2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!
2 c' O$ K) M3 R( k. H
" \% A8 {1 z# c) P$ l* ]三,编译固件' d' W* V8 ^  ^# S& l8 W
" f! G& n. U2 w
注意:( i5 @- a+ A+ c
1,不要用 root 用户进行编译# P! W; B2 f, y: F: h
2,国内用户编译前最好准备好梯子) O/ p2 p% J& j+ x. \8 X6 h
3,默认登陆IP 192.168.1.1 密码 password* B4 k* `. Z) l, s3 x; d  s* y
—————————————————————————————————————
* T! X$ s+ y4 r" q5 `1,安装编译依赖4 r2 B7 m! m% |) o5 X1 X' X
* y5 Z6 D' ?: L# \
sudo apt update -y  o2 J! i1 c3 `
sudo apt full-upgrade -y
9 q7 Q$ u5 }9 G3 U, gsudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
; |; g4 r6 ?  k! V3 X) hbzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \+ K: C$ p7 K$ u4 m# g8 [& p
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \: N1 d. [0 S1 p1 b& D' H
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \+ y( \- t* |' @) }# k' z% H
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \8 G% d  O1 K4 V% `
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev* X8 v: P6 X; P. N' P# M, B

9 q& Q6 I& {+ f( P  T3 m  q2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!! f. W' l+ n/ x  p  Q: N

# ?% T  y& S# s* W3 Y' Ogit clone https://github.com/openwrt/openwrt                官方版本
3 ~+ d6 N! X- C! Y5 M4 |( \$ I, @9 Agit clone https://github.com/coolsnowwolf/lede              lede版本5 \! T: T4 c4 H+ l/ Q1 X7 n
git clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本
( O$ J) C1 z) F0 |1 c1 Gcd openwrt                        切换到文件目录
% ^9 y; }% A' I7 w* F- _$ c4 J8 |( j" z
如需指定openwrt版本,可以使用以下命令
6 X# ?! j* ?, N3 I3 J! B$ G- h
git tag                                              查看稳定版,回车键拉到最低,按Q结束!4 I5 a( i) _2 n0 z- k  B8 m2 j
git checkout v22.03.3                      指定版本,红色部分位版本号
4 h" w. s0 o  ?* s. H
* Z6 J  ^/ W  m' D$ y& k9 _3,添加插件或主题
' \6 f# ?0 h/ F" O) h" G, z
. j! G- P2 e$ o2 J5 f: j  e& a' l; I打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!
! i6 |. v( h) J( X! h& y7 J1 {# m1 @! K' |/ d* T$ g
src-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加% I1 c1 y' Q8 u) t& r
src-git alist https://github.com/sbwml/luci-app-alist                     Alist插件
* _6 q2 `& B  J/ s% Qsrc-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages2 _/ e$ b) L6 y/ b# G: `" X
src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci, N  G% p0 P2 s7 x6 o3 b
src-git kenzo https://github.com/kenzok8/openwrt-packages
( ?6 V: W/ x9 q- p9 r% {src-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题8 T6 @; {: ~" k7 r/ ?

: \0 V  t0 L; U# J) _4,更新源码1 R9 x$ B: u9 f6 z" Y
- Z" e6 R) x1 `$ w. X6 X" F
./scripts/feeds update -a                更新源码# C0 s( ?5 r5 x: i; O) ]
./scripts/feeds install -a                  拷贝源码  u& f0 e, U2 [6 R2 ~# o
+ @& y" O7 W+ O1 |& e2 {/ p0 |
5,定制openwrt系统4 q* m( v4 o8 D0 R

  Y  P7 E: Q& A& z% omake menuconfig 打开openwrt配置面板; ]; {. b6 q% a* H& T: t
———————————————————————————————————2 `; h- h: X/ a8 S1 z- V5 Y) P
#必须设置项目(CPU架构,镜像文件格式,)9 i3 F+ p6 W- N

, b- a6 a* y/ k7 ?Target System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)
0 [5 x$ t9 n  n; Y% mSubtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   2 a- a1 W- {" j( p1 [( P; y
Target Profile -> Default
7 D, E) x& S" X- K7 D6 \) ~Target Images -> tar.gz
. f  z* r* b: ^/ l6 k' g7 Y/ r4 O: J8 z+ x$ Z: K
CPU架构查询表:点击此处
0 E  }0 k4 o+ _1 j. o' j$ L! X( m! O2 c  b* b6 ]/ c# W
*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):0 _/ ~6 D5 {  D; q

7 I# a) V8 c( J+ B* ILanguages -> Perl
: }- K! I& P9 J% ]& B                            -> perl-http-date
, h7 z. ]- _5 S! ~/ N) r2 W                            -> perlbase-file
5 Z. R- i; K) S* j7 E" u5 A                            -> perlbase-getopt
  _, M$ z( g6 u6 H8 ]                           -> perlbase-time3 i+ W" b3 n$ |( }
                           -> perlbase-unicode6 g$ a+ `* B* E1 Y( g# ]
                           -> perlbase-utf81 q2 O5 m: }6 x/ U" s

! o' R" j. K* B* YUtilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz! L/ V* l  H. ~$ G  m9 k& E
             -> Disc -> blkid、fdisk、lsblk、parted/ }: C+ G8 t% ]" e
             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs
7 F% i5 R. \3 D) T: ?  \             -> Shells -> bash7 M3 d2 _+ O9 N) |1 F9 ^/ ]5 X9 v
            -> gawk、getopt、losetup、tar、uuidgen
' J3 ]$ P& n3 t: I: e7 L4 g- P0 j! o( e# \" g2 j/ u
*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware
. j, ^" _- U4 {2 g  z' S
3 ^& }$ G2 k% \6 S  |& JKernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)( X% ?: {- G1 s  ?' b1 `( x1 K) _0 |
                         -> kmod-brcmutil8 t+ I4 m; ~8 c- m0 T% G8 d
                         -> kmod-cfg802112 m6 F+ i* r7 b( S
                         -> kmod-mac80211* Y" P5 ^  R% j% f8 t3 Y3 C) B
                       -> USB Support -> kmod-usb-net-asix1 p9 A9 M# p/ j' q- Z9 Q$ b
                                                 -> kmod-usb-net-asix-ax88179
. o$ L% N0 m8 Y8 C3 ~                                                 -> kmod-usb2
) W! g  D7 e: ?8 f2 _+ p                                                 -> kmod-usb3
) H1 V$ t+ _* x* j9 `& x红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!. ~0 k5 O- ?5 X5 d* w
* y7 i$ d9 E1 d
Network -> WirelessAPD -> hostapd-common. ]& T) Q# S/ Q/ f
                                        -> wpa-cli* G5 N) L9 N, W
                                        -> wpad-basic
: g# J9 x5 T7 [' ~4 b7 t, Y0 K              -> iw2 n2 X' k' Z! }3 ^7 ]% I
3 B% z9 W$ @& k! d- U8 b  ^- @
*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。* S! E' [3 d3 D  H. H% @% W) M5 r& a

/ x" o: h3 o+ n/ |4 \- |7 ^5 @" {- A( ]
LUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!
# \/ v1 g% {1 i, Q, X: J: }        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!
! v  b/ ]6 T9 D) N/ x        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!" i7 J& A. Y' K5 k! _7 U& _
# n( [' u; |1 [0 H; Z  b7 L
######如果需要重新配置##########. H3 A9 E. e- V" }7 ~  h! |

$ L! v& u4 E; E: z: ~方法:使用命令% k( w' O9 y; h4 H9 T1 S/ E& L
8 D( G) X$ N& s4 i
rm -rf ./tmp && rm -rf .config
! Y6 A5 s7 H' n* `+ Tmake menuconfig. r1 }' f, @3 p: g( N
make V=s -j$(nproc)
+ ^7 F! b/ t3 Q1 S( \% i
1 c6 H2 S) L. A4 U6,下载 dl 库,编译固件 (-j 后面是线程数)
7 e, K- G: a/ a0 s# ]' e5 h! x  q7 n' u- u6 u3 T
make -j8 download V=s                     下载dl库,V=s 显示任务详细情况7 l& D& T  b3 G# ~  w$ n! c
make V=s -j4                                      4代表线程,根据个人实际情况调整
; A4 f; g& |! ?6 P9 ]# L" x) r, H7 c! ]
如果编译失败,可以执行以下命令:' Z9 k* ?* K; ?
4 e/ B! H8 K' i9 W3 m9 E; d
make clean               删除编译目录/bin和/build_dir目录中的文件
/ Q1 d' R9 u0 x  M  l) _make dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。
6 O& U% i# e8 f9 a
: {% ^' y/ U3 j2 A1 y; B& ^. d7,下载编译压缩包
7 d1 c9 E  R% x9 i( p8 k+ X: D$ U. h3 Y: |5 X4 l
编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。1 `0 ]% \0 V" ^/ G% b0 N$ W
! J# J! W+ q( }7 `
开通SSH登录方法:
* U! Z2 K6 v9 [5 x3 ?: o/ e+ N2 G) n5 ?4 W# K: l- y: |
1,必须切换成为root用户( ~% O3 C4 _: l7 `; O/ V
sudo -i
3 ]: p8 V' S2 Y; S" m# U2,先更新软件列表和更新软件7 q  [9 X$ Y& l  U
sudo apt-get update
/ y1 Z2 @3 w# o& A3 ~3,先更新软件列表和更新软件! |0 A  h3 E; L. ^' v1 `8 d
sudo apt-get upgrade
7 s. r, x+ U& j0 ?7 s4,安装ssh/ W" q; z8 u. Y( o
apt-get install ssh
$ r4 D( Z" r4 H5,启动ssh服务
1 C" s# V) i0 ^( [+ }sudo /etc/init.d/ssh start2 A5 F4 X7 d: N; D1 Z  }
6,检查是否有ssh环境% |$ e' j) w( Z: Q
ps -e | grep ssh
% j  |" l0 r# ]) C/ Q
+ X4 |5 t" c1 D; t' ~! Qubuntu开通root登录SSH权限0 _, o5 K8 M3 d; l
+ `+ B- L& G4 j1 `- U/ Z
1, 使用普通用户登录后切换root
: y1 s! m) s9 Bsudo -i! w$ k% W3 h+ H3 G- D  B1 ~
2,创建root管理员密码% k4 I$ I" ~' n$ T
passwd root
: w+ q. l: ?- |% V3,开启root登录
% k4 q( v) f4 E5 L6 isudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
) Z) y' V. m. w& m, c8 O7 v4 D4,开启密码验证- E. B" u( [) p% d' K, y
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config$ |! a" J# `0 @2 d  A2 F# M
5,重启ssh服务! |4 A6 Z9 S0 p2 G
service sshd restart6 f* z- H# k& @7 _1 p0 s/ x
6,检查是否有ssh环境
: Z: s5 F  X2 G) |$ f$ U/ Rps -e | grep ssh
2 M8 {" S& {* J/ D* x' s) h6 w* `" k
  O, L1 u- D; h% ^8 ^" b* u' n* P
2 C2 w# z9 @' v3 W* b, q  f; U$ U
& W9 o; }9 w) e: d/ _1 t5 }& I
0 I" F% w0 q- u& k6 [

5 W" C' Q. G+ _+ c! B& d/ g+ l3 W2 c0 P: n1 J6 v0 t  I
从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)* r9 Q. Z- N4 g6 `8 }3 ?4 v; j

/ m4 a! U  I& p/ M5 u: h0 H- e
回复

使用道具 举报

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

本版积分规则

QQ|华强北 电脑城 龙岗电子世界 龙华电脑城 pc4g.com ( 粤ICP备16039863号 )

GMT+8, 2025-6-19 22:45 , Processed in 0.123568 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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