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

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

[复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
fhh 发表于 2021-3-5 11:18:42 | 显示全部楼层 |阅读模式 IP:–浙江–宁波 电信
本帖最后由 fhh 于 2021-3-23 14:04 编辑
' A( ]# j8 |' y  d% f7 B
. z7 Z6 x6 X( l发现了几乎完美的解决方案,此贴终结
7 j2 w6 D- [1 r( Ahttps://bbs.nasdiyer.com/thread-7843-1-1.html3 ?' o; x- L# @1 _6 c
刷机完成后,如果希望从emmc启动,只需更改bootcmd环境变量即可。
5 D, }/ f% S9 d8 F
$ j) v8 v6 i, _8 R9 H5 w4 g! h: t4 n% g3 j" E% [# L2 ^4 {- r
------------原内容------------------------------------
$ r6 ]' N& w: V1 Q6 |4 k4 o, d  U首先声明一点:4 n8 \/ S! N  q2 y: ^% D
猫盘掉IP并不是所谓的“网卡虚焊”
; [: v) p( q' |. w$ a: K7 ?" i' }. e(不然为什么X3P可以正常使用)
7 ?. P8 e- d: I. g& d, Q掉IP的真正的原因是H大提供的驱动(u-boot/Linux)存在问题,导致网卡没有被正常初始化
# i6 K) q% |( u$ i* k) ](比对了一下x3p的dts和H大的dts发现基本上完全不一样,可能是硬件版本区别?)
4 [6 J* R2 ?+ l4 w所以,临时的解决方法如下:. k- a- w6 j$ b; D3 J  B7 M
1.刷X3P& C; I2 I" Y6 x  M+ w% G2 ~
2.将H大提供的系统img(debian/ubuntu/archlinuxarm均可,我用的是Archlinux)写入U盘
) K, C* E' i5 w, A3.将U盘插入猫盘,进入ttl,清除emmc的mmcblk0p2分区,将U盘的文件系统复制到这个分区;
: Y- w' |6 D$ p- M' @* p4 ~/ f4.重启,在uboot中修改启动命令,从emmc的mmcblk0p2分区启动
: t4 h* V; D$ F& @) _4 r5.启动alpine后,将U盘挂载(比如/mnt)
+ q' n) B8 a% e6.将/dev和/proc挂载到/mnt/dev和/mnt/proc
. P+ Q' R# H, r7.将/boot中的Image和dtb文件复制到/mnt备份0 s) `+ w5 E* t. j2 z+ u' Y# w
8.将/lib/modules文件夹复制到/mnt备份
, s; |2 e( F8 w& y9.chroot进/mnt,执行emmc-install.sh7 [7 ?* F, _8 ?
10.挂载/dev/mmcblk0p1(安装完成的系统),备份当前的Image和dtb,将x3p的备份复制进去
2 s: q# x/ H& l% i' `3 ?9 c' y11.将x3p的/lib/modules复制到当前系统
3 E) S0 f6 K* k( c* {7 Z. {  |- N12.重启
. j$ W  s" z" O1 [应该直接就能进去了,并且100%获取IP
! ?8 N, k# _! D4 u6 x: g$ i/ s内核也不会有crc错误的提示( b2 t  r6 R9 Q2 q6 i

5 e# d& ?6 n' p% P, i0 D问题:& I3 R% n' E% R6 ~: t: s0 ]# V
与之前的内核相同,无法控制风扇
5 _, G: z9 u6 r% Q* `0 X3 m(LED的控制方法见楼下)
# N, ^$ ?% @7 Q$ G7 H4 W+ @+ F- ]  Y6 c4 T: Y2 \4 c  C  j
废话不多说,上图
3 s4 }3 t' _# f5 s7 k! @

获取IP截图

获取IP截图

4 c* V( `# _& g! p2 z6 ?

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:
) c7 s' M  K4 ^' j; w' D5 y/usr/bin/led
7 }+ N, }/ q) A3 [
  1. #! /usr/bin/bash
    9 K! p2 h2 K7 e& P
  2. if [ ! -f "/sys/class/leds/c1/brightness" ]; then0 R4 o0 X) }+ w
  3.         insmod /lib/modules/4.4.52-armada-17.10.1/leds-aw2013.ko2 j8 b# C# v. H+ A
  4. fi4 h1 L& Z; n* ^7 s
  5. if [ $# -eq 3 ]; then$ }1 X; A" i, b* ]& }; g* {. u
  6.         echo $1 > /sys/class/leds/c1/brightness
    ( i+ E5 q! v. w& O; t5 N  a
  7.         echo $2 > /sys/class/leds/c2/brightness7 ~5 R* M; J$ F! ^0 D; N3 O' e0 v
  8.         echo $3 > /sys/class/leds/c3/brightness# J' V) }- F1 {' ]2 p/ X. N
  9. else
    # Z9 G+ C+ u; I0 J) H

  10. ! y- P( G- T9 N6 F8 q* f
  11.         echo 23 > /sys/class/leds/c1/brightness! c. [4 r4 G/ H9 E
  12.         echo 147 > /sys/class/leds/c2/brightness3 h/ s7 e/ I. c( N8 I4 a
  13.         echo 209 > /sys/class/leds/c3/brightness
    4 g6 W# b, }3 O, d& D+ K
  14. fi
      I8 y. J4 Y$ a+ z
复制代码

2 f# `0 @' P3 I& L使用方法:
# t( N5 k2 r2 N% }$ Qled R G B2 e4 ^) l6 [  E, }- T1 U& A7 `8 w
不传RGB值默认是Arch蓝
( h3 ^5 @4 B' e$ q为了让这个脚本开机启动,添加一个systemd脚本:( ~, I# K* W% k# Z  w
/usr/lib/systemd/system/led.service- s  P6 B4 ]) p, ^+ O
  1. [Unit]
    2 ^- s, A6 e: K0 @, [% b7 H
  2. Description=LED enable5 G, ]0 f: A2 X% t9 W, x( K% A
  3. Before=basic.target3 ~3 J$ P) V( M) R2 P  @: O
  4. After=sysinit.target local-fs.target
    1 x: n7 K) z: n7 c( K
  5. DefaultDependencies=no
    1 R0 {- Z) K7 G! F1 f
  6. 1 m: n- U3 S7 j9 y% ]) M9 u) k1 W$ e
  7. [Service]  |+ ^0 V% A0 G
  8. Type=oneshot/ i% ?- _& m4 P  X8 P
  9. RemainAfterExit=yes
    $ U8 t; ^2 J1 q/ j1 n1 s
  10. ExecStart=/usr/bin/led
    ; J7 H5 a/ U5 s- v4 b: b7 s3 `
  11. TimeoutStartSec=1min
    : ]+ ]: p7 G, g7 y! N, B6 h

  12. / e( s6 s* O1 r% }8 O5 A
  13. [Install]
    * \: Y9 q2 G% N) A! v
  14. WantedBy=basic.target8 J6 D) W3 E0 T0 J  Z
复制代码
- N! p. `" U5 b7 k. F
systemctl enable led后重启即可。

33

主题

325

回帖

1351

积分

中级渣柚V3

积分
1351
四川大海 发表于 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:–浙江–宁波 电信
获取网卡温度:" e  M' z9 N# r7 H) }5 j
1.按照https://blog.csdn.net/han_dawei/article/details/9427033这个教程,编译一个操作网卡接口的程序;
- c% B; w5 }: V& p0 X2.按照Marvell的官方datasheet,编写以下脚本:
, _! |6 \; G# E! p/usr/bin/phytemp
$ @7 z1 |* X, Y% X3 N2 l
  1. #! /usr/bin/bash/ n6 M1 ?; `6 @7 J4 m9 f
  2. mdio eth0 22 6
    $ o/ _* z6 ^% `1 R
  3. raw=$(mdio eth0 26): {5 A4 A+ n# ?
  4. mdio eth0 22 0
    1 B( Y" N& ?) ^! p: u& Y) v
  5. echo $(((raw&31)*5-25))8 ?+ @, N) Z% l! r
复制代码
7 S$ |9 t8 z* l/ V
3.直接执行即可。9 |+ |$ R) B+ b. y$ i" C2 u4 m

! H( p' N; [; {% X" L/ l) F: t风扇控制:, D9 l! t4 {9 V( q. \3 y
编写以下脚本:7 m' q; H2 l# t+ B9 ~2 Z
/usr/bin/gpiofan' `& D* k% A( y+ d6 K
  1. if [ $# -eq 1 ]; then0 r5 |9 ^; Q3 x5 _: C+ ~! g
  2.         case $1 in1 G1 b' Q6 k7 g6 Z% h: \
  3.                 high)   echo 0 > /sys/class/gpio/gpio38/value
    ' ?9 C) w: f( `4 V6 n" Z
  4.                         echo 1 > /sys/class/gpio/gpio40/value;;* U. ~$ Y, |6 B* F5 O9 Z# W$ w6 r! t$ n
  5.                 low)    echo 1 > /sys/class/gpio/gpio38/value
    ( E/ ~* w2 o+ c4 V- s# }
  6.                         echo 0 > /sys/class/gpio/gpio40/value;;+ _! i$ |5 c% O5 U" Z# P0 o
  7.                 off)    echo 0 > /sys/class/gpio/gpio38/value% L0 I* K+ @2 @
  8.                         echo 0 > /sys/class/gpio/gpio40/value;;* {# L6 L6 u  o8 O7 O
  9.                 init)   if [ ! -d "/sys/class/gpio/gpio38" ]; then
    8 T5 Y( @: y) a7 ~3 G# X- I6 y
  10.                                 echo 38 > /sys/class/gpio/export
    % r$ @2 H" u5 L
  11.                                 echo out >  /sys/class/gpio/gpio38/direction1 w3 p- Q- Z# y
  12.                         fi0 q. z9 N/ S5 K  C1 H! ]( I- L
  13.                         if [ ! -d "/sys/class/gpio/gpio40" ]; then0 k$ n% h0 [$ y" o! Q7 I8 i
  14.                                 echo 40 > /sys/class/gpio/export
    * K8 `( m- @2 _2 n5 |
  15.                                 echo out > /sys/class/gpio/gpio40/direction
    2 y- K4 Q& w2 n3 R. N4 ]5 C. Y0 j7 Y
  16.                         fi;;* @. w- F; [3 L, b" p/ H4 u5 |; Y4 F
  17.                 *)    echo $0 "high|low|off|init";;, O- B' l1 r# Q0 ^5 u+ _: l4 A/ r: H
  18.         esac
    0 g2 ]5 F+ n2 W+ I
  19. else
    1 w& h' |. H4 R0 }6 K$ e
  20.         echo $0 "high|low|off|init"
    7 Y5 _' \7 K! `! u' {- x  ~2 T
  21.         exit 127
    ; D5 _% u4 d) D& n5 n0 J
  22. fi
复制代码

! J9 }: d2 v$ q1 `, [% q用systemd调用gpiofan init即可启动。/ q2 i( g1 y: ?5 X- j$ u& A2 e
支持以下参数:
. |1 `- Y4 |% s: \7 I( [9 ~9 i off:完全关闭
* F$ z; t" ~7 {5 q, s; a+ lhigh:高速度运行5 |+ D- c' X) F! U7 U/ \: V: V
low:低速度运行
/ E( [) f5 y. d1 `' X2 @& L6 l6 w0 Oinit:初始化,在调用其他功能之前,必须init!
! z/ r' j( {1 [% ~) C3 w6 o: \+ H! ^) u. P
至此,终于是完美实现功能了

5

主题

5267

回帖

7461

积分

资深垃圾佬

积分
7461
adiao 发表于 2021-3-6 10:06:23 | 显示全部楼层 IP:–湖北–十堰 电信
7 [( q" X# h/ J: c) n. d, N
好贴帮顶,顺便得渣金

0

主题

27

回帖

89

积分

初级渣柚V2

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

5

主题

5267

回帖

7461

积分

资深垃圾佬

积分
7461
adiao 发表于 2021-3-8 09:06:55 | 显示全部楼层 IP:–湖北–十堰 电信

# o$ U3 l5 F: |( Q- Z; i) B- u好贴帮顶,顺便得渣金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-23 15:33 , Processed in 0.100565 second(s), 38 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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