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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1957|回复: 0

openwrt编译DIY

[复制链接]
发表于 2016-3-28 00:44:45 | 显示全部楼层 |阅读模式
   这一期和大家来分享一下,如何打造属于自己的openwrt系统固件,其实编译真的很简单,只需要按照我的方法来操作,保证你也可以成功编译。* f6 J$ E# R# h5 _3 R' N7 u. C
6 B$ F9 k' ~7 b+ @

% F9 l/ a8 G5 E8 `8 X  X开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:
8 r% @- u" U! e' a
1 g3 u$ t) G# w$ ^$ w0 J第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。# ?1 L  b+ q- D4 c3 A; p1 M
/ G' _" c/ f: w- R- S0 a
第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。7 {6 T( }& s+ a1 F

2 q" T/ j! B  b% W/ Q; [* x) n      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。. S2 r& s: y3 I5 c7 q

& S2 H; z" w1 P  \4 B
& M2 b/ V& b. m
  q$ f" }: S* P) X; M编译openwrt系统固件,主要分为三大步骤:
( Q/ S3 c0 _% |5 n6 z- h4 b0 x: ?+ {) Y& \$ c- Q$ W4 m
第一步:安装虚拟机
1 O% O/ K, E5 _7 j& z
第二步:安装ubuntu 22.04系统
; u0 x& Y( i9 f第三步:编译openwrt; |0 B9 B( m1 {* T( y
视频安装教程
6 Z; W  H; y$ x9 ~
1 q/ d8 f6 n( D1 Z* Z
9 h1 y+ _. i9 V- _
图文安装教程

8 F% Y- [' E" A0 T$ m% w2 W, G/ a' l7 f- g# z: l; p
一,准备工具:/ F+ k( p, a: v2 @8 u; v, Q
! \3 A. ?% O2 U2 @1 B) k5 ~, `
1,虚拟机软件VMware5 R' K+ ?. P% O
2,ubuntu-22.04.2系统
: U, k  x6 a. h3,SSH登录工具 finalshell4 t6 \4 D5 |+ [( M
4,科学上网工具(自备)9 Z# D5 ?% A+ Z/ W' H4 Z3 i

0 p0 ?. x1 ^% e$ P9 Y! H* X配套工具:点击下载
- t" G5 `7 @, V0 y6 n& s9 y7 T3 X9 x6 _! o. d" @( ~8 f
二,环境搭建:
; h* k3 x' p3 z) S! U9 P% y3 a1 T7 G. W* N
1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。
, G8 `: H' E% `# X6 d2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!4 M8 p0 C2 C9 l) x! q( S
  s3 l9 v+ C2 O! R
三,编译固件9 @" R8 N; `. }$ _) G9 T- W

6 L5 U3 {  }& ^# \; X4 b2 S! \$ g0 y注意:, l% u9 G% p7 g. U
1,不要用 root 用户进行编译
& ^( ~% m6 f9 n4 k. Y5 b* e2,国内用户编译前最好准备好梯子6 K: b. j) X5 N' y3 l0 L
3,默认登陆IP 192.168.1.1 密码 password) A$ p. y* ]/ C; J6 b
—————————————————————————————————————/ b7 K1 L; H6 ?2 M
1,安装编译依赖* Q6 p" H" U) M( r$ w1 {) d

4 t' z) z9 J+ Q: e" x5 C1 b3 Xsudo apt update -y+ V( K8 a# O' X
sudo apt full-upgrade -y
* N- P2 }' a: ^4 Z3 a" Ssudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \+ }: ?' `! v' l- [
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \0 u8 {# O2 `1 r+ \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \) d; ]8 a  A* v: B7 ^" E
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \- `5 d! l9 X6 v, f2 p5 E: L
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \7 X: w0 ~! B2 t" T6 w1 G5 B
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev
& A9 y6 }+ u* k# w7 c: Z8 v3 P6 a' E; H% J2 D- T
2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!* N3 k8 |9 X& w- S* p

" e0 L8 I3 b, |+ s  vgit clone https://github.com/openwrt/openwrt                官方版本3 ?; T, [! G( w. R
git clone https://github.com/coolsnowwolf/lede              lede版本( N( N- A9 q9 L5 g
git clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本
& Z" N: @- @' scd openwrt                        切换到文件目录  H& H$ ?  A" j# u" u

2 T8 g$ I8 d) v* ]  P% j1 c如需指定openwrt版本,可以使用以下命令
; [  R+ S0 c* L1 M) n
( ^5 G& d2 V% e9 L- o. lgit tag                                              查看稳定版,回车键拉到最低,按Q结束!# f$ U2 q; F/ Z* a
git checkout v22.03.3                      指定版本,红色部分位版本号
2 u" i/ n9 n# |% b' s: E$ F8 ?9 J, _3 B% A. e) ~: r
3,添加插件或主题
5 K/ l/ u3 w/ v' v) O7 ?: f0 ?) G; {. m  g/ q  Q, H
打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!
4 H2 E. C& J# T8 j+ ?- `
1 Z5 R# G$ F5 \9 Usrc-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加; A, S0 l3 @0 C
src-git alist https://github.com/sbwml/luci-app-alist                     Alist插件
! A0 I+ x  T  E: nsrc-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages
4 r$ T3 W3 x0 `! }4 V6 y9 \3 usrc-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci
2 Q6 u+ M  a, ?) T$ l( N3 |src-git kenzo https://github.com/kenzok8/openwrt-packages, y; ^5 P& O. o% x
src-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题
$ u& V+ [1 Z/ r, T; t2 {! E2 `) h
4 y- r* I8 c! @6 Z4,更新源码
5 ~3 o! i  V# O5 a5 K
4 r1 g- f5 Y4 i1 h: X- [/ j9 n./scripts/feeds update -a                更新源码3 X, N+ k: S1 v0 Q
./scripts/feeds install -a                  拷贝源码( E& Q! N8 A" X6 ]- J9 v5 P6 R
. K8 }+ j* t5 z9 q! z! h! G
5,定制openwrt系统
' r# u2 h: t8 d6 u; A
* R6 v, S" H) U3 |* U3 t* w, a& cmake menuconfig 打开openwrt配置面板
4 V: ^* {2 P6 j. y" {. J———————————————————————————————————7 l6 o2 C3 |! q8 {5 B
#必须设置项目(CPU架构,镜像文件格式,); C) s$ D  e# \9 H, y( H
& v1 Z$ I) o7 j
Target System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)
9 D/ L# c9 X& JSubtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   
5 V; K: s5 M7 t4 J3 s+ i/ q8 q6 DTarget Profile -> Default8 q  _& D: c4 m& V. V
Target Images -> tar.gz
  Y; |0 ~' I/ V( ^" ]- _! t' O' c
CPU架构查询表:点击此处
3 w' F' ~5 h9 I! D& f) V, X% A8 ]6 E1 f. g
*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):
. T# H! Q) g; H4 D' D  q; h- V% O+ I& r$ u, B; ]
Languages -> Perl
# n/ i- z% N" [                            -> perl-http-date
9 _7 Y) K1 n7 a4 O                            -> perlbase-file2 e* R- ?2 R7 v1 @6 h1 ~
                            -> perlbase-getopt
8 J6 d) a: v: i; p: S: q: C$ E                           -> perlbase-time+ R' Y- k' B0 u3 H# p
                           -> perlbase-unicode( u8 [% w5 Z; d& h9 }* Y8 T  m
                           -> perlbase-utf8
! P" p* B/ X6 \) }% S$ w7 P, A0 V, h) h& |2 j, Y
Utilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz0 B9 V- u' [3 L) K% r* W
             -> Disc -> blkid、fdisk、lsblk、parted
4 E  ^4 u! i8 I$ u8 B( i/ S             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs# V5 U4 O4 H& A8 C
             -> Shells -> bash& b' n2 p2 E' i, j. Y
            -> gawk、getopt、losetup、tar、uuidgen. z- h. \* E5 T  ~  N: e
( y. T/ e  ~9 _8 f2 W5 e
*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware6 m: J2 U8 q/ [7 m& f
3 g$ T8 \% s' J4 _7 ^' w# F/ V8 I
Kernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)
# H7 Z2 Z5 y3 L. Y* Q' q6 |7 y                         -> kmod-brcmutil
( ]& y+ E6 a; U( q. H) P  Y                         -> kmod-cfg802118 D2 ?- F0 Q2 i; T; i9 Y
                         -> kmod-mac80211
* W/ A+ b! G  [9 a                       -> USB Support -> kmod-usb-net-asix
, k2 k4 P! C# B+ ^9 o, m6 K                                                 -> kmod-usb-net-asix-ax88179: T% k' `: f. G1 B6 R# @
                                                 -> kmod-usb26 R; H4 e+ c  i# D$ w
                                                 -> kmod-usb3# }, J2 @. B7 j* _5 [2 K
红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!. o9 r* M7 I9 }

9 f: x9 _% w# e6 C7 LNetwork -> WirelessAPD -> hostapd-common
7 ~2 S# Z# R2 z! c& n% \1 h                                        -> wpa-cli! W1 G( l0 Z9 v; t4 H
                                        -> wpad-basic
; Y: A& e: h: Q3 e/ V/ r              -> iw
+ f: Y- j6 @$ O, O3 o9 w" v2 Y- ~! {' y2 T
*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。
# g1 i. k& n7 }6 S0 g- w8 Z6 W
" V0 C* i; w% k! O
" s  G' d, _! b8 l: ?LUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!
9 M7 _2 F! J2 Q  J        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!! _% g" u) P0 X% g9 z
        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!6 v& A8 Q6 C% E6 D; `1 d  e% N
) U, y2 i; q& s% f
######如果需要重新配置##########
9 u6 h4 Z3 V6 L; {6 {* o' e( x$ q+ O0 C! c9 u) W& q/ J
方法:使用命令
5 k! X& `, ?* q! {  S1 `( O
# X4 _2 J# V! l3 A# w. Hrm -rf ./tmp && rm -rf .config) R+ U1 @! A3 j* I$ Z
make menuconfig: l: R7 f2 u* }6 P1 a% {! |  G) y( |
make V=s -j$(nproc)
8 |" d) b5 n4 G' ~& O9 Q
2 ]$ Z' Q! p% |& H6,下载 dl 库,编译固件 (-j 后面是线程数)
0 w* l( g8 a  c. n3 J# W: }3 H" g; T. m( v- ?# X
make -j8 download V=s                     下载dl库,V=s 显示任务详细情况
% q' k: K4 ?  g2 v& _make V=s -j4                                      4代表线程,根据个人实际情况调整8 A. d7 e! ]2 g' R/ D# ?0 a" \

  P% g5 B! g6 T如果编译失败,可以执行以下命令:
- t( _2 a+ H4 `- B
7 I1 _1 I8 o$ A  o! D9 kmake clean               删除编译目录/bin和/build_dir目录中的文件
; X5 w$ k% K/ d$ y+ j& x( h4 cmake dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。, X, X+ ^: d4 O- v( m/ Y
7 d/ X" y# ~1 \0 F) R( w
7,下载编译压缩包
1 d! C8 h) k" q  i8 r3 S; Y; k7 L3 P+ w) J& O
编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。
1 q2 }6 v  s/ _) U2 n! D; B* L+ I5 x: e2 f3 w
开通SSH登录方法:
9 g! z0 u0 J1 O8 z9 e9 ]
0 ?# K# n3 K9 m6 Z# q: k# E  C1,必须切换成为root用户0 F" R5 d8 R* K8 P
sudo -i6 b5 {& a6 v# X: p; G: F
2,先更新软件列表和更新软件
$ o( |: M9 w' b( G) C4 n4 zsudo apt-get update
5 X* x. _  P! l. L+ n' b+ X3,先更新软件列表和更新软件% ^. v; o# z' [$ u
sudo apt-get upgrade8 N4 ~( X9 G6 Y7 `/ @0 m
4,安装ssh& p4 v8 b4 O; R2 u1 B; V
apt-get install ssh
" M/ `$ S- B' c! w5,启动ssh服务
- [2 k* S  E7 @, T4 A3 r) asudo /etc/init.d/ssh start
4 i2 D$ p$ y# e8 R6 \. S6,检查是否有ssh环境$ O/ e; m+ m- T: }' W" X
ps -e | grep ssh% _& r; y! l3 U& N* d

- x$ E3 U# p6 v  m, m+ subuntu开通root登录SSH权限
( f" B) B; E; d. k7 Q$ r: V$ O" j. m1 z
1, 使用普通用户登录后切换root, o3 B: d  ]: c
sudo -i4 T4 ?( U. _$ ?$ w# U# K4 p
2,创建root管理员密码
1 A2 z+ v7 m5 D/ J" Jpasswd root4 W% L4 B0 B& a  o# D
3,开启root登录
& P1 P: L5 o4 _2 l; M& b1 Y5 Rsudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
4 ]  x; ]3 Z% l  Q8 w4,开启密码验证& M/ x; \0 w2 O. m
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config
* Z* ^4 Z# i* A) U6 d5,重启ssh服务
3 N: G" l& z- L7 e: Dservice sshd restart$ ]/ ?% h2 p9 O7 O% Y3 ]1 h
6,检查是否有ssh环境
' b4 m4 ~& \7 d( S. l% ]ps -e | grep ssh5 ~0 k0 C+ |. s7 W% e9 Q8 y
& O- D7 ?& k6 M, `. w& f6 _
, y0 v  {7 g9 \9 R
$ o8 G/ `$ @$ n% x" q
" N; D, f, X+ Y

+ C  U# V' B- J- U. q- H
5 \; _5 r7 t% v7 T/ K
, _& J/ S- G& R; d从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)- J0 r: n1 m' _; _# z7 d+ e" V3 A

. z. m( G, f5 u; n% e+ i( e
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-18 17:48 , Processed in 0.160119 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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