找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3412|回复: 0

openwrt编译DIY

[复制链接]
发表于 2016-3-28 00:44:45 | 显示全部楼层 |阅读模式
   这一期和大家来分享一下,如何打造属于自己的openwrt系统固件,其实编译真的很简单,只需要按照我的方法来操作,保证你也可以成功编译。
" O6 B8 U0 F4 c2 G9 N# C# c7 X  h: \( e( x! E- L: M' |! b
4 t3 r' L: j9 {8 _# \
开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:0 P& I! h& g2 c) Y) f
( Y" F- G1 v' v9 q. B. H2 A& K
第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。
7 S; a0 @) K! N' E3 {& W/ _( ]6 N/ b* ]4 C
第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。
5 c- x4 ]' O! b7 R6 U6 U3 H5 B9 J7 S; M% `8 @
      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。
% \# |+ E1 j/ Q$ C2 P0 ~! t) N+ C
1 W7 x' l3 i+ q( A# R- s3 H
/ Q3 }( a8 A" Y& X6 h2 I  J
编译openwrt系统固件,主要分为三大步骤:
' q; L2 G; S( u, E" ]7 V# d8 N1 c! F' E7 D8 _
第一步:安装虚拟机

/ A1 H+ S% i$ Z5 F7 m第二步:安装ubuntu 22.04系统
2 X2 D8 M+ p7 k; }1 X3 g; P第三步:编译openwrt8 D( f; U% d) g# g: d
视频安装教程
4 b* @* W5 `- H! T6 @
& w* T' w' t( M' n
, m8 u$ o1 H" J* f. k( o
图文安装教程
5 K3 L+ R8 U. @; f9 l2 P4 U* F! o/ a
5 J; B) N( e5 ~; W$ D! p* r6 s
一,准备工具:
4 S0 p, k5 @( t, U+ H! D) f" F
" ?( @, Y) c- L9 p2 d! v1,虚拟机软件VMware
% P6 z4 f: W( u2,ubuntu-22.04.2系统
" I' f4 f$ ^0 I* S+ F' {3,SSH登录工具 finalshell
; R2 q/ u7 M: d9 A, `4,科学上网工具(自备)
/ u2 L  H. F. M6 I  ^  @; a2 j: E/ p  v' U0 q4 E- l
配套工具:点击下载
) T6 w( E7 o' q, V+ Y. E  t2 |9 R1 C) z0 a/ B# T( d3 r
二,环境搭建:3 H2 @/ ~3 F; r3 \' Y

. @0 j3 k8 A, \1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。7 ^( u  Y6 t: t2 b
2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!6 [+ o( \7 g% l3 B

2 F, e. i1 _1 P3 r' `4 O- ]1 X6 w三,编译固件
( [7 }. W3 x0 S; |1 g! z) g' u& c& z" N
注意:
* `' N1 i; G0 B' ^$ |1,不要用 root 用户进行编译
3 s. \# s" l! h" W$ a8 ?! A8 d2,国内用户编译前最好准备好梯子9 x8 G. n; ]* ?
3,默认登陆IP 192.168.1.1 密码 password
6 S" e2 `2 ^3 y8 t—————————————————————————————————————! F! M  k$ ^1 s, X& t0 g
1,安装编译依赖* {4 `' A7 s& ~

9 C  W, x+ b: G9 S0 }sudo apt update -y, t( c7 y* `  m: R5 E
sudo apt full-upgrade -y- }+ X$ U. j& b6 B
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \) E* h  y! O* T3 A% T! B
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \5 S- c1 S/ U5 Q
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \8 R5 K. k: z' b9 E: `9 |* `  y
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
. V; F  ]3 K4 smkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \
/ f) v8 Q; V5 z3 G0 R; p  ulibpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev; X/ ~( F" F* ~% X* r1 f

, \) @5 \* H* C) A( k5 q7 g* @2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!
' c3 F; ^! U) R1 M5 D# w
, M' T4 C) s, G; Wgit clone https://github.com/openwrt/openwrt                官方版本) ~8 e6 Z: e, k5 j7 N- W4 j( Z
git clone https://github.com/coolsnowwolf/lede              lede版本
" r  u/ ]& _% Rgit clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本# Q+ z- e5 g5 A6 K
cd openwrt                        切换到文件目录3 w. T. t8 O/ y+ e3 k7 C" n
& L/ s$ a# J" a) l2 e7 |/ C
如需指定openwrt版本,可以使用以下命令4 A# d2 o5 {3 z9 @( Z: w

6 I5 K2 K; n3 @& xgit tag                                              查看稳定版,回车键拉到最低,按Q结束!
# u: v2 a! Q6 v$ `% agit checkout v22.03.3                      指定版本,红色部分位版本号  ]; ?9 X9 f; J& s  Y

4 Y) c5 v& E" O) V3,添加插件或主题
. m3 [5 l: r2 W1 _) H8 d( l
7 B: y" G+ W6 [7 `( r打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!# r  H/ ^- a6 R9 H0 h. i& u+ N) s( f
- B! G' P7 |+ c- i' n0 F1 k. f' R, z' U
src-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加6 C6 f1 D* ~& l, X1 |/ e
src-git alist https://github.com/sbwml/luci-app-alist                     Alist插件
/ Z5 a) \# L( l4 N; T+ ?$ Psrc-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages9 K( F; Z& Y+ m% X" Q
src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci+ @( W/ }2 E9 g3 d
src-git kenzo https://github.com/kenzok8/openwrt-packages. [; g& K) H/ o) D
src-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题: d+ B& ~3 U, h* j$ y3 K6 M
9 C+ v! ~) L2 v) D) T0 Q7 j
4,更新源码# f9 Y, }5 F- n

8 r1 G7 |; V9 i  E6 r/ I./scripts/feeds update -a                更新源码
2 m  ?1 I, E) E4 ~. N. d; U$ P./scripts/feeds install -a                  拷贝源码
) m9 J0 a0 T( [' R
* D. i5 c9 ^9 \  g$ U8 q5,定制openwrt系统
, D9 k+ ?+ f( t: a  f8 f, z
! I' w0 d) |& C! d8 n5 |; p2 Vmake menuconfig 打开openwrt配置面板
: F. y$ D0 I+ W, U; y9 |; s———————————————————————————————————8 q3 T: f8 m' B; T! U2 n7 \
#必须设置项目(CPU架构,镜像文件格式,)
: ~+ w/ r1 c: Y3 Z. r
6 `3 m5 B6 Q- l; M, d, GTarget System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)
3 k7 J9 |! J" z( ^  d( CSubtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   
1 ?* ^* b7 }3 R. i6 }) eTarget Profile -> Default8 h  v  e+ F" W7 P1 a5 x
Target Images -> tar.gz" G/ y6 x3 U9 S, O/ e

% H: t6 y# `4 s. f/ N6 kCPU架构查询表:点击此处
/ e( c6 Q6 Z% I/ z  k1 J  p/ _
" p; n0 Y. ]3 |- L" Y& @3 s*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):
+ s. Q, [' J$ D  }, i2 v2 r9 |7 C9 P+ ^& [
Languages -> Perl
$ L8 O  o0 d' a- T- {                            -> perl-http-date# t, J) Z+ }* u) h) [" H( |, C
                            -> perlbase-file, i4 [2 o) b! I5 c
                            -> perlbase-getopt
% P) B+ U2 k6 G' a3 a, s( t! }: l                           -> perlbase-time, H, t6 v0 D+ Q6 i" ]
                           -> perlbase-unicode5 X3 v3 g% {7 `  U( L* U& y
                           -> perlbase-utf8
+ j+ B# E5 `% c% t! C% J+ j
9 B3 _5 _) Q; @4 {2 m1 HUtilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz
8 I; R0 w* T5 F- l4 A! `             -> Disc -> blkid、fdisk、lsblk、parted8 w0 x5 u9 w/ m6 f8 I* t9 ^
             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs  S* |( {2 F9 t, _/ U
             -> Shells -> bash
- h! ^0 l7 ]# G: a0 p* f            -> gawk、getopt、losetup、tar、uuidgen
* B9 x; K% s9 T/ K0 N5 e$ i$ Y" A4 A; w! O/ t7 v, h
*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware
% h) h1 R+ u( w6 Q% p2 H
# g5 Z, k* i+ C$ S% Z/ mKernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)' F  u, U* l" ~* G% s. k, V4 R
                         -> kmod-brcmutil
9 Z! i9 X+ f- I                         -> kmod-cfg80211/ V6 h9 n. h) ?  J5 r
                         -> kmod-mac80211
4 |4 P0 o, h* p4 m+ j6 s                       -> USB Support -> kmod-usb-net-asix: b  R) P% S) R
                                                 -> kmod-usb-net-asix-ax881791 `7 t  Y( A# _
                                                 -> kmod-usb25 \/ ~6 R  i7 c, ^
                                                 -> kmod-usb3( G5 `. B1 W9 ~1 x
红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!  n/ a/ O2 a& @) J7 S3 m. e# X
9 }6 J/ s" @$ S8 J  a
Network -> WirelessAPD -> hostapd-common
2 E) h: p1 ^) h5 _; X/ i3 o                                        -> wpa-cli
- c4 E: M4 ?# n0 \* K5 m                                        -> wpad-basic
3 q, g, I3 j' r- [5 ~6 `1 l              -> iw
( k: i! Y2 ?+ e  i: s
3 \# D8 j9 J& ]8 z( g- }*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。
1 e  m7 I9 a6 v1 r% g5 Z2 a0 Y/ t; Z, d* m
/ R$ \% [, a4 O; `; v2 U- C0 E0 j
LUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!
  U+ P3 ]/ w, Q# u5 z) B% u        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!9 S5 w2 k8 l# b( P
        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!. f0 Z- D3 k- `
% k# z. d% p" b* d/ ]) Q( V" \) J
######如果需要重新配置##########, u. ]% x+ l3 [

6 p9 c* h/ z+ q& V8 W* v方法:使用命令* E/ P, |0 t$ }: _4 O
( ^& j, k3 ?* z. ]' D1 J" V
rm -rf ./tmp && rm -rf .config
. n5 {0 @8 G5 g- A: \1 \- ~( R% Hmake menuconfig
! {9 h4 V( F' R; k. o1 ymake V=s -j$(nproc)+ ?$ q0 @2 P( q( }' ]; J

/ W7 B" O4 @9 {5 h" e6,下载 dl 库,编译固件 (-j 后面是线程数)
3 T: o1 u" \9 L9 K% o& h; [+ N1 j- p) m
make -j8 download V=s                     下载dl库,V=s 显示任务详细情况7 b  @+ _4 b3 e
make V=s -j4                                      4代表线程,根据个人实际情况调整
- ~2 ]0 A/ J" `: n: x1 X: u5 a9 c; I7 Y8 u& e% j! z8 n
如果编译失败,可以执行以下命令:
1 g! K% q2 h+ n8 r5 N" \! g4 P0 D) q: [3 L2 @- t9 z7 u  M
make clean               删除编译目录/bin和/build_dir目录中的文件
% n. M; X$ e* G& omake dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。
0 \% e) o7 z6 W! N# g8 [
" n& ]6 O1 y+ _" J7,下载编译压缩包
4 T# v& X0 B( s& d/ H& @5 z( A2 h5 B$ d6 ?( T7 w% i5 Q! ~, y
编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。
9 }: T0 `' ]/ q2 B+ n" m8 F
4 _/ a8 _) I7 ~. c开通SSH登录方法:- v: T1 G. F, a4 {' w7 ?( g

/ I2 i; E' E* @: q* A" M1,必须切换成为root用户# a4 S' p4 }8 }1 i* x. x0 y4 ?
sudo -i
: e4 Y+ P; G/ }2,先更新软件列表和更新软件
# Q, m& @* X' hsudo apt-get update; p6 |3 y7 t: ]( e, P0 Q
3,先更新软件列表和更新软件+ K" o0 j7 O9 ]( x! g
sudo apt-get upgrade0 F$ t! H0 w. {/ Z9 y; O
4,安装ssh" V. z! g& W% E% O5 Y: j4 Z
apt-get install ssh
! U! d6 N4 u" K& i+ B5,启动ssh服务3 R8 j  T7 ~; W7 q6 P$ P% \
sudo /etc/init.d/ssh start
1 N) {* p  |* L; V6,检查是否有ssh环境( U) M0 U1 Q9 u( y! s3 l
ps -e | grep ssh, E( C0 K( {+ v8 e# H" z6 o+ w

# ?3 u. v: d1 v' V; aubuntu开通root登录SSH权限
) q) D0 U9 s  J) z& B. I5 y. N: n8 f# l- G. P( x4 g
1, 使用普通用户登录后切换root
: y$ k$ p7 l1 S* W/ g2 Q- asudo -i+ R# D; G# g/ o4 r) w6 t, M, z  M
2,创建root管理员密码6 m7 f+ V/ V5 j/ W/ F4 ~
passwd root! H1 A) N9 K0 P0 d9 ?
3,开启root登录
/ m0 p) O. u) L& M  i4 P! H( lsudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config0 s$ _5 z" M2 K. F% s/ F
4,开启密码验证) ~* _9 ?* M3 Y% G
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config
' C$ A7 `/ Y/ y8 ^$ h5,重启ssh服务
+ e- X# p. L. ?) m  {service sshd restart
% N0 f- i# b- i9 {4 G4 ?6,检查是否有ssh环境; A5 ?2 ]  J. X+ [9 X+ N) N  s
ps -e | grep ssh, k8 Y% D- U5 T* O( t1 A5 X

0 q6 ?- e! w& n+ m* N0 [0 o: d, A0 J) o! c- l6 w

3 R0 h+ K4 _5 x" w2 @: C
: r: |0 O$ s; S- n, R: C. N0 l. R. }' j6 l
, w' |3 x. H6 ]$ Y
2 r8 H- h" ]' M8 v+ c- O9 x" U
从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)
% F: c- V* U; D# A# U; u. t5 K, H4 ^
. E1 D9 R+ y3 s. M& L0 H: c+ M
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-7 12:16 , Processed in 0.093780 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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