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

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

[复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
fhh 发表于 2021-3-5 11:18:42 | 显示全部楼层 |阅读模式 IP:–浙江–宁波 电信
本帖最后由 fhh 于 2021-3-23 14:04 编辑
9 y8 s3 I( R# X: x  r
+ a) N# ^# L1 m- I发现了几乎完美的解决方案,此贴终结* I5 \! N/ Y/ [) r
https://bbs.nasdiyer.com/thread-7843-1-1.html; U2 Y. k- v/ n* D' s
刷机完成后,如果希望从emmc启动,只需更改bootcmd环境变量即可。5 e; u$ n% O, `) p% l

& T3 A# P3 ?. C1 {/ _: i- t2 N4 K
2 u  w" _( @1 N: C' \------------原内容------------------------------------
0 L4 t/ a& Y2 z首先声明一点:! {' W& M) ], Q' J" X
猫盘掉IP并不是所谓的“网卡虚焊”
4 |2 J- J" u) {4 A$ K! l(不然为什么X3P可以正常使用)
8 N6 Z+ v7 O1 c( H/ J2 e掉IP的真正的原因是H大提供的驱动(u-boot/Linux)存在问题,导致网卡没有被正常初始化9 _4 E/ [+ u% |2 S1 b3 k, A
(比对了一下x3p的dts和H大的dts发现基本上完全不一样,可能是硬件版本区别?). @% I; i! A) M4 k$ J; B8 k( X
所以,临时的解决方法如下:
! ^0 a& K$ U7 i) U5 _$ \1.刷X3P( M1 d) ]8 \( u/ l9 \5 H/ R3 a: W7 j6 p
2.将H大提供的系统img(debian/ubuntu/archlinuxarm均可,我用的是Archlinux)写入U盘
* \4 ^  E6 M: s& W+ E. _3.将U盘插入猫盘,进入ttl,清除emmc的mmcblk0p2分区,将U盘的文件系统复制到这个分区;, M7 }$ }1 ~5 O' {' _& r5 @
4.重启,在uboot中修改启动命令,从emmc的mmcblk0p2分区启动
3 ^& S& R1 ], v: H% q4 c8 M5.启动alpine后,将U盘挂载(比如/mnt)& T% n4 J9 Z+ P2 i
6.将/dev和/proc挂载到/mnt/dev和/mnt/proc) Z; |9 t- r* \9 G
7.将/boot中的Image和dtb文件复制到/mnt备份
& }3 x- e! p5 O. \+ q( q! e8.将/lib/modules文件夹复制到/mnt备份
7 K" z' H0 W* ]9.chroot进/mnt,执行emmc-install.sh- V6 r2 v0 i" |5 W4 Q( j
10.挂载/dev/mmcblk0p1(安装完成的系统),备份当前的Image和dtb,将x3p的备份复制进去
; d. ~8 D" j& a: D6 ~  b11.将x3p的/lib/modules复制到当前系统
8 @  `/ f; o4 I: w12.重启$ H0 a3 T2 f/ [  L/ `4 X
应该直接就能进去了,并且100%获取IP
( H3 ~# ^( {5 S! B5 ?1 {; u& F1 _内核也不会有crc错误的提示( E7 A5 u/ ]7 O' J0 z
( ^! `$ T5 q- x5 T* Z: y+ a; M
问题:" V# S- d5 A, Q# P& @1 }
与之前的内核相同,无法控制风扇
. K3 @. C" s. P0 p$ l  _7 e(LED的控制方法见楼下)
/ S* m7 Q" ]+ F( [8 }+ G0 a/ i, g
, U) h9 W. p+ P+ V5 o  z7 \废话不多说,上图' @  J0 k+ {& v5 k! q7 f/ R

获取IP截图

获取IP截图

0 h9 A3 c8 p0 M% Y2 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:
% |" _8 v) O# s: q5 J. Q+ w/usr/bin/led* v  ~& L( V5 \: }
  1. #! /usr/bin/bash( m) z9 l2 W5 V8 d2 A! e
  2. if [ ! -f "/sys/class/leds/c1/brightness" ]; then1 E3 r$ z! G1 a; `
  3.         insmod /lib/modules/4.4.52-armada-17.10.1/leds-aw2013.ko  o  G& D8 M2 [0 c, Y: k
  4. fi
    - q  R- t3 {' r- z" P! G
  5. if [ $# -eq 3 ]; then/ _% d: p8 z# N- L: Q% q9 M+ A
  6.         echo $1 > /sys/class/leds/c1/brightness/ J/ N% A9 f$ i# U% j, y. h
  7.         echo $2 > /sys/class/leds/c2/brightness9 w9 q& W7 E9 U3 c
  8.         echo $3 > /sys/class/leds/c3/brightness3 C$ |+ ^# E& q6 A% Z- o9 l9 p6 o( i
  9. else
    4 Y" Z, Z) U; J# S
  10. 8 J& ^; R& M5 _3 e3 S7 A3 p" e
  11.         echo 23 > /sys/class/leds/c1/brightness5 G& [9 ?# E- C+ l, Y; b# c
  12.         echo 147 > /sys/class/leds/c2/brightness
    / w) B+ l# Z4 f: l+ j) F2 B
  13.         echo 209 > /sys/class/leds/c3/brightness
    ; c8 i5 J0 j9 h" F4 h
  14. fi1 c, K! W  {6 \) Q1 ^' F, ~# j
复制代码
+ b0 S4 N) U4 |' M2 Y( {
使用方法:
4 R' S1 \6 @! B5 l4 Jled R G B- K6 y5 g' F+ q) V% ?
不传RGB值默认是Arch蓝
1 [' k9 ]2 W8 e* D为了让这个脚本开机启动,添加一个systemd脚本:. Y4 j5 G3 t* q, k: B) f
/usr/lib/systemd/system/led.service: N; Y: `0 S4 a' R3 I
  1. [Unit]9 u) \, ]0 g/ J% O6 O- t$ t
  2. Description=LED enable
    + C7 e8 a) c1 \0 V$ b5 A; W
  3. Before=basic.target5 P: b. y, ^2 z' o
  4. After=sysinit.target local-fs.target2 e+ u# d# l' s$ w1 P
  5. DefaultDependencies=no( J0 k$ P/ _' z3 Q

  6. 3 E2 O0 P" N& F/ R3 Y5 u1 V3 S
  7. [Service]
      {' \* w; p* x, t6 C
  8. Type=oneshot  |- J# P% a. X9 E) a
  9. RemainAfterExit=yes% V+ K8 n2 H( M& k/ Z) W# m
  10. ExecStart=/usr/bin/led  I3 {- e0 R# _6 i4 L8 \; Y
  11. TimeoutStartSec=1min
    : Q6 A( C+ E& e% S
  12. $ }+ T6 U  t9 }5 T
  13. [Install]
    / p, h1 C, b$ V
  14. WantedBy=basic.target! C0 z: J$ R1 d8 L/ x6 p
复制代码
$ ~& k& [, X$ P/ R) V/ y( _
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:–浙江–宁波 电信
获取网卡温度:
* ^% u- E' X; z. g. k8 v1.按照https://blog.csdn.net/han_dawei/article/details/9427033这个教程,编译一个操作网卡接口的程序;6 Y" m% f6 ?- ?/ r
2.按照Marvell的官方datasheet,编写以下脚本:+ b# z2 O+ G/ T; Y
/usr/bin/phytemp5 O* h3 q0 T& a
  1. #! /usr/bin/bash
    + P3 H  ^$ B" k) ]# T( J
  2. mdio eth0 22 6  E7 z6 Q) V- v! q
  3. raw=$(mdio eth0 26)1 Q' A" z& x; i% v, \
  4. mdio eth0 22 0
    ' h. G. l- c. G- G' T
  5. echo $(((raw&31)*5-25)): _! d. D# `0 A' {& Q" Y
复制代码

; O' s  i; o8 u" O7 p3.直接执行即可。3 p8 L3 m6 R& N+ R7 t( R" j* ~
7 u9 {1 I* K" E! i. N  ?. j
风扇控制:
. ~7 |0 K* x  v' R% X& i编写以下脚本:# Y9 [' Q: f8 P6 Y1 a  ]) {
/usr/bin/gpiofan
  [5 S, D; W! J
  1. if [ $# -eq 1 ]; then4 B7 |9 X; C; w% k
  2.         case $1 in
    : q' ~/ w! ~' `6 |: c( K) V8 R) o0 _
  3.                 high)   echo 0 > /sys/class/gpio/gpio38/value
    ; |" c3 G, @; j! o) q* A: p$ V! o
  4.                         echo 1 > /sys/class/gpio/gpio40/value;;
    ( u" e' t; C- S% R" W$ y. A: B
  5.                 low)    echo 1 > /sys/class/gpio/gpio38/value4 H- E' {" a9 [( a" u  R: z$ L
  6.                         echo 0 > /sys/class/gpio/gpio40/value;;7 ~& a- U& @( G- B/ c, m* c
  7.                 off)    echo 0 > /sys/class/gpio/gpio38/value
    + a$ O9 j, _! t# x1 q) c) _) m
  8.                         echo 0 > /sys/class/gpio/gpio40/value;;
    / n2 j1 ^  z+ `/ `, q" P
  9.                 init)   if [ ! -d "/sys/class/gpio/gpio38" ]; then3 m2 ]$ D, a5 G, X2 @4 |8 g
  10.                                 echo 38 > /sys/class/gpio/export
    ( M1 `1 x0 i# |
  11.                                 echo out >  /sys/class/gpio/gpio38/direction5 v) m% h4 t3 w' w/ [5 L
  12.                         fi) l' F/ q- U& }; ~6 t6 I3 O
  13.                         if [ ! -d "/sys/class/gpio/gpio40" ]; then& a! g. U( e. T  U) A& V: d& v
  14.                                 echo 40 > /sys/class/gpio/export
      E! W* q8 c# `
  15.                                 echo out > /sys/class/gpio/gpio40/direction' t. l5 Z* u9 J3 K4 N1 C
  16.                         fi;;
    ) D' W6 V/ U9 d' n* x
  17.                 *)    echo $0 "high|low|off|init";;
    * L; w1 W6 k% Q, l; g& u5 `
  18.         esac
    4 o& r1 o/ q; [+ z9 ~
  19. else
    5 T1 m9 |+ Z) Y- T
  20.         echo $0 "high|low|off|init"
    # e6 c, i0 c7 W1 u' P9 S7 a" L$ f
  21.         exit 127
    4 O' y7 d0 S( o& @
  22. fi
复制代码

& F" C* N# m/ ~, E用systemd调用gpiofan init即可启动。6 d! N: Y4 q6 D7 w" D; s
支持以下参数:* Z1 L" r6 v: {3 U- q% ~2 I
off:完全关闭
) I0 x: D" [8 z) vhigh:高速度运行
) f- S& |: h8 A& \# C$ Hlow:低速度运行
2 P, J- N0 I2 F' r# v* jinit:初始化,在调用其他功能之前,必须init!% S% M, w4 A5 B* i6 ]: i
2 {# X* c6 `) h6 d& `. \( N$ @
至此,终于是完美实现功能了

5

主题

5267

回帖

7552

积分

资深垃圾佬

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

  `3 }3 }9 r. x1 D6 D9 a) O3 R好贴帮顶,顺便得渣金

0

主题

27

回帖

89

积分

初级渣柚V2

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

5

主题

5267

回帖

7552

积分

资深垃圾佬

积分
7552
adiao 发表于 2021-3-8 09:06:55 | 显示全部楼层 IP:–湖北–十堰 电信
4 z$ z7 U! O) v9 a
好贴帮顶,顺便得渣金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-7-24 09:20 , Processed in 0.103524 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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