找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3280|回复: 0

openwrt编译DIY

[复制链接]
发表于 2016-3-28 00:44:45 | 显示全部楼层 |阅读模式
   这一期和大家来分享一下,如何打造属于自己的openwrt系统固件,其实编译真的很简单,只需要按照我的方法来操作,保证你也可以成功编译。( X' D8 ~4 Z) y: G& F
/ ~5 k6 U; W! s/ A8 n: l1 B! R9 V: P6 q

& D5 N  c) a$ v) P% {/ k$ D开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:
+ O; ^& ^* w5 b1 v8 @- b7 h. @8 j
- n# V; V4 J, R* Q第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。# [2 Q0 O$ V& E6 g( E1 W
# N6 U( u9 T% Z! |% g
第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。% p, n' ?* C9 s+ W, G- L
/ e# ^5 H9 q2 q1 l
      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。, U6 t9 M' E7 T) k: T
- ]; e9 a# @4 _8 H0 g0 i
9 K, _. `" U1 z; ]# ~  G4 v( H
# v4 n3 A: ]+ t# @0 b+ ]$ D
编译openwrt系统固件,主要分为三大步骤:& J+ l) D; b& F/ Q8 D

0 U' ?0 f/ U, X第一步:安装虚拟机
# m# }% E5 i. @5 ^, w3 A
第二步:安装ubuntu 22.04系统
9 b4 _3 W5 C( s) y) ~% D第三步:编译openwrt
# i+ [. C5 b. `5 _+ T. Z9 c. ]# b" m
视频安装教程
7 H* r6 U. m, x% b" C6 T' M
* j4 r# Q# \0 ^5 O4 S

3 r- m9 S8 r* S* L. P; A! z  a5 \2 X
图文安装教程
* x" T4 h3 I, T, @

! E" K) |- a) k* M% T3 |" B) O一,准备工具:) B% h+ ]% C& O

; |& u) l5 u2 y' u% B1 c1,虚拟机软件VMware
. ]2 ~8 @0 v# g; m; ~2,ubuntu-22.04.2系统3 d# i  R* Z- ?
3,SSH登录工具 finalshell
* V5 {3 P: c. L. y9 }; `4,科学上网工具(自备)
/ G( N+ _: d2 m& A8 P/ |1 g, c% r6 o$ E& b* E5 U; g" P
配套工具:点击下载7 T( V  N/ n. y$ T; a; j
: {' z. E3 [1 Y. z& j
二,环境搭建:' Q4 C# C& \2 w" C0 N

/ f, ?7 T5 b7 J8 [' |1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。+ x& L4 c) {, j& y( d
2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!
# n# t, ]0 _5 q2 H
: Q3 I6 Q/ ^, O( W4 b$ `" q三,编译固件
+ _- w/ h  E1 a1 \% w) t9 B7 z# u# Q2 i+ L
注意:
2 p+ F/ t+ K) T9 q  N  t- m1,不要用 root 用户进行编译
  @2 i. x4 I) s( y' a2,国内用户编译前最好准备好梯子
! p% T/ y+ F3 H5 [8 b3,默认登陆IP 192.168.1.1 密码 password
& p: X+ ?# t3 E9 W! N. `—————————————————————————————————————
( X5 }+ T5 ]4 I1,安装编译依赖, u; c$ ?, u3 J, ?& T+ ^' ^

/ x7 k! X4 Y) W& s$ nsudo apt update -y6 r$ ?- K7 Z4 j# l6 F1 E# k1 O
sudo apt full-upgrade -y3 n! j! T# W0 u' D' b1 b" L6 ]7 \
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \. m/ {2 Q2 X* |" `. x" ?# |
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
7 e# y+ a% @7 A# n! qgit gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \+ M: E. F- c5 C# d" M3 w
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \% T% [' E- a4 K3 s8 B
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \9 p) M  Z: J8 I' u/ g; v/ n
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev1 O7 {* r5 ^* r0 d
; ~" r2 `+ Y' F
2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!; h  I+ p" E! F8 h5 b6 @  Q
. C) M! m2 C4 R) k$ }6 p
git clone https://github.com/openwrt/openwrt                官方版本
# `6 |' Q' c6 Igit clone https://github.com/coolsnowwolf/lede              lede版本
2 U. C9 C4 R1 \/ v4 Ogit clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本, j- T+ I# X/ h$ D+ F
cd openwrt                        切换到文件目录) \7 e- V# n' x- p

, E. r) m& h+ n/ O( q9 n如需指定openwrt版本,可以使用以下命令
* x3 y* F  d( ~5 z% y8 G) {* \, T# h; \
git tag                                              查看稳定版,回车键拉到最低,按Q结束!; l2 J# \$ D. ^5 J9 d
git checkout v22.03.3                      指定版本,红色部分位版本号( R  W3 R9 O, Y6 B9 ]% C; r2 v
7 m1 C  x) F8 s2 C
3,添加插件或主题" t- o0 T# F) x; Z/ I1 [* g% v! x

7 ?( I. t& `7 X- F打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!. ?5 k4 ?2 s" ^9 k( [2 Q
+ n2 l9 g! ~6 A4 L
src-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加
2 ~9 G- _9 H) m6 D; g0 A; T' Fsrc-git alist https://github.com/sbwml/luci-app-alist                     Alist插件" T1 J7 I  y/ T" L# I
src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages
& C" ?5 h* Z4 K! lsrc-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci
6 W# L* r# T) p4 [src-git kenzo https://github.com/kenzok8/openwrt-packages
4 O$ z3 b6 M/ J! Qsrc-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题
9 k3 s: v6 h  y, H# C7 ?
& ~  f, }0 Z( i# i0 L" E4,更新源码: M! B, {+ G! F
9 H' }: t( x. R
./scripts/feeds update -a                更新源码
$ B$ U/ B, r6 Z' l) v./scripts/feeds install -a                  拷贝源码
5 o1 v" @# e1 Z8 r* B2 s4 s# o
5 C- Y, G- _" E0 P5,定制openwrt系统% _7 }8 R+ T/ d: w) ^/ j

6 U5 ?; `/ ?( I7 m/ h3 w+ Z6 g( {make menuconfig 打开openwrt配置面板! X1 ^' I: A* C# A: [7 a* M5 Y; k
———————————————————————————————————
# i% e: C. p9 V3 u0 Z" S$ W#必须设置项目(CPU架构,镜像文件格式,)
, F. s, _. {! C& k1 L+ g& R1 r! E  W$ O
Target System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)
6 ?+ m% j7 h6 }+ @Subtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)     |- m3 Q$ g2 [" M$ i- G
Target Profile -> Default$ w. }0 t( N, V& D8 |
Target Images -> tar.gz
4 ^! _! s- f( z7 w& }, P3 m# e# ^" |% }) M
CPU架构查询表:点击此处
( [- F. E" O& h) C4 {$ {! p1 q  l
& F3 L; B- b4 f*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):& ~4 C% R. T- {: ?

. ?/ S- y- {0 O3 g  i- ^Languages -> Perl
/ J+ _0 ?* T) B2 K$ b                            -> perl-http-date
7 [6 v7 L! {# u                            -> perlbase-file
6 `  t+ g! G. @* Z# o9 c6 V  u. J- l                            -> perlbase-getopt
1 p: Y8 [- b+ K/ A) N; s                           -> perlbase-time
# S4 J: {4 r6 ~; u0 s8 o                           -> perlbase-unicode( b5 o$ F8 S: R5 j, f" m
                           -> perlbase-utf83 S+ }$ M( Z- ^) N, W! z' N# m+ m6 k8 F
4 i, K- y+ [- Z7 d) H6 {0 I3 F
Utilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz
, v  b9 \" t: e$ N             -> Disc -> blkid、fdisk、lsblk、parted
( {1 \. _! i' ]- K7 t% k4 \- e9 L             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs
$ ~( B$ x9 Q2 r! `2 A             -> Shells -> bash
( U$ k' U/ I, [* `) [2 y1 M% W            -> gawk、getopt、losetup、tar、uuidgen; }  C4 u" V4 M# ?( n! U* o: o- G9 r

. b0 z% L# T# ?*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware
$ e; i' \' L' K) ]& `, v) k% s2 ^; \) \6 r5 c' ~* z
Kernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)
% d' r0 X* t) W9 k8 v; I                         -> kmod-brcmutil$ S  d* \% v% }& ~+ A6 D
                         -> kmod-cfg80211* P& y6 G$ Z( U1 ]5 e8 @  n
                         -> kmod-mac80211) H, Q8 i0 @$ \- R: Q
                       -> USB Support -> kmod-usb-net-asix8 x& P, f% x0 J5 v
                                                 -> kmod-usb-net-asix-ax88179
) T3 U% Z7 Z0 o2 Z4 U                                                 -> kmod-usb2
! q- f7 m9 U3 Y8 M. |/ ]5 n                                                 -> kmod-usb3
3 r/ z# `# I( m0 h# h红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!
, c3 G5 u/ V5 D4 F
7 C+ K' a- g% @; e! ]4 K4 INetwork -> WirelessAPD -> hostapd-common
, b- h' ?9 [. n, Y                                        -> wpa-cli
/ B7 I8 {: n7 M                                        -> wpad-basic
) M% U, r* ^; Y1 d4 d; P* o, d              -> iw
9 t; \7 u! |( ]2 D7 _
" g. r+ _3 U6 `& _6 Q/ J*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。
8 s# {& P( W2 d8 r: n9 F  h( W
; b2 q' A* g! c2 w% Q1 ]" Z* Z1 y! ^* l* x0 C7 M2 v( E
LUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!9 B8 ]6 `( [( r6 u/ @; Q8 z
        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!
8 H& L& {/ `9 m9 z        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!% u/ q" ~1 Z; Q$ \' T
. d& E! a/ k. ~+ V5 {8 d
######如果需要重新配置##########
7 d' Y+ q' r* @8 F) z# d7 ~( K; Q/ V" @5 ?+ E& x
方法:使用命令
# k* ]* ^7 P2 L' k  Q9 }/ }! W0 Y, g, @! i) G
rm -rf ./tmp && rm -rf .config0 n. ~' L7 ^8 m& {6 f4 G: t: s' D
make menuconfig6 W9 G% p8 [0 s, Q' E& j5 N- c# N
make V=s -j$(nproc); L: }7 F: M. [. o3 L/ y
, d2 I: B" _; z! X7 k) d- ~
6,下载 dl 库,编译固件 (-j 后面是线程数). h1 I- q: U* Q2 U1 x/ ]

! Z9 e. E$ q* D, R) n. U' F2 [+ tmake -j8 download V=s                     下载dl库,V=s 显示任务详细情况
0 C+ c9 n4 E- t1 q# dmake V=s -j4                                      4代表线程,根据个人实际情况调整. ]! I. H. ?: L' f% B, t) Q- ]
+ t1 x7 Z3 S/ t; L
如果编译失败,可以执行以下命令:
$ T& ]: C* f& ^  k, m
6 A) R4 b1 c, P) K! fmake clean               删除编译目录/bin和/build_dir目录中的文件# j. S7 Y3 O. S9 m& k  P' T! w& x2 b
make dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。2 D" N( B6 p8 m- Q, I6 O

. W7 F6 {* ]# \' ~7,下载编译压缩包
7 G9 |" H  s% ]' z. {+ W
1 y1 Q6 P& [3 d- s) h! W编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。9 [+ G7 o# Z; _( ]" I

, j6 R4 A4 ?2 j7 f  }开通SSH登录方法:
. Z# z$ t2 C" q3 L* \  I& ?9 ?
  K& ~: o3 W% S8 a1,必须切换成为root用户
; g6 g+ c% l4 u- @4 T" y6 Isudo -i9 }3 Z2 M9 @0 S
2,先更新软件列表和更新软件
( m8 o$ I& F2 ~; {) i; Z3 Msudo apt-get update% g0 I8 `& X9 \3 z1 l" b/ u; t
3,先更新软件列表和更新软件. s/ {( n$ g+ K0 o) V; Y) A% F: Q# h1 {
sudo apt-get upgrade" z/ ?' H6 \# }& L
4,安装ssh
. i6 H0 M  Z9 V* b! dapt-get install ssh7 ?5 I/ S1 S' g9 o$ ^
5,启动ssh服务
7 m. s+ M. T$ m  d) zsudo /etc/init.d/ssh start1 c" `% X. F/ G1 C3 S
6,检查是否有ssh环境) i  a5 J2 c& Y2 R! d0 Z
ps -e | grep ssh
) D: Z# w% a: ?
4 q) j" h- G+ U  T  lubuntu开通root登录SSH权限) O7 w3 O, T4 k" d

% u1 E3 B% T  V3 l+ D1, 使用普通用户登录后切换root
8 ~4 e) S% _2 ?, a2 o5 Ksudo -i6 {# {0 P. \8 k# m8 K0 t
2,创建root管理员密码
8 e/ `% D; Z. y! e% Z: f6 g: vpasswd root
& v: g* j' c5 A1 i% t& n3 n6 ?3,开启root登录5 w8 ?2 N3 Y$ B4 u3 l' K; V9 \
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config; M1 ^# j4 h8 |9 i- z) h6 V$ u( O
4,开启密码验证
! p* U" ^0 Z6 }! Dsudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config, ^. o; H, d2 Y3 M1 H) P7 E% \1 e
5,重启ssh服务
& [9 J: |0 }* y( S. F) s4 mservice sshd restart
& N0 q" }: o" K6 N0 ]6,检查是否有ssh环境
; ^: T+ k+ p5 a' c' G- i: Pps -e | grep ssh: n' Q0 Z) v1 w+ G
6 m* C" Z  @0 A& H: o

3 `& X& G* t' V9 Y
4 f( t# v8 d" M4 D7 s! ~5 s+ q' ?6 n" `& ~! H+ _2 y% U1 ?
. P7 G1 [" L/ `7 z
+ t1 D/ B: ^( _6 r# p2 }
& E; X2 X* Y9 P8 H. }2 ^6 u
从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)
- d  _7 Q( d6 ]- v) A! l

, E$ |9 y. M7 W" E8 I' R3 C
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-4 19:41 , Processed in 0.092592 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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