找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3284|回复: 0

openwrt编译DIY

[复制链接]
发表于 2016-3-28 00:44:45 | 显示全部楼层 |阅读模式
   这一期和大家来分享一下,如何打造属于自己的openwrt系统固件,其实编译真的很简单,只需要按照我的方法来操作,保证你也可以成功编译。) v1 m, h9 q- k4 r4 E8 F4 e9 h

* g$ Y% `- e; I% |  j9 r" b4 p* P" {# A# T" C; G9 Y0 a
开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:. y! L3 D( E; G& h
9 [) W+ z$ L7 R, m
第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。2 u6 C8 ~' }, c5 O5 d; A9 [

% H# r4 i7 m( S' Z! q第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。
9 x- g- k& _+ T' h, i) V
5 B2 W' j4 Q( A( F& q4 V+ g      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。
' q0 g9 t9 R, `
) N, Z0 c) d" V% |5 R) v9 D- ~8 z+ ]" d$ K# M+ W9 Y2 V) d

7 _+ q5 N8 X1 }) J6 w8 |+ r: j编译openwrt系统固件,主要分为三大步骤:/ z: Z5 h/ O  I: W' j- q

# {. v8 H$ M- ^3 y& J% _* c第一步:安装虚拟机
5 o6 T+ u# y% t* E
第二步:安装ubuntu 22.04系统
7 C- [- A% k! C1 o& O第三步:编译openwrt
" F" z  b1 c- o8 ?
视频安装教程
5 F) w9 t- k6 @0 o9 M; ^
2 o) e+ M4 U" g4 i
+ [3 }' w* }* y) V
图文安装教程
( @2 D1 \: l- i" t+ [2 G
$ b$ m: O# N( F2 e( Y
一,准备工具:2 i, \- A3 W1 V+ _, ~* o/ Y# Q, }; q
1 Q5 l8 n, e( b4 s( F& ~
1,虚拟机软件VMware5 z# B+ T7 A3 j0 j, C( x' T& S
2,ubuntu-22.04.2系统
; \0 Z5 E/ \$ z8 D' A; i% I3,SSH登录工具 finalshell
4 P) L$ \( p/ a0 d* U: ]' _# G; h4,科学上网工具(自备)
! C+ Q1 G4 M: ?
& j! Y4 d6 i8 L5 s" p9 @配套工具:点击下载
/ X& m- ^  B6 @0 k$ `1 v; V* L+ b$ T; S' Z- W- W& C( l: t
二,环境搭建:# U/ d9 ~( a( Q7 C8 D/ o

' E. A7 k: p  H1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。* q! H. R2 D6 k. ~
2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!
+ o' y8 [( F- M# Z, {1 K  u$ M! ]$ O" S5 V( f8 H* P
三,编译固件* n1 |! j8 F' n; ^7 k& O5 C, V& e
8 f" N/ L, |! |, |# y% k/ @. b& U2 y
注意:; n0 k. j" g, S
1,不要用 root 用户进行编译
" `) C% ~! [8 ?8 Q& m" J! ^2,国内用户编译前最好准备好梯子0 y8 j- D  A. i! [" L
3,默认登陆IP 192.168.1.1 密码 password4 {$ }1 L1 y9 l6 N
—————————————————————————————————————) j0 [2 m+ x1 I8 c. X3 @" [1 X
1,安装编译依赖- ^! {. M- C6 x  h8 f% g; x

( y+ S* `) X2 ysudo apt update -y
% B9 D9 B; u1 x1 ]5 G5 o" fsudo apt full-upgrade -y0 h5 ~! i$ T9 |+ x
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
  t4 j) p* j& c! j) @9 g0 E, r6 m7 Hbzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \0 j) I. h, S" o% U9 m
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \0 s* N$ N$ \1 [6 b1 h. l# Y) [" H
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \* U5 f* K& I. ^) [6 o! o( w- M5 m
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \& g+ f8 U$ C  _$ P  O# |$ g
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev# J2 ^) J2 H- {* H
" w0 R  @0 H1 h/ a% D+ U. m) e
2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!/ z$ N" E- z8 \& r7 m2 }5 {

. c5 `0 x$ T3 _! ?6 Bgit clone https://github.com/openwrt/openwrt                官方版本
( y/ S4 g* |, [: rgit clone https://github.com/coolsnowwolf/lede              lede版本' A" L4 K* [1 v, m. }; C
git clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本
0 ~7 w6 L( C9 e% E, I% |/ zcd openwrt                        切换到文件目录9 o# J5 E) k* I) G* C, j

0 Q2 ?; E6 p1 P/ Z$ l如需指定openwrt版本,可以使用以下命令
! y. ?4 V2 R7 _, l$ ], M  H
1 W' a# a# T  o9 r- ugit tag                                              查看稳定版,回车键拉到最低,按Q结束!) R7 z" m. c) h) A9 y
git checkout v22.03.3                      指定版本,红色部分位版本号+ P- f( h+ X$ n" a1 p8 g

3 c$ }8 Y. N* f& ]3,添加插件或主题$ k9 a8 ~6 L& f  O; ^
) q3 l' n; e5 `# c
打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!' L  k# ]% U0 g1 d
, ^" ~2 d5 H8 y5 @0 t/ @
src-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加
0 E6 d' t8 n+ Q$ ?2 f( Bsrc-git alist https://github.com/sbwml/luci-app-alist                     Alist插件
8 e+ H" a7 n; _src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages  g% _; m' E' b) y( x
src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci
- H" ?8 N2 T; z. ~- T. gsrc-git kenzo https://github.com/kenzok8/openwrt-packages- \) F- H) q. H  T3 Z4 y
src-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题( Z( D$ W0 C$ p& z  g6 p# ?! B

- E* [$ F; ^! q4,更新源码+ A, U$ C5 T1 Q" ?$ m& G9 W* n
+ W0 V) z% j; w
./scripts/feeds update -a                更新源码
2 x1 s4 O- f8 T6 B6 F9 O2 Q./scripts/feeds install -a                  拷贝源码
6 c+ a0 j/ I' [% N8 d
0 u7 u' g; I4 ?& v5,定制openwrt系统
6 z4 ]  [+ Y' e. \
5 q0 z9 }" h# Imake menuconfig 打开openwrt配置面板7 q2 i/ X: Z3 d7 }# A
———————————————————————————————————
& ]/ E; B- ]7 F7 M#必须设置项目(CPU架构,镜像文件格式,); \8 {* V4 B, v
; K2 z( B4 S( u+ K: \- J
Target System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)! _6 N) ?* w# I% U; h3 K
Subtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   % [0 x6 j- x, o6 g+ F, X- T- J$ o
Target Profile -> Default& V  Z/ G/ n. f% c: v. o
Target Images -> tar.gz8 r4 e# j5 c  O/ O! i  g7 z  u
2 n" A, T. c% ~6 x. t
CPU架构查询表:点击此处7 b% `" g( D, v$ e8 ~1 e$ y

, E/ N/ p" v! ?! X% V4 s: }# n*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):- A5 Q) X4 `* K* X: a' z

9 M5 {- U9 q4 w. G" C0 sLanguages -> Perl+ K7 f6 b0 C9 d7 ]: _
                            -> perl-http-date/ ~( s$ v, x+ g
                            -> perlbase-file& h2 }# ^. l; T& v+ c1 V9 u0 w& r7 v! i
                            -> perlbase-getopt2 X4 I1 Q5 w2 y* \3 V3 E
                           -> perlbase-time4 M! ^5 C6 x5 k; `
                           -> perlbase-unicode
$ `, [8 q1 q3 p1 [: i  ^                           -> perlbase-utf8
/ \4 y) V( G4 d, y) T% [8 {% I) s+ W# A# Y  U( U0 J9 Y. t
Utilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz
1 s2 z* D. _! i             -> Disc -> blkid、fdisk、lsblk、parted
* `; p7 z4 }& M+ f9 m+ u6 Z             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs/ l* m+ m/ I2 F7 G) B
             -> Shells -> bash! H: P- I7 @' r5 H2 x1 U
            -> gawk、getopt、losetup、tar、uuidgen6 v7 O) N/ f2 C! E4 L: B
- l2 _0 T' X8 k5 g% g+ ~0 v+ ^
*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware  M8 X5 P) K! b+ w5 o2 b

" [9 K2 |0 Q# r7 h( x9 Z5 {" IKernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)7 s* o" M4 v6 s! \; y
                         -> kmod-brcmutil
6 x" ]8 }) x+ ~                         -> kmod-cfg80211
0 w% C/ _- G0 h: }1 A                         -> kmod-mac80211
* S- ]( g5 ^6 I" I+ U                       -> USB Support -> kmod-usb-net-asix
/ }8 q& W' F. N; W  `1 K6 p+ G/ P1 ?                                                 -> kmod-usb-net-asix-ax88179
. d. A: {0 J; K+ p! L& u$ A4 c                                                 -> kmod-usb2
, d( r- V& D1 A9 H  p2 K                                                 -> kmod-usb3
- x! Q% W0 |) j3 Q% ~红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!
1 t" D8 u( L6 t* h; Q% X1 t( r  V; |6 W
Network -> WirelessAPD -> hostapd-common1 u4 g. v; T3 \9 {
                                        -> wpa-cli
! W3 \! D) J! x/ r- S1 }( q                                        -> wpad-basic. E: a6 U$ Z- c- O/ u
              -> iw, T0 }+ ?! X; V& I
/ u, q- x2 w2 u( _
*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。- [' a4 W6 H, p1 s3 W& Z4 U2 a# [
- R  Q6 A; s8 e" T+ D$ \

$ x! i' A- n) w; z( _: ]! M; ], ^LUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!/ J7 A* C& a' s0 Q& s* l
        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!/ r, I& I; k1 @8 w. }7 R
        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!
$ ^+ W/ s7 c; a* X' D' J0 [4 R7 r1 k) S
######如果需要重新配置##########2 G" d; q. ]3 J5 ]7 c# @- g: Q

& J" N# c, x1 a) [* r& m6 }' k方法:使用命令- S* C! V1 S/ V: W

6 L( y& f2 f$ ]0 u. }4 irm -rf ./tmp && rm -rf .config
8 q  y9 j; i& V; l8 F& g5 vmake menuconfig
6 U$ ~' }0 V5 V9 z6 D+ j$ Vmake V=s -j$(nproc)
8 B' w4 l& ^6 ?" @9 s6 a* W! }
6,下载 dl 库,编译固件 (-j 后面是线程数)
0 X+ c1 J$ Q8 m; W( m9 l! B! A9 _9 I$ s4 R8 k  l
make -j8 download V=s                     下载dl库,V=s 显示任务详细情况1 n/ n; V! f# N" c% ^
make V=s -j4                                      4代表线程,根据个人实际情况调整
( |9 z" g5 R% W1 b- i3 P# o/ n% [% l
如果编译失败,可以执行以下命令:5 G4 M* X) D2 u
4 m. a6 v% @3 [) j3 C; n
make clean               删除编译目录/bin和/build_dir目录中的文件
1 ?% N# E+ M" Y  l: X6 @make dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。
$ J: K: ]) D- X
+ V9 K$ Y, p* w, m7,下载编译压缩包: i' b4 C6 {$ L2 J: @+ n

' ?3 k- B6 N. u4 L6 e# `编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。
) z# m) \  w& M
6 F( L* Q" K# G, f1 S& V8 v1 z( d/ p开通SSH登录方法:
) `$ B1 B% H' ?9 I9 M8 D5 f7 M: K2 D! a" r$ w
1,必须切换成为root用户/ z1 Z2 ?* g# [, P3 D; L% ^4 _
sudo -i
9 _& o* `- N  L  }! W2,先更新软件列表和更新软件
4 T% @& E! U% y0 z1 A& ]1 Fsudo apt-get update' J8 K6 N& [" e: a' O
3,先更新软件列表和更新软件
+ H+ p. R% d* m( A2 ^sudo apt-get upgrade$ v9 @& v4 y1 @: z
4,安装ssh
1 K8 ~5 P4 q* z' o. l" v$ L3 m4 I, Mapt-get install ssh
1 I5 G2 j5 D* x, J7 v5,启动ssh服务, {# O, u/ C6 \2 U8 @; C
sudo /etc/init.d/ssh start
+ x. p5 N% |6 u- u6,检查是否有ssh环境
- O, w$ U; _- Cps -e | grep ssh
/ s  i/ @+ \2 [1 X7 P0 M& P
! R' `3 Z. N  r% A3 u2 p+ uubuntu开通root登录SSH权限
! x0 C$ w" U+ i6 u( Y7 R1 |
1 K, x6 F, v) J' Y+ g1, 使用普通用户登录后切换root
( L- b7 J' \4 j$ ?$ d3 F* Csudo -i7 L! Y2 Z2 T5 T: r8 z
2,创建root管理员密码
/ ]! d, O" M& t4 i" n1 opasswd root- e0 ?; T$ j- T1 v" y1 H7 u
3,开启root登录
3 U( \$ _7 f: ~+ Xsudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
* T1 V. L6 S. c8 D9 M4,开启密码验证& g* e- X0 _3 T5 q
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config
1 S) @: N2 J! y3 e- R- q5,重启ssh服务
; q& B6 h8 K0 D4 z" I7 Vservice sshd restart
* s! J* p$ m5 ?4 J6,检查是否有ssh环境0 W/ S) L. t  C, C
ps -e | grep ssh2 Y1 ^$ e2 C& b; A& e; }& A: b( @5 G

5 J) A8 j9 x, ]# Q9 i3 X0 F( J* t. C

( i! `  X4 F4 x8 `& `2 B6 f/ T" \( w( y5 l$ U
3 r/ G6 a& S) c7 V: {# D

& k+ p3 ~' y4 p/ b; x. C" M2 g. E2 Q" D
从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)
' q# J: {" \5 X' F

! S3 p1 d7 x. a/ U
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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