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

用户名  找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3045|回复: 0

openwrt编译DIY

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

8 y8 R0 Q5 \5 v' a4 |- l3 o7 H' Y0 n8 U4 |
开始前我们先来解决一些网友的疑问?为什么网上那么多系统,我们还要自己编译呢?其中有二点原因:# F# ]) f1 ?2 b# a/ f. G

, N0 `. y8 L2 ~/ E; S5 x3 M3 C第一点:从安全上考虑,毕竟我们的网络数据,都是要通过openwrt系统,要是有人动手脚,在系统里放了后门,那么我们的隐私就没有保障了。7 U0 ]. ^) v7 F/ `3 B5 m

) {7 l- u0 L: _$ M+ v+ V/ P第二点:从稳定性上考虑,因为别人分享的固件,是用来适配他自己的设备,就算你的设备和他的型号一样,不同批次的设备,硬件都很有可能不一样,特别是像外贸电视盒子,这种问题很常见。我们使用opengwrt,就是为了实现一些想要的功能,自己编译,能很好的使插件和系统更好的兼容,同时想要什么功能就集成什么插件,不过度的集成插件,确保系统的稳定。, O$ V6 t! f# i, ^

0 D, ?4 O" w7 a& U. Z1 O) k3 ^- T      大家来看看,这是我自己编译的固件,在x96 max+的电视盒上运行,面对高温的天气,到目前已经运行2个多月了,从来没断过网,非常的稳定。接下来手把手教大家怎么编译openwrt系统,时间有点长,大家耐心看完,你也一定能编译出属于自己的系统。" M( }0 c% v, r, ?
6 e7 a, Y) f4 ~8 N( b# n2 s+ U

; ?% z9 @& C9 ^0 \- e( W
; X' a! N% s) `* E' k编译openwrt系统固件,主要分为三大步骤:, R" g. x2 X' Z
+ A# {: `& b5 {) u
第一步:安装虚拟机

  d& C: h$ f& \3 }! v第二步:安装ubuntu 22.04系统
0 T( l% i0 I; m8 Q8 n, J第三步:编译openwrt4 q' u; Y; [' C
视频安装教程

5 R# t! L. J* d1 \& d& ~

* _+ ]- p; L5 v/ ]* i

" T! g$ P7 Q8 A  X+ U# N
图文安装教程

8 J8 J! s8 M0 `2 ]/ n" h  D# j$ V
  }: _, L$ U4 E" U+ q一,准备工具:' ?  T0 Q% j5 H& H* K
' Q4 X7 n% m) K
1,虚拟机软件VMware
0 M7 S" Z6 M, }4 T* h) P6 p+ p2,ubuntu-22.04.2系统
6 [7 N5 U+ @3 E7 Q- U; V' D3,SSH登录工具 finalshell
0 D1 Z6 N) n2 U% U  i4,科学上网工具(自备)0 f! l; f+ Z* s
+ Q% E& U. ?5 h+ O: H" B- k
配套工具:点击下载# t( s+ N& u( R6 g
- [" o$ C9 s3 Y! j8 q
二,环境搭建:
$ A8 ^  u1 d1 T) `( C* Y& J; u. _  F4 _6 V* @# z
1,安装好虚拟机,打开软件,点击创建新的虚拟机,选择典型下一步,安装程序光盘映像,点击下一步,这过程比较简单就不多做介绍,注意网卡需要设置成桥接模式。2 r1 K% H; m" ?' s4 k$ c
2,安装ubuntu系sudo apt update -y统,点击新建虚拟机,选择默认进行安装!
8 D& n' }) k* T# H2 P$ t
6 `  v0 ~/ k0 C/ C, }1 _- \三,编译固件
, P5 ^) D  K% o9 z
3 p# l) j7 |4 e' V9 c2 h注意:
- P: K4 o" {9 F- O1,不要用 root 用户进行编译, v7 {8 a/ T3 U- ?* K# p% p
2,国内用户编译前最好准备好梯子
0 l$ r5 e8 D: k3,默认登陆IP 192.168.1.1 密码 password% J* A4 N4 `' L8 s  ~( m
—————————————————————————————————————
$ @- \4 G( h$ y( \& a; b6 G1,安装编译依赖' k6 v3 o/ j0 F+ t- _$ B

2 \$ s; \: x/ u* xsudo apt update -y0 U  D& \/ t, K
sudo apt full-upgrade -y
; o, h/ |0 s- t* z& Psudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \2 @6 t6 B- H/ R$ W
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \( M5 A% Z8 H6 E: x# |* b$ N
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
2 t4 T9 {( n- b8 ulibmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
# u9 C' m/ ?+ r* H; {& zmkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \
& }/ I9 V$ l/ [3 ?- V( glibpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \vim wget xmlto xxd zlib1g-dev$ P4 _* P3 m' w& V( e, `2 A

3 g$ t7 n* p7 _7 V% l2,下载源代码打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!
, h% [4 z/ ]0 [6 J1 Q2 d1 n4 \8 U5 {  \/ m  O$ [7 }
git clone https://github.com/openwrt/openwrt                官方版本
2 b7 n$ K; ^% `9 Tgit clone https://github.com/coolsnowwolf/lede              lede版本& }) V8 y" l7 {; K. J
git clone -b 22.03 --single-branch https://github.com/Lienol/openwrt      lienol版本
( H4 L0 z" U9 z4 _! ?cd openwrt                        切换到文件目录
: G6 U: B9 }+ x6 E3 }9 ]% Z  l" f9 K2 P! P) `3 w
如需指定openwrt版本,可以使用以下命令, [4 i+ K0 Y1 ], v: U

2 l9 ~: n7 n% `6 F' r% n& q. wgit tag                                              查看稳定版,回车键拉到最低,按Q结束!' O) c& ~6 n3 G9 ~7 T8 M
git checkout v22.03.3                      指定版本,红色部分位版本号
! V$ G: I! }: V# P8 y. M( v. r9 _; @7 J! p$ a# }6 C
3,添加插件或主题$ o8 a$ j9 J; ]. N1 i) R# g5 D: T

! f& B1 _1 q0 f5 O打开openwrt文件夹,找到feeds.conf.default文件打开,添加到最下面!5 H: F) H, y8 I  T& \

8 _6 r0 v* ~' s: w1 O+ L5 j. osrc-git amlogic https://github.com/ophub/luci-app-amlogic        电视盒子必须添加
4 t/ n2 W: \* n$ c& O- r7 Ksrc-git alist https://github.com/sbwml/luci-app-alist                     Alist插件2 j, W; T& E/ R. x; X4 z2 [& Y: [
src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages4 C  q" L- _8 i- v! [) j2 b& F
src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci3 e, E/ c6 Z  I6 D4 R/ W8 J
src-git kenzo https://github.com/kenzok8/openwrt-packages8 N- ~* P) p0 y1 B: G2 O) A
src-git argonnew https://github.com/jerrykuku/luci-theme-argon.git;main      主题
6 ?* a; Q% e& y/ F- p" {1 I2 p$ I/ V% U! l" S# k- ?! l
4,更新源码
! |! s( ]  {3 ^, D8 k. O; j/ t/ H* U: a! s  O5 N6 [
./scripts/feeds update -a                更新源码- i" S2 I1 S& [# d9 g% }/ k
./scripts/feeds install -a                  拷贝源码
1 N% r$ F. W+ \7 S
/ k: V% [3 G% w7 [3 G( N6 g5,定制openwrt系统2 l4 `+ I! A$ b

" P- Z6 R9 i9 V  C" h/ {2 j; }$ nmake menuconfig 打开openwrt配置面板
7 u4 o0 Z% E, F" G———————————————————————————————————' h+ S* T5 ~  v
#必须设置项目(CPU架构,镜像文件格式,)
6 i6 J. l9 l6 l8 l3 }  s1 n- A0 y$ ?. [+ O# f% m% U" n
Target System -> QEMU ARM Virtual Machine     (注意:这是电视盒子 x96 max+)
+ ?6 p( Y# ~4 sSubtarget -> QEMU ARMv8 Virtual Machine (cortex-a53)   8 J+ C( K2 E) L( F/ r  ?* u. P
Target Profile -> Default6 N# M5 d: v8 }! \
Target Images -> tar.gz/ V( a  q2 ?5 n9 Z6 [$ d: l* K

! Q$ g( o( _" F  F6 LCPU架构查询表:点击此处
2 H# ]! m! K. o5 H' c% A9 H
4 Z" t8 t1 |, l* `$ U" p*** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用):5 Q+ c2 k* M2 E( c- D* C1 w
7 |6 j6 Y7 n  {1 ]
Languages -> Perl
2 v( m, A1 o2 e7 U2 O: Y$ R                            -> perl-http-date1 f' x4 P8 [! W) F1 k6 }
                            -> perlbase-file
1 i4 l& G0 J1 M2 b* d                            -> perlbase-getopt3 W, j; ?2 }: L" @
                           -> perlbase-time  h1 L  k) M, f" A$ t6 G3 C
                           -> perlbase-unicode7 }8 |6 V- K) p9 W
                           -> perlbase-utf8( A8 i/ Q0 M" x5 I4 o6 k: Z

! s4 ^/ C7 x, L( ?" HUtilities -> Compression -> bsdtar 或 p7zip(非官方源)、pigz
9 V" O- q/ z6 G; N             -> Disc -> blkid、fdisk、lsblk、parted
( g, d9 N- p* a  M9 A/ `             -> Filesystem -> attr 、btrfs-progs(Build with zstd support)、chattr、dosfstools、e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs
( @' K9 S2 _2 o% O             -> Shells -> bash
3 b6 v* U$ S$ H            -> gawk、getopt、losetup、tar、uuidgen
: _  _7 M# H( w+ }2 j. c9 t7 L
7 Z6 W! t) D" w1 {) M* k3 e*** Wifi基础包,打出的包可支持博通SDIO无线模块,Firmware不用选,因为打包源码中已经包含了来自Armbian的firmware,会自动覆盖openwrt rootfs中已有的firmware) k' v$ C3 n# U

" b1 p0 J: e8 O5 ^Kernel modules -> Wireless Drivers -> kmod-brcmfmac(SDIO): d2 J5 J: @- G# l& d8 i+ _% M
                         -> kmod-brcmutil
# }) I2 v- w2 W" J                         -> kmod-cfg80211
; `. M5 m3 c3 k# [' t+ D                         -> kmod-mac802114 o: F% }# t7 x
                       -> USB Support -> kmod-usb-net-asix3 }, J5 u: }' t, p/ d4 e
                                                 -> kmod-usb-net-asix-ax88179
/ {" L  a4 D! [* B/ T                                                 -> kmod-usb2
, z; g. P& A# r                                                 -> kmod-usb3
! M8 \+ n5 V/ }% |* R红色为选填,如果你需要!USB3.0转千兆网卡(型号:亚信asix-ax88179)则必选!
1 U& R( c" |* h' L% J! P
- ]% M& Q0 @( gNetwork -> WirelessAPD -> hostapd-common3 W, }; w- ]1 G; ^
                                        -> wpa-cli
& B/ b4 }1 w; j1 ^                                        -> wpad-basic
$ m8 P, H, D3 g, f              -> iw% d) M  O& G7 }" H4 j
5 y5 I4 Z# I0 g+ D, H. h. j; y" s
*** 插件和主题,语言设置选项,根据需求设置,为了减少编译失败的概率,除了必要的晶晨插件,其他都不要安装,主题也是。可以编译成功后单独编译插件在安装。& h0 j3 t! q  Y3 k$ Q: m

4 O3 G! H) t- _# `
. F0 {6 e; Q. K4 G# n: r+ S8 g1 _LUCI -> 2.Modules -> Translations -> Chinese simplified                简体中文 自选!7 f1 H, q% H# f" U
        -> 3.Applications -> luci-app-amlogic                      晶晨插件,电视盒子必选!, b( ~6 q* b1 H6 I8 d
        -> 4. Themes                                      尽量不要安装,不然容易后台面板进不去!
, t! X9 J5 M) h* j0 U( J
! f8 y$ t  j1 ^7 Q; ?: ?! k- Q5 L######如果需要重新配置##########
% a# {; v1 d* a% C0 X
$ c6 g6 [; @( f" ~4 `+ o方法:使用命令
9 N& [# b1 z9 q# A" J1 Y, B' J
: N) D4 \4 R0 ^+ Crm -rf ./tmp && rm -rf .config
, h/ k: M! y% b1 E2 Kmake menuconfig/ f/ M' f( F6 N2 {0 d+ K7 U
make V=s -j$(nproc)
, q  j4 q' w3 k. v& D) |
6 p2 z( Y( P, {$ K8 R6,下载 dl 库,编译固件 (-j 后面是线程数)
$ r& [! Z- z" s' m" l7 d$ h$ Y; a- J/ \
make -j8 download V=s                     下载dl库,V=s 显示任务详细情况
3 n7 \9 {+ t% `2 m9 Imake V=s -j4                                      4代表线程,根据个人实际情况调整
9 i, a! Z6 g* |8 F" X  E0 Q5 C& E0 l9 q: ?5 Q0 O6 U; H
如果编译失败,可以执行以下命令:: w3 `: ^6 t. X- [

, k$ ]  z% k% C6 [make clean               删除编译目录/bin和/build_dir目录中的文件6 O8 X+ A  Y. f4 I* o' T
make dirclean          除了删除编译目录之外还删除编译工具目录,删除/bin和/build_dir目录的中的文件(make clean)以及/staging_dir、/toolchain、/tmp和/logs中的文件,一般在更换CPU架构的情况下才操作。
8 E. U! f  a* I( }/ v* H) M  ~% D. n
7,下载编译压缩包  e8 k( P7 J0 h% x

/ r& j9 m9 T7 C编译完成后输出路径:home/用户名/openwrt/bin/targets,下载到本地电脑,需要通过SSH远程登录进行下载。ubuntu默认是没开通SSH登录,所以我们需要进行开通。
" d1 ^) p6 |# B( R4 P5 B
  `' Y" p( u( ]9 x2 P1 g+ g开通SSH登录方法:1 i, v& X5 q! T2 P  C) r

  T( `8 p5 Q9 ]! z1,必须切换成为root用户9 [% X& b3 _" y- U" E- J1 B, B* H
sudo -i
  g1 I% d* U3 I0 t2,先更新软件列表和更新软件( F0 U: v8 {0 j! S
sudo apt-get update
0 |6 c. ~1 t* z$ h* @3,先更新软件列表和更新软件! h4 A4 w. u8 ?+ V5 ~" J
sudo apt-get upgrade/ _. D+ C& A$ R% M+ H& k) v
4,安装ssh3 k; L+ W! n6 V5 Q' f
apt-get install ssh
$ \: q5 O/ D% ~* S5,启动ssh服务
; e! p, i, y$ z$ @sudo /etc/init.d/ssh start
: ]1 b7 @' M0 X! y5 |" n" d6,检查是否有ssh环境
" ~5 s, |# V) kps -e | grep ssh
* t8 I; g' q4 p! ?
. `! k6 p2 ]8 B1 }# m. t; Subuntu开通root登录SSH权限& i' V% s) K7 Z) D
+ i# i" f: k) O  q2 S
1, 使用普通用户登录后切换root0 F  x6 [/ T. L& i, a
sudo -i8 P' z" f, p8 N6 ~- \2 x
2,创建root管理员密码6 N7 E( T; A) [8 s
passwd root
; s" j' F2 x, |3,开启root登录
% B9 |4 B, K, B6 ]/ `% r: O- f# G& p% |sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config
, v0 H1 z, h9 ]8 Q5 x4,开启密码验证
- m- B; v; X6 H7 v+ x) ~* Jsudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config. z3 @3 I( L/ w! ?7 o3 Z/ |2 M
5,重启ssh服务
& G$ e$ L; B. b& Q& @service sshd restart" k9 P0 d" R5 A7 C. z
6,检查是否有ssh环境- r! Q1 J* S1 J/ a5 |9 [! n  h% w0 h
ps -e | grep ssh
  W0 q, m# |8 J) u" n/ f$ s+ }# Z; v) N2 Q% ]" M

5 i* u4 C% Q% [: j# \( m0 x& ^$ a* _$ l4 H6 Y% u  K, j
1 V/ \4 b: c; P8 {( t2 }2 _9 R3 {9 N

/ |5 K$ W& o, ~6 l" D9 v
( D5 E+ J4 `% y: P7 v2 H1 |
5 t( b8 f+ E2 ^% n0 u从零开始:自己编译OpenWrt系统!一个视频就够了!简单易懂,毫无保留,VMware虚拟机安装,Ubuntu系统配置、openwrt源码下载,配置!保姆级教程!(电视盒子X96 Max+编译固件) (syjn.blogspot.com)# d2 ]# R; S, }5 \$ ?, ?9 ^
6 `& X4 a" T# d% x
回复

举报

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

本版积分规则

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

GMT+8, 2025-5-29 21:47 , Processed in 0.093014 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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