找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3261|回复: 0

openwrt编译DIY

[复制链接]
发表于 2016-3-28 00:44:45 | 显示全部楼层 |阅读模式
   这一期和大家来分享一下,如何打造属于自己的openwrt系统固件,其实编译真的很简单,只需要按照我的方法来操作,保证你也可以成功编译。
0 b  ?. d! X7 w% p
. d3 k: ~) i$ a3 L$ z3 `9 I
* F& ~9 D0 _* C& [) G开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:. \& T) K1 S# U* ~# v; t# W+ S2 \

, o! t" x9 v  u2 s第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。
5 J  M: a4 y9 L3 l8 g
* E8 b" a( V. D5 A0 _第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。
* V/ l* U& l+ ^* i- @+ v% `  o  g8 O* o+ p2 \
      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。
( t4 N0 q8 R3 q) }8 K$ X0 i4 I
9 S- B1 l5 ], c
& q! f# [: ~3 y8 r% Z+ ?# {0 G6 r4 w; r6 [9 N
编译openwrt系统固件,主要分为三大步骤:) L, H! T  x( H

0 H" V; w& t0 D2 E% P1 |, j第一步:安装虚拟机

/ @; n( t. ]* i* S+ z第二步:安装ubuntu 22.04系统& y% b  c6 s+ x+ \3 ?6 R
第三步:编译openwrt
: e& X1 ]1 V2 g
视频安装教程
. Q! D0 U- p1 b0 S3 B

; P+ ^1 ^" b1 B9 w. {7 a
  N- z! z/ m" Z/ q6 Z
图文安装教程
+ ~9 z  |) t  i
. b+ o* K- E8 F; \
一,准备工具:
4 U  j) O# G, X0 D  {5 W; _/ A
4 @& G2 A! K/ n9 u, _5 I: [1,虚拟机软件VMware) o7 t; @+ a( S! X' S- u4 M) Q+ O3 O
2,ubuntu-22.04.2系统
4 b" P4 m$ I% ?' S, C3,SSH登录工具 finalshell3 X- x% L0 C$ q, Z  C# I9 H! F
4,科学上网工具(自备)
0 P( p8 C: [2 y3 V( Y( p# X
4 J4 b! S* q, g" q0 G- n配套工具:点击下载
1 E8 {0 k7 b& o/ r2 a% }9 d  [$ k# U9 b- [: |* b& M
二,环境搭建:. j& d6 l  ]) v$ g% [% o) L" z
1 y# S* W% Z5 E) R; s0 p
1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。# ~( f4 Z1 q8 Y/ B8 V
2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!& N- F4 T- Y1 h

, D  Q/ B* v) {1 O三,编译固件
8 C( s! w6 ~/ O. r; U! C6 z7 E
  `5 e7 n9 N$ o- J  R  u* D  k注意:+ y& F2 T7 y7 m, B% l( b
1,不要用 root 用户进行编译5 Z) \* @/ G( H! W- m( Y
2,国内用户编译前最好准备好梯子& j' A3 ^& l1 F1 F
3,默认登陆IP 192.168.1.1 密码 password& e$ j7 ]; d4 P
—————————————————————————————————————
/ V0 u, {  e; L" ]2 M! G6 [1,安装编译依赖! Q$ a+ ~, O; [$ M' O. T+ [9 F

* ~0 }# f8 ~6 M* ?sudo apt update -y
( i( ?9 Z( L$ ]( Jsudo apt full-upgrade -y
1 s# K" b; _1 O* N0 isudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \9 P/ ?3 M/ C" a; q4 ?, c
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
; G$ e" u8 v4 B, y! zgit gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
  {, \  O5 i% z, e: Y+ ]libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \" v/ S5 i) P7 b1 C* @6 F, p
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \
( T& C0 e) r8 x) @  \libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev
9 R; b5 A) z0 F9 c
( E! y! G+ C5 }: q2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!% I. z5 h8 O4 x" e, s
8 t- g0 w& q6 G: l+ w
git clone https://github.com/openwrt/openwrt                官方版本- m+ R1 i4 z, Y4 Q# F' b" k5 y
git clone https://github.com/coolsnowwolf/lede              lede版本
0 X* f: Y' w1 T5 A7 f4 Ngit clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本% V: u+ U  ^) Z
cd openwrt                        切换到文件目录
7 \" m' n- T* T7 q  S& D
  N! R. h/ ?8 f  z如需指定openwrt版本,可以使用以下命令
# V' x6 ^+ P3 z4 P* a8 b. g' d% s  L) s8 _9 i$ ?: S" {' b- U' P
git tag                                              查看稳定版,回车键拉到最低,按Q结束!
4 n' I- x% F2 _0 B8 q4 v3 T9 T4 Q5 Igit checkout v22.03.3                      指定版本,红色部分位版本号/ n7 G1 O3 g3 a, s& c4 w
/ J( I& G7 T$ v. z
3,添加插件或主题( T1 S  @( L& J7 Y% P4 |; g

4 N! o* F; i& i% V; v% Z打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!
- Q, v' E  ~6 U5 u8 T! U5 t* z+ {5 B  _0 p
src-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加
& N4 n7 Z6 g$ y7 |  j$ h- Ksrc-git alist https://github.com/sbwml/luci-app-alist                     Alist插件# X* s1 `' {" e/ ]; w2 |
src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages
; D1 H- n! m! X8 \src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci- O& b% h3 U. S$ b. u/ p9 Q8 t( U% h* k
src-git kenzo https://github.com/kenzok8/openwrt-packages
! i7 I7 B9 |4 V! I$ P( v/ P( K, _src-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题& r0 x. m2 H& y' K4 n4 y
9 l5 \% k( z, a8 {9 m
4,更新源码
. T  D/ ~+ K) f! l) Q8 O5 F
' N. F5 w6 ]. A! _./scripts/feeds update -a                更新源码4 _- r$ e  N# C% b7 p
./scripts/feeds install -a                  拷贝源码
  J5 e8 R' g% S3 F0 ]9 d) B7 T7 ~$ s, g8 B& n9 }
5,定制openwrt系统0 R  O+ L) ~, @7 F! L: N9 i' w

. u2 W3 A4 T5 w- \5 K: p! X& ?make menuconfig 打开openwrt配置面板0 J7 v2 R4 C+ I, W$ {0 g6 u1 \) K
———————————————————————————————————; j' L# H; D9 n% N
#必须设置项目(CPU架构,镜像文件格式,)" t. v  [% H0 s9 r
8 y6 \: `( ]! z) i* e
Target System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)
# o" f3 R* P; z. D8 f9 J% q: lSubtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   
/ u( q+ U$ f8 T8 NTarget Profile -> Default
9 h3 u9 d4 ~! E) i* ^+ V: _% hTarget Images -> tar.gz0 w% Y- U' H) n6 j
% C2 l) C4 M# [
CPU架构查询表:点击此处
8 {( y3 H# ?, H( u- f9 y
1 V/ ?! h) ^- C) h- m0 E*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):( _4 U# B4 X2 b0 y1 T: X5 K! r" W
0 f+ ?9 c9 k9 T4 Q* }
Languages -> Perl. G; n5 q- H$ S. _! p8 J
                            -> perl-http-date$ K* K; p& i+ f) d# ?. N. v: P8 m- o
                            -> perlbase-file
7 P6 e7 _( K" }/ u, e( G; j) q% a+ o                            -> perlbase-getopt% m6 a& ?( O( x+ A5 [' e
                           -> perlbase-time2 I; J$ y+ t+ Y4 @
                           -> perlbase-unicode
& V. o  g1 ~0 q$ N8 Y/ S                           -> perlbase-utf82 }" G) X1 D2 N

0 }8 k* T4 A/ ~Utilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz
# o5 H1 P& G+ v1 [- t             -> Disc -> blkid、fdisk、lsblk、parted, p: e) ?6 h  q( k; g
             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs* Q; [0 a( m: U6 t8 @, U
             -> Shells -> bash4 a0 Q+ {5 S- W5 c7 ?6 u- ]9 O
            -> gawk、getopt、losetup、tar、uuidgen
! \2 ^0 S4 r+ z) c( Q/ V  I* U, P7 O0 u. A! L2 S
*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware2 C- A( A0 y3 \

, k( h: M" Q% x  \  R7 xKernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO), e1 Z( ^3 |$ b
                         -> kmod-brcmutil
. J0 y3 m, X) s8 ]2 g/ S                         -> kmod-cfg80211& h2 J- c: `* o% c
                         -> kmod-mac80211/ |* m) Q  }3 O  ~3 H" t/ ?
                       -> USB Support -> kmod-usb-net-asix8 j* P+ Q/ C5 O
                                                 -> kmod-usb-net-asix-ax88179
" s7 T2 _4 [0 m, z                                                 -> kmod-usb2( j0 D7 t3 X  M% X
                                                 -> kmod-usb3' Z" b3 D) L% h( z( d! ]3 Y
红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!7 D1 Z, ~9 X2 b

( }# P; m: p" ~Network -> WirelessAPD -> hostapd-common; s/ Z' }2 L' [' z3 @& ]6 }+ w
                                        -> wpa-cli  d; M6 U) W' X3 ]
                                        -> wpad-basic
- r2 c" K7 x2 i. f              -> iw
, k9 t) S7 q. P  k& U+ u  T% x: }. L# K
*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。' H, ]7 I" j: m, |! Q' d

4 Y' @( u4 y3 O/ N9 w  d; I6 F1 v
# o+ z4 y7 ^1 q6 t6 v" H) a9 {LUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!* d1 h" ]+ w, Y2 s! r5 q: c+ E- W5 ?
        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!$ v2 l0 g) S6 ^) M1 f; W2 R
        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!
" D: T9 g; t$ h) g* D0 N9 e  k) ~7 Z7 N  F: K
######如果需要重新配置##########
! Y. ^& h' }; D# L# ?6 H, Q2 s1 B- R. N" T8 U. L
方法:使用命令
" E+ u1 S: l0 ~/ `. S2 Q; h
+ U* K6 `$ \5 X; d: ^; Frm -rf ./tmp && rm -rf .config8 V7 S& v6 k& k/ a% u+ t9 b
make menuconfig
( T! W- X1 q$ q. D& zmake V=s -j$(nproc)8 U! j! ], Z6 A! U+ @, a  v7 R

6 Z+ A( X4 u/ E" k# A6,下载 dl 库,编译固件 (-j 后面是线程数)
2 j) K1 U9 J: S  f3 Y+ r( \
. R: |% Q4 Q* ~# s( a8 H" }make -j8 download V=s                     下载dl库,V=s 显示任务详细情况0 i3 ~- h4 q# L
make V=s -j4                                      4代表线程,根据个人实际情况调整
/ C7 |/ ], K9 Z( L7 j; V/ A6 N# q5 g$ t" a* a+ M
如果编译失败,可以执行以下命令:2 e8 K5 r& S- U9 x/ o* ?4 e2 i2 m

5 z  p; A8 h9 H2 U7 [2 e/ t7 Z  Rmake clean               删除编译目录/bin和/build_dir目录中的文件
) }. s. T8 G3 y* dmake dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。
7 F; H' |* l) c+ r! b) c4 z5 u% t
  M5 r2 Z8 V  A( T+ l9 _7,下载编译压缩包
" z9 ?# P7 a4 l! ?
% d2 S% K% J' q- {6 ^编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。
4 g" k: d+ L# v# M. R* u* C9 p9 Q' ]" ~) A: ?
开通SSH登录方法:; S1 y! K) v* |+ T! b4 l
3 F$ p! q. j* ^% w
1,必须切换成为root用户- \4 m. y. u# W; h6 N/ j
sudo -i. B1 ^& E6 l6 r
2,先更新软件列表和更新软件
" m" ^" C5 z0 E8 z2 _7 I4 `0 R6 [sudo apt-get update
6 K/ [. l4 H' _" @" R! p3,先更新软件列表和更新软件
# l# u$ B' K2 ^( msudo apt-get upgrade- q$ D. q( V. B
4,安装ssh' I: ]# k0 _4 P9 |( g3 M
apt-get install ssh8 C4 \# S) O; L9 z5 C2 m+ R
5,启动ssh服务
: F% q4 ]/ X- B' P5 E& N+ ysudo /etc/init.d/ssh start
6 g  x' Y& c9 z) z' f' t& s6,检查是否有ssh环境+ B' z, j, K$ {; g) H
ps -e | grep ssh& P4 r8 d9 S- a* m, E, ^3 `

2 G- m8 s& Y3 Z1 }, E' w5 O1 Subuntu开通root登录SSH权限4 Y' ?- G) e" N' n+ O/ L& c

" x+ Z9 Q9 X; p1 {! {& I( y1, 使用普通用户登录后切换root
8 x# u0 F. |% h, W, ?  x) Ysudo -i0 u: B7 b1 q* ]5 ~
2,创建root管理员密码
" v: h  V6 J  B$ u# |8 Ppasswd root
- }% s9 F& n6 S, @  {3,开启root登录
1 q* b+ @. b9 r1 w, |0 }2 g1 z4 Lsudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
3 z) A3 p+ a! s2 v' ^- R( e5 k8 W6 h4,开启密码验证6 {) b4 p3 D. d- F
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config
: K" b6 [8 T+ n8 G9 x5,重启ssh服务
: V/ f7 n1 I! a5 J) Uservice sshd restart
2 ]# q7 j( U6 X% w6,检查是否有ssh环境8 k( C  T' D* r2 E3 A
ps -e | grep ssh
& j1 C4 O# p' Q8 M  @: l
  e  w$ t. Q( i  q1 v# R, `+ N. j) N. z: Y3 H% T! A/ T6 F, c

; U- i9 P5 F, u* Z% z) Z
( ?  _  c7 a# W/ C  s) d5 q  ~0 H0 U* x* r4 b: H% e* p6 e
1 d# |, N% C! ]8 {4 h5 P

" L% ?# B0 q& _从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)
+ _; a4 y8 J; d  y+ B( k1 Q7 z% N4 f

: L& d2 \: c; G
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-14 18:06 , Processed in 0.040250 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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