找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3281|回复: 0

openwrt编译DIY

[复制链接]
发表于 2016-3-28 00:44:45 | 显示全部楼层 |阅读模式
   这一期和大家来分享一下,如何打造属于自己的openwrt系统固件,其实编译真的很简单,只需要按照我的方法来操作,保证你也可以成功编译。- x5 N+ N: q& u
  N! d) W; R% a$ T& _/ y  d
4 \- A/ v1 x9 W7 M/ i0 G  }; S; x
开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:( b# w* m, t- ]4 D
- p2 L4 j5 X7 m
第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。
4 A6 B4 G3 C- z& Z- r2 e# T. B6 R8 q/ P/ u8 J% i. C
第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。
# ]8 Y% h* w' q9 d& Y. d
8 L4 ]0 i6 ]7 z/ I! Z, Y  |      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。/ F0 N* D  P4 v8 N6 Z
% v% N7 F% L( n# F2 t
- w" X; g" ~( z& N% P
' p* U/ L& b) @# |: J
编译openwrt系统固件,主要分为三大步骤:
: ~1 ]; x( o+ P3 F
! R/ U& m; h+ u& e( k5 K$ L第一步:安装虚拟机
, g: Q' x' v9 J9 Y
第二步:安装ubuntu 22.04系统# r& y0 W) G& }
第三步:编译openwrt9 O) Z7 f# `* k$ M" ^# z6 i' O
视频安装教程

/ [# E* ?1 N" g# O
* v+ D1 P2 H0 T0 g) g

; i: s3 t/ g- F! k0 W4 E: u
图文安装教程
+ o4 _3 ?3 A# {, I; P# q
5 h& n! Y$ D. b
一,准备工具:
, J# F# M# W' ~3 x7 k& ^& P0 Y2 O" b& h  U6 c# c& _
1,虚拟机软件VMware& S. B2 M, W7 \1 f
2,ubuntu-22.04.2系统# ~) b0 x2 j/ N7 s4 C6 B
3,SSH登录工具 finalshell0 G7 k7 O7 {  i/ v0 y3 Y% ~
4,科学上网工具(自备)
+ o  i' u  B9 S' m) @' P  p4 ^( {
配套工具:点击下载
- M4 N- ~! x$ Q2 m6 h/ [3 _; l* ?% ]# v# Q6 I6 O" V, b
二,环境搭建:
3 k( J; f$ C6 t9 ~7 e# @: c$ b' ~! [5 p4 E0 ~
1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。
) z# U- x0 g) \3 ~( i" B: m! \2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!5 \8 A; `. f7 `# @8 S) h

% j, B) H( \! p; t0 M7 w三,编译固件
5 j2 I2 J+ ?0 ^5 i8 ?
, L& x- G5 @; ^注意:
. `- ^6 r  ?; x/ g- U, |1,不要用 root 用户进行编译
3 d8 i$ K1 K; h$ o$ [5 R2,国内用户编译前最好准备好梯子
8 n3 f2 ]6 J* }6 i, p9 w3,默认登陆IP 192.168.1.1 密码 password3 a: S, R! t4 o
—————————————————————————————————————
) d+ R' I. D1 K0 i& K7 E1,安装编译依赖% P* _( b0 f; R

5 v3 R3 S) a# d- p  Msudo apt update -y6 P6 G. }: A7 C0 T
sudo apt full-upgrade -y
& r  i% T( v. J5 H7 Bsudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \2 C& X: X2 m2 s( Y' E  l
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \8 d$ f7 }! _4 z
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \- d/ C6 f6 `8 [6 B2 e5 t1 I
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \# r0 x1 I8 q: _: g
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \% G: b; `3 p6 u- v9 C4 `
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev
" o+ T: k6 n7 g6 U( p4 u0 M# ]4 M8 X
2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!0 ~  v7 e5 V8 b: ~! c8 x, o' ~
* L# m, E& f# c5 K* f% |& m$ W
git clone https://github.com/openwrt/openwrt                官方版本  ~: h1 V* {# T  q
git clone https://github.com/coolsnowwolf/lede              lede版本
; t2 `& S& Z6 p! U2 sgit clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本  M$ K4 n$ k5 t8 J0 Y
cd openwrt                        切换到文件目录
" I/ q/ L; o$ m3 m, o/ O
4 b2 a1 ~0 x/ V6 s5 k0 |- f  Q! U如需指定openwrt版本,可以使用以下命令
# P1 K& r- N2 }. P% Y' \& C* H. b% }8 Y" _) f% E
git tag                                              查看稳定版,回车键拉到最低,按Q结束!- C: g7 }) p: U% o3 k
git checkout v22.03.3                      指定版本,红色部分位版本号  ?- Z2 d4 ^0 ^/ L
/ c9 t' k  {/ p8 U. s  G# g! \
3,添加插件或主题
. o5 R3 ~* K1 C6 G  m2 a
  h6 j" V. Y7 `. I打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!
7 [) Y, m; K5 u/ \
: X. o; w2 G, B: l2 ^src-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加
- o2 |% a5 a. r& l. m' j- ]3 X4 Osrc-git alist https://github.com/sbwml/luci-app-alist                     Alist插件
! L6 _. u8 t; p; ?src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages
* k5 A1 b9 p7 q0 Y$ v* V& R7 }  V6 ?src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci$ a, i/ h3 }- U9 B( e- E& n
src-git kenzo https://github.com/kenzok8/openwrt-packages. N8 S! @/ W. G  u
src-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题- i* z2 P2 t7 ]6 g
- D8 H/ M$ C# E
4,更新源码" |) Q; N  s* @

9 f4 M! J) q, X% m. l, z8 ]./scripts/feeds update -a                更新源码
/ R$ H. U! R0 b$ ~9 r# u4 b./scripts/feeds install -a                  拷贝源码
1 E9 q: ?$ S" q2 k7 N
7 c. u1 v* ], Q# T3 v9 `5,定制openwrt系统  }3 @4 a4 g7 m- S! o) }
1 b) h  A+ V7 S% Y
make menuconfig 打开openwrt配置面板1 T5 }1 t, \; b( r
———————————————————————————————————/ s& \) ^& ^  {7 o, r: ?% ?/ q
#必须设置项目(CPU架构,镜像文件格式,)
, [( x( B5 w# N! a4 D5 N
: x) ?- i2 k( }Target System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+), V* F* c9 ~1 r$ R6 B
Subtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   ' q6 K/ H* T  F* ]7 g7 a( F/ ]
Target Profile -> Default& X1 P; c8 s8 ~; }5 b# I
Target Images -> tar.gz
$ _6 R9 \3 @% k3 ~1 q) E
7 \1 J0 G  Q6 A: F+ C+ T. u& YCPU架构查询表:点击此处
* X- l6 r+ V* X% H, D
+ V0 D6 l" J" b8 @) I5 \+ I4 {*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):
! V" ~4 d7 R8 ^% K1 [0 i' o' K5 _3 i, V. c$ T
Languages -> Perl
, I4 T) q! u" ^9 N                            -> perl-http-date
3 p8 B4 B4 W+ S# N                            -> perlbase-file% [" w0 Y/ A% Q: C
                            -> perlbase-getopt5 U3 |/ y* B  P9 r2 W3 d
                           -> perlbase-time) W6 [; C( \$ L6 `! ^3 e2 z& x, I
                           -> perlbase-unicode
; K0 J* j# r+ p* s1 F8 F) `' c4 A                           -> perlbase-utf8
- d2 F2 O0 x. K: Q! Z9 f7 r( i: V7 J0 D; }
Utilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz* B' b, U+ x- y7 M6 h/ k/ \
             -> Disc -> blkid、fdisk、lsblk、parted6 M, }3 K% d; x9 Z( M
             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs
# n3 A3 V7 e7 c/ W8 f             -> Shells -> bash; p- o+ a' k* F/ w7 ?8 m: ?
            -> gawk、getopt、losetup、tar、uuidgen
% r( ^0 |( l, a
4 ~/ l3 {' {* o5 h. v  i1 g: B*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware, B( I4 w( G( `  I

3 Z" H. ?/ `' X' w6 }" FKernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)( V8 L3 q) _& \8 {" \
                         -> kmod-brcmutil% [3 [" p: ?# M- W$ U2 r
                         -> kmod-cfg80211
5 T7 x6 H. \5 Y4 V                         -> kmod-mac80211
/ U6 w6 q/ |0 b  K# N; M. k* P& U                       -> USB Support -> kmod-usb-net-asix& m/ Y  L- g* X
                                                 -> kmod-usb-net-asix-ax88179; |/ t, X, x! J0 l7 g2 n
                                                 -> kmod-usb2
1 [6 K0 o$ F% A2 L5 _5 X" g                                                 -> kmod-usb3* C. L7 I- v4 N' x: j
红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!
" Q& S; y' }3 o+ N- @- j' Z+ V* |, X) y
Network -> WirelessAPD -> hostapd-common4 g  N1 u  t0 B: X" w
                                        -> wpa-cli
  I; J" |9 F* I                                        -> wpad-basic4 {: [* M0 k0 G* y) k" ]% c
              -> iw& u- ]& E; d5 W$ B: g. q
$ }2 ]; d( w* X) U; u: n
*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。$ A4 _9 L0 Q/ j4 e$ f& h
- W2 M! C" M' W  @/ X

+ t% Z7 h% H- m& MLUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!+ X, N  K/ V+ D
        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!
5 ], M) \2 j- L- K& u        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!
. r+ T8 q3 P% q7 |, c2 {
2 w% p  D+ ~  {* R######如果需要重新配置##########
- G9 W9 s$ A/ D: R  q  L- n% H6 {$ u: ~# d7 H) t, c0 I7 L
方法:使用命令
7 p: y; |+ |" ~$ m6 C" w
  _. a2 t$ M0 I- q7 ~" V+ Y! Y4 J* wrm -rf ./tmp && rm -rf .config& j1 c' C3 l4 u" g4 F
make menuconfig
6 P" H  j, l9 f7 dmake V=s -j$(nproc)
: k% |& T* x* f. r; `* B$ D( M1 K4 y, [! }: u: Q/ z( F/ r
6,下载 dl 库,编译固件 (-j 后面是线程数)% o8 Y! ^! R" @2 E, G# q
2 ]4 O6 u2 i( n* \4 N
make -j8 download V=s                     下载dl库,V=s 显示任务详细情况
* ~% q# }4 |7 K, ^0 |1 emake V=s -j4                                      4代表线程,根据个人实际情况调整1 z4 w3 ?+ v- |# X( r
" J  l7 z+ ~. w' Y) q5 W: j5 W7 P
如果编译失败,可以执行以下命令:; C  p5 C( c$ H7 l8 _' S, W

, e! m4 u: I: K/ z+ e0 Q& J9 V. Z" Wmake clean               删除编译目录/bin和/build_dir目录中的文件
" J3 [; ^" {6 W: o  Gmake dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。
; ^+ o0 X9 E1 j; E
) R5 D( l7 G  K7,下载编译压缩包8 y+ j1 R! P8 T2 w

3 X7 l, E- L* U. ^2 g1 M- |编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。
3 R# k/ E& u; x7 y1 \8 C, A* |) G& D* |! e: B
开通SSH登录方法:& `8 S6 \8 S9 `3 e$ Z  I
6 ?, m  c! H# W9 e# [7 `
1,必须切换成为root用户
- e2 W# f! o, o. b2 X1 M, nsudo -i% ]# _$ h( k) g7 n  V* l2 Y
2,先更新软件列表和更新软件0 w: u8 b+ j4 |4 f: g& `6 ~& S/ F
sudo apt-get update
" Y1 s# E$ X# A" ~+ y, e3,先更新软件列表和更新软件& ?, V$ L# y' C, g
sudo apt-get upgrade
0 F6 X& ]3 R  H" ]* E2 X4,安装ssh4 d& r+ m/ {0 b. h9 \  Q4 X. H
apt-get install ssh
# j2 A7 }( ], D" y" x, {5,启动ssh服务
% v' |0 f! ^% d7 p" r8 ^) Osudo /etc/init.d/ssh start
$ |9 F" c5 o/ \2 F6,检查是否有ssh环境
' ]1 \) v0 _4 a! x5 Eps -e | grep ssh
  a: m& W) F/ U
8 ?, G/ Y* ]1 l; subuntu开通root登录SSH权限4 L( f0 l: O$ [- R3 J
8 [6 Q7 p% {6 ~7 t# {
1, 使用普通用户登录后切换root* E, L- S- k* R) G: Q' t
sudo -i
# r: A0 G3 B" c8 W* N2,创建root管理员密码6 s2 R7 O) p* y: h; T
passwd root
  M* x# a' l7 n2 N3,开启root登录3 i  [9 L0 x' l
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
4 v0 U0 h' S) l3 b* [& H+ \4,开启密码验证2 m, x* I3 \8 v  N
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config
/ q4 x' ~1 o4 G, P5,重启ssh服务- d/ ^! o( w0 c4 i( C2 B2 }
service sshd restart
2 ~* m" E! ]0 x- K2 [% k6,检查是否有ssh环境
- m- s! c  o5 aps -e | grep ssh( I$ a- q/ R6 ~2 n, d) T  D

) C4 v; Z! L% R. G, H2 E* }* w  V3 x- d( h; y  C0 k$ f' t% B
* F- I6 k2 Q: U$ [* q" ^
& z) ?* }6 i# {' K
- k) ^) E4 q0 {% P+ ]+ Y6 i

" @$ C; o- _/ w
" ^1 Z" L: \5 r  X4 q; D从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)( f- A: w) G& J( }
/ j7 n( H( l  o. F! o
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-4 23:23 , Processed in 0.096372 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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