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

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

[复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
fhh 发表于 2021-3-5 11:18:42 | 显示全部楼层 |阅读模式 IP:–浙江–宁波 电信
本帖最后由 fhh 于 2021-3-23 14:04 编辑
3 T$ E# ^! W8 Z5 G& H  D. a5 D0 v' v" q: q3 l9 E6 g
发现了几乎完美的解决方案,此贴终结
/ h& w% u9 P( P" g( Uhttps://bbs.nasdiyer.com/thread-7843-1-1.html  y" V$ V- ?- J) n3 j3 R8 w2 S
刷机完成后,如果希望从emmc启动,只需更改bootcmd环境变量即可。. n3 u* }2 W( n. K0 p
& a, G" _  n8 b6 Y

4 U7 }: C- Y" g* e2 J. W7 Y8 A------------原内容------------------------------------4 V2 n% h# e' O) l
首先声明一点:9 J8 w: F+ c: E4 \) N. T3 {
猫盘掉IP并不是所谓的“网卡虚焊”
, Y% `$ O% }8 |4 P1 @(不然为什么X3P可以正常使用)% Z7 C/ x8 M7 A# `3 I8 d8 \
掉IP的真正的原因是H大提供的驱动(u-boot/Linux)存在问题,导致网卡没有被正常初始化. H! }* S' h2 D* U) y, ]+ b* Z
(比对了一下x3p的dts和H大的dts发现基本上完全不一样,可能是硬件版本区别?)
: J" E: K, }; I; R/ T4 L所以,临时的解决方法如下:5 h7 J: G. D( m: T
1.刷X3P
1 L7 P* [1 l0 i% z+ ^# ^  j2.将H大提供的系统img(debian/ubuntu/archlinuxarm均可,我用的是Archlinux)写入U盘
" C2 P0 u/ k9 L9 |3.将U盘插入猫盘,进入ttl,清除emmc的mmcblk0p2分区,将U盘的文件系统复制到这个分区;* T/ a/ y( J& \, L
4.重启,在uboot中修改启动命令,从emmc的mmcblk0p2分区启动0 |3 U: }. T7 F0 \$ O
5.启动alpine后,将U盘挂载(比如/mnt)
3 Q5 n7 B. i6 X+ f4 ?4 [) |$ B6.将/dev和/proc挂载到/mnt/dev和/mnt/proc
7 G7 {4 y) A! x/ G3 R7.将/boot中的Image和dtb文件复制到/mnt备份9 s$ p* ^* h, r( I, @2 X  s
8.将/lib/modules文件夹复制到/mnt备份9 ~8 r1 g1 {" U, Y
9.chroot进/mnt,执行emmc-install.sh
& q2 c7 _, R" S& J) d  x10.挂载/dev/mmcblk0p1(安装完成的系统),备份当前的Image和dtb,将x3p的备份复制进去
  c7 U% o& |- L$ n; z8 a5 v5 y11.将x3p的/lib/modules复制到当前系统* D5 o) _3 s: x7 _2 h$ T8 {( H
12.重启9 ^9 Z6 E1 T  J8 Q8 V, M
应该直接就能进去了,并且100%获取IP
" a- i2 @. b* u' Z- o内核也不会有crc错误的提示
4 R9 z# A7 S7 D$ y  ^
' H0 g; q2 V. V' I7 w) \, D! `2 O. z问题:
$ O' H$ g) T6 ?5 B& i& h与之前的内核相同,无法控制风扇
7 _3 d  f9 Y( R; I! }  D(LED的控制方法见楼下)7 I: g3 e" x2 b/ i0 m
7 c* P# Q( E$ `  C% R# V- W) x
废话不多说,上图$ v! D! f% G2 O/ N- o( M

获取IP截图

获取IP截图

; Q- Z) W; S( F

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:/ @+ G1 r  `0 Q7 Z
/usr/bin/led* Q4 b3 P& e! I6 R6 c' H2 w
  1. #! /usr/bin/bash
    6 f4 w; Y9 B# F" ^) Z1 A
  2. if [ ! -f "/sys/class/leds/c1/brightness" ]; then* I2 i2 j% y$ R: x5 e( z' |
  3.         insmod /lib/modules/4.4.52-armada-17.10.1/leds-aw2013.ko
    7 {1 H# }* s4 T( o: @1 W
  4. fi7 U2 S0 ?: e$ z8 q
  5. if [ $# -eq 3 ]; then( M) `# m8 _" S
  6.         echo $1 > /sys/class/leds/c1/brightness3 z0 L$ G: o- q/ o$ u3 g: p
  7.         echo $2 > /sys/class/leds/c2/brightness- L+ c6 e  ], B; O& U" D4 A1 F
  8.         echo $3 > /sys/class/leds/c3/brightness  D3 \% P( M; S/ U$ M3 A. b+ @$ V
  9. else# T# s6 L) ?& e+ b# K3 @9 c

  10. & w$ }( y5 L. q( `! C# C
  11.         echo 23 > /sys/class/leds/c1/brightness: a! C( \# k$ y. w# q
  12.         echo 147 > /sys/class/leds/c2/brightness
    ; w1 E; d* {' t" V! N5 h9 i/ S. N
  13.         echo 209 > /sys/class/leds/c3/brightness
    1 L4 `  A  i# v$ Z& |* s7 @% k
  14. fi( A! D1 N; [6 I! o
复制代码

5 H) c6 t( n1 \( K! Y使用方法:- D- d) X0 n; u. ^! M! R% y
led R G B% ]" A. v# C5 x& s, B
不传RGB值默认是Arch蓝- }! M, j9 Y0 s: ^9 M* ~
为了让这个脚本开机启动,添加一个systemd脚本:
+ V2 ]3 d$ j4 L+ Y# I1 _# W( w( r/usr/lib/systemd/system/led.service' a6 e' y& }5 E1 k
  1. [Unit]$ W  @- W" |" L6 u" l8 E! L# l
  2. Description=LED enable
    ' U8 S* w4 |0 ]+ E4 m
  3. Before=basic.target( t. l% Q1 Q( W1 ~, q' T8 W
  4. After=sysinit.target local-fs.target
      G; I/ }3 E; T
  5. DefaultDependencies=no; C+ i$ s& A$ C! x/ W8 p: V

  6. . g7 L9 C# M  O
  7. [Service]3 R6 n6 g( @6 z- u" V/ X" R
  8. Type=oneshot
    6 O( p) L- c+ w8 W# t! U
  9. RemainAfterExit=yes* W, _1 J0 b% s7 F
  10. ExecStart=/usr/bin/led
    ; R+ ]# r  l! z3 l/ M3 N* K! N
  11. TimeoutStartSec=1min
    8 U9 O, k: \( E  A* n  B* c, h

  12. ! I" {+ f) J/ H+ N, g, ]* ~3 P0 n
  13. [Install]# o7 F5 d. X; h- R% u+ K
  14. WantedBy=basic.target
    , N2 K  M3 b# A' f
复制代码

( Q9 o* a$ \* I$ }% osystemctl 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:–浙江–宁波 电信
获取网卡温度:& }2 u$ I% h1 M" R
1.按照https://blog.csdn.net/han_dawei/article/details/9427033这个教程,编译一个操作网卡接口的程序;4 |+ B/ @7 \7 i5 q7 G: H* [$ ]
2.按照Marvell的官方datasheet,编写以下脚本:) M! l( z) u* V- k) A( F
/usr/bin/phytemp
5 v1 J. y! t% J4 j5 X
  1. #! /usr/bin/bash, t- C. v4 H2 q
  2. mdio eth0 22 6
    # r" k- t, @! H, [2 a
  3. raw=$(mdio eth0 26)/ i5 c8 I( I: Z/ B. G" Y
  4. mdio eth0 22 0$ r9 N3 N: h. h
  5. echo $(((raw&31)*5-25))7 C4 G) ]4 a" S/ u9 }" \" `
复制代码

& D; R4 m% u( T0 k6 Q3.直接执行即可。6 }+ l( z0 V4 s9 |4 b% p5 S$ V

9 `  {2 A% @$ i/ r3 [  v8 ^风扇控制:3 Q1 c3 n* F9 E1 i6 D4 C4 p
编写以下脚本:9 Y+ b+ L9 W/ ?' w4 o1 e
/usr/bin/gpiofan
& {% d7 H" K' @
  1. if [ $# -eq 1 ]; then! P0 k7 P+ o$ T  S0 n! X+ v4 m& [4 f
  2.         case $1 in% V# ^0 ~& l' F  m# H  a
  3.                 high)   echo 0 > /sys/class/gpio/gpio38/value  H% z& Y, T* e- ~/ H
  4.                         echo 1 > /sys/class/gpio/gpio40/value;;8 {- z  z, ~) Z% ^. X* h
  5.                 low)    echo 1 > /sys/class/gpio/gpio38/value
    / O+ V5 V; C5 `# L3 K
  6.                         echo 0 > /sys/class/gpio/gpio40/value;;3 d) R+ V% J( \9 l# p
  7.                 off)    echo 0 > /sys/class/gpio/gpio38/value: `/ j6 p! c3 b+ P" F. i: @
  8.                         echo 0 > /sys/class/gpio/gpio40/value;;; a$ Y# M% t% B+ z
  9.                 init)   if [ ! -d "/sys/class/gpio/gpio38" ]; then5 A& r# _  S: N  X8 j
  10.                                 echo 38 > /sys/class/gpio/export
    - z' V/ k" b2 M+ B- j8 t: K0 B
  11.                                 echo out >  /sys/class/gpio/gpio38/direction- Y. a/ n2 b4 {; ^
  12.                         fi$ V! N1 R, |. a1 X* W3 t. O" K
  13.                         if [ ! -d "/sys/class/gpio/gpio40" ]; then# J8 d( y$ n! L! w7 G' R
  14.                                 echo 40 > /sys/class/gpio/export
    + W" I8 P! T. F4 K. I9 S
  15.                                 echo out > /sys/class/gpio/gpio40/direction
    8 m% w8 ?3 _# y
  16.                         fi;;- @0 U$ R2 E( ?! W7 O, U
  17.                 *)    echo $0 "high|low|off|init";;3 ^! e0 O1 F+ S7 k# T
  18.         esac, U' u- x9 Z. O' f3 G7 E) U: W$ ]( z
  19. else& v' u- D  G0 I5 Q
  20.         echo $0 "high|low|off|init"
    , q: j) E! f: m' Z
  21.         exit 1275 O3 w5 h% Q( \8 y* j0 M5 M# P: `
  22. fi
复制代码

0 ~1 Y( V& `2 y6 `9 ^用systemd调用gpiofan init即可启动。
3 O2 n% A! \' `支持以下参数:
& K9 F3 g0 p& t+ z off:完全关闭9 x1 [% J, I; A; E% @; G. c
high:高速度运行6 _! M: ?. B& c& i6 B# S# G
low:低速度运行
$ V7 Q6 X' A+ G9 M* Binit:初始化,在调用其他功能之前,必须init!2 |2 @8 r/ X6 L7 K. M

& O' e4 [+ c# H0 X; o( i至此,终于是完美实现功能了

5

主题

5268

回帖

7607

积分

资深垃圾佬

积分
7607
adiao 发表于 2021-3-6 10:06:23 | 显示全部楼层 IP:–湖北–十堰 电信

0 O! {6 z% g& F" y' p6 k好贴帮顶,顺便得渣金

0

主题

27

回帖

89

积分

初级渣柚V2

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

5

主题

5268

回帖

7607

积分

资深垃圾佬

积分
7607
adiao 发表于 2021-3-8 09:06:55 | 显示全部楼层 IP:–湖北–十堰 电信
; u- O& j$ j7 k. ~4 v
好贴帮顶,顺便得渣金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-9-18 14:58 , Processed in 0.077234 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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