华强北电脑城 龙岗电子世界 龙华电脑城  凯尔电脑

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3088|回复: 0

openwrt编译DIY

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

4 o. P/ ?! [# e% H3 e4 a
0 Z% _% \8 n/ ^+ j! s开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:- M" I7 }$ ]6 D* }# N

5 k& E$ t! S. d1 Z1 G% l6 z' a第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。
) Z9 o  K/ S0 F( Z5 ]+ j/ Q+ G$ |' F% D
第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。
% m+ {" v: @4 V+ |( \* G" n) |8 r# J4 x% a# ~- S* `6 ?+ ?. ~# H+ [
      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。
2 Q/ C- p. c9 g, m$ p$ P( Y$ b
. W* ]0 d9 |0 c1 U
+ n% t. E' c' H% x( R% _9 d6 [5 B* Y; D2 ~
编译openwrt系统固件,主要分为三大步骤:
; l, r$ S. l$ G- T# ]+ _. d5 B% y  @; a" l! H2 |# }" O
第一步:安装虚拟机

( X  _4 {# l. ^5 R2 u第二步:安装ubuntu 22.04系统9 R% ]* c9 Z% v* S
第三步:编译openwrt' Z4 R0 _( U* q6 n
视频安装教程
" u5 F$ L" P+ t- W

; M/ R6 ~# I2 L% I7 z

/ w: L! `& }" ~, S- u: p
图文安装教程
9 w1 {. O9 Z% h
1 Q% w; p: ]" d  |7 I8 ?) y
一,准备工具:- J$ y% ?* B- r, r  J
" c4 X* O( ?$ M7 t& _
1,虚拟机软件VMware" u' @1 z+ |0 R. [' ?! D% U  |
2,ubuntu-22.04.2系统
+ t6 u+ k9 |% H. G4 p3,SSH登录工具 finalshell
8 G  i) n. i) F- f  `- l4,科学上网工具(自备)
0 ^8 U- {) d0 G7 g) i6 X+ z+ ^: h3 g" q, q4 J: V! S* p
配套工具:点击下载
6 J& |4 Q2 t; J- V4 |2 B; g6 ]7 O
- q: ~/ a# E5 v* B3 l/ d二,环境搭建:
& o- m3 k* j9 T6 e7 A. v/ d3 w7 G% B! |
1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。" h7 m: T" S0 Y# X$ C$ {3 W1 b
2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!+ |0 t; K1 H/ H8 D$ `' \' w

! p( ?2 m' X# `' W5 i) U4 ^三,编译固件0 `' ^6 [' x: O) s! E7 N/ d
- q9 L6 O) C$ ~: w" Z: G6 P
注意:
" {& J. ?7 r" K( l# T4 X6 u5 _1,不要用 root 用户进行编译
' ?2 l0 J) x! b0 `0 L; p2,国内用户编译前最好准备好梯子, ?8 z# |- K  v! X' H5 ?
3,默认登陆IP 192.168.1.1 密码 password
6 ~% ~6 `7 V8 M. L—————————————————————————————————————
. t) B& _( m' `+ p1,安装编译依赖- y6 `1 V4 D' e# ?. o
1 R- e( W, ]) s+ F2 h
sudo apt update -y9 S+ X4 ^8 j+ `6 ]6 C" [
sudo apt full-upgrade -y
0 j/ T( c5 i; y, n& d: usudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
* a) U" |  s! }' Y( p/ ibzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
( E& [' r! j0 b5 k- wgit gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
" }& t+ a8 J5 I% k8 I" y9 ^libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \9 y. g( q( u0 E: H3 Q
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \& _6 `9 S3 S3 |
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev
4 D, ]! I6 q; Q
/ ]2 n0 U8 V) B5 D+ }* q. D( |, p2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!
5 Z+ ?% V( v/ D: t0 U
  z+ c' I& ^, W+ u5 `git clone https://github.com/openwrt/openwrt                官方版本! ]1 [: g, f! Y$ P% i, p( P& c/ l
git clone https://github.com/coolsnowwolf/lede              lede版本
2 g5 V! Y- l# ggit clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本- p0 l( P% A7 u0 U; m
cd openwrt                        切换到文件目录9 l5 N% _' ~. R. o( l, S" c5 `* C
2 E+ t8 y2 Z$ V2 d* q- K
如需指定openwrt版本,可以使用以下命令
/ @! o/ s$ k# N6 ]0 n+ M' L
4 V$ p4 K+ R* _* W4 zgit tag                                              查看稳定版,回车键拉到最低,按Q结束!
; C& G: K. g* B! t+ O4 [' M* pgit checkout v22.03.3                      指定版本,红色部分位版本号
8 n1 l( j( n: C  S; y0 [9 j. e  \/ B3 r; o6 T' M2 y5 c
3,添加插件或主题
, F6 M" k' F, i* n1 b( k" a
# V: C# j6 p; y1 [% @8 v打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!
( d# ^  [7 w6 Y' M; Y" Z0 z6 A
" H3 d6 M8 C3 w2 o+ \% p6 Esrc-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加
: v) |% N7 q. I% `src-git alist https://github.com/sbwml/luci-app-alist                     Alist插件
& }' p& n; v; n* A5 q$ dsrc-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages6 [9 G2 ~$ g$ o( O( o
src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci
( i/ J4 V" g& D0 {src-git kenzo https://github.com/kenzok8/openwrt-packages
, h, K" Z7 Q3 z) j% q. rsrc-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题9 X0 _5 W8 @5 }& H! J
- Y  u2 Z, y, `* J! l0 _9 f
4,更新源码) U3 Q! [, Q2 i/ E, S; \4 f

/ g! w1 ?% u; s& ?$ e' B( j./scripts/feeds update -a                更新源码
  P  Q  D7 |8 C) w: Z./scripts/feeds install -a                  拷贝源码
& _3 o. q" h+ |9 t3 Y8 `; i
2 M5 K/ _% n; @% |- k5,定制openwrt系统
2 s; V$ q( t1 ~7 B
  r& b: {+ G8 U: J. K( Dmake menuconfig 打开openwrt配置面板; J& t* N! l& F
———————————————————————————————————
) J3 p$ r, c5 b( P2 m, E, e( M#必须设置项目(CPU架构,镜像文件格式,)
( Q( f$ t: E3 p8 |- g" b' T' ?7 J& a8 D' v: H4 s$ T6 ~$ X
Target System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)( G% t4 }, t/ U3 Z
Subtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   3 d; X9 w$ J0 U( m! Q/ C$ X
Target Profile -> Default
/ ^* O* R  G1 }Target Images -> tar.gz* I9 W/ E( Y, r# H+ ^. }- u

& K# a+ w  `' z/ Q) A* HCPU架构查询表:点击此处6 G* p$ W% L- d; x, S5 ^/ Q
9 j# _, o3 k3 G
*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):
4 [! P% |: ~. K, A2 V8 F
& m2 H& r: J4 M  E6 |Languages -> Perl2 S) ^8 B( E: ]; K
                            -> perl-http-date& P+ a# {/ _2 `) t5 C
                            -> perlbase-file8 y$ l+ X1 S  p1 f; Q2 d
                            -> perlbase-getopt1 R( P- K8 t- U+ u; Y
                           -> perlbase-time5 _( O% h# J; v! T
                           -> perlbase-unicode, p* L2 u- I; j, k6 @; {
                           -> perlbase-utf8
# h- h; x1 _1 S9 Y$ @+ P6 D- z- _1 C! m; d4 R
Utilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz
- R3 F8 R) h" k. _$ R             -> Disc -> blkid、fdisk、lsblk、parted. q7 c$ V& M$ P4 V
             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs
5 J' E7 m; O' C' K5 P             -> Shells -> bash: ~" n) w# z" X$ ?; p* q
            -> gawk、getopt、losetup、tar、uuidgen  C) s' v; k6 q# ?

$ f( `# K3 s1 J  D& S' {4 ?*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware
5 n0 M' ?- c! K0 S3 d# _% O% F2 h; _3 H0 J0 ^* Z% V
Kernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO): t( x! y8 w$ _7 j8 N2 @( W
                         -> kmod-brcmutil
' b$ V! d/ N+ T( R                         -> kmod-cfg80211
1 R% y" [2 P* D/ Q$ J- W                         -> kmod-mac80211
! i3 M3 z2 R2 _& q6 `. U+ d0 \0 y; q) F                       -> USB Support -> kmod-usb-net-asix
* b; k' K; [5 L& ^8 u9 T                                                 -> kmod-usb-net-asix-ax88179
- `' e: \1 a; |                                                 -> kmod-usb2
; y3 Y' W6 r2 p& k: \8 C                                                 -> kmod-usb3; H% n& ~# T( i& U0 V* I* |
红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!
& N' s0 `+ j9 F8 }' G4 }! V1 ]
9 ?' R' U9 H" a2 G! qNetwork -> WirelessAPD -> hostapd-common
! H5 ^# M! y, E) U; R- i- l                                        -> wpa-cli+ e" X( U- K( ]1 {8 ?! w
                                        -> wpad-basic
) j0 }& ?! z: K( \9 y( j              -> iw
7 f/ z1 I9 Y' \! o" ?3 C/ @7 q. l
; {  N3 Y7 n+ ^( L*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。
; e5 X) ^. w' D. T$ h3 e& M3 g+ W
. o1 n0 g' w; Z0 k! p* ~3 ?; }, j6 Y. w- p
LUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!
: A8 e2 g# f' x5 X( y+ E        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!
4 |7 [8 ]. ?5 Z        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!1 f; E& L+ O: l2 H. H9 }! l: m9 |
: Z% u2 I( K0 d8 p8 d+ e0 Q6 k
######如果需要重新配置##########
+ ?1 ?' \6 C- r. j& n5 A5 |
% r$ V# ^2 Z# N9 b' E% H% x7 p方法:使用命令1 Y# N+ H, p+ F+ v
. A9 k$ u3 Y% `6 X7 T
rm -rf ./tmp && rm -rf .config) l$ q: Q' w9 P) [
make menuconfig
! V: K5 q( Z1 \7 q' \4 _7 H% G) ymake V=s -j$(nproc)- `7 z0 O! f$ X. Y% L
; ?; K* Y7 y& ^% D+ ?
6,下载 dl 库,编译固件 (-j 后面是线程数)3 e# f5 K: O$ H' Q
- _' [7 {1 V1 U  V/ o. W. N
make -j8 download V=s                     下载dl库,V=s 显示任务详细情况
2 T$ X% w% x+ @( mmake V=s -j4                                      4代表线程,根据个人实际情况调整( s9 v6 h/ r1 q/ U+ ]1 F
- V% D/ l2 J9 z3 c& `, p5 w$ Z
如果编译失败,可以执行以下命令:" V4 r* M3 [) P' S
5 b; w. f5 y$ L
make clean               删除编译目录/bin和/build_dir目录中的文件* z5 F6 c# C1 J, ~+ T8 F
make dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。
( f! S' T6 S6 A2 q' B
, o1 E& @( M6 l" r7,下载编译压缩包, h) e; L5 K. f% c+ a# p

5 ?4 T3 U3 g" @1 O8 v- k编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。
4 E+ {; _+ E# Z$ r  g; X7 l7 m, |5 D+ h) ?- v
开通SSH登录方法:7 U" B  w+ @: {: b1 [, a2 t
) |; y9 d  B1 {( c
1,必须切换成为root用户% X( ]8 M2 p6 T. N, z
sudo -i
: v% R3 U) W+ G7 y3 q; A( p) F2,先更新软件列表和更新软件/ X. u  N: Q9 J; G
sudo apt-get update
8 ]& H) {& E0 p, h3,先更新软件列表和更新软件. K+ M% G1 c8 O  q
sudo apt-get upgrade
/ K( ?7 Z7 J* R. g4,安装ssh5 M3 G* _+ w  i3 o8 \
apt-get install ssh
$ {$ b% _9 }  v5,启动ssh服务
9 [# m3 O3 F5 b( C0 ~" Lsudo /etc/init.d/ssh start
/ c/ V3 }# p2 |* [8 L3 G. n6,检查是否有ssh环境9 x+ t  Y( W4 C0 V$ v8 n" }; w
ps -e | grep ssh
9 R3 G5 a7 S  O/ I
1 S* ~5 O2 o$ x/ R+ m9 _6 Jubuntu开通root登录SSH权限
! {+ E" N2 w$ I8 f' m5 _- R3 S  l9 ~
1, 使用普通用户登录后切换root
' v. n+ K3 L+ qsudo -i  O$ e( o: g/ O4 A9 X" E
2,创建root管理员密码3 J3 X* {3 X" u' d/ G$ j
passwd root
6 u0 F/ u9 }8 ]$ O: `' q3,开启root登录
' {; ]! _& {  h' q: T$ Nsudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
7 Q# H" Y9 t8 E: h% o4 g4,开启密码验证* P4 S+ i) x  I: N: u
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config6 c- t# ^: a8 L$ c& |( V4 |" X  H
5,重启ssh服务
* [5 [- v" Z: J5 ]5 l; Iservice sshd restart
1 N4 b8 |/ w. u5 E, f! n& i0 m6,检查是否有ssh环境
- X* O& r. N! u% Jps -e | grep ssh
: _1 X7 y! d: `+ O8 t+ E+ h, r& h% u" L" Y5 ]) ~

# @) O- d- }! i% p- A
2 T/ X# W1 x$ \# ?* J+ s2 J# n1 K. H- {3 Z9 S. R  w

6 e  t; e& X7 s5 e7 ]" d1 c, O2 Y" ]5 m5 G" a+ ~0 n  ]

0 y* J' @. b6 G% ?从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)8 ?2 R6 p  H  R7 X, n: S# i5 a
7 S1 l+ p$ {" Z+ j5 M9 x/ `$ @
回复

使用道具 举报

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

本版积分规则

QQ|华强北 电脑城 龙岗电子世界 龙华电脑城 pc4g.com ( 粤ICP备16039863号 )

GMT+8, 2025-6-17 13:40 , Processed in 0.089901 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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