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

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

[复制链接]

22

主题

230

回帖

1028

积分

中级渣柚V3

积分
1028
发表于 2019-10-1 08:52:21 | 显示全部楼层 |阅读模式
本帖最后由 picc745514 于 2019-10-1 09:11 编辑
6 K% H  F& w+ h# o* S+ U/ t4 ^3 p7 O/ k$ T( x, w
违规没有?版主。。。。。( C2 t' ^; V0 ?
原作者 hanwckf 原地址https://www.jianshu.com/p/77e529fb35f9
% _$ t8 B4 d4 Q+ I简介
猫盘又是一款矿难机,配置如下
  • 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% O7 v% h5 x/ j8 g# F
由于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& O& p( w4 |1 @' ?: i+ q) k$ u

准备工作
  • 空的2.5寸硬盘(需要移动硬盘盒或者易驱线)或U盘(需要将USB母座接到主板上的USB排针上,见下图)
  • USB转TTL线,如ch340等,按下图接线,波特率为115200,注意千万别接VCC8 W2 g8 C/ q' u
1.png 1 `& }8 w1 @5 f
8 O3 e$ z; R; y
UART与USB排针
* T+ [) W# O0 B# @; X2 a% ^$ O3 _' L. g

$ {% T5 G7 v0 L! L) s
刷入uboot: 方法1
  • U盘/硬盘格式化为mbr的ext4或fat32分区,将flash-image.bin复制到其根目录下,然后插到猫盘上
    - ^1 a5 G+ n! ?6 t8 Q7 X接好TTL后上电,在倒计时结束前反复按回车进入原厂uboot' Q! C% Y: V- \& P2 T* N9 p, M; [; m: w
    在uboot控制台依次输入以下命令:- }) h1 s1 D6 f/ _" s
setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"ext4load mmc 0:1 0x1000000 boot/armada-3720-customer0.dtb7 D  d* D: |$ K* {2 w
ext4load mmc 0:1 0x2000000 boot/Image) G7 t0 z: c# d* I3 q' e1 r8 `) r
booti 0x2000000 - 0x1000000$ T8 m1 U0 f, z6 `* [& H
等待系统启动完成进入无需登陆的shell
  • 进入shell后依次输入以下命令(这一步是把flash-image.bin复制到emmc的第2分区上): r3 H& z7 @8 [3 ?# q
    当同时插入U盘和硬盘的时候,有可能需要挂载/dev/sdb16 z: i- f2 U' j8 a' P
mount -t proc /proc
6 N9 \5 }* f7 k" h/ e$ ]mount /dev/mmcblk0p2 /media
% R+ z: C6 k' Emount /dev/sda1 /mnt4 M& [, I4 [+ ?8 U: \2 h9 R0 D
cp -f /mnt/flash-image.bin /media7 K" C, E7 s! ], r3 G8 ~* j! q# ~
umount /media
: u6 H, A: D% R% F; yumount /mnt

# q. \) z+ }6 u8 e
然后直接拔电
  • 上电,在倒计时结束前反复按回车再次进入原厂uboot; k, ]  H, Y8 L9 Q
    在uboot控制台依次输入以下命令 (切勿在uboot控制台中反复按回车)
    * H6 F5 g& j1 Y. t
ext4load mmc 0:2 0x1000000 flash-image.bin
& n% R. C  K0 S: fsf probe
& X: b/ f) J1 l# Psf erase 0x0 0x200000
7 _2 C/ C2 [2 |) l3 }sf write 0x1000000 0x0 0x200000
& z( R' p" N7 Q1 }1 Q5 F6 ^

" u- a: o2 Y0 m* G5 o
  • 确保上一步的命令正常执行完毕之后,输入reset复位,然后在倒计时结束前反复按回车进入新uboot
    / o/ M) `$ O8 \6 K0 o& m在uboot控制台依次输入以下命令,注意mac地址要改成你自己的0 o+ ?6 p/ ?2 y* `. e: h) [% V
env default -a6 \% J7 E: T* [1 ]  U1 g  i* L
setenv ethaddr "4c:65:a8:10:e2:55"
1 Y# i. G/ ]+ d  h7 r  l9 _% Gsaveenv; }# S) v3 _' X" H1 o
此时新uboot已经部署完毕,可以直接拔电准备下一步操作

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

刷emmc
确保已经正确刷入新uboot,将img镜像解压后用etcher或者其他工具写入硬盘或者U盘, 插回板子上
  • 对于硬盘刷机:
    9 p% G; O: c" S" E上电,在倒计时结束前反复按回车进入新uboot
    ! e# m. L% M0 P在uboot控制台依次输入以下命令:
  • setenv boot_targets "sata mmc0 usb"
    1 c; \. X, }7 q7 kboot
    3 t1 B* o, @. O% A* e' e* P
  • 对于U盘刷机:
    6 [8 W3 ?4 r. U4 K1 }插好U盘后直接上电即可
    2 I& s! X, @; A+ j! l2 Y+ @/ `" ]% j
进入U盘/硬盘的临时系统后(应该是一个alpine,用户名:root;密码:admin),运行
emmc-install.sh
等待刷入完成,然后输入poweroff关机,输出示例如下:

, X% d+ J! r% E& K9 L6 S) q
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

6 u) t9 }" f1 }2 X+ I0 M* d
如果是用U盘刷机的话则需要拔掉U盘后再启动,即可进入新系统,而对于硬盘刷机则无需拔除硬盘,可在新系统中直接将其格式化
在刷好新uboot之后,若要刷入build-catdrive中的其他linux发行版,直接从刷emmc这一步开始即可- u1 ~$ \" l- F9 o( p0 Y7 t
由于猫盘内存较小,建议设置1GB的swap,具体操作请看下面

系统相关设置
  • 设置swap. F/ h5 L% g. q: Z! g8 p

      K2 a+ j- |2 [8 s+ K4 \# ]5 `6 ?' H
    . y4 k5 _( d1 |: [2 w& B6 P' @
    dd if=/dev/zero of=/swapfile bs=1M count=1000 #创建1GB的swap
      t3 @, J# r) p3 p- H1 y, |chmod 600 /swapfile) |' }8 s- H$ v
    mkswap /swapfile
    8 s* G7 @9 e! g2 J+ j/ Recho "/swapfile swap swap defaults 0 0" >> /etc/fstab
    ' k4 s+ q( U1 i. Z' m& w/ V/ e% m. Z6 _$ m

    ' Y( \% Z& s# O" D- p2 [  T/ _3 L% m, S0 {
    , z3 T# f5 R9 t! b/ a7 l, J0 r5 ~
    风扇控制(主线内核不可用)
    9 Z0 r8 w0 W/ H1 D7 R

    # X+ @. L( @/ N7 n4 \. u
    7 t* I7 x3 c0 n* t4 ~3 F  x! H0 i# K" \! f" E) d" |
    echo 0 > /sys/class/thermal/cooling_device0/cur_state  #关闭风扇
    : k0 k6 v+ a% Xecho 1 > /sys/class/thermal/cooling_device0/cur_state  #打开风扇
    ' s# w' _7 _8 B  j0 e& t/ e
    ' @* ?& s$ V& h. k% S  d" w

    / [% U3 p! M9 B6 e+ U! S$ ^2 a& Y0 B- m% o
    - a9 @$ e/ @% z8 \+ E; l
    LED灯控制(主线内核不可用)
    4 ~6 `! ]% z2 q

    6 Z' E. \2 i* y; o* x4 I: e- r0 `% [: R
    4 i5 b: p/ s  S  x5 {) \5 becho 0 > /sys/class/leds/blue/brightness  #关闭蓝灯
    ; G$ u, o" f$ r/ k9 I6 _9 yecho 255 > /sys/class/leds/green/brightness  #点亮最高亮度的绿灯
    : L+ D# M5 Q' Q% s- Aecho 128 > /sys/class/leds/red/brightness  #点亮中等亮度的红灯
    # V0 v% M4 R  ?' S# R: W& q6 U1 Z# F: xecho 2 > /sys/class/leds/red/blink #点亮红色呼吸灯,可设为其他值
    - T' D3 p* [; c2 F. Zecho 0 > /sys/class/leds/green/blink #关闭绿色呼吸灯5 N3 H$ T: S2 p
    $ j8 A3 b9 j# W4 r7 B" g

    0 k+ B6 G: U3 z& I8 a' I
    2 @% N3 q& e! H, p- [# z' f( R8 c
    8 k5 k$ d5 i: E7 ^; `硬盘休眠" ^& h) A! ~5 _  G- ?
    build-catdrive中的固件已经设置好10分钟无操作自动休眠硬盘,如果需要调整时长,请修改/etc/udev/rules.d/99-hdparm.rules里面的hdparm -S之后的参数,默认值是120(10分钟)
    ; q" r+ {3 f  B& a! l
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd*",ENV{ID_BUS}=="ata", ENV{DEVTYPE}=="disk", RUN+="/sbin/hdparm -S 120 $env{DEVNAME}"
  • 读写uboot环境变量
    7 h" \; b0 Z+ ?0 ~
fw_setenv foo barfw_printenv
uboot其他操作
  • 在新uboot里从U盘根目录中刷入uboot1 G3 m/ W: ?9 q* `' A
bubt flash-image.bin spi usb
  • 在新uboot里从tftp中刷入uboot
    5 m# U/ T% n# w& a6 J3 `& X
setenv ipaddr 192.168.1.100 #设定本机
& {( t$ }' J0 B3 d7 cipsetenv serverip 192.168.1.2 #设定tftp服务器
+ ]9 ~. c' y0 m/ B$ ^ipbubt flash-image.bin spi tftp
  • 在新uboot里改变启动顺序
    * E! V- [' W. w- g
setenv boot_targets "usb sata mmc0" #默认为usb->mmc0->satasaveenv
已知问题
  • 主线内核中无法控制风扇的gpio(会导致以太网phy重新复位),所以poweroff后风扇不停3 k( I7 h7 q3 k' @; y: m4 o

6 E+ Q' L$ \4 D1 g6 w

  S& W6 t3 E* e1 J5 q2 o$ G( _3 m  |  f0 H
3 y9 j1 M, b. H" Z3 O
0 Z4 l* ^+ J: y9 W  M+ \

+ J: w1 c. N, l4 U0 Y% w( K) v9 D2 I' T( I4 h

5 x7 u5 a  V2 X- q" x

评分

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

查看全部评分

2

主题

66

回帖

69

积分

初级渣柚V2

积分
69
发表于 2019-10-1 08:58:16 来自手机 | 显示全部楼层
这个好像有大佬搬运过

5

主题

57

回帖

491

积分

中级渣柚V1

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

22

主题

230

回帖

1028

积分

中级渣柚V3

积分
1028
 楼主| 发表于 2019-10-1 09:06:14 | 显示全部楼层
浪卡飞羽 发表于 2019-10-1 08:58
0 U6 K5 K2 @6 b. z; X' \这个好像有大佬搬运过
: ]8 G( R. L* e: @' i( X5 |9 ?& R
没注意哦,已经搬运了?

22

主题

230

回帖

1028

积分

中级渣柚V3

积分
1028
 楼主| 发表于 2019-10-1 09:06:38 | 显示全部楼层
xingjiwoniu 发表于 2019-10-1 09:03
; ]8 `( A; Y, u9 v. B应该把命令部分 编辑一下,选择 插入命令 这样就能复制链贴,刷机的时候不会出错 ...

; \5 [/ f! u* h  N) Q5 ]$ \坛子编辑器难用。。。。弄了一下

11

主题

126

回帖

454

积分

中级渣柚V1

积分
454
发表于 2019-10-1 09:14:16 | 显示全部楼层
支持一把

1

主题

33

回帖

290

积分

中级渣柚V1

积分
290
发表于 2019-10-1 23:06:12 | 显示全部楼层
努力灌水吧

8

主题

54

回帖

365

积分

中级渣柚V1

积分
365
发表于 2019-10-2 00:08:40 | 显示全部楼层
2 G/ n& \1 q5 D0 ?# r+ a7 k
努力灌水吧

1

主题

19

回帖

191

积分

初级渣柚V2

积分
191
发表于 2019-10-2 00:09:15 | 显示全部楼层
来学习拿权限
$ @! y4 D0 \9 y
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-29 16:36 , Processed in 0.059403 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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