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

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

[复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
发表于 2021-3-5 11:18:42 | 显示全部楼层 |阅读模式
本帖最后由 fhh 于 2021-3-23 14:04 编辑
$ `/ Z9 Q, A: ~1 |' h" M
+ j, O8 S2 r0 `) H& }. [9 n9 \发现了几乎完美的解决方案,此贴终结% S5 e& {! G9 C
https://bbs.nasdiyer.com/thread-7843-1-1.html
5 U2 x  ]6 ]8 C6 |刷机完成后,如果希望从emmc启动,只需更改bootcmd环境变量即可。7 r! L. s) q9 |* r  t7 }" Q: T
* K: l, |) u' e3 K' E# m

* G2 ~3 r# M- O# `, f$ v------------原内容------------------------------------! Q7 U- Y; L0 s; q& G% P9 ~
首先声明一点:
( r9 t! l) p  M/ j& {# j6 |猫盘掉IP并不是所谓的“网卡虚焊”
2 \1 @8 z& T4 c* A(不然为什么X3P可以正常使用)( s1 G' o" z7 f) {3 m7 O& n& \0 \
掉IP的真正的原因是H大提供的驱动(u-boot/Linux)存在问题,导致网卡没有被正常初始化
" C! m# b) u1 x: \, L2 U, n+ c(比对了一下x3p的dts和H大的dts发现基本上完全不一样,可能是硬件版本区别?)! B) r7 T7 b4 P* o- a- e0 P
所以,临时的解决方法如下:& x2 N. a6 e0 x; L
1.刷X3P9 [  s/ ^9 ^- t: S# T, R- V& e
2.将H大提供的系统img(debian/ubuntu/archlinuxarm均可,我用的是Archlinux)写入U盘; I% p' q* b3 {8 z
3.将U盘插入猫盘,进入ttl,清除emmc的mmcblk0p2分区,将U盘的文件系统复制到这个分区;: v" m( _9 I, P& u) B" d
4.重启,在uboot中修改启动命令,从emmc的mmcblk0p2分区启动
: M5 n* x" |3 G; Y  |& G3 p. [# T5.启动alpine后,将U盘挂载(比如/mnt)
6 n5 x1 @9 L: Y& ?! Z6.将/dev和/proc挂载到/mnt/dev和/mnt/proc0 p- a" r7 t9 s5 `! ^+ Y" W
7.将/boot中的Image和dtb文件复制到/mnt备份
0 _: A0 J  g2 C4 i" F% T$ h' i8.将/lib/modules文件夹复制到/mnt备份% Q$ `5 X& h6 E" W7 @
9.chroot进/mnt,执行emmc-install.sh
$ H" D9 E1 l, k# a0 r! e) U10.挂载/dev/mmcblk0p1(安装完成的系统),备份当前的Image和dtb,将x3p的备份复制进去
* d6 U( X: T. N% t11.将x3p的/lib/modules复制到当前系统/ `3 d3 g2 A7 t3 }  i5 }
12.重启
# t: g- Q! g% T4 y, \- X应该直接就能进去了,并且100%获取IP
3 P: u# \& k8 u/ A- f内核也不会有crc错误的提示
0 O2 F/ x) O! t7 t; D; D1 ~: a, a" {+ {. q, ^: E% F& f' r+ x
问题:
' k% v! t/ o: h; }与之前的内核相同,无法控制风扇
9 v/ d0 [7 \% D- i0 W& U(LED的控制方法见楼下)% r2 w- ^+ J' ~7 o7 v: J) B" q
4 {7 j. L# j) a8 m& ?1 y
废话不多说,上图
4 \0 _7 }9 R8 r# g0 b  p* J- r

获取IP截图

获取IP截图
, ?% ]3 m! F% B% G' b

1

主题

34

回帖

67

积分

初级渣柚V2

积分
67
QQ
发表于 2021-3-5 12:48:26 | 显示全部楼层
绑定

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2021-3-5 12:57:13 | 显示全部楼层
大致设置了一下,写了一个简单的脚本,可以用来控制LED:1 b) X( l( o2 }( D7 M, ~
/usr/bin/led% [$ S3 a# L% v* D
  1. #! /usr/bin/bash
    : u# s9 N6 N' ?6 A% Y
  2. if [ ! -f "/sys/class/leds/c1/brightness" ]; then
    0 g- c9 ^+ C7 J8 \, a
  3.         insmod /lib/modules/4.4.52-armada-17.10.1/leds-aw2013.ko
    7 u$ M; V$ a0 y3 J/ K2 B( d( i
  4. fi
    . n8 v+ g0 @7 k! O7 c9 O( t8 f# _
  5. if [ $# -eq 3 ]; then
    3 N6 h0 U2 d( _9 f% O
  6.         echo $1 > /sys/class/leds/c1/brightness1 r' x1 E# ^. z8 n* e5 O
  7.         echo $2 > /sys/class/leds/c2/brightness- L( h8 I& e, E6 f% R
  8.         echo $3 > /sys/class/leds/c3/brightness$ i9 {' d  F- @2 T& h
  9. else
    ( }! B/ S! o' o% [4 M

  10. : H7 ?+ z! [1 N4 M- @% {
  11.         echo 23 > /sys/class/leds/c1/brightness) c# ]: Q) G* ?' H4 a2 p, N  c
  12.         echo 147 > /sys/class/leds/c2/brightness8 [( c- e. q# L* Z; K, d/ R
  13.         echo 209 > /sys/class/leds/c3/brightness1 I2 d, }0 A8 G5 s4 U0 w
  14. fi) f+ w, \! [+ l7 _6 U! b2 W
复制代码

9 T; l- e2 M# x# X% i使用方法:
8 f/ V, t: F+ q( b) a$ U7 H: e" dled R G B$ c. n( Q, x3 f% F$ L5 b  N& F- J
不传RGB值默认是Arch蓝  V" U1 z# T' Z. V- X
为了让这个脚本开机启动,添加一个systemd脚本:
* l5 ]* ?5 e. H/ }9 X% X" i/usr/lib/systemd/system/led.service" O7 n4 g8 o+ ~4 i" a  M  m) v1 J/ [
  1. [Unit]
    0 w( _, S* @7 m" W  D& \& V, l
  2. Description=LED enable
    2 K8 Q, M' p- c# c- @
  3. Before=basic.target
    % Z1 g. B2 i6 F$ ]- E' e( f  m
  4. After=sysinit.target local-fs.target
    2 v; U& R5 p8 U' [* w0 T; z7 ~
  5. DefaultDependencies=no% e6 Q7 v3 h6 Z$ W2 n
  6. : g' O% X, T+ ?0 w* X6 f
  7. [Service]! v3 I. N1 u' q0 z6 F% \
  8. Type=oneshot: x/ c0 M* B' x# O, |) N! ]
  9. RemainAfterExit=yes2 X. ]" [1 b. \# l( J" v
  10. ExecStart=/usr/bin/led
    6 {, g- b+ U9 M1 r. f" \( }
  11. TimeoutStartSec=1min" F9 }- P. C/ Q9 b, m
  12. 8 m9 K6 t( y5 W" z( |6 W4 y
  13. [Install]
    , p9 u* C9 O5 O1 p. R) b
  14. WantedBy=basic.target
    % J. B/ f8 o  r) @7 I) U
复制代码

8 G9 y4 a+ p1 |8 K7 i0 x) `systemctl enable led后重启即可。

33

主题

325

回帖

1351

积分

中级渣柚V3

积分
1351
发表于 2021-3-5 13:39:18 | 显示全部楼层
好贴帮顶,顺便得渣金

1

主题

13

回帖

93

积分

初级渣柚V2

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

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2021-3-6 08:57:08 | 显示全部楼层
获取网卡温度:
2 V% X8 F  E7 z4 v+ c1.按照https://blog.csdn.net/han_dawei/article/details/9427033这个教程,编译一个操作网卡接口的程序;1 M( f% e# G& O6 _1 ^
2.按照Marvell的官方datasheet,编写以下脚本:
- n8 h; [+ V7 B' m  n9 N/usr/bin/phytemp
8 N; f% s# T: G$ I
  1. #! /usr/bin/bash* u* F4 |0 c0 b8 _" h
  2. mdio eth0 22 6
    2 e1 L* s1 @2 x( W( ]6 |
  3. raw=$(mdio eth0 26)
    9 S9 n2 v+ P  ~* j; X$ x" C4 {1 j
  4. mdio eth0 22 0
    ( @4 x+ K( M' X
  5. echo $(((raw&31)*5-25))
    ) S! q* d% F8 M& K
复制代码

. j- |; T  ^; e' b/ m& o0 g! {3 E3.直接执行即可。# }+ C0 X6 P4 U  K" i5 O
# h7 t' v& `7 i9 a$ Y8 n' d
风扇控制:
- {! z) K& j, q, `) P编写以下脚本:
7 C& J9 C9 E- u$ ]* I/usr/bin/gpiofan
& v$ i* p2 e' B0 I% ^0 d+ S
  1. if [ $# -eq 1 ]; then
    ( P% C& E  G. {4 |+ j; L' D* y2 n' X
  2.         case $1 in8 t) `% X$ z+ N8 M" x  [7 Y0 [
  3.                 high)   echo 0 > /sys/class/gpio/gpio38/value
    ( \  T9 `! S1 s
  4.                         echo 1 > /sys/class/gpio/gpio40/value;;
    7 |( b- S! t4 J; n. `
  5.                 low)    echo 1 > /sys/class/gpio/gpio38/value
    ' W$ {9 [. i" |4 ]! i
  6.                         echo 0 > /sys/class/gpio/gpio40/value;;+ {( b  t2 O* A& L* g$ L  {
  7.                 off)    echo 0 > /sys/class/gpio/gpio38/value& g7 v1 l- H1 a; h, O
  8.                         echo 0 > /sys/class/gpio/gpio40/value;;$ o* q8 ^& D8 m4 U- _  |! J
  9.                 init)   if [ ! -d "/sys/class/gpio/gpio38" ]; then0 `* i  T& G* I0 u5 U  D" w1 E; t
  10.                                 echo 38 > /sys/class/gpio/export9 X  s; I" ~! E( S2 C) M% |
  11.                                 echo out >  /sys/class/gpio/gpio38/direction) m' V2 @  J- f7 T
  12.                         fi
    & s1 p9 y  r# k
  13.                         if [ ! -d "/sys/class/gpio/gpio40" ]; then. e' |9 u: C) f+ s0 O$ r
  14.                                 echo 40 > /sys/class/gpio/export
    ( _& m: Z( {/ m% s9 v. Q
  15.                                 echo out > /sys/class/gpio/gpio40/direction# p; W+ B: o5 e8 Q
  16.                         fi;;) |4 C0 o+ N% J7 \2 a
  17.                 *)    echo $0 "high|low|off|init";;6 ]; g$ x0 k" u' H% U& F
  18.         esac
    & V9 Z& v9 b  V
  19. else
    + y3 N" k( C7 N0 }  g4 Q
  20.         echo $0 "high|low|off|init"
    / O- ^$ S" t6 G! W5 {
  21.         exit 1278 N1 G, `/ V  g1 H; W' Q
  22. fi
复制代码

9 p) ]- y" b  N+ C用systemd调用gpiofan init即可启动。
, P- G- D; D/ H% Q支持以下参数:4 |4 {, l1 F, V* T3 C
off:完全关闭8 U' o% J0 t) I# ?$ X
high:高速度运行
$ r( J$ g3 h! J, }low:低速度运行; s/ U4 t0 R, z* x4 X3 @
init:初始化,在调用其他功能之前,必须init!
( k2 U: {* L) l% c  D1 h: }( }8 p8 \$ |
至此,终于是完美实现功能了

5

主题

5267

回帖

7440

积分

资深垃圾佬

积分
7440
发表于 2021-3-6 10:06:23 | 显示全部楼层
' h, Y' K& k# j
好贴帮顶,顺便得渣金

0

主题

27

回帖

89

积分

初级渣柚V2

积分
89
QQ
发表于 2021-3-6 11:45:21 | 显示全部楼层
好贴帮顶,顺便得渣金

5

主题

5267

回帖

7440

积分

资深垃圾佬

积分
7440
发表于 2021-3-8 09:06:55 | 显示全部楼层

, N* Y0 f  B7 r4 O9 Z好贴帮顶,顺便得渣金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-2 20:15 , Processed in 0.175874 second(s), 37 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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