找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3262|回复: 0

openwrt编译DIY

[复制链接]
发表于 2016-3-28 00:44:45 | 显示全部楼层 |阅读模式
   这一期和大家来分享一下,如何打造属于自己的openwrt系统固件,其实编译真的很简单,只需要按照我的方法来操作,保证你也可以成功编译。
. l, H! R( d$ O/ o9 `& y
3 ]1 H% s' G2 S0 M+ m& _: D4 m8 d6 v$ s& M
开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:
; e% A2 V$ Y0 W. u8 B0 E9 n6 Y9 o
; r  E+ P! j& {. z  V  @第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。, B6 ?# @3 A4 V  K0 C

9 C# x$ {4 L8 z: t" ^第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。7 H) U( L: z, p) W  |8 f9 w, p; S
2 A5 b3 T/ ?6 ^- p( l1 d6 O% `) ]
      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。
, i2 m& X* c( @0 X
0 }" @. ~; `# a0 @% e/ k
5 }0 I3 Q' u' \$ q' |
0 H: C+ m2 c: _4 T+ h编译openwrt系统固件,主要分为三大步骤:: K! U' s9 M' t7 I4 y
. c$ i  O. N0 J( R9 f0 a
第一步:安装虚拟机
* r2 j$ q: M# z) _+ `4 l
第二步:安装ubuntu 22.04系统
2 L: I% y# f1 z2 F) M第三步:编译openwrt
- b7 X" S" H4 q0 @$ X
视频安装教程

5 A9 Z" n: |( C. Z$ m7 F. i

% g" N8 e) g4 x

5 b0 G. x4 j: a) \0 I' I- o8 r6 j9 ]
图文安装教程

8 [- }. t% A! _/ l, o: V& K# m6 _1 n6 b9 ?% _/ r, x, q
一,准备工具:
# P; o* A, t+ h! ?' d* e9 `! @' Q; V$ |
1,虚拟机软件VMware
) w/ l* v3 F# U% Y' i$ k! ]6 p2,ubuntu-22.04.2系统
1 E6 Q' j! T- d3,SSH登录工具 finalshell
. s* L" r6 @0 |& @4 `4,科学上网工具(自备)2 X. o& s; x2 O9 r% |0 {
1 n% s, Q# \- j1 \
配套工具:点击下载
1 b; Y) j* Q! v/ f  A6 ]0 P% V  R, e
二,环境搭建:
$ h7 F, F, F  D# g
3 m) N. K) G  C8 |% w% C) a1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。+ A0 u% X: p  H2 Z, `* i/ q% o
2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!
1 ~; `3 p4 X. m% ~, j" o4 ]- V8 z2 n6 y2 {8 P+ Y& V
三,编译固件
; i& A8 I% ^7 R' d! g
- I- m4 K0 N' A8 f注意:
! j0 `. L4 P; B& h. K/ C1,不要用 root 用户进行编译. D' I' z; d, t( W' l' S, C
2,国内用户编译前最好准备好梯子# G# _; u2 ?( L6 a" p5 ~
3,默认登陆IP 192.168.1.1 密码 password
( j  J3 m! ^1 c/ f4 k3 B: S2 u—————————————————————————————————————
- O# a* U8 l! c: R8 ^1,安装编译依赖
! i2 G- F! r( u6 }( L( w7 X
% C% {6 N" B3 L& Q0 L- ~sudo apt update -y
! E5 m4 M7 F, Y2 jsudo apt full-upgrade -y- ?) r  ~* Z1 k7 A% o- `/ o
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \0 r7 p  j  m( E3 {6 n
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \) F6 p' t! c8 G; d$ X6 O
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
( o1 R1 p5 ?$ L4 N4 Ylibmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
5 E( y! M" u6 e- D' w# Tmkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \6 m: G9 l6 H/ x1 H' V: W: D
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev
" E7 D1 i8 P6 ^1 w5 P( \. Y1 C" v) {! z
2 N; \1 f$ z: S) o8 g4 H# u9 P2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!! j- D  |+ @8 B) ~. @
- q2 A; R8 O3 f' N, g% x
git clone https://github.com/openwrt/openwrt                官方版本" ^7 i0 v6 _/ |0 o
git clone https://github.com/coolsnowwolf/lede              lede版本' S, ~' @7 C1 {
git clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本
9 m+ w- ?0 {( H- n+ y. ]cd openwrt                        切换到文件目录' x( D, r8 Z; j8 \# Z- M
* l+ n3 g' r3 P7 w: D
如需指定openwrt版本,可以使用以下命令7 s1 g# H! R2 `

) k6 N& p$ j. T5 Wgit tag                                              查看稳定版,回车键拉到最低,按Q结束!" d: J8 v% D6 P& m8 P
git checkout v22.03.3                      指定版本,红色部分位版本号# x) d9 X1 w5 Y
4 Q4 S! \/ C7 B! i
3,添加插件或主题# H. @' s1 l6 n' M  H( @
& [: `0 p4 A0 @3 g
打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!
2 T% i" n4 o# U- R+ p7 Z5 h/ M$ |6 ^
src-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加
$ x0 Q( }" }3 Z, c" H4 Ksrc-git alist https://github.com/sbwml/luci-app-alist                     Alist插件, E7 t* n8 ]  c6 B! X1 r; p
src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages8 y+ Q# [5 j" k7 \) e1 {7 F% O
src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci
( a6 q9 {  |% \; l& qsrc-git kenzo https://github.com/kenzok8/openwrt-packages
1 c7 Y4 v. r# \9 Xsrc-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题
3 L5 B4 }) s5 y: K, E- e
6 q" n6 E- K3 I; [. s0 ~2 g4,更新源码7 B7 K2 ]& i6 O% n/ a
  C& f7 I9 v: j, f* X0 f
./scripts/feeds update -a                更新源码
" q2 B7 _2 W  B2 F./scripts/feeds install -a                  拷贝源码
! i$ P+ w7 h/ D9 y, J2 D  O. E
0 O9 Z# A: X  R3 @3 E% S5,定制openwrt系统
) L. ]6 }+ U' h6 C/ C" Y4 ]1 `/ |0 o7 |: U& G/ b
make menuconfig 打开openwrt配置面板
$ \1 c- ?- ~6 ]# i8 l# z8 m' p8 E& K———————————————————————————————————
5 R, c1 a* C* A2 V' N. ]. b#必须设置项目(CPU架构,镜像文件格式,)
4 g6 a) g/ Y- t0 y
- l6 i& ?6 ?0 c4 r$ i( o! R' i7 CTarget System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)  H0 T+ e- T, v& z- s) S  ^; [
Subtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   
& X& ]+ W; z1 ~& [, ZTarget Profile -> Default/ y, C1 Z4 z: a4 Y  ?- d* E' ^
Target Images -> tar.gz
1 W) f7 W+ C  J; f, S1 _  o) P* }5 q- _7 a- w3 N- j
CPU架构查询表:点击此处: l0 {0 i1 e- l; V6 K. |# R
) ^5 m, p* a; b
*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):
1 {3 G  p: J6 n& }) V# y* _) n' V" K- q# H
Languages -> Perl
/ }# A; h& p  x7 l; a2 F* L7 y                            -> perl-http-date: m) S' G9 W/ f4 I; g
                            -> perlbase-file. O. Q) N( X5 I
                            -> perlbase-getopt
+ [5 G; t; f$ f$ p* S; Y                           -> perlbase-time1 q! v% J& E3 H0 b
                           -> perlbase-unicode
, d  R# A$ G" t+ p" w7 ]                           -> perlbase-utf86 T0 W. o% z: A" q3 P! O; Z$ T
+ x  r- S2 K( d/ M' h& n
Utilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz6 E! M& r' D# k: I& t
             -> Disc -> blkid、fdisk、lsblk、parted
! X0 Q& o! f7 e0 j             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs% ^* O6 p" a: {6 E* B
             -> Shells -> bash+ b, h4 _( s2 G3 |2 B. s6 P
            -> gawk、getopt、losetup、tar、uuidgen( X/ ?7 o# k4 o2 U5 k
3 g  Q6 \+ G3 h9 Q
*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware* N) D4 V  G- P5 N" D

7 O2 T7 t0 I  KKernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)2 z5 f1 B0 B/ f- O
                         -> kmod-brcmutil9 s* t! U8 @& a  z: }) b0 r7 }
                         -> kmod-cfg80211, j  r3 s3 e+ R7 @
                         -> kmod-mac80211
2 K; e) }6 E2 M; \6 J                       -> USB Support -> kmod-usb-net-asix
/ p+ {8 d. \6 T. p                                                 -> kmod-usb-net-asix-ax88179
  O- K. b' y# h% j                                                 -> kmod-usb26 R! I; u& J6 j- W$ A+ A4 g& I! r$ d
                                                 -> kmod-usb3& I- E( z4 D6 v4 t, v, Z. I" k
红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!
1 J7 o1 \( g3 ?) I" R; j2 o6 I# N7 p
Network -> WirelessAPD -> hostapd-common9 I8 Z' C8 w" ?; n+ e- g1 m& t
                                        -> wpa-cli
2 ]; B2 D2 x9 P( [+ q5 A; Z                                        -> wpad-basic
/ K3 L% J. X- i, x4 }, d, P- u              -> iw& S! J; ?- Y" o/ M

+ v+ H% J4 T2 ]  D*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。
9 ]. O( J  w2 A7 F: t+ I" E4 A$ t! ~/ W; i. Z

8 c5 q9 v3 C, O2 t0 lLUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!
* v! M7 K$ `7 S3 J        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!
# Y  L) j2 x7 T( e3 v        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!# j0 r* ]/ C5 c) b

) H$ ]- R7 L" O$ _######如果需要重新配置##########
6 U6 z* @! I$ T- q- B- A  B$ z; Y- h! P3 q8 L
方法:使用命令
+ Y7 @2 C; Z* N( g1 p
0 j3 N7 R5 C% Y) v9 @1 S9 p7 H6 Nrm -rf ./tmp && rm -rf .config
4 V: e5 B+ v: E3 t0 Nmake menuconfig
- }# m0 U& K* C& S: dmake V=s -j$(nproc)
' M& {$ r. B3 Y- |* g5 @' Z. Q8 G1 D6 ~
) a( v- }3 Q/ I* s6,下载 dl 库,编译固件 (-j 后面是线程数)3 C7 Y+ r% b- K  W$ n9 B
  X: Q  c% O0 L* C& ^! A
make -j8 download V=s                     下载dl库,V=s 显示任务详细情况
2 B( r1 z/ Y- y+ {1 |: H, `+ Y5 Dmake V=s -j4                                      4代表线程,根据个人实际情况调整  i- |- E9 o' s$ S' Y
7 n+ d6 B+ {9 A" z# B( V3 |6 Y
如果编译失败,可以执行以下命令:/ P& V4 v5 N( w. ~( V6 N) F

$ f' q, Q2 |+ `; Gmake clean               删除编译目录/bin和/build_dir目录中的文件
* F: l1 @' i1 Y5 M2 Pmake dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。
+ I" L, {$ v) s& O: _
) J; |% u9 r! H) H0 a7,下载编译压缩包
. }1 A* Y2 A- ?& h: U# n- h
5 z' E& p- {+ p3 ]) t5 f. H编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。9 G. ?6 `# g0 d( q: H
4 I+ `* [% |( i! E  {
开通SSH登录方法:
9 u' x/ J7 s4 H! c2 J; C5 F
& w7 k& n0 V' ~: ]1,必须切换成为root用户% N6 _% a9 H5 D# ^  x* s( c( l0 O
sudo -i
' d" @  c- h( Z2,先更新软件列表和更新软件$ v" I! h$ q) T6 V; a% O
sudo apt-get update
& a- a, b6 H7 @3,先更新软件列表和更新软件6 {$ `$ t7 a* @
sudo apt-get upgrade8 i' r( X, M8 o7 t4 w
4,安装ssh
' C$ D0 P7 N' N% D5 ^! iapt-get install ssh$ O* `& ?7 K/ j8 n3 G/ I; j5 H; n
5,启动ssh服务0 {: `5 O+ {" E( {. [5 h
sudo /etc/init.d/ssh start
- g& g4 Z) m( D; n* o7 u6,检查是否有ssh环境
$ _, a% z" m) J( f3 q& c, y* p, `% |ps -e | grep ssh) l6 P3 V5 T" O3 _/ L3 d5 Q5 `; y

. v3 ]: P1 H  m+ C/ W+ Pubuntu开通root登录SSH权限
) {+ E! c* D1 a' B( {* k
" X) B  O' T8 M1, 使用普通用户登录后切换root( \3 i9 ]: b  P! A
sudo -i
0 J4 K* Y! F: C8 E2,创建root管理员密码3 r, [2 C1 ~' q+ O0 t" a9 C9 ?
passwd root
( E/ S" U- w6 |: h( B3,开启root登录
3 x3 M2 g# T1 X) i$ Asudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
1 P9 ^- ^. T* m, a. ]4,开启密码验证' p3 P; h$ {$ ]5 s0 ?( E$ q! m
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config9 _# z, X5 J( m: E+ E% Z+ K
5,重启ssh服务; }: C1 k% ?! L0 L: _: F' P% u
service sshd restart
) Z8 K& c) D6 u  [9 [, t6,检查是否有ssh环境5 c, c/ c3 _4 v
ps -e | grep ssh
  Z% n# r' m" h) D: P, [' [6 l6 F) K8 H' `5 K( e. Z& f
! _5 o* a/ r$ z7 y4 c

2 w1 ^" S/ c" p4 j6 Z, e0 d5 K) [6 H7 l, X
1 S, c- I; ~* \" H
: V- M1 s. Y! v# x7 S( n
+ H  ]0 W: q: N; ~
从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)
6 y& v, s, z" X- p; x, x" z9 V

- [7 q. h0 U' g
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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