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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1956|回复: 0

openwrt编译DIY

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

/ }8 Y$ j5 y4 g% E2 O
/ ]" B5 b( `& w+ r9 g3 e/ A开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:6 m' J+ c; b) G0 D0 S! @/ n' f
1 j! R2 u5 H: Q- H/ f0 p  S& V
第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。
5 D' p5 [# |! [  Q8 y5 J0 v/ z% h1 ]$ n' q( y' D) W7 W; Z
第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。! L# o0 M3 P# A

, [, ?0 c# R: [% A      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。
. K* U+ R% S& L4 R6 H) j. \9 ]. x
1 |: |' v4 L+ F: K' H. a  b' Y3 D, \- E! z5 r# @0 \* d
0 o! {3 X1 J6 }/ S2 R7 j! k
编译openwrt系统固件,主要分为三大步骤:" U9 {$ w' w4 Q( V# X" |9 y. b
0 x$ H! R) N1 e( }# d' K
第一步:安装虚拟机

4 o& K- r" d: X4 |' s, z* Q第二步:安装ubuntu 22.04系统+ a; [! t8 R: {1 a0 I5 L/ J
第三步:编译openwrt
' l9 D  }" E9 i  E4 I/ ]5 p1 o
视频安装教程

( h. m- |1 y; l$ n, p3 ~9 v* Y& A

& \* L4 ]! x4 w2 j1 i' X( E
% J5 R) }( ^8 E- A) L- x( h
图文安装教程
! N( h7 p& ^  h3 N# z

8 b0 l  i$ S( _3 c2 \, E" q一,准备工具:1 |8 r/ r& _$ s* i3 l$ t' u
% m9 u) i8 H$ @& O8 B2 n
1,虚拟机软件VMware- m, J1 x7 l6 R" L* {& f6 q1 `  q9 C
2,ubuntu-22.04.2系统0 N1 z9 }- M5 p- Q) `8 b+ H' x
3,SSH登录工具 finalshell2 v7 O7 w5 Z; u! ?( L6 s
4,科学上网工具(自备)/ f6 W# X- b! L

, H' X/ |7 Z! Y0 @! z* N配套工具:点击下载' W# T3 v: h% t5 u! x  i& F: i! M! h
0 N8 ~7 k, r( |; j- b  J5 l& Q
二,环境搭建:7 C2 P8 X$ c0 U3 f9 B1 C

: i; @0 b! K: K2 m1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。
+ x8 j$ P! Z3 H4 Q( R+ ]2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!
, ~5 c8 w! q' [" {+ A( ~
1 N2 ~5 _! G9 B三,编译固件! L: g1 p8 N5 [/ s/ d8 j5 m% G2 r3 N
( W9 N) [0 l2 [7 g
注意:0 {( @" v; N. S$ [7 N
1,不要用 root 用户进行编译* g0 L# ?: x0 g( z- U" D
2,国内用户编译前最好准备好梯子
1 x- x* i  X1 `* ]3,默认登陆IP 192.168.1.1 密码 password
; @1 f3 M( u! B" ]—————————————————————————————————————
: m& Q) u0 F2 P: l+ @$ e' B1,安装编译依赖
  k, }+ ^5 A+ C% ?3 \; a( `5 e: |/ s" c( m& V/ t! N9 E8 [* O0 r
sudo apt update -y
2 N4 X1 j! J  s2 l% P! Osudo apt full-upgrade -y3 s0 r6 L0 Z) U& \7 I" a. f8 }
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \+ A" A/ U% X, Q. Q
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \7 @0 X3 |: l$ U
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \6 o( Q# H  K$ w* N  M) X
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \- h' Y. _+ H; `' G" k9 y* n
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \
" j7 S) k: c; @5 y3 J  J& S6 Ylibpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev: n# k# j# j1 s# _
0 W2 c) `8 O: F" |) d
2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!9 y  ~- @/ i$ f4 x, {: U( E

' w0 N5 ~. a/ @git clone https://github.com/openwrt/openwrt                官方版本
( I# g' }) V' ]7 u# zgit clone https://github.com/coolsnowwolf/lede              lede版本
/ o4 r# ~9 p* w- W& v0 n9 ngit clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本% ^1 C; }8 p( X! X0 v& V8 ]
cd openwrt                        切换到文件目录
. q( C: {  j% n4 n6 _9 I1 i2 y* r& p( i6 U, ?# b+ `+ V8 @8 k
如需指定openwrt版本,可以使用以下命令
! G! W9 w, F3 c8 |6 k" e4 n- P& }  Q1 D: n
git tag                                              查看稳定版,回车键拉到最低,按Q结束!
3 H7 [3 d7 t2 P5 D" c. fgit checkout v22.03.3                      指定版本,红色部分位版本号
  Y9 |( @2 O0 {- {4 F6 e* R; y4 j# h. j1 O2 t/ T
3,添加插件或主题+ m# O1 [- a8 b; j

* f. b% r. G- ^/ `5 ^; {! @, f打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!
3 K0 _% W# \! |$ c3 L5 Q. E- y+ h4 O3 `" m8 V7 V3 c) Y7 c2 S
src-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加
- N7 _4 {! U) f) |5 ^src-git alist https://github.com/sbwml/luci-app-alist                     Alist插件
0 W: i) u3 s; k2 ?. j* |src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages" S# d: j1 s6 B* ?
src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci) c& P- k/ |+ w( B
src-git kenzo https://github.com/kenzok8/openwrt-packages$ D4 a! M& f4 }) L+ w
src-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题
- B( ~1 L+ d" Y2 ^# s! x. x5 K3 I  m$ t, v; r! g
4,更新源码
9 y$ Z8 \! d5 M7 y3 R0 x4 a0 y2 P
/ h3 V0 N8 b! l./scripts/feeds update -a                更新源码4 ]9 q8 [6 x1 }7 }$ g0 b
./scripts/feeds install -a                  拷贝源码
& n/ y, D  S$ \+ _$ Z2 d+ ]& d1 j6 Z( F0 J" M
5,定制openwrt系统
+ ^# m7 K0 V7 m8 U% a* P8 G' i' r  ?
make menuconfig 打开openwrt配置面板2 m: k4 w- d( j& ~3 b
———————————————————————————————————
6 c  |* X, r$ ?2 ?" |5 k#必须设置项目(CPU架构,镜像文件格式,)* X  V1 m1 `! s$ N. z

4 a* M9 ^4 u# RTarget System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)3 u+ U7 `. J3 e/ `+ u
Subtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   
; Z; \0 g: A4 \- l6 ^2 J+ q9 r! v# x- GTarget Profile -> Default5 h8 N# V2 g  w7 F4 U2 q3 |
Target Images -> tar.gz4 V+ U3 k* Z9 t1 z4 Y/ \

* p% w5 U: G- TCPU架构查询表:点击此处- e4 F; {5 D  [9 F( A3 p! f6 q

  b$ k; x4 Z7 A2 @*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):
) y4 Z2 B) N- b# }. n
/ d5 _: z& z( z$ y0 DLanguages -> Perl
, N% Q, o/ c0 d                            -> perl-http-date
1 d) k6 N- A- W7 U( g9 F; n' h                            -> perlbase-file5 a" |+ s/ @% a0 t6 {
                            -> perlbase-getopt# H6 N, O: f3 T6 `3 L  M' h" K' ^' B
                           -> perlbase-time
4 b0 P* o0 Z! W) Q                           -> perlbase-unicode! k- P" A% G6 L4 X2 e
                           -> perlbase-utf8
; ~! F# k4 B4 @2 B  y( {* Y; j& o/ C( E" M9 W- l
Utilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz
4 T" p4 h2 u' m             -> Disc -> blkid、fdisk、lsblk、parted
" N( D8 y1 z: c             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs4 h7 k6 d$ e: c! J* U# @
             -> Shells -> bash
6 b) n( `' r4 S: Q+ U$ V2 P            -> gawk、getopt、losetup、tar、uuidgen$ X; j# b5 `3 \0 F' c- O6 I
' A; g: G( T* ]0 t) {' C) W
*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware
) h% B1 [) ~7 X: g0 K# {: C
' e7 T# [. M6 y/ k! Z  A9 CKernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO)
  A# J# t4 |9 e                         -> kmod-brcmutil
- G4 _5 m- Q5 ~' Z8 Z                         -> kmod-cfg802110 H) X: |9 P+ L8 p# d) c  {6 x
                         -> kmod-mac80211
1 l; T7 O3 p  K+ R                       -> USB Support -> kmod-usb-net-asix0 \( _/ G# }; k7 {/ c5 R" l7 B: g' F
                                                 -> kmod-usb-net-asix-ax88179( c* s  Y: ~5 @5 T
                                                 -> kmod-usb2
  f! f$ y6 o. e  [1 Q% q' ?  g6 L                                                 -> kmod-usb3
2 i% F( i& `' J/ U红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!
- x5 Z0 ]# r8 \( j+ E3 d5 G6 A7 D; I2 e  M) p$ @( N* B! `
Network -> WirelessAPD -> hostapd-common
! k3 r, V$ A" m: [' J2 u                                        -> wpa-cli% J# D3 S" ?* U. `' O9 D6 N" d
                                        -> wpad-basic' A" J% u( P* l$ w
              -> iw+ O. j$ j# P' {; M9 o* B
$ k+ ]8 q9 f* v
*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。
8 d7 V9 i, b; b, |7 z3 r1 f5 y
, `1 z6 D0 V1 G
LUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!1 \6 M5 ^1 t5 t/ m
        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!4 Z8 v/ Z* o9 V7 d- [; b
        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!
) ^- v% i- ?* `+ r( T. I; j
1 }0 U$ {5 I4 k######如果需要重新配置##########( x+ P- t: s; r, \  n

' e7 F% J* K" A+ a) q+ x( r! T方法:使用命令
2 Y7 X" \6 {2 r7 i) ?: J, R- |1 Y9 M/ K
rm -rf ./tmp && rm -rf .config, v- x/ }/ I% J: |( p
make menuconfig9 J' n; s( b" u2 F9 m
make V=s -j$(nproc)& w- J' G( \* G1 z, @

, k1 A- e7 e% l2 ~6,下载 dl 库,编译固件 (-j 后面是线程数)% S" s5 y0 v* w1 C

4 r$ n0 z" f* k9 U: a4 Hmake -j8 download V=s                     下载dl库,V=s 显示任务详细情况  E6 a5 p0 U, F; f$ y. |
make V=s -j4                                      4代表线程,根据个人实际情况调整3 O7 q$ f# b- a, ~& b) @9 `

& m8 {! k- s  }4 X# ?( w) Q如果编译失败,可以执行以下命令:& _/ f( K6 d0 _# d: [

1 c  w& e1 y9 a9 Gmake clean               删除编译目录/bin和/build_dir目录中的文件
9 w% x6 n" u+ F5 }+ }9 t6 l/ amake dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。' e& I: M1 `2 S2 P

/ o) S3 O0 U/ Y, L2 a  l7,下载编译压缩包' X" q; a& k+ I5 \

2 j5 U0 ?) P; y5 \2 |编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。  s0 [' k; q9 l& j4 H) [
7 e! F( L0 p- e& y% ]
开通SSH登录方法:
+ e5 w* Q# D" q  }) }' w) x9 a5 H7 Q
1,必须切换成为root用户7 q' K8 E$ m. Y  l9 }1 S- }8 X
sudo -i) L* Y  y: D& _' B& Q" A
2,先更新软件列表和更新软件
) O2 \+ o/ k5 F; L: ?/ @# gsudo apt-get update
) Z2 Y7 n, c, J3,先更新软件列表和更新软件
- E* d) T/ K' N6 |2 g( G2 W; rsudo apt-get upgrade
& G( S; X1 C& T9 b) o4,安装ssh& X6 |- L( y$ Z: e0 M1 {" l7 M
apt-get install ssh
) _- W' G9 x% ?- F8 Q2 e5,启动ssh服务
: h" }$ N1 s/ \5 _8 c' w. |sudo /etc/init.d/ssh start# F5 n- d- j# @  W! T# ]
6,检查是否有ssh环境
* e9 Y7 O' S- f; E" `' X% Zps -e | grep ssh; g1 v# ?6 R3 O
7 y1 K) E2 k0 W1 M
ubuntu开通root登录SSH权限
0 V' R* K& ~3 S- W/ I0 X5 j  c9 U7 x; a$ E8 v
1, 使用普通用户登录后切换root
2 a" v% K  S  ]) T$ u( H7 Xsudo -i: g4 k1 Y+ e( C
2,创建root管理员密码
& V, L$ g- f: C6 h' T2 V: |passwd root/ I( ^& g; Y; k
3,开启root登录  X: }5 Q# s6 w, d) S; m/ n
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config5 B. R1 f3 }2 P) x7 [8 [* z' r
4,开启密码验证
/ b  c; t/ D9 isudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config
3 @- R. g; k; G! l0 G5,重启ssh服务9 L4 i7 c0 u+ j9 e
service sshd restart
# G3 S3 `7 Y1 L; i3 U; w6,检查是否有ssh环境4 m1 q8 v  v+ R. b/ E6 b
ps -e | grep ssh+ ~3 s! i& B% Z% L/ \
" o) t  ^, R# a' \5 h* w) f: _

; y6 U" u- T+ G% j
/ e1 d- q; I9 s2 ~. U+ {: ~0 p" e6 C/ z, V( Z0 P
* a8 Q! o$ t/ u$ H% L
1 @2 o* {  R/ Q3 D5 d+ H/ F
6 G3 N2 l% u- W7 C- j+ d- {
从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)
1 v& r; \/ ]2 r8 T
4 I( q! E" L' Q) X* s
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-18 17:35 , Processed in 0.166477 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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