找回密码
 立即注册
查看: 42228|回复: 32

[教程] 猫盘 linux 解决掉IP问题

[复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
fhh 发表于 2021-3-5 11:18:42 | 显示全部楼层 |阅读模式 IP:–浙江–宁波 电信
本帖最后由 fhh 于 2021-3-23 14:04 编辑 + n6 j/ Q- [4 }1 ^  A5 U% ]/ \
4 P- X2 h8 K( m% \3 m
发现了几乎完美的解决方案,此贴终结8 ^' E; d( _3 t7 i3 A7 I* u
https://bbs.nasdiyer.com/thread-7843-1-1.html5 m! |6 f) W! D9 L8 Y
刷机完成后,如果希望从emmc启动,只需更改bootcmd环境变量即可。
& k5 o0 e/ U# B- p  t2 w% V+ i) s* ^4 b; n+ Q
' s9 E5 v1 k2 }/ K
------------原内容------------------------------------' b# S' k) f% a% [  T
首先声明一点:& F& S6 H1 D8 S" s
猫盘掉IP并不是所谓的“网卡虚焊”$ \* S3 T7 u* Q1 p! m2 f+ {
(不然为什么X3P可以正常使用)
0 m0 v$ C7 I/ w, J# f掉IP的真正的原因是H大提供的驱动(u-boot/Linux)存在问题,导致网卡没有被正常初始化
+ U; i5 C8 Q$ @: O' T% r3 s(比对了一下x3p的dts和H大的dts发现基本上完全不一样,可能是硬件版本区别?)
* g# T( K" M$ X% `+ y所以,临时的解决方法如下:
& W# f; e. e. T( z! c( d1.刷X3P7 h0 b+ J% z2 }3 W4 a" F8 F
2.将H大提供的系统img(debian/ubuntu/archlinuxarm均可,我用的是Archlinux)写入U盘
& \$ ?# h6 l$ E# v) J5 L3.将U盘插入猫盘,进入ttl,清除emmc的mmcblk0p2分区,将U盘的文件系统复制到这个分区;" H$ v4 Q, H3 [+ A. F" \, `
4.重启,在uboot中修改启动命令,从emmc的mmcblk0p2分区启动0 a. d  z  _, n4 S: x3 N
5.启动alpine后,将U盘挂载(比如/mnt)
2 s& ]: a& `1 C1 S/ o; s6.将/dev和/proc挂载到/mnt/dev和/mnt/proc3 J  \9 M/ |5 N6 Z
7.将/boot中的Image和dtb文件复制到/mnt备份% b  ^. A: C! K; ^, U' H
8.将/lib/modules文件夹复制到/mnt备份
! N4 j, b$ w/ A: H6 g9.chroot进/mnt,执行emmc-install.sh
3 \# F: n" Q) w8 [4 N2 T10.挂载/dev/mmcblk0p1(安装完成的系统),备份当前的Image和dtb,将x3p的备份复制进去
* Z4 x( Q" }0 ]& `  n7 s% B11.将x3p的/lib/modules复制到当前系统
# g4 j# t! K8 l( ]# J9 k12.重启
, v6 d% t; `0 d$ u+ j应该直接就能进去了,并且100%获取IP2 W; J7 i; A) }# A# y
内核也不会有crc错误的提示
  A7 v5 w$ |2 E3 B8 G" r2 F7 P3 F$ ]1 `
问题:
6 w- [* Y8 b. X  `/ N& N与之前的内核相同,无法控制风扇/ t) ]' i3 Z/ D, |& K3 {; w
(LED的控制方法见楼下)  J2 O9 U% K. l9 X
0 j' S1 q* r* x: [3 D0 |
废话不多说,上图$ G2 s  p( E; w$ r$ M1 _

获取IP截图

获取IP截图

% `  c8 P! L2 j+ t+ v' U* B

1

主题

34

回帖

67

积分

初级渣柚V2

积分
67
QQ
panghu0603 发表于 2021-3-5 12:48:26 | 显示全部楼层 IP:–广东–深圳–南山区 电信
绑定

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| fhh 发表于 2021-3-5 12:57:13 | 显示全部楼层 IP:–浙江–宁波 电信
大致设置了一下,写了一个简单的脚本,可以用来控制LED:. O3 P. ?5 `; ^' n! T! ]
/usr/bin/led
& ^4 _+ C1 q$ O( v
  1. #! /usr/bin/bash
    ' W- A3 w5 \5 D, D2 m: a
  2. if [ ! -f "/sys/class/leds/c1/brightness" ]; then
    - `2 `4 W! N) _9 }' v5 j0 n
  3.         insmod /lib/modules/4.4.52-armada-17.10.1/leds-aw2013.ko
    1 R1 S' c, x! F
  4. fi
    3 K9 D* I+ a. N  P
  5. if [ $# -eq 3 ]; then% M' l2 l9 o$ i' x
  6.         echo $1 > /sys/class/leds/c1/brightness
    ' z3 y/ d" z' b7 i! m: i
  7.         echo $2 > /sys/class/leds/c2/brightness
    ) z: ]  V, ]7 A! o. ^7 M0 J
  8.         echo $3 > /sys/class/leds/c3/brightness( ]$ S, }% E, D8 e) B
  9. else% }+ w9 w% p3 D/ i6 X+ R9 R
  10. : a/ H2 I" T* v: J3 C& P" m8 k
  11.         echo 23 > /sys/class/leds/c1/brightness
    , C* r2 N' C$ w; y
  12.         echo 147 > /sys/class/leds/c2/brightness3 G/ ^7 I# Y( t
  13.         echo 209 > /sys/class/leds/c3/brightness
    - X( S, b; [0 V% @9 F* O
  14. fi
    ( M3 S4 H( l6 x0 I$ M
复制代码

9 V* o# Z) g$ p( a( ^使用方法:& L  k5 v$ ?0 f
led R G B
0 |' u* v6 d3 q+ q' R9 k# C不传RGB值默认是Arch蓝. O- m" o0 ?- c1 t; M6 P
为了让这个脚本开机启动,添加一个systemd脚本:
. P# S, l5 u5 l0 P2 U- J: g/usr/lib/systemd/system/led.service
8 x( K6 ]. d$ m% }  t8 c. ~8 ]& K
  1. [Unit]
    8 k, n" F: X# H1 J, \9 l
  2. Description=LED enable/ `' w& i" T/ f1 N2 \
  3. Before=basic.target; s/ s/ P6 v8 D7 |' ^1 w7 P
  4. After=sysinit.target local-fs.target; `) _/ z) Q% q8 g6 x; c
  5. DefaultDependencies=no8 X4 X- G4 u% U0 ^( R3 y9 j
  6. , I. A; s, `8 i% B& v, N  E
  7. [Service]! p, B% u2 E5 l1 q% s; o, d. e
  8. Type=oneshot! v+ I  X4 [8 U7 k3 f, `5 u/ g
  9. RemainAfterExit=yes
    ' }! k& {. r" S$ E
  10. ExecStart=/usr/bin/led0 [2 n# c& _$ H& _6 R7 r
  11. TimeoutStartSec=1min( ]0 t  F& @" j7 ~9 m, G9 S8 c
  12. ! N0 `7 V6 S1 ?% H
  13. [Install]5 [) H+ B" @3 q8 o6 l, J/ M+ f
  14. WantedBy=basic.target
      x2 z% r1 `" X% d: t4 C
复制代码

0 W: z9 b3 ?2 X; }1 [systemctl enable led后重启即可。

33

主题

325

回帖

1353

积分

中级渣柚V3

积分
1353
四川大海 发表于 2021-3-5 13:39:18 | 显示全部楼层 IP:–四川–成都 移动
好贴帮顶,顺便得渣金

1

主题

13

回帖

93

积分

初级渣柚V2

积分
93
monster233 发表于 2021-3-5 14:27:29 | 显示全部楼层 IP:–湖北–武汉 联通
太厉害了  之前还花钱改uboot解决 帮顶

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| fhh 发表于 2021-3-6 08:57:08 | 显示全部楼层 IP:–浙江–宁波 电信
获取网卡温度:6 H7 _3 z, L2 |! ]
1.按照https://blog.csdn.net/han_dawei/article/details/9427033这个教程,编译一个操作网卡接口的程序;
) G' B$ B/ P  z% P2 |4 ~2.按照Marvell的官方datasheet,编写以下脚本:
' b* \6 i/ ]8 t2 W8 _/usr/bin/phytemp
/ v4 v7 i! \9 T# t
  1. #! /usr/bin/bash& h8 j' o4 |8 @& }& w: l5 D) d- F
  2. mdio eth0 22 6
      S9 y$ F& G, n' ^1 @$ i
  3. raw=$(mdio eth0 26)* _3 K# {# _4 j: @% K) Z/ p
  4. mdio eth0 22 0
    % |7 N+ [% `- O* H9 s* C* J
  5. echo $(((raw&31)*5-25))
    % n( [2 d8 g2 x: @
复制代码

) T, c+ j2 f3 m; R3.直接执行即可。
( u4 ^; j1 X3 J6 M5 r- Q& B3 }1 w
/ e' f' d: v/ |风扇控制:
' Y' J- ]* D$ V* ^4 c# P编写以下脚本:
9 b' q; A* h* \- A/usr/bin/gpiofan( h1 x1 X( P7 e/ J! ~: ]
  1. if [ $# -eq 1 ]; then, D: ]# h% K5 C9 N7 L
  2.         case $1 in2 r5 Z* Y  l8 X) A
  3.                 high)   echo 0 > /sys/class/gpio/gpio38/value# R0 x- w8 c9 G) U5 U7 K
  4.                         echo 1 > /sys/class/gpio/gpio40/value;;
    ( Q' F) H- N8 H
  5.                 low)    echo 1 > /sys/class/gpio/gpio38/value
    ( l! u' x' a9 I
  6.                         echo 0 > /sys/class/gpio/gpio40/value;;. i2 q3 h( O/ d
  7.                 off)    echo 0 > /sys/class/gpio/gpio38/value$ R+ }0 B5 K  D0 B" X+ e
  8.                         echo 0 > /sys/class/gpio/gpio40/value;;
    * K+ W  @0 U$ q0 j/ b
  9.                 init)   if [ ! -d "/sys/class/gpio/gpio38" ]; then% B1 C) _( L( E8 _
  10.                                 echo 38 > /sys/class/gpio/export8 S1 p# |/ h) H6 j' z
  11.                                 echo out >  /sys/class/gpio/gpio38/direction
      V( h9 N* y$ ~0 A+ m+ o) o
  12.                         fi9 b. U3 E8 {, P3 J6 `3 \
  13.                         if [ ! -d "/sys/class/gpio/gpio40" ]; then
    . D6 J4 I3 b4 r( ?5 M& T8 R
  14.                                 echo 40 > /sys/class/gpio/export: G' L/ O  ?  }* ~- D
  15.                                 echo out > /sys/class/gpio/gpio40/direction
    : m! w$ Q- w& p. _/ v
  16.                         fi;;
    " C, l7 h3 O2 j' F) x5 l, s+ H& i# L
  17.                 *)    echo $0 "high|low|off|init";;; d/ }0 ^1 [+ l6 W- K0 K, I# P" e* H
  18.         esac
    . u3 q" h; n& P7 g# Z: }6 H
  19. else
    : r2 i+ G5 Y1 T' R* Q& B2 v8 F
  20.         echo $0 "high|low|off|init"
    / N4 U; z2 V( P! P. A* ^& k
  21.         exit 127/ ~0 m( P& I" @4 n
  22. fi
复制代码

5 U( T3 k. O, Q3 C  H4 C* n用systemd调用gpiofan init即可启动。
0 @8 M5 C9 N/ Q# r" j支持以下参数:" [' `7 r3 v9 L. {/ U7 _
off:完全关闭+ U# w% L0 ~9 @; s9 z# n3 B, y
high:高速度运行/ j( s% x' z3 F8 u' ?. u1 \" T
low:低速度运行( Q; [( W* ~0 k. X' J* S
init:初始化,在调用其他功能之前,必须init!
: N" C8 r# o- ?( G9 R6 x; Y7 }# B1 ^, r# d) F
至此,终于是完美实现功能了

5

主题

5269

回帖

7630

积分

资深垃圾佬

积分
7630
adiao 发表于 2021-3-6 10:06:23 | 显示全部楼层 IP:–湖北–十堰 电信
1 j/ u) E- Q# ?* p) o( ^& v
好贴帮顶,顺便得渣金

0

主题

27

回帖

89

积分

初级渣柚V2

积分
89
QQ
Cp0204 发表于 2021-3-6 11:45:21 | 显示全部楼层 IP:–广东–深圳 电信
好贴帮顶,顺便得渣金

5

主题

5269

回帖

7630

积分

资深垃圾佬

积分
7630
adiao 发表于 2021-3-8 09:06:55 | 显示全部楼层 IP:–湖北–十堰 电信

* i& F% {4 q: f1 q% }好贴帮顶,顺便得渣金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-10-9 17:43 , Processed in 0.067455 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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