找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3283|回复: 0

openwrt编译DIY

[复制链接]
发表于 2016-3-28 00:44:45 | 显示全部楼层 |阅读模式
   这一期和大家来分享一下,如何打造属于自己的openwrt系统固件,其实编译真的很简单,只需要按照我的方法来操作,保证你也可以成功编译。
7 V, p: N+ ~9 F/ X" W4 N* W0 [+ w2 w5 z; x) F

) R* }, {: ]9 j5 D+ Z  p开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:+ T9 g. Y) a1 W" O
: V: p- w2 Q/ f6 [$ ]
第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。; h* i4 K0 c' p$ P& Q- M! D7 t  Z

- f4 c. v. \" H% o8 U# G; ?+ L6 I' u第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。
3 J  \( Q$ K5 c
, l7 I% q2 Y8 M  {      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。) W6 l  P( B' \
# g6 G8 `' T& p1 s* `4 c
  L1 d: E4 R( X/ K, x# S% _. _2 d
* {7 B. T+ c7 G7 k( a( F
编译openwrt系统固件,主要分为三大步骤:2 i$ }+ K& g" s' P0 G5 O

7 U+ M5 t* d7 E  ?" p* s$ G1 T0 l" T) y; ?第一步:安装虚拟机

2 G: G8 q  _1 H' ?- ^第二步:安装ubuntu 22.04系统" L0 J1 h! L$ [) Q
第三步:编译openwrt
" o9 W1 I& A$ I+ B- @" C
视频安装教程
0 R- o6 O; f' g& M4 g- D3 |9 c

$ q0 A: G0 f8 u0 i( r4 ^

# S6 f4 f! Y& N0 u- i  c4 K# a
图文安装教程
3 i6 j3 M# {( ~+ M1 t) L

) C/ {4 X1 Z" }+ Q' a一,准备工具:
) _" Q& I9 T, ~  M- {5 \' s
) X* ]$ T. N+ n% d7 h* @1,虚拟机软件VMware0 Q4 o2 f: y+ E: N- |
2,ubuntu-22.04.2系统
. v* B% R) G7 W3,SSH登录工具 finalshell
  f" i" X$ L  n1 z- l' }4 \3 \4,科学上网工具(自备)7 ]2 N! D9 A/ G1 h) }$ A0 B$ y/ O
2 g( F& A: m$ l+ u
配套工具:点击下载
" F" z5 G' U* S/ z, V, X: w( a* i3 J/ P
' Y3 R. J. V+ p# l6 X* c# A* C二,环境搭建:8 W$ H. {8 L; v, k0 Y  I; K0 l5 L

& c6 g! {6 }, m5 D1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。/ e2 @: ]3 E5 W( s- @  L
2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!- c. T! R  r8 p  R; g# T
2 x7 i0 Q$ R5 |4 }2 v7 j- p
三,编译固件
7 r3 q/ F* D( Q5 V1 W; @7 r* H. C4 R3 f! B$ l
注意:  S+ _4 Y. q; m: \% [! v
1,不要用 root 用户进行编译
3 L, d# e1 g: W, ^$ y2,国内用户编译前最好准备好梯子
3 Z3 U  \9 J2 P) E6 `- A8 K3,默认登陆IP 192.168.1.1 密码 password  s" n& m3 ]* W0 k" c
—————————————————————————————————————
2 _9 u! Z* f6 F! o5 Y& Q1,安装编译依赖# j  A- [5 r) j" g. V- _, Q( l; l

5 [. s- w# n1 Ksudo apt update -y2 c( }: \: f* v6 g# R' h1 e
sudo apt full-upgrade -y
: Q# f4 b' U* x0 k$ d" Gsudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
, L2 ?4 c, \( F. c" x9 D8 jbzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \% o% z7 C+ M: ^$ @' J: i$ T
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
: [9 Z- b/ J2 G: q& q( ulibmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \) Y- n; h; {+ l/ ^1 a; T6 h. s
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \/ P- m6 K$ e* W7 }% @0 S& d
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev
. F' \& x6 y  F1 e$ l& k; u
3 I+ [$ m; C/ d" Q" t2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!* B; B% l( @. f7 g/ @7 ]; O3 `

! N% R* b4 H6 _7 Z4 E7 ~git clone https://github.com/openwrt/openwrt                官方版本
* F% F$ T3 X* P7 h, w1 U& f  ]git clone https://github.com/coolsnowwolf/lede              lede版本
1 e% L8 j7 f+ L/ `7 J# ^/ Hgit clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本
4 A$ t- Y$ J6 ~- n" B& `cd openwrt                        切换到文件目录, p/ K# ?' R% q, _  V: P
  B# E' }. x# q- _) c) a3 a
如需指定openwrt版本,可以使用以下命令6 X, p8 v- `4 u

' {8 T& \7 X/ J; S1 u* {) ]# a) F7 igit tag                                              查看稳定版,回车键拉到最低,按Q结束!( Q2 ^7 M6 ^! x1 U# [: o) z
git checkout v22.03.3                      指定版本,红色部分位版本号1 z, |) K1 f: P
! A! E6 M  j. p5 C& Q
3,添加插件或主题. C7 M! `+ S$ U
( s9 o5 e, L; q5 {/ P1 ~
打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!5 p! A2 [$ Z# B

- p: d! k( A; p- {) F4 vsrc-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加
0 g1 H( ^) F% i; L: [src-git alist https://github.com/sbwml/luci-app-alist                     Alist插件/ h" i$ B$ d( r9 E4 b. J
src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages4 w! C. D$ `+ `. ]3 n& `# p9 a5 _
src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci" g7 W/ T9 p6 a9 G5 r
src-git kenzo https://github.com/kenzok8/openwrt-packages
" r3 I. J( i8 ?1 G0 Tsrc-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题' q8 v+ k2 r) Y
& j+ B; x" u4 y9 J/ l6 y# v
4,更新源码
2 j" Q6 U5 f1 Y. ?4 Y# V# i/ J
$ F6 z% |. E8 v5 @% C1 n./scripts/feeds update -a                更新源码" h) ]; `' {* }" T5 ~4 O
./scripts/feeds install -a                  拷贝源码
# T8 Q0 }  ~& ^5 u
: f6 [9 o: c3 T* a  Z5 h9 x" N5,定制openwrt系统
: a! a- ]) O/ D" K
; [- S/ }8 u3 O- Y. K8 f4 e0 d) gmake menuconfig 打开openwrt配置面板; n' c5 X9 h8 F8 ?; x
———————————————————————————————————( s. n8 G; |, u0 E' q4 [0 E- t
#必须设置项目(CPU架构,镜像文件格式,)
$ K6 \# e2 M+ r
1 O' Z0 U/ n! k2 LTarget System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)
( ~: ~# F5 ]8 o2 R: ]; PSubtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   
" V9 z& h# ^! A7 a% ]3 p' g$ I- iTarget Profile -> Default  v* q% S& x1 x* J9 L
Target Images -> tar.gz
/ R6 ?9 J, u! L5 e2 V9 P
' @! _2 X4 p1 ICPU架构查询表:点击此处% J: _- O- g) s
9 X7 [+ P2 I' F$ L" y
*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):; E; ]- L0 D1 ^4 Q8 W9 M

8 |: D' _5 A' Y" ^) u7 X# N$ oLanguages -> Perl  K* {2 {$ A" [5 l6 m
                            -> perl-http-date
9 |( m( |6 ?2 Q1 N& m& N7 S                            -> perlbase-file
3 z  T# K2 N! t                            -> perlbase-getopt" l, n7 \+ b2 t% [0 m1 {
                           -> perlbase-time0 _) v7 K  ~8 f& N+ i$ z( T
                           -> perlbase-unicode. O( `& ], j/ R% x7 N
                           -> perlbase-utf80 r/ U/ A  g- U6 j* |. a
& U3 l& C2 V% q# R6 H  Q
Utilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz5 P% i1 u) w2 C# Q3 q& c2 A) v
             -> Disc -> blkid、fdisk、lsblk、parted
0 s6 S  i8 U' ]& U- D3 G+ c             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs
- }0 m# e. _. v             -> Shells -> bash6 u; V& C! c& i2 Y3 \
            -> gawk、getopt、losetup、tar、uuidgen% y+ Y3 P! m% o

; W9 [5 ]! g; ^3 k9 y5 M. n9 M*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware$ J% F% U; {7 q- D( n) g  M

# H+ ]; A/ F& ^3 a( x; nKernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)( o# z1 o4 N% j' ]3 q; Q
                         -> kmod-brcmutil# s0 B2 q" R: p: r5 }" _8 z
                         -> kmod-cfg80211( W: o/ S% e/ ]# @  x6 j
                         -> kmod-mac80211: m: X- W, x: B* w5 g
                       -> USB Support -> kmod-usb-net-asix
$ L4 G8 O( O7 i) L' Q                                                 -> kmod-usb-net-asix-ax88179* L, K5 C  H- ^1 G
                                                 -> kmod-usb2
- @2 y* D4 i3 H+ s/ f" V                                                 -> kmod-usb3! s# q" x: _. [8 t
红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!* l( p6 {( x( |# Z  @
, H2 M$ B0 X: {  N* h; V! F0 S1 T
Network -> WirelessAPD -> hostapd-common: k2 Q1 f' P6 s
                                        -> wpa-cli) B0 R4 O3 V( m0 B
                                        -> wpad-basic7 f& ^, u8 F3 T3 h7 D: Y9 r
              -> iw
+ J& B' U4 k; W, l, V3 G4 f9 J$ y/ o1 U0 P! `& O! ?
*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。& @) F9 i6 D. d! o: b# f1 K

  y: @  b$ V4 s2 ?' K2 c
6 y6 g' W0 _/ P3 f- S0 }LUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!) D$ y2 m+ j7 n" N/ Y( g+ ?
        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!: s  I' i% b2 R: o0 Z# w
        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!
+ ?# N0 F, ?# k9 P, O+ K/ W- I& r/ G+ ~: u" r6 t
######如果需要重新配置##########0 Q. |' s4 X" ]2 K' ]
. ]& y( [) j" @$ s( {/ j5 d
方法:使用命令% ~* V; y: X  H1 r2 Q' b
8 q. p' ~$ \# N8 \" p( F
rm -rf ./tmp && rm -rf .config
6 c9 O) X8 ?. \0 Ymake menuconfig
: ^, e# O3 h2 f  }make V=s -j$(nproc). e6 E: ^/ \2 f
) D& U8 k: `! C3 K
6,下载 dl 库,编译固件 (-j 后面是线程数)% y! G* i3 D+ N& X# J
* C4 V5 Y. R5 c
make -j8 download V=s                     下载dl库,V=s 显示任务详细情况6 E7 J# x/ I) i/ A* C& v
make V=s -j4                                      4代表线程,根据个人实际情况调整
5 [  V( d% {; X: S+ d
' s" F, k9 t6 E' |# z  ]# C5 O如果编译失败,可以执行以下命令:
0 ?) B# |8 H0 f* {6 ~- a  S8 |) L" D1 }  m2 v
make clean               删除编译目录/bin和/build_dir目录中的文件, s8 d1 S  I3 G2 M
make dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。
9 o5 W# y% Y/ y( r, V7 S) j9 ~+ X, |0 y# z/ p% j
7,下载编译压缩包
9 P7 h! s7 u$ |; t! O) V! W- K: N( m8 L, h
编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。
0 j7 I/ j& Q  i& L/ ^$ ]$ I7 Z
: u+ t+ }$ J$ W8 K开通SSH登录方法:
4 h5 P2 i: l7 x6 `9 H5 c; J; A" n; V9 M
1,必须切换成为root用户
* k; f3 P9 t' H% `sudo -i, T: O. ]% f; [( k( Y
2,先更新软件列表和更新软件
# R; u! Q. s, Bsudo apt-get update
& y% A, R& r3 J0 v4 Q: n) o* V  u3,先更新软件列表和更新软件
& u) W$ y4 i  K/ Nsudo apt-get upgrade  R9 i1 ?4 v. }9 v7 p4 }# D& q
4,安装ssh
- e& Y; r6 K& k: E, q7 s/ J: \! wapt-get install ssh: r: N, ^- L0 a2 U. n) u
5,启动ssh服务( W4 b) F* f2 X& c, E
sudo /etc/init.d/ssh start: Q/ g; Y' V0 S# O& z
6,检查是否有ssh环境6 x+ u1 E8 V' Z5 ~- |7 ?  ~: s9 h
ps -e | grep ssh
+ w! M) @6 ~: E$ j6 l# C+ t
3 p, t& A) A5 |! ^4 Xubuntu开通root登录SSH权限+ h& j$ z  k, _. T& u% s

, c# y) ?$ N" r" x" X) f; |4 W1, 使用普通用户登录后切换root! o' F# Y1 l) f  {+ G+ ~7 o6 H3 s
sudo -i3 p  Z+ H1 n: b; [8 s: z
2,创建root管理员密码
/ I6 C4 x' q8 ~4 C& C. U6 Mpasswd root
7 w' m0 k& H3 c$ \& w' Z; [8 i  @3,开启root登录
. Y. Y+ P: q  D2 i  lsudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
. ~: H/ v% y( i, A0 ~4,开启密码验证
9 t# w* D' u9 h& A7 Ysudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config
- I& j2 V7 D, e4 V  L5,重启ssh服务# O6 m- W6 N8 D0 s; i$ x' E7 I
service sshd restart
- t) R% l' f1 K  a6,检查是否有ssh环境) K5 X5 O) r. W5 ~
ps -e | grep ssh8 ]; o# B9 L2 _7 P
8 U/ e& }3 n/ x; P. z) c0 k
! _5 h" X9 V  b

" T* H4 X3 A  D  Q
0 j; ]( s" j% F) C5 h- H( h2 l& g1 U1 H8 j& R. E

* ~- V" R+ _4 y, q. f1 T: y5 v* y3 f9 ^, _0 z
从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)$ Y" F4 i' x0 [6 c
! \! H- v: {1 K5 O& y: O
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-2 03:32 , Processed in 0.088843 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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