找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3263|回复: 0

openwrt编译DIY

[复制链接]
发表于 2016-3-28 00:44:45 | 显示全部楼层 |阅读模式
   这一期和大家来分享一下,如何打造属于自己的openwrt系统固件,其实编译真的很简单,只需要按照我的方法来操作,保证你也可以成功编译。
7 u1 h9 d! ~8 S, e* g1 U/ X7 s# o0 d% v0 U

! `/ R" l: U1 ?8 @$ J2 _; u开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:. F" D! |$ _9 l6 Q5 u. {3 A( E
, `  a8 k. @  V/ g6 |. Q# X4 S
第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。1 y8 E6 e/ i! a  J) j: n2 b

5 z. s* H$ b2 h) _第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。0 ?) }$ _/ b) ^% c, t; B
3 ?) H) Z, f: P
      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。
) x9 r% Q9 C9 Q+ D$ K+ J) K6 y/ N* c7 K
+ d9 |3 V/ }2 U3 f0 ~3 ~" J
% L, ]; R' d+ N$ a0 t
编译openwrt系统固件,主要分为三大步骤:1 q& a0 S" }# E2 a- |. ^. t& s

. y- u! ~9 R% r: X( z第一步:安装虚拟机
8 n4 {$ _/ \& w4 K) C! O) z
第二步:安装ubuntu 22.04系统
' F9 U' {: c6 E+ Z第三步:编译openwrt; K6 D( F7 \. q" Z
视频安装教程

  T8 f' G5 ]: \4 c; Y. ?( Z

7 B0 @$ _- u- A! L- X" ?
  G. d8 G  H( o; e% G
图文安装教程

$ Q9 U5 l* q7 {; h* k
( Y4 H9 g! O0 o2 h/ W- R一,准备工具:
; y* f/ j6 G' d/ V8 w% p
8 J6 R0 ~  l( g& ~1,虚拟机软件VMware7 F# K3 T3 Q: G# e6 M9 F
2,ubuntu-22.04.2系统
2 H9 p' _# h% P% n9 P3,SSH登录工具 finalshell! d0 O7 I3 e, o. g7 ?
4,科学上网工具(自备)
0 A9 q9 T; W) X- {0 t  N9 s  \% r( B" z
配套工具:点击下载( a* s2 v2 T4 L& p: c( x
; t4 r6 Z0 X) H, O, B
二,环境搭建:/ @/ t1 d6 ~& E1 r" y- ~2 H
% N6 h- J6 l& W$ z/ G5 U
1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。: F" q, e: [9 P
2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!
. f/ c0 Q- I$ X, h5 ?
2 O, J) G( U0 F1 `% f三,编译固件
, b- D3 `$ a- q( f2 p0 f: Y
+ N  Z$ x" H) S; J注意:% t+ [7 G5 p$ Y+ g2 L' F& m
1,不要用 root 用户进行编译
: {) Z; [7 }$ k7 z4 `! A2,国内用户编译前最好准备好梯子; D  g4 D0 L; z0 u6 M" O
3,默认登陆IP 192.168.1.1 密码 password
$ W2 I- C" v( L* h( `9 n8 f—————————————————————————————————————
) ~# A9 d8 w8 M; {* `1,安装编译依赖; v' o# }1 ]/ m/ }
( B" g- P5 z& b4 R8 t6 s
sudo apt update -y" z6 R1 u7 ~5 ^; I" [" h3 b7 t$ S" m
sudo apt full-upgrade -y) x! I- f+ F" o1 T
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \/ K. @0 m+ J! k2 v$ u
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \" H" p+ c: q5 i0 b, m. L; C
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \5 U1 }7 B1 o( |! @/ O3 X0 a& Z/ B
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \# a" \, ~8 b7 Q9 |) A
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \
- F  R6 F* Z  B  c% W% X# u, Mlibpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev& n: S4 L* ?+ J3 }

5 V9 V- L6 P: n# F! O9 i2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!, {* N: P  b5 r2 C& m& S) }0 g

# J  f8 }7 f( x) N# N+ Mgit clone https://github.com/openwrt/openwrt                官方版本9 |( S: X) Z' U
git clone https://github.com/coolsnowwolf/lede              lede版本7 i/ x) @; Q$ H4 a* `
git clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本
9 M% |% q( _/ R0 N5 }cd openwrt                        切换到文件目录
$ O6 k0 x9 ]. `/ K9 Q- w
- D& z; b* F' K" @; A4 T  u如需指定openwrt版本,可以使用以下命令
, H' g( N9 p* `* Z
0 K& H4 |6 X2 h- P; j* |git tag                                              查看稳定版,回车键拉到最低,按Q结束!
5 J# }- S4 \+ l; ~git checkout v22.03.3                      指定版本,红色部分位版本号
2 S0 H5 H& Y; Q+ J. D+ W: D) B+ W! W1 D( z' X# @; v' R7 }3 V
3,添加插件或主题
+ l+ H/ q. G; A% s
* O+ O" ^1 a* K9 |! v( c+ c打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!6 G1 y7 |1 `- n* ]
8 d1 {" t- o* S5 j) P3 H; W+ G/ ~
src-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加1 i1 A& E! ^& r
src-git alist https://github.com/sbwml/luci-app-alist                     Alist插件) O, d: j* v" |1 N- f( Q
src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages
, f! a2 u; @: o, r0 M$ o, _src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci
) e. P9 b( p  @2 c6 nsrc-git kenzo https://github.com/kenzok8/openwrt-packages6 L8 U- T2 t# O/ M! Q  X4 q
src-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题: }8 m+ i3 u$ I3 c9 c
1 \4 n/ {: v* O- y" G; B
4,更新源码
" U3 S  Q7 D/ I
* o/ J9 u' ?! M2 o9 @  Y8 N./scripts/feeds update -a                更新源码$ \7 Z" v. a1 r! [
./scripts/feeds install -a                  拷贝源码3 O/ I9 |& q8 d5 x

' M& C, T' j) S/ Y  P8 ?5,定制openwrt系统( e+ b/ E; B+ g% y% v" v$ W, ]

8 ^4 c5 G1 w# l6 Imake menuconfig 打开openwrt配置面板
! R; _$ G2 M6 {* A———————————————————————————————————
0 h& l- ?8 p% s( [6 w* n1 z#必须设置项目(CPU架构,镜像文件格式,)
7 G! q( q7 [% _. I) x8 m0 f
2 x6 h0 N, A0 _9 K  Y0 QTarget System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)- S1 a7 {7 J* y+ x
Subtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   
- O# n8 ?( i  \9 g1 {$ K! WTarget Profile -> Default/ n" D/ `5 F* _; y" s
Target Images -> tar.gz8 Q$ Z4 Q3 O9 K& n1 u, S( c

3 x( |* A: i8 \7 \CPU架构查询表:点击此处
2 ]! q' p5 s8 F/ H* {7 i" [6 f# q/ v' l
*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):
8 n2 u5 e; O2 S. E2 M0 z
4 g% Y7 x6 F" u. U. QLanguages -> Perl, U; L; I, Y) F0 ]2 l- ~$ o
                            -> perl-http-date
# K. ^5 @  A0 e2 U6 {                            -> perlbase-file0 o# i! H* E# M) j) r
                            -> perlbase-getopt+ I3 d' l% p, @, M
                           -> perlbase-time' V* K# Q# ^6 s( v# f8 o6 V
                           -> perlbase-unicode: I- H1 I  Z, w2 x. ?) ~
                           -> perlbase-utf8
$ k7 O8 k% t: V9 _
7 ?5 j' `* V0 JUtilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz
) @! O9 t& C. Y, V; n+ e/ B+ L             -> Disc -> blkid、fdisk、lsblk、parted
" Z9 G/ V9 I5 u             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs' c- i" y" y3 L9 ^
             -> Shells -> bash9 R, S/ T  w8 b
            -> gawk、getopt、losetup、tar、uuidgen4 M4 ~  W$ x* \' [9 P  I
  v  W/ B: I- d' ^7 G
*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware& ~$ J7 `5 [/ [5 L
. X# @: Z9 ]7 ]. {  U2 `6 v
Kernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)
. S0 Y" G$ I1 w5 b1 q                         -> kmod-brcmutil
2 y6 @7 j: W& P5 i  F                         -> kmod-cfg80211
& `" ^& p0 E+ e9 z/ v+ s, B& q                         -> kmod-mac80211
: c7 l( |) w; `3 m  f4 h! H/ _                       -> USB Support -> kmod-usb-net-asix" }5 m; i' j. B0 }2 X: e, K! T
                                                 -> kmod-usb-net-asix-ax88179; _" d8 p# Z$ T6 D
                                                 -> kmod-usb2/ @6 T) ~2 K6 ?" b* K9 K
                                                 -> kmod-usb3
' p+ c  N% g9 y) o红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!( R7 ?+ R  S+ U1 P% o& I+ C

  S. k: m9 |- hNetwork -> WirelessAPD -> hostapd-common
) a7 E  g6 t+ ~& T                                        -> wpa-cli
5 W, ?9 K  L1 Q; r  T                                        -> wpad-basic1 `' |- V  |% M: [% c
              -> iw
, v6 r$ Z& b1 ]! r  ^, F2 O7 M) l" H! r- E
*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。
( c; W$ k& N- w0 K( ?
/ N$ e6 @$ Y4 M1 F9 X, O# ^) Z3 a$ u1 G% C- i, ]/ m
LUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!
7 ^( m7 [; g7 d. J7 s: U        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!
2 {. b: h/ r' S& @; q        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!
9 t/ D- j2 [& s8 v- v: _2 S( w8 d! g- u$ `. ~  Q7 x
######如果需要重新配置##########* u! {' g1 L6 _# H
7 V& ~& I1 E- L1 W* Q& j  T7 n5 Z
方法:使用命令
' N( n' m5 x6 `  M, R, H# y% }1 z! @: D- Q! E; v0 X% B( M
rm -rf ./tmp && rm -rf .config+ X0 B( }; x0 S6 J4 s
make menuconfig
" S8 u' r" Z5 }) Rmake V=s -j$(nproc)
. T: L& l4 O( x: p/ ?2 C) N# V0 U+ v9 Q! s+ m9 Y( V
6,下载 dl 库,编译固件 (-j 后面是线程数)
- v& J/ L2 [) J1 G4 ]8 F+ V: B' c' N* `
make -j8 download V=s                     下载dl库,V=s 显示任务详细情况
! b5 q4 J+ ^+ H- e: Zmake V=s -j4                                      4代表线程,根据个人实际情况调整
& M) y& ~7 q0 L( S* }$ \/ I6 q* V' r
如果编译失败,可以执行以下命令:# s& m: Q  i  [, a. D
# `5 f* I- Q+ @0 A( ~. x5 E
make clean               删除编译目录/bin和/build_dir目录中的文件' O6 j3 P4 y4 n, O4 C; D
make dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。( d. Y; h9 ^" s5 o

9 N7 t: x. l0 W$ H+ F) ]7,下载编译压缩包% a6 J( [) B5 M; T* t. S

" E$ j9 U7 |- T3 j4 z编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。( P0 @8 A1 Y4 n- i  |

& j. N) h' h9 z; \; C7 a5 f开通SSH登录方法:. U7 U5 K! F2 y3 p+ U$ R

% R3 v$ c" R; ~. A& d3 p% s" a: M& W; N1,必须切换成为root用户" N" N! B# W' I2 r+ z. k( O* C% J
sudo -i
0 H3 b( l& U2 e2,先更新软件列表和更新软件
3 G2 R  c* v% \- t. `. [sudo apt-get update
1 d# D8 }& i" @, M: N) j  u3,先更新软件列表和更新软件
# L2 g1 W. E' u- e, H% Qsudo apt-get upgrade
5 A2 ^0 T# N1 ?1 [4 A4,安装ssh$ w, V. L/ O5 ?+ D& [! z2 O8 g8 |
apt-get install ssh
; K$ Q9 U* F. n3 c  |3 q5,启动ssh服务
3 g: `. A, ?+ Zsudo /etc/init.d/ssh start# }+ B1 N5 K0 U+ {6 n
6,检查是否有ssh环境9 x- l# \9 `( `) Q3 \, O
ps -e | grep ssh
3 B/ y6 o$ a/ g* q, c% k$ S1 ^/ \( q! A/ z2 f
ubuntu开通root登录SSH权限
7 a. F" @7 O* j. w8 L/ k. r, a
* [4 b2 y! L4 f* h# |' q1, 使用普通用户登录后切换root$ m* ^( M# M% B9 Z0 S
sudo -i. }1 \5 \2 |1 `
2,创建root管理员密码
) [7 ]* O$ D1 e, D' S4 Ppasswd root
5 L- L& O% s' S2 }3,开启root登录9 f3 L+ F( L& C- u: J
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
5 N: Z- K9 z! f' h4,开启密码验证# l# Q1 C1 ~3 M5 [7 p0 |
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config
( k1 j8 [  A2 O  H2 Z0 ]5,重启ssh服务
( `( ]1 s/ i! B" q  \2 xservice sshd restart5 y' |6 K' N% \) c6 L. \
6,检查是否有ssh环境$ h- J) P( z( V2 I/ V" n
ps -e | grep ssh' x8 {& P8 G+ t7 R2 O7 H8 z+ p# }( X

( u' z) {2 O5 B3 L1 d) U. M9 Q3 V, A

+ `& s( j+ H6 q! i, p: ^2 e# Q
( t7 O1 b9 P5 @. N
. m0 @3 A8 x0 @* K  i5 h2 U+ o1 z' e
3 T" @* `+ K# x0 r
从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)
- i' \- f5 u6 P) l

: K/ B' n, m9 k! V% Y) X6 I4 e5 f
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-14 20:17 , Processed in 0.043185 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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