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

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

[复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
fhh 发表于 2021-3-5 11:18:42 | 显示全部楼层 |阅读模式 IP:–浙江–宁波 电信
本帖最后由 fhh 于 2021-3-23 14:04 编辑 , d% y2 J9 ]1 O' U8 n2 n

8 c, d5 P5 Z, u3 g) Y2 d% k( v: k发现了几乎完美的解决方案,此贴终结( f& q" q) g/ V
https://bbs.nasdiyer.com/thread-7843-1-1.html
; V# ?1 N8 \1 m( R6 `刷机完成后,如果希望从emmc启动,只需更改bootcmd环境变量即可。$ e/ A2 y, u! p3 {& ~  L7 s
* N/ h# [$ m5 ]
& v4 D, U7 O; B# C; ^
------------原内容------------------------------------2 n0 X6 v% j4 Q% ^
首先声明一点:, t" A' G: d7 D; S( b  K
猫盘掉IP并不是所谓的“网卡虚焊”( g6 }" Z0 @6 R' X1 F
(不然为什么X3P可以正常使用)
& s+ D4 m4 s& O6 g- i/ \掉IP的真正的原因是H大提供的驱动(u-boot/Linux)存在问题,导致网卡没有被正常初始化1 g! P' E$ L4 p9 y
(比对了一下x3p的dts和H大的dts发现基本上完全不一样,可能是硬件版本区别?)
* t0 T: y8 Q9 a5 Y所以,临时的解决方法如下:( A2 x8 {" \5 ^3 G
1.刷X3P/ i; N+ }8 w! m# w7 D
2.将H大提供的系统img(debian/ubuntu/archlinuxarm均可,我用的是Archlinux)写入U盘
$ I- _2 o8 E* d( x: E$ _4 G3.将U盘插入猫盘,进入ttl,清除emmc的mmcblk0p2分区,将U盘的文件系统复制到这个分区;
4 P+ L+ r- i2 P" m" T% S3 C4.重启,在uboot中修改启动命令,从emmc的mmcblk0p2分区启动3 \% E0 F& u& l6 h
5.启动alpine后,将U盘挂载(比如/mnt)+ b5 n+ {  F) L# ^* O7 Y: H
6.将/dev和/proc挂载到/mnt/dev和/mnt/proc
1 k7 Q2 V' |0 ?7.将/boot中的Image和dtb文件复制到/mnt备份
4 C7 ]. J" H1 i/ |5 {! n# b2 v+ w8.将/lib/modules文件夹复制到/mnt备份
% \) h. S1 j6 B$ l, _1 q$ B: {9.chroot进/mnt,执行emmc-install.sh
. s) f2 ^5 L3 X' v, _10.挂载/dev/mmcblk0p1(安装完成的系统),备份当前的Image和dtb,将x3p的备份复制进去1 O( b0 R4 N4 r# h' G
11.将x3p的/lib/modules复制到当前系统
! }7 X* P; z9 s/ L7 U) G+ j12.重启6 b: B8 x9 o7 X* v4 C
应该直接就能进去了,并且100%获取IP
2 E9 N. h/ t2 H; n7 N内核也不会有crc错误的提示; ?: D4 T7 o, l& v! [( e
' S0 ^9 s: b! k4 k5 U
问题:9 u$ t5 ?9 u' H! p+ @3 \! |" V- z
与之前的内核相同,无法控制风扇4 D$ K, c& T/ F# U+ X% C" r
(LED的控制方法见楼下)" O; c; O, q3 V% h
8 T1 z. X7 o( ]4 }9 j
废话不多说,上图
" V7 |) t4 `$ o" I+ ~$ n2 h0 E% t4 G

获取IP截图

获取IP截图

, F9 g* ?( D- c4 Y% O

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:
8 i6 ]" L" x0 j/usr/bin/led
6 f0 Q/ U& p+ v% N% s- ], }
  1. #! /usr/bin/bash
      I$ L; E) r, m3 S! `! @
  2. if [ ! -f "/sys/class/leds/c1/brightness" ]; then
    6 {" ]6 u: @6 s# p$ G, \5 w
  3.         insmod /lib/modules/4.4.52-armada-17.10.1/leds-aw2013.ko
    # i  Y. x2 q2 @0 P& W1 A7 C
  4. fi
    # a/ ]- U; _. z: I) F8 r
  5. if [ $# -eq 3 ]; then3 B7 e/ f* P6 ^8 @2 {8 ~
  6.         echo $1 > /sys/class/leds/c1/brightness# y0 R5 Q' [! I( ?! G
  7.         echo $2 > /sys/class/leds/c2/brightness
    ( p9 J) ], r% f8 X, o
  8.         echo $3 > /sys/class/leds/c3/brightness
    * N( b3 f- U0 G, b# v, l0 c
  9. else/ o4 v6 v5 a- ]  Q
  10. 4 _8 w2 I' F( w
  11.         echo 23 > /sys/class/leds/c1/brightness
    6 N$ K# h" P1 I) _
  12.         echo 147 > /sys/class/leds/c2/brightness* f# b4 w: \+ s& g2 a# D2 r
  13.         echo 209 > /sys/class/leds/c3/brightness
    7 i- r4 Q5 `5 o7 X4 \" k
  14. fi
    5 y! \9 q: x+ `9 S+ _' @$ t
复制代码
4 Q4 w) V) f3 G. o& g" l
使用方法:' ~" @9 e) i, n: J
led R G B$ y' C- B% t7 K
不传RGB值默认是Arch蓝
; [. a/ Z0 ~0 o7 m3 D, U1 F为了让这个脚本开机启动,添加一个systemd脚本:
9 C4 u9 ?2 }7 T  d) f& |8 ~/usr/lib/systemd/system/led.service) f0 m" g: T% A: u% f: J, T
  1. [Unit]
    5 @8 R9 J. X3 V# b! p" \- `
  2. Description=LED enable6 ~$ [, y: R1 c4 n1 @5 H) Y
  3. Before=basic.target. F9 v* G6 B. }' c
  4. After=sysinit.target local-fs.target
    2 x$ a- }' H  I5 L+ f, L) [& R
  5. DefaultDependencies=no
    1 G; X$ G9 C. R) e/ _8 z

  6. ( W% D3 r6 m6 Y. O6 a
  7. [Service]
    4 {9 s& |9 ?5 C; j9 x3 R+ G. l; U
  8. Type=oneshot2 s. ^; t- }. X# W+ s; h* C" I
  9. RemainAfterExit=yes  W! o! z: O: w
  10. ExecStart=/usr/bin/led
    ) t$ m% v  }4 G0 o$ h7 b' `6 X& u* t
  11. TimeoutStartSec=1min& a% n( t8 Y# I, L2 @

  12. 4 q- L- t& K: J$ l3 K5 b
  13. [Install]" L1 K5 D+ G/ {8 ]* e- L
  14. WantedBy=basic.target
    ) V$ V1 v+ q3 u& R2 H( I9 B2 }
复制代码
8 M% N" f7 ~2 @* H$ g4 G
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:–浙江–宁波 电信
获取网卡温度:: K4 f8 {4 y3 O  R
1.按照https://blog.csdn.net/han_dawei/article/details/9427033这个教程,编译一个操作网卡接口的程序;7 Y! B. ]7 Y/ c% ~! x
2.按照Marvell的官方datasheet,编写以下脚本:
. ~. q' N8 F0 v- V# ?, ~6 n/usr/bin/phytemp
# j7 [" c; v7 x7 S0 W7 N7 ^
  1. #! /usr/bin/bash
    * C2 Y4 t2 b4 i, Q8 a/ J* }
  2. mdio eth0 22 6/ \% w; N" M9 J' P; w; u
  3. raw=$(mdio eth0 26)$ F& O1 C6 L* n& m' ^/ l
  4. mdio eth0 22 0
    ' q8 ?2 d  I0 a) H
  5. echo $(((raw&31)*5-25))
    ! p0 v- X) M- F
复制代码

3 n. v, o9 F' S0 a( ~3.直接执行即可。
' z8 F% ?" I- X) Y0 ^
+ N# X8 n$ K, T3 _  I5 {风扇控制:7 a8 z1 Z# r5 M- l+ \7 ]4 y
编写以下脚本:: O: `& k  T) B/ @( [
/usr/bin/gpiofan5 W; _9 F' O. K( Z+ ]
  1. if [ $# -eq 1 ]; then
    + a/ H& p9 b9 s$ ~0 R% t) M: `
  2.         case $1 in8 e1 c( A# J4 _4 M
  3.                 high)   echo 0 > /sys/class/gpio/gpio38/value6 h% C: Q9 r# Z/ M: @0 f# E
  4.                         echo 1 > /sys/class/gpio/gpio40/value;;; i. n- k4 p* `! [2 k, j
  5.                 low)    echo 1 > /sys/class/gpio/gpio38/value
    - i2 Z5 ]; [) i) i9 h1 f# Y& T
  6.                         echo 0 > /sys/class/gpio/gpio40/value;;! E8 F$ Z3 y4 L/ G2 U" \6 l, ~' C
  7.                 off)    echo 0 > /sys/class/gpio/gpio38/value
    # h1 o- x2 l# Z4 n; s, X
  8.                         echo 0 > /sys/class/gpio/gpio40/value;;
    7 Q' l/ B( l1 }9 n
  9.                 init)   if [ ! -d "/sys/class/gpio/gpio38" ]; then: A! \* l+ I% n% p5 \7 b
  10.                                 echo 38 > /sys/class/gpio/export
    # K, k8 b1 d" f. Z5 Q
  11.                                 echo out >  /sys/class/gpio/gpio38/direction
    $ O5 E3 x* p8 T' u6 F
  12.                         fi
    ) ]3 _5 n" s, c+ D
  13.                         if [ ! -d "/sys/class/gpio/gpio40" ]; then
    1 ~6 _% e' E( U) _* M, p( @. M; M; D
  14.                                 echo 40 > /sys/class/gpio/export
    # h, c. m' Y5 c2 J& J# E
  15.                                 echo out > /sys/class/gpio/gpio40/direction  l$ a# k5 O7 B& n3 G3 O
  16.                         fi;;# H9 {2 t2 F# [% ]" T) [1 o9 c, s
  17.                 *)    echo $0 "high|low|off|init";;$ ^4 S% X) s; m# J5 s
  18.         esac; I/ W* z6 g  ?  N
  19. else6 q. z- i, {, f) l( V( ]' `6 `) H, M
  20.         echo $0 "high|low|off|init"
    ; L* e  i1 G; w+ }8 Q) G, V7 f* u) n
  21.         exit 1274 y! u  x: S. p& G: V0 o- I$ F" ~
  22. fi
复制代码

+ x  W* _7 \( O! J- i0 c1 q用systemd调用gpiofan init即可启动。
7 p/ T9 O& V6 Y$ ]& J/ T% m支持以下参数:
5 g: Q5 Z" _+ R. j/ t off:完全关闭  l, h$ t6 V# n2 a) {
high:高速度运行
) }, N) m/ Z' N" v; I0 ylow:低速度运行
( w) ]0 F2 a- b* o$ I. binit:初始化,在调用其他功能之前,必须init!  J9 f+ T! k: h6 w( R* G* B# i
  ]2 s6 g6 `" C% f- z( b  W
至此,终于是完美实现功能了

5

主题

5267

回帖

7584

积分

资深垃圾佬

积分
7584
adiao 发表于 2021-3-6 10:06:23 | 显示全部楼层 IP:–湖北–十堰 电信
6 B2 l7 o% a: C. ?' G5 D
好贴帮顶,顺便得渣金

0

主题

27

回帖

89

积分

初级渣柚V2

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

5

主题

5267

回帖

7584

积分

资深垃圾佬

积分
7584
adiao 发表于 2021-3-8 09:06:55 | 显示全部楼层 IP:–湖北–十堰 电信
( \9 _- Y: [. K: J
好贴帮顶,顺便得渣金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-8-26 17:12 , Processed in 0.291299 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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