找回密码
 立即注册
查看: 12156|回复: 39

猫盘 (ARMADA A3720) 刷机教程(搬运)

[复制链接]

22

主题

230

回帖

1028

积分

中级渣柚V3

积分
1028
picc745514 发表于 2019-10-1 08:52:21 | 显示全部楼层 |阅读模式 IP:–四川–成都 电信
本帖最后由 picc745514 于 2019-10-1 09:11 编辑 2 D+ W! m8 N3 k7 O& a6 S

5 l/ d2 S1 p7 ]9 R9 M: A违规没有?版主。。。。。& i/ i% Z7 h+ _8 G; A
原作者 hanwckf 原地址https://www.jianshu.com/p/77e529fb35f98 {  {+ l" ~. U0 c8 L( z# W
简介
猫盘又是一款矿难机,配置如下
  • CPU: Marvell ARMADA A3720 1.0Ghz 2xCortex-A53
  • RAM: 512M DDR3
  • eMMC: 8G HS200
  • 网络: Marvell 88e1512 千兆phy
  • 外设: 原生SATA,主板引出USB2.0和TTL,带1个风扇和aw2013控制的三色LED
  • 电源: 5V3A
    ! D5 K' H$ o2 Z4 Y: G
由于espressobin开发板的配置与本机器比较接近,所以内核是通用的,但是需要适配dts,适配好的dts请看参考资料里面的Github仓库
Marvell目前提供有4.4和4.14的bsp内核(猫盘原厂固件就是4.4bsp内核),另外linux主线内核对armada的支持也不错,espressobin的armbian固件就是采用主线内核(4.19 LTS),我会尽快更新build-catdrive加入4.19内核的armbian固件(此固件不重新编译内核,仅适配dtb,因此phy的LED不会闪烁,三色LED也不工作)
在build-catdrive中的其他固件均采用Marvell的4.14 bsp内核,已经加入了aw2013的驱动,LED正常工作,可以通过sysfs控制,在系统poweroff之后LED熄灭。另外网口的LED灯也会闪烁。
猫盘通过spi nor flash启动的,rootfs放在emmc中,若不慎刷砖,只需用编程器刷spi flash即可救砖
原厂的uboot无法保存环境变量(复位后自动恢复默认env),因此需要刷入新的uboot,然后在新uboot中启动U盘/硬盘的临时系统,最后将新的rootfs镜像写入emmc

资料下载(刮刮码)
  • flash-image.bin https://github.com/hanwckf/bl-armada-3720/releases/tag/v2019-07-22
  • img镜像 https://github.com/hanwckf/build-catdrive/releases/tag/v2019-09-17
  • 原厂资料备份,提取码: qc7c https://pan.baidu.com/s/1yikyr60_VpbHhOgpH8crgw
    1 c+ r2 z6 Y9 `4 u0 ]% ]

准备工作
  • 空的2.5寸硬盘(需要移动硬盘盒或者易驱线)或U盘(需要将USB母座接到主板上的USB排针上,见下图)
  • USB转TTL线,如ch340等,按下图接线,波特率为115200,注意千万别接VCC# G9 {& k1 R9 C2 Q& A$ {5 C
1.png 3 t; u; n; ^2 S1 U# G0 C0 x+ A- u
, c4 ^- u  P0 l- L! q
UART与USB排针
8 P7 t' Q. g% s. `+ a* U8 y" p: X' D
/ `1 J1 `3 N  \, S" v

刷入uboot: 方法1
  • U盘/硬盘格式化为mbr的ext4或fat32分区,将flash-image.bin复制到其根目录下,然后插到猫盘上
    % X+ B% S3 S: r  x+ M接好TTL后上电,在倒计时结束前反复按回车进入原厂uboot
    + {7 R; O. n) ^# I% W在uboot控制台依次输入以下命令:) ]( T1 g: ~$ h  R" |, A/ p0 b
setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"ext4load mmc 0:1 0x1000000 boot/armada-3720-customer0.dtb, @3 n* H1 b, T5 k
ext4load mmc 0:1 0x2000000 boot/Image
1 A9 S1 T, |* h; m  }; Jbooti 0x2000000 - 0x1000000
- e7 j8 n2 e4 V: }5 B* R# F
等待系统启动完成进入无需登陆的shell
  • 进入shell后依次输入以下命令(这一步是把flash-image.bin复制到emmc的第2分区上), z) s5 Z' n* W; y, V/ s; C
    当同时插入U盘和硬盘的时候,有可能需要挂载/dev/sdb1
    + M* M5 c# ]$ a3 _7 _
mount -t proc /proc
. L. k3 x, |6 V4 \' G2 k, B. jmount /dev/mmcblk0p2 /media3 v7 C. U2 g' O$ K
mount /dev/sda1 /mnt
2 z/ o; X; d9 ?cp -f /mnt/flash-image.bin /media, T6 ?  ^8 M* D1 \( Z
umount /media
" k6 Y2 M5 N9 j$ _' F6 L) Qumount /mnt

6 M& c6 L6 ?/ R5 ]* r3 o8 @0 K
然后直接拔电
  • 上电,在倒计时结束前反复按回车再次进入原厂uboot4 Y( g2 B& C1 W0 j2 m* C
    在uboot控制台依次输入以下命令 (切勿在uboot控制台中反复按回车)
    8 G9 d5 P5 ?' Z% I. L
ext4load mmc 0:2 0x1000000 flash-image.bin  [& S6 b* c5 g+ V% Q7 T6 i8 w
sf probe
1 q# ^/ h) ?0 U' ?sf erase 0x0 0x2000002 |) U8 \) T. h4 J8 A
sf write 0x1000000 0x0 0x200000
& [+ D7 i5 P3 |8 l+ C+ Q
/ G0 I. m7 N+ Y
  • 确保上一步的命令正常执行完毕之后,输入reset复位,然后在倒计时结束前反复按回车进入新uboot
    1 r+ {! i8 r. f& R0 t" ^在uboot控制台依次输入以下命令,注意mac地址要改成你自己的
    4 Y9 V9 s) d6 G! k2 A# L
env default -a; L% U2 c4 @( q1 S
setenv ethaddr "4c:65:a8:10:e2:55"
( n) }) i0 @! ?. \( F3 I" \9 Z+ s- Hsaveenv
1 g* w4 ]) c) ~8 P* z$ o此时新uboot已经部署完毕,可以直接拔电准备下一步操作

刷入uboot: 救砖
如果在常规步骤中操作失误,导致上电后不能进入uboot控制台,则需要拆下板子上面的spi flash, 用编程器将flash-image.bin写入spi flash, 再焊回去, 之后按照常规操作的第4步恢复环境变量和mac地址即可0 w4 ]; B7 h) V3 J1 A
除此之外,还可以使用A3700-utils中提供的wtptp串口工具救砖(需要Linux环境),具体操作请看参考资料

刷emmc
确保已经正确刷入新uboot,将img镜像解压后用etcher或者其他工具写入硬盘或者U盘, 插回板子上
  • 对于硬盘刷机:
    9 o3 X& B2 T3 y, a+ `  E上电,在倒计时结束前反复按回车进入新uboot" \2 f+ J$ h/ k  N8 o+ h
    在uboot控制台依次输入以下命令:
  • setenv boot_targets "sata mmc0 usb"
      l0 I$ p$ P) w! o  Gboot
    5 [$ Y1 _1 K% ^4 K/ x
  • 对于U盘刷机:
    8 h2 u! V8 D' g8 _插好U盘后直接上电即可
    # M3 B7 t4 o1 y
进入U盘/硬盘的临时系统后(应该是一个alpine,用户名:root;密码:admin),运行
emmc-install.sh
等待刷入完成,然后输入poweroff关机,输出示例如下:

% L6 s+ Z- V& p; Q7 W
alpine:~# emmc-install.sh
flash emmc...
1000MiB 0:00:33 [29.8MiB/s] [================================>] 100%            
7+7144 records in
7+7144 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 34.5134 s, 30.4 MB/s
flash done, please unplug USB drive and reboot now!
alpine:~# poweroff
% R$ }5 n1 B+ T6 ~$ I
如果是用U盘刷机的话则需要拔掉U盘后再启动,即可进入新系统,而对于硬盘刷机则无需拔除硬盘,可在新系统中直接将其格式化
在刷好新uboot之后,若要刷入build-catdrive中的其他linux发行版,直接从刷emmc这一步开始即可! Z3 i: w/ r# d' F$ y
由于猫盘内存较小,建议设置1GB的swap,具体操作请看下面

系统相关设置
  • 设置swap
    ' t1 W% ]) n2 h; }, [5 w

    0 |0 o3 ]4 t# ~8 |/ g# }7 d8 a# C; D; T, E; N$ B* ~6 |4 x
    % c! y# c# K5 i/ ?. s
    dd if=/dev/zero of=/swapfile bs=1M count=1000 #创建1GB的swap' l2 C; c2 ?: ~- }$ |, x3 R
    chmod 600 /swapfile" M# a: Q1 i3 I, o: K. H- x1 T
    mkswap /swapfile
    0 \. }0 _5 q7 b3 P0 f5 yecho "/swapfile swap swap defaults 0 0" >> /etc/fstab* q" W) J- M- _, p& w
    / a6 B" p! ]% u3 I% R; e( X
    , ?0 N" q/ g. W5 \. }& Y7 `
    3 t  z  r$ Q* Z1 h" H* K+ \
    8 ^/ {1 l' n# p
    风扇控制(主线内核不可用)
    & C$ p, Z- e5 Q/ O% K7 n6 }1 e5 \

    ( J9 B; e0 o  E" R/ X; O
    8 o; b: B. \+ z0 j0 \
    % n1 o( F9 {+ recho 0 > /sys/class/thermal/cooling_device0/cur_state  #关闭风扇! v9 H9 U, l5 w! X9 t8 W. W
    echo 1 > /sys/class/thermal/cooling_device0/cur_state  #打开风扇
    . z# r9 t* b# _& T9 ?% n" ^' \& |1 G& ^: ^; ^( P- I. w; V
    ' v( f; u. M3 k

    9 P$ C+ w; V. y0 g7 m5 v, U
    . ^( u& j; ^7 V- V# v; FLED灯控制(主线内核不可用)
    - t( F' g, ^: O9 |" E% ^- x2 g
    . |/ A9 C1 B$ W* [$ S
    6 L* E4 |: i, H0 j' K( H" H  T
    echo 0 > /sys/class/leds/blue/brightness  #关闭蓝灯
    ' h/ h) w7 e( l) M: e" m7 s- Fecho 255 > /sys/class/leds/green/brightness  #点亮最高亮度的绿灯: K" H, o2 O* S$ u. r
    echo 128 > /sys/class/leds/red/brightness  #点亮中等亮度的红灯0 V, \/ b% ^! w& x5 p! J
    echo 2 > /sys/class/leds/red/blink #点亮红色呼吸灯,可设为其他值
      p6 o7 |  L$ m+ b% ?, Uecho 0 > /sys/class/leds/green/blink #关闭绿色呼吸灯) a! n  m4 u/ Q/ `* i8 i

    0 A  L% G. E1 @4 |0 u- ~
    ) c2 o8 ?& [. M3 q1 n2 E

    # r. L8 M) r1 t8 q
    4 J" C& `+ j1 T, F7 d硬盘休眠
    # z4 ]) [+ E! H1 `6 Ebuild-catdrive中的固件已经设置好10分钟无操作自动休眠硬盘,如果需要调整时长,请修改/etc/udev/rules.d/99-hdparm.rules里面的hdparm -S之后的参数,默认值是120(10分钟)
    ( W% i3 }8 S; q; w' T1 U% i) u
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd*",ENV{ID_BUS}=="ata", ENV{DEVTYPE}=="disk", RUN+="/sbin/hdparm -S 120 $env{DEVNAME}"
  • 读写uboot环境变量" {; o) Q8 k( k( a7 ~
fw_setenv foo barfw_printenv
uboot其他操作
  • 在新uboot里从U盘根目录中刷入uboot; f1 W) F' K/ F0 b7 i3 [
bubt flash-image.bin spi usb
  • 在新uboot里从tftp中刷入uboot- E$ W' M0 E. o- V. x6 \6 K
setenv ipaddr 192.168.1.100 #设定本机
* F) f" m: P! sipsetenv serverip 192.168.1.2 #设定tftp服务器# q9 j) u% [4 R* A2 q
ipbubt flash-image.bin spi tftp
  • 在新uboot里改变启动顺序# x. t# T& P4 X$ c9 V/ B, F
setenv boot_targets "usb sata mmc0" #默认为usb->mmc0->satasaveenv
已知问题
  • 主线内核中无法控制风扇的gpio(会导致以太网phy重新复位),所以poweroff后风扇不停
    ( q/ o4 Q# e3 N5 |


+ s" N. U' W+ }3 E1 Q* |
2 }9 @7 P+ Y+ W- T4 s+ c/ b  A) u

  Q, A& y  H2 S, a6 q' [' X& r# L5 H" d) t8 ~. t+ M

, g  g+ y# ~% o3 \' f# T% `
6 @1 O9 {+ s; r* H8 f0 N1 G, C3 V
+ G8 V% V: p8 [: p$ H% G: D1 X, h1 Y4 q3 |8 X# S2 ]

评分

参与人数 3经验值 +60 收起 理由
lyxq745514 + 20 神马都是浮云
longge123 + 30 很给力!
xxx + 10 赞一个!

查看全部评分

2

主题

66

回帖

69

积分

初级渣柚V2

积分
69
浪卡飞羽 发表于 2019-10-1 08:58:16 来自手机 | 显示全部楼层 IP:–广东–深圳 移动
这个好像有大佬搬运过

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
xingjiwoniu 发表于 2019-10-1 09:03:41 | 显示全部楼层 IP:–江苏–宿迁 移动
应该把命令部分 编辑一下,选择 插入命令 这样就能复制链贴,刷机的时候不会出错

22

主题

230

回帖

1028

积分

中级渣柚V3

积分
1028
 楼主| picc745514 发表于 2019-10-1 09:06:14 | 显示全部楼层 IP:–四川–成都 电信
浪卡飞羽 发表于 2019-10-1 08:58
8 D  r# z- I0 Q1 ^, }9 E这个好像有大佬搬运过

& v3 C* f' _2 W7 D) O& p5 h# \9 X没注意哦,已经搬运了?

22

主题

230

回帖

1028

积分

中级渣柚V3

积分
1028
 楼主| picc745514 发表于 2019-10-1 09:06:38 | 显示全部楼层 IP:–四川–成都 电信
xingjiwoniu 发表于 2019-10-1 09:038 }: @) c6 X2 R- }: ?) Y
应该把命令部分 编辑一下,选择 插入命令 这样就能复制链贴,刷机的时候不会出错 ...
5 Q( K/ H) ?0 {4 `# H' {$ L  P
坛子编辑器难用。。。。弄了一下

11

主题

126

回帖

454

积分

中级渣柚V1

积分
454
h010310534 发表于 2019-10-1 09:14:16 | 显示全部楼层 IP:–上海–上海–嘉定区 电信
支持一把

1

主题

33

回帖

290

积分

中级渣柚V1

积分
290
zengtuo1990 发表于 2019-10-1 23:06:12 | 显示全部楼层 IP:–广东–深圳 天威视讯
努力灌水吧

8

主题

54

回帖

365

积分

中级渣柚V1

积分
365
秋风恋月 发表于 2019-10-2 00:08:40 | 显示全部楼层 IP:–四川–德阳–广汉市 电信
: A& r) O6 C- g7 j; G
努力灌水吧

1

主题

19

回帖

191

积分

初级渣柚V2

积分
191
xiaoyang258 发表于 2019-10-2 00:09:15 | 显示全部楼层 IP:–内蒙古–呼伦贝尔 电信
来学习拿权限
9 s1 n% z& g4 b' m% m( K3 z
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|矿渣社区 ( 黔ICP备2024020525号-1 )

GMT+8, 2026-4-26 12:39 , Processed in 0.522815 second(s), 38 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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