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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3097|回复: 0

openwrt编译DIY

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

7 C) a! }8 \4 l# C3 L; d
9 z% Q# m6 s  }9 c/ @* K- D/ x开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:
5 r/ D! f! t" @6 g1 v7 ^- A! T; E/ Q: @. f% m' l. ]$ ~
第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。/ q0 k' e* J. n2 X: a

1 \- h4 b1 V- v- z第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。, `' K3 t: [0 C* V6 T  |

( |) }% l8 S5 _      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。$ o6 C0 ?( E) ~
6 \7 ]3 N' @4 `4 V3 Y6 l1 r& s
7 o. {: h0 B8 W7 b$ x) J$ F
2 s! b; \  s0 j. w2 V" ~
编译openwrt系统固件,主要分为三大步骤:
0 d! g$ w7 Y, k# s. Q
( j$ z+ C! M( B/ E第一步:安装虚拟机

1 n( S, z* Z& {- e+ E: l第二步:安装ubuntu 22.04系统" j4 J! v# ?. B. c' \6 |7 B) K
第三步:编译openwrt
9 x$ b" j- W- H  c% w2 n
视频安装教程

" \9 Y! j( E5 X

0 [  H1 A2 c5 f4 V9 @2 X: s
  E$ U- `; a$ B# g, |
图文安装教程

# E" o! g4 ^6 w
0 ]  W0 `( f6 d一,准备工具:
8 r8 n$ ~5 m# e3 k9 O+ V
1 ?3 X( E0 Q- _1,虚拟机软件VMware- S( w0 v1 N' Y8 D. s# Z6 l: h7 n
2,ubuntu-22.04.2系统) D: @( Q1 [; f" {, ?# }
3,SSH登录工具 finalshell/ m3 A" y! ]. {
4,科学上网工具(自备)+ I9 _) z/ A# i1 U5 P
1 D! p$ A7 S8 {9 i: `3 N
配套工具:点击下载
" H6 I' j9 T# s5 `" {) W
2 W* c1 J7 ~+ R' V二,环境搭建:/ A& }  i# S9 Y; }

. m  q6 b) u. h* a1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。# h/ R6 _' o. h0 D
2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!: m3 u  d2 d6 e, N* T

9 g" l- S7 L: ~! F: @, ~; _  e: P+ Y三,编译固件
( ]4 R" ^. o! u& |
; Y/ g1 Q! a  c/ t% o注意:& T. o' I' ]. \' }
1,不要用 root 用户进行编译( R% v% `) i; c! ~
2,国内用户编译前最好准备好梯子# M  X! v% q, {$ S6 {$ m' q" Z
3,默认登陆IP 192.168.1.1 密码 password
$ [" W2 ^/ k  H4 P, `1 p—————————————————————————————————————/ s& K8 P" x2 C
1,安装编译依赖
2 a7 W7 @7 f( \8 k* a" O$ B
0 x) {, v/ A3 x& h5 O# ^sudo apt update -y) c! @6 u: z1 ?0 M! n5 T! E
sudo apt full-upgrade -y
9 G9 W. e/ z+ F& e, L% V5 Wsudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
7 u: R7 c+ c+ L7 Y3 W) ?bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
- i1 `" ^; v5 K9 j8 wgit gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
5 C1 F3 a8 d; X1 `/ Ulibmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
: u) j/ r) v# v; ^mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \
& \) v  S5 R3 L4 \  g# jlibpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev4 A" ~$ l8 Z9 A# C  I" `
: S: Q9 ~' d4 M/ j# A
2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!, U' `. C2 a& L

1 b- }8 s" A( L1 Ugit clone https://github.com/openwrt/openwrt                官方版本
) O* [( i7 B9 q( l  Q: a7 vgit clone https://github.com/coolsnowwolf/lede              lede版本& w* z3 h( G8 z* o
git clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本+ Q2 S4 H# _1 m8 w
cd openwrt                        切换到文件目录# I6 v" ]% h3 v1 d- ]9 @
# l; m/ a9 Q# W+ U" u$ ^; J
如需指定openwrt版本,可以使用以下命令% u/ }; I4 r8 [7 Z, v) Y

5 [6 z9 E# v, w& @git tag                                              查看稳定版,回车键拉到最低,按Q结束!* L) B+ u2 K- V6 ~0 E' a. z$ y
git checkout v22.03.3                      指定版本,红色部分位版本号- ?1 j8 ^+ U7 h0 }/ i1 g( q" A7 u4 o
9 @9 [, _+ @/ O$ K  R
3,添加插件或主题
# K3 ?2 o* n7 q- }9 @& R/ @
5 J: ^2 w% [4 B打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!1 o* n6 u; U7 I
  w. C6 a- k7 G6 Q; p1 `! E
src-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加6 A2 b7 X. {/ }+ }% X2 l# U1 e, m
src-git alist https://github.com/sbwml/luci-app-alist                     Alist插件$ Q  R5 V+ |! U, d3 z* q  r2 x
src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages
% J5 O. Q% K6 Q8 ?; ^9 h& ksrc-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci
7 T0 X5 G" ~; k; i0 ]0 D7 u+ Z1 |src-git kenzo https://github.com/kenzok8/openwrt-packages( `1 N4 ~+ s* b% L) N+ ~
src-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题+ H; K( }3 m& P& }& s8 x8 h

. s$ \1 U. p- O7 ]) K4,更新源码7 a* a( V$ \- G
9 Y& |$ a" f  Q3 L
./scripts/feeds update -a                更新源码7 W1 b( H! I* j0 j9 U
./scripts/feeds install -a                  拷贝源码9 u+ ?8 a; B$ A* m, q# ~
& N2 f- w( k* G7 g
5,定制openwrt系统1 {; O2 z1 C6 c# r5 |5 H! o3 ?) t
7 _. n' ^# r% C! k* t
make menuconfig 打开openwrt配置面板/ B" S& D8 `/ w2 U  Y
———————————————————————————————————
6 \# `0 T0 D3 s#必须设置项目(CPU架构,镜像文件格式,)
* W  M" z% w9 Y! @6 x$ a" q! z% f  `/ X$ @- N4 T
Target System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)( L. H0 V+ Y' `
Subtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   : e  Q! B! e- j9 Z, X- r6 C) @. Y
Target Profile -> Default
, `: ]& B. z8 G8 }) l' Y* OTarget Images -> tar.gz7 V4 F9 Y' c" r. p
- F# |4 Z" C2 \5 Q
CPU架构查询表:点击此处
/ r% K' q) h7 m2 ?- Y6 Y0 s: t; v: @! Q0 v* z2 c* M
*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):$ [' U- ~4 Z9 n/ [+ k
4 m" |( t# s$ m
Languages -> Perl
0 b# V! O* ?' }3 l) n                            -> perl-http-date
( u( V. _% V2 E+ Q                            -> perlbase-file
8 P# a3 a7 l) |3 @" G: Y( t                            -> perlbase-getopt
* D/ p# R; V& i$ @                           -> perlbase-time/ @9 V$ R3 ?& H5 h! E
                           -> perlbase-unicode$ h# ^) a6 P* |3 n; K
                           -> perlbase-utf8
- ?  t* I# v; y5 f. x6 g- E4 e8 G6 ^7 g; |" y: K
Utilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz
+ e9 v( b  I7 X7 }( @$ z             -> Disc -> blkid、fdisk、lsblk、parted
6 \  ~9 t8 `) J/ w6 B& Z% t- B             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs+ {" v$ I0 ^, _# [6 `9 v: u
             -> Shells -> bash
- I1 I7 `0 \; Z, E            -> gawk、getopt、losetup、tar、uuidgen
# O8 A" G3 o5 X
$ q' N* x% g1 l4 e% U. e*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware
& }- t3 B+ n3 U* z" A/ n
% Z* ^. n) ?/ o2 O; j; I- JKernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)  q: w# F  {. H  j
                         -> kmod-brcmutil
- Z  p' {7 y: l0 o8 y* N: f, a                         -> kmod-cfg802115 i4 i3 H) R0 J1 K8 {
                         -> kmod-mac80211: }+ [! P8 {( J! M8 s2 M; o/ A
                       -> USB Support -> kmod-usb-net-asix; {, W' z- T0 z* W; r
                                                 -> kmod-usb-net-asix-ax88179
* n1 {  a$ `: U" z1 ?                                                 -> kmod-usb2
3 i  k) W/ y6 A' v* e+ \& B                                                 -> kmod-usb3$ e: }- b) S0 Y% e1 b# t
红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!! E' o; N- k3 s( S# v* D6 r
# a$ e5 ^# V" y( t1 B/ W( q' ?
Network -> WirelessAPD -> hostapd-common& H( X4 _2 J1 l' u
                                        -> wpa-cli
$ z' A. q: [( M! a) B# ~                                        -> wpad-basic
2 _/ j2 M8 r. p( h, `. v4 F              -> iw
& D$ l( {" J$ Q: o+ z+ e7 @7 e
4 q% b, I+ O+ L*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。
# t3 l( A7 C4 J( Y/ @' Q$ |) F# z6 n9 ~; }3 k- y1 s
2 f' N6 e2 ~) N9 B& w4 l$ x
LUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!) K3 i. D* N3 }1 I: w
        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!
$ J. T# P4 Q1 h9 b% I        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!
0 \/ s" o) `# z3 ~5 W% J( j9 z0 a, `% G# _% R% s
######如果需要重新配置##########
' u! u  s% q0 [3 |; M# d( i) v1 I* {
方法:使用命令
5 ]; |2 d. m3 }  U+ M' u
) w" t+ k: u- h4 _3 `rm -rf ./tmp && rm -rf .config
+ Q: @4 F  f9 [1 }$ smake menuconfig
7 d6 U% ?* r, M% Bmake V=s -j$(nproc)
5 ~5 r) P8 \, v
" H$ E$ ^/ A7 l  ?8 h6,下载 dl 库,编译固件 (-j 后面是线程数)
% c7 S( P4 E2 ^
6 j; c- @, j: i  nmake -j8 download V=s                     下载dl库,V=s 显示任务详细情况$ I0 E7 V5 M8 ?) o/ F; m
make V=s -j4                                      4代表线程,根据个人实际情况调整
) @$ [) V3 e8 M( f$ o. n( P: |9 _/ w1 |; E7 W  t
如果编译失败,可以执行以下命令:
5 C* r4 v2 i1 L' Y( ^/ A
$ Q- s- P  l7 d2 T/ Fmake clean               删除编译目录/bin和/build_dir目录中的文件5 e( Z' T7 q! G  e8 @
make dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。- r0 S, [- v/ j( ~6 g

7 u, w  L8 `; Z4 c# g7,下载编译压缩包
* K* v" K: U% c3 ]3 |& }+ x+ ^) [( h% F3 v+ \& c+ T- v  x0 g2 `# c0 _
编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。
: ~6 a/ n: b( R+ P  o. Q& R2 l5 c7 C4 e. [
开通SSH登录方法:) Y1 o) _! J; A, C! D

. p/ n9 k3 V9 [. e+ }4 }, I! a1,必须切换成为root用户8 `) q1 U* T( K+ G: g* @/ O' o
sudo -i" C2 p4 s+ H- ^2 H- f: A& B2 F
2,先更新软件列表和更新软件8 l9 s( N- `0 e
sudo apt-get update
+ ?8 {" x0 d5 P3,先更新软件列表和更新软件9 c/ \. H3 A3 E* S3 j
sudo apt-get upgrade
& @7 [1 a6 m2 Z+ {+ j4,安装ssh
0 C' `" m, y$ g2 ]% r6 n' u) Bapt-get install ssh
  Q( o4 C0 e# K/ V* I5,启动ssh服务
9 ]: v: P) b5 h6 A. I' z0 Q& ^sudo /etc/init.d/ssh start7 v& D7 f7 z8 u+ `
6,检查是否有ssh环境
& J! `3 E- l* {6 Sps -e | grep ssh
; A! q( `/ p! D8 T
" K& R4 v% p9 ]$ Fubuntu开通root登录SSH权限' P; _1 {! x4 \4 |3 q

, |3 ?8 v$ F+ Q1, 使用普通用户登录后切换root$ M6 X4 ?$ {# h$ r
sudo -i
* j* P: ?! ~: O3 e# N2,创建root管理员密码
0 Z! w& q& g/ l9 a3 F3 z  j( Xpasswd root" J7 ?9 ?4 c1 W) m- b# I
3,开启root登录
+ \5 P$ S- f5 x" Y" vsudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config0 J- C- f/ v. C. v9 g, B. a
4,开启密码验证
& C" U. x; `3 ?5 X9 P' r; hsudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config+ t6 L4 o% }6 \4 K8 ]$ \" V4 H4 I
5,重启ssh服务* K! i& T3 k8 A* h3 O
service sshd restart: u& ^+ x+ J1 E/ L/ L5 X$ m+ S' K
6,检查是否有ssh环境5 A& d. m3 Q0 k, u* o
ps -e | grep ssh2 I% p6 a! m4 T% |* ^; \: u

8 f' V2 U- n* L7 w1 x/ Q) n: S$ d
* w0 _9 S0 a, A5 r8 B$ t3 K
* Z# ]( _$ ]- c$ z! X
! A5 k1 K8 L& Z0 T$ t+ k5 }! c9 I" V* b' G9 Q% _6 z; k# ~8 s
) G: {, r. G4 B  w3 Z2 j; F
" ]& N8 z1 [1 t/ @
从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)
  z$ U" A8 Q1 D( V* U

- \* ~2 o3 \0 ]* ?3 C- G
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-20 04:50 , Processed in 0.094297 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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