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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3098|回复: 0

openwrt编译DIY

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

7 D! T* A5 U2 W, l& b
3 v3 y* b" Y& J2 e1 m% f开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:
1 I6 t, ~4 D  s: P8 i
+ C* Q# b% z+ v, A第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。' T9 C/ R7 k' o

8 @4 S, V# {! x* G第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。! x8 c2 h; ?7 t) r9 Z( X) {

$ R# \3 k( N+ N3 ?% ]7 y  _1 |( \) W6 X      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。
9 x+ h; r) e3 s4 r' u. Z, e
$ }8 @- m& ^3 v" o
: \1 I/ ^" s# ^/ K* L( R9 u1 g* L2 S5 r
编译openwrt系统固件,主要分为三大步骤:
3 c* o( z* Q- i* f) o+ I. |" H  x; O% m% v6 K
第一步:安装虚拟机
3 l+ X) d1 U% L
第二步:安装ubuntu 22.04系统! H0 @3 C$ M2 b! `) I
第三步:编译openwrt
0 z' X7 W! E7 K% G3 v0 W% b6 S! [, D7 h
视频安装教程

/ y' ]: {( p( W) c1 Y7 q! D# `

4 S7 D1 w+ h$ C. R+ A3 _

; d; g2 |2 X1 H6 v
图文安装教程
+ m- R5 r4 ~4 @+ M2 `) a3 x
0 y6 Z% ^3 L  A" S1 N
一,准备工具:9 Y) t( J! J9 \# \% i' G  Z
/ r4 F5 ~$ j+ j9 M+ }; P
1,虚拟机软件VMware% m3 l1 ]5 T0 v5 H' y" v* s$ p
2,ubuntu-22.04.2系统- c' t( j! v0 C6 g, L& w
3,SSH登录工具 finalshell
8 ], G8 f/ Z- B: v7 L- v' {; E4,科学上网工具(自备)4 k: |# S/ b$ X' g$ p/ T4 G
$ ]1 A  f  X) R
配套工具:点击下载! X3 f: v+ q2 s6 x

3 E* v8 `7 l# P0 g+ b: j/ h二,环境搭建:
- H4 B* X7 {, q& M, A9 ?
' ~' ^2 Z1 M' A/ {/ K* |1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。
# p0 D. p' t* o; z" r/ i: I2 O( W2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!
, w8 D$ E, P3 ]  f: @: {  W% p- H& m
8 X' c: I  k* Z8 Q* ]6 \0 m三,编译固件, K/ G3 q- |2 T/ m/ |7 Q8 q3 F
4 Q) @# e: [" N& ~6 ?0 b% j4 @
注意:( }' c* d. R" N7 y
1,不要用 root 用户进行编译
! O8 R" s1 {$ ^" a2,国内用户编译前最好准备好梯子
- w, }1 R, B7 z0 H( m3,默认登陆IP 192.168.1.1 密码 password7 H' m9 b! g) `, E) o
—————————————————————————————————————/ B/ w. A! i! r. M& ~
1,安装编译依赖7 `. Z9 S' E4 `/ w+ D, i

+ }$ a! a- z/ z. Xsudo apt update -y8 y0 z8 t( A7 h% H# ?; {' N
sudo apt full-upgrade -y
) s; ^9 X# u6 ?( ysudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
3 r% t5 d5 F3 u: p( qbzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \- u4 X( F9 w7 u
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
6 o: `% u( k$ ^3 o! r6 Clibmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
5 N3 z% p# X3 e( E) |* p  emkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \( ?% x3 s, d/ J5 R$ m5 L
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev1 S7 @4 O. k; Y) ^0 X* h
+ n0 K/ O: w5 T3 ], x
2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!. K2 N# _& [% Q! x( `
0 Z; w5 q: H$ v$ W1 x& z$ e+ _
git clone https://github.com/openwrt/openwrt                官方版本/ J8 R: C) P! s1 j5 ?! @
git clone https://github.com/coolsnowwolf/lede              lede版本
- S1 a% f: ?6 a: Cgit clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本% Y& d& u6 D8 q6 B  N% n
cd openwrt                        切换到文件目录
& Z6 G( u$ q) V7 I1 [, e  F7 r# W6 M' z2 d- f# ^6 y
如需指定openwrt版本,可以使用以下命令3 V" K* ?6 h+ a$ K9 x9 \; z: x5 @1 C
1 D, W& S. {7 ^) {, N- N$ e
git tag                                              查看稳定版,回车键拉到最低,按Q结束!  T2 W4 `( Y  u4 u1 e) @
git checkout v22.03.3                      指定版本,红色部分位版本号
6 p* y, C# s5 H- M7 v9 b
  Z/ d; O+ U: J  u% d3,添加插件或主题
9 ~+ K/ B) ]+ L7 g+ y
* u: a+ x, L0 S1 v! ?打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!
  `8 m* {+ H. _; J8 |  M: B; M' F) j. I5 P7 ]2 }- \; N6 Z" j' h
src-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加
* W1 h' S6 _& d5 g! d% xsrc-git alist https://github.com/sbwml/luci-app-alist                     Alist插件! v- t' C+ _/ i" J& l
src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages2 @% M7 {7 U4 g2 I) H
src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci
: q- y; D; P! K$ \7 }/ Asrc-git kenzo https://github.com/kenzok8/openwrt-packages2 P5 C4 _* o) x& p: a. I$ K, b
src-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题
! Y' _$ |: I! v
" R5 X/ O4 @. a( o4,更新源码
. y% G$ v3 `$ O. V* ~1 B( M5 |+ T# E; v
./scripts/feeds update -a                更新源码$ o3 B! p7 `/ I  c
./scripts/feeds install -a                  拷贝源码
/ {! O! s2 D4 t7 }3 s2 t
8 q" E6 m( k7 p" n, O9 X5 _5,定制openwrt系统7 w: _3 ~9 s! E3 [" J/ j, g! Y
- j$ k& r/ Y8 b) r/ E5 B
make menuconfig 打开openwrt配置面板% j/ C% v  C- [3 }" J- T6 @
———————————————————————————————————
& b, w+ d# j% J% a2 E#必须设置项目(CPU架构,镜像文件格式,)" u3 Y) E+ X7 z

8 }) F" _/ ?- y8 ~9 P: P$ h% lTarget System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)
- r' ~. q3 M) s" b  t5 k/ }Subtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   
$ e3 j0 g% R  W+ U0 V/ oTarget Profile -> Default& E. E% l& K' L- V! Q& m( |
Target Images -> tar.gz2 E" h- Z9 v+ Z+ i& I% h3 r( t8 D9 h
, A, s5 I; F0 r
CPU架构查询表:点击此处% X. o* p& X8 `4 e
: U9 Y' m4 Y+ j6 Y
*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):" [- x, y' J, F+ L6 p2 k
: Q0 `9 H# \9 Z& t; ?" M
Languages -> Perl
" K1 y% O, d! @  Q0 p3 v/ p' t' o                            -> perl-http-date
3 z  H0 {" y7 N& @- s                            -> perlbase-file- @, X: R; N! Y  l+ y
                            -> perlbase-getopt
2 h7 h+ `! I+ D6 {1 T! ?                           -> perlbase-time
. ]% z3 S: E8 ^                           -> perlbase-unicode- S$ Q4 G* n4 u8 ^: w6 X' g
                           -> perlbase-utf8
. w8 _& a% v+ n: P! `2 _4 y2 @) L: j* ?, x
Utilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz
# b5 Q1 |+ b: O6 w             -> Disc -> blkid、fdisk、lsblk、parted
% K" h% ?1 a. d( X: I1 E, ?             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs
3 M1 v" {+ ]0 M& G5 N             -> Shells -> bash
+ `+ b# {: @( A6 [; u  `            -> gawk、getopt、losetup、tar、uuidgen
1 R. K9 ~+ X% G: |5 r. I6 @+ S! \, T" Y, S- {6 r( V
*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware
  R0 Q" Y3 Q5 z* \3 A9 F) n. \/ ]* H* H% `0 u$ Y0 G/ y5 g2 e
Kernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)
4 W& z1 a% a2 p7 }                         -> kmod-brcmutil
( Z2 C: u: j4 Z8 L                         -> kmod-cfg80211+ `1 L: h# ~8 G8 S3 Z% {1 D* ^% u1 B4 r4 }
                         -> kmod-mac80211
% }' i3 \6 P  @. d                       -> USB Support -> kmod-usb-net-asix) p- i  l$ [$ R
                                                 -> kmod-usb-net-asix-ax88179
) Z: ~0 A- h% Q* H3 r                                                 -> kmod-usb29 y! Y' g- y# X# H0 {; \" ^
                                                 -> kmod-usb30 p+ f6 S5 X1 o, Z+ M
红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!" ^) X5 R* i  g% u3 `

/ D7 {- T3 h4 I* Z' h% C% N4 K6 lNetwork -> WirelessAPD -> hostapd-common
1 k6 N9 M  K  n                                        -> wpa-cli
; C9 E  v1 b" K                                        -> wpad-basic
$ z$ u  A3 S; d0 S              -> iw  d0 s. I+ ]8 {/ Q) Y" N2 u

2 j0 F, O6 z( F- j& t3 p*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。
# h! P/ \& z/ G6 o3 H  w! o) n' A$ b8 k5 E: W' i! @6 Z
& Q9 X/ T0 l+ h6 H) Z! x
LUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!3 K: c6 F! R. t* z, K8 `
        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!0 d, Y  f: m) Z( _3 H( d
        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!
0 c5 e" T- X0 P6 ?1 z8 u+ ~) X7 G; v) D6 }! P7 T# l3 b8 G* `
######如果需要重新配置##########. d5 \! c, m' n( g# d( T

% B  ]9 V0 a# U0 X; s7 O方法:使用命令( k7 O' @1 O" Z  F# Z
- U1 \  u& s/ E, U! R' M
rm -rf ./tmp && rm -rf .config
$ z2 h# C8 K" M. b: I# |) ?6 O5 Pmake menuconfig
  p. x) L7 I2 ]7 J5 K3 bmake V=s -j$(nproc)- h  A$ ^- @0 V/ o2 j9 f

( B/ T2 q0 s0 v5 o0 X6,下载 dl 库,编译固件 (-j 后面是线程数)8 y8 s2 Y% E$ H$ [6 {% I5 H9 w+ e
5 j1 R( j7 ^$ ^: p
make -j8 download V=s                     下载dl库,V=s 显示任务详细情况, t8 g' M1 I5 f# |
make V=s -j4                                      4代表线程,根据个人实际情况调整
& j! f$ p; [/ C" u' h8 |; Y6 {7 W8 Y7 K) ?3 A6 P
如果编译失败,可以执行以下命令:2 B2 \. `1 D. m, I
) ]: q6 L: t% m! d1 Q. H
make clean               删除编译目录/bin和/build_dir目录中的文件; P2 q9 p# k1 O1 {3 _8 \1 e: C; }; k
make dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。  c  D! A' z; n  N
0 o2 Q# Y. @0 u
7,下载编译压缩包
6 ]$ h0 x) g) @; p
1 M2 g  s2 s$ a% U5 @- m编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。, Q/ v/ h2 I8 U7 Z

! b: Y0 H# _& z8 h开通SSH登录方法:$ X+ X0 V. |* s6 R
, C& N/ J" ?8 J# N/ {, w
1,必须切换成为root用户; ]" r6 ]0 c- b( p- b3 t
sudo -i
0 Q+ I9 L/ p: ]# c0 z6 e2,先更新软件列表和更新软件
$ j: l- Z. M( N: Z' {sudo apt-get update, T! v' T8 P( Q7 t( N2 j3 ?7 n
3,先更新软件列表和更新软件& I" K4 K. H, L5 {* a
sudo apt-get upgrade
$ V6 M2 P& m' A1 }1 P- d4 C- T1 A4,安装ssh0 Y# g4 ]0 q" x
apt-get install ssh
2 A% C* }( h; E/ n9 l9 [6 C! O! [  o9 C5,启动ssh服务
0 ^- Y2 s  `8 [3 ~/ psudo /etc/init.d/ssh start
& f3 t1 }' U6 d; F6,检查是否有ssh环境
) u9 J4 x' z: W6 ?& z+ Lps -e | grep ssh
, x5 O% H8 \2 ?) \8 g  ?/ G* ?+ y
! T$ X' c; f: A! y  gubuntu开通root登录SSH权限
* e; I$ @$ t( N! ^
% a; U  p! I$ @5 r) p" P1, 使用普通用户登录后切换root
2 I! n# m) D% ~2 Ksudo -i  B8 ]. m+ n+ n7 R' z$ H2 Y
2,创建root管理员密码
1 W: V, l- t: l, Tpasswd root
9 \8 a0 q' K3 `" W* I" A3,开启root登录
1 r7 H  x) c' o' v/ Bsudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config1 E# o9 c$ Z- K0 p0 {+ a
4,开启密码验证6 k; z# T! e8 x2 \
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config
! I" @8 i, Y) F. M+ j+ s5,重启ssh服务
1 ]7 t2 l& s* _$ a: e( B, V3 [service sshd restart
& u& R: R9 O3 o6,检查是否有ssh环境
' P; y  g. F5 s5 F/ [) m7 i& Pps -e | grep ssh$ X* y- o1 X; }: L* a; ^# `

! i3 m# }* f* w# }6 A$ ^$ v4 S7 N' H! q  y  H2 C8 q5 y/ j8 b5 H/ y

* l/ w% t# y- |. K7 K) L+ s8 f( c: y. U' t  r+ G/ h

) t' _! ^' v% ^* u3 j$ q; U) ^. p! x4 O7 {- u

: Q4 ^, }; a8 ~! ]4 ]5 Y8 L从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)! d% X: ]( z2 R# p/ e6 a

5 C- n/ g- L/ Q- L& v- [
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-20 05:19 , Processed in 0.106821 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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