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

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

[复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
fhh 发表于 2021-3-5 11:18:42 | 显示全部楼层 |阅读模式 IP:–浙江–宁波 电信
本帖最后由 fhh 于 2021-3-23 14:04 编辑 ) Z5 o* Z- n, B) }9 ]7 o
8 P) `8 X! Z$ f0 v. {. @
发现了几乎完美的解决方案,此贴终结/ _0 [0 O$ J8 I' P8 a, M3 N5 Z
https://bbs.nasdiyer.com/thread-7843-1-1.html
+ E$ x' u4 o4 P/ A4 a9 m; a. e刷机完成后,如果希望从emmc启动,只需更改bootcmd环境变量即可。9 H" I( Q) ?& {8 z2 F7 B/ f

; Y: ]6 d' ^! R; v7 Y
  Z4 t6 ^0 e# b3 n/ E------------原内容------------------------------------# Z5 s# ~* f/ z% }) U
首先声明一点:
) V. L+ `1 g. q' u/ c猫盘掉IP并不是所谓的“网卡虚焊”6 D$ y, z; M5 U: r$ }6 P
(不然为什么X3P可以正常使用)
: p8 ]. K3 u) @' i掉IP的真正的原因是H大提供的驱动(u-boot/Linux)存在问题,导致网卡没有被正常初始化2 s8 j" \% ?9 w) E. |3 v
(比对了一下x3p的dts和H大的dts发现基本上完全不一样,可能是硬件版本区别?)' l0 I0 [1 _9 D7 w* v
所以,临时的解决方法如下:& a. I) {! Z& `. N  t, L
1.刷X3P' ^0 J: u" Q( w4 D" B: `
2.将H大提供的系统img(debian/ubuntu/archlinuxarm均可,我用的是Archlinux)写入U盘
& n0 o7 ]. {! g, E+ N( ~3.将U盘插入猫盘,进入ttl,清除emmc的mmcblk0p2分区,将U盘的文件系统复制到这个分区;
) e& R) u/ a$ O) Q2 I3 }  P  j" o+ \$ e4.重启,在uboot中修改启动命令,从emmc的mmcblk0p2分区启动
0 ]- O1 Q% Y, j. p5.启动alpine后,将U盘挂载(比如/mnt)9 s! u2 S7 ?0 B: ?. U4 v' e- j
6.将/dev和/proc挂载到/mnt/dev和/mnt/proc
2 g& N4 f/ T# B- B7.将/boot中的Image和dtb文件复制到/mnt备份
( r% a/ U* M% ^) J9 T6 K$ H0 B5 `8.将/lib/modules文件夹复制到/mnt备份0 G" `. ]! P3 W# N
9.chroot进/mnt,执行emmc-install.sh2 ]; R4 H& s# Y2 @! l; ]/ T+ I
10.挂载/dev/mmcblk0p1(安装完成的系统),备份当前的Image和dtb,将x3p的备份复制进去$ W' G, s5 k8 w% G- d
11.将x3p的/lib/modules复制到当前系统
& Q. h5 {- c4 t6 y12.重启
% `1 \8 F7 ]# w0 \! E应该直接就能进去了,并且100%获取IP
6 z$ t. L2 ?2 o; Z4 U/ _5 p内核也不会有crc错误的提示
' q3 L4 ~( e, s  a% }
  L0 M3 t! @" \3 v, s' I问题:
( `9 e( a# f: t与之前的内核相同,无法控制风扇
4 [  \" }5 U/ m  ](LED的控制方法见楼下)
0 i+ A" a; n6 f0 N/ P4 T  J
7 Q+ _& P# V7 j& ~8 o& [废话不多说,上图  b* p. X- T- ?8 T+ }

获取IP截图

获取IP截图
1 X# t3 y5 Y3 S' d3 j  F( X

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:2 B* ^2 G: B, D# N; L( Q. Q
/usr/bin/led
4 Y5 Q: m- V! T1 {
  1. #! /usr/bin/bash
    4 f; g- G3 Y# A) g5 c
  2. if [ ! -f "/sys/class/leds/c1/brightness" ]; then
    . h9 _- j+ ?/ J
  3.         insmod /lib/modules/4.4.52-armada-17.10.1/leds-aw2013.ko
    / ]  j1 j, O4 q& X, D1 \
  4. fi
    / t( i; y! d5 C% i( P
  5. if [ $# -eq 3 ]; then+ H; W. g2 S: o5 M$ @3 T, G
  6.         echo $1 > /sys/class/leds/c1/brightness, {6 u* ]6 i/ m! j0 k
  7.         echo $2 > /sys/class/leds/c2/brightness
    1 R. {9 d+ M7 K0 w: Q1 c
  8.         echo $3 > /sys/class/leds/c3/brightness1 i& r0 m) W! P
  9. else
    # x7 H0 \% g$ L7 b3 z+ s& s, I

  10. + h% f  L+ U+ l) a5 h+ l
  11.         echo 23 > /sys/class/leds/c1/brightness7 x. K2 ]- u: n9 `
  12.         echo 147 > /sys/class/leds/c2/brightness
      ^3 s4 T# f5 i2 G7 U) B
  13.         echo 209 > /sys/class/leds/c3/brightness
    / o. X8 D2 T0 v$ b) t* q
  14. fi
    5 w0 W8 n& c; C; ^3 D) l
复制代码
3 }) G9 l& H! q! f' A& p
使用方法:; o2 B2 L% r2 {0 Y
led R G B
" p) s" b8 Z0 C不传RGB值默认是Arch蓝( e7 {3 X# A# x5 b# p# _7 k
为了让这个脚本开机启动,添加一个systemd脚本:4 _" N0 R* Y* w5 X' p& Q
/usr/lib/systemd/system/led.service# G+ ]9 G! g/ x) l4 j
  1. [Unit]
    : Z$ @' F$ Z- E- k& h9 `
  2. Description=LED enable
    + r  ?; m8 o4 f. G+ M$ K. L- p1 G
  3. Before=basic.target) i9 H4 }0 u# j8 i4 o
  4. After=sysinit.target local-fs.target7 K0 s; ]% H1 K: n& J$ C
  5. DefaultDependencies=no
    $ p1 e1 x9 C& t0 g8 A' u$ @* Y
  6.   [' J5 Y- P2 S" L. O( E
  7. [Service]
    ; A7 \  ^0 B$ Q( x
  8. Type=oneshot
    % N: v" b7 N8 s* j( j) j: R' Q6 t, F
  9. RemainAfterExit=yes8 L/ w- F' v0 i$ N8 w2 W) H
  10. ExecStart=/usr/bin/led
    ' \  d% u$ P6 t" c0 u( e
  11. TimeoutStartSec=1min1 R0 ~- Y) k9 ?
  12. " S1 b7 O0 R( k
  13. [Install]
    ) c, b& ?; X( ^- f+ C. A$ D7 L0 A
  14. WantedBy=basic.target) x  B, H# Y/ W
复制代码
2 G4 M4 p( n0 V
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:–浙江–宁波 电信
获取网卡温度:3 Z  J1 I% ^% y) s6 c
1.按照https://blog.csdn.net/han_dawei/article/details/9427033这个教程,编译一个操作网卡接口的程序;$ }& I" j8 ^# `' O- p8 N7 \
2.按照Marvell的官方datasheet,编写以下脚本:
$ l4 I" i. I( }( S5 x8 q/usr/bin/phytemp
/ {0 B8 Z' W- {: P
  1. #! /usr/bin/bash0 I4 K8 s4 D+ g" {
  2. mdio eth0 22 6% m. v1 e& A1 F4 i4 n2 |
  3. raw=$(mdio eth0 26)6 Q2 k+ t4 ~2 ^; a
  4. mdio eth0 22 0
    / T, |4 k/ s, D$ x
  5. echo $(((raw&31)*5-25))" q0 ^+ W( A+ K! ^. Q
复制代码
' Y' g- x& l4 N6 _$ [
3.直接执行即可。
/ [7 U5 u9 D% M. ?, q0 z2 T, k, J. K
, m+ \- o7 ~- ~  U4 _7 U风扇控制:
% ~$ I6 @* T7 s2 _) n编写以下脚本:
  z. {" k) N  C$ r( a4 Q" |8 y4 W; u/usr/bin/gpiofan3 X( x0 T! ?9 ?: S$ ?
  1. if [ $# -eq 1 ]; then
    0 P& T- J% A" M/ P, ~# a
  2.         case $1 in
    4 E+ E4 h3 ]/ W* f  d. h0 i
  3.                 high)   echo 0 > /sys/class/gpio/gpio38/value
    + ]5 @: j$ J6 Z/ p4 Q( S
  4.                         echo 1 > /sys/class/gpio/gpio40/value;;5 C: `8 t  T4 ?" w; l2 ^
  5.                 low)    echo 1 > /sys/class/gpio/gpio38/value
    3 t( }( z% y9 R4 u! {2 N9 S
  6.                         echo 0 > /sys/class/gpio/gpio40/value;;
    ) I: e. T$ V( G" Q& N  Y& d1 X7 b6 {
  7.                 off)    echo 0 > /sys/class/gpio/gpio38/value; P/ y# Q; @3 w( y4 \( I1 Y$ [
  8.                         echo 0 > /sys/class/gpio/gpio40/value;;
    * }) f0 z( Z2 a
  9.                 init)   if [ ! -d "/sys/class/gpio/gpio38" ]; then- u7 g4 a0 d/ Z, t
  10.                                 echo 38 > /sys/class/gpio/export
    9 f3 H* Z1 U- l5 M- e( n
  11.                                 echo out >  /sys/class/gpio/gpio38/direction/ }) J% e* H0 c0 X# R
  12.                         fi
    $ K6 f2 ~9 H6 F  S) l+ t5 T
  13.                         if [ ! -d "/sys/class/gpio/gpio40" ]; then
    ! I' W0 W0 X5 s9 ?8 ^4 Z
  14.                                 echo 40 > /sys/class/gpio/export
    , L! ~: m( w6 P0 a6 d
  15.                                 echo out > /sys/class/gpio/gpio40/direction6 |/ |+ |* X0 S) R: L
  16.                         fi;;8 S, @) d4 `7 o
  17.                 *)    echo $0 "high|low|off|init";;8 r! }" ^! @* w( E' `% [
  18.         esac! p. \6 x; ~; u
  19. else( V( k9 G' F/ M+ M. `9 X/ ^
  20.         echo $0 "high|low|off|init"0 k; x* i) S0 g' f
  21.         exit 127
    . u9 v$ M" ^- ^) Y4 K7 ?
  22. fi
复制代码

- M& \2 o$ C( g* I7 v用systemd调用gpiofan init即可启动。
) c1 a/ c0 `/ ?支持以下参数:
0 H* o0 n% E" C1 X( ~- q. { off:完全关闭$ [- X2 G* E5 K9 r8 R/ F7 y
high:高速度运行: e) S) \6 C; A8 V' U
low:低速度运行' z1 _4 D/ A; }3 A& d2 r
init:初始化,在调用其他功能之前,必须init!
5 a9 e2 P% @# _* l9 r7 A7 ?) f( p: V: D' [1 S4 K& |5 H
至此,终于是完美实现功能了

5

主题

5267

回帖

7525

积分

资深垃圾佬

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

! u4 f$ J8 T$ Q6 \+ [6 F好贴帮顶,顺便得渣金

0

主题

27

回帖

89

积分

初级渣柚V2

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

5

主题

5267

回帖

7525

积分

资深垃圾佬

积分
7525
adiao 发表于 2021-3-8 09:06:55 | 显示全部楼层 IP:–湖北–十堰 电信
% p# J4 r1 e6 Z+ M, m7 Y
好贴帮顶,顺便得渣金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-6-27 05:33 , Processed in 0.173089 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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