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

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

[复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
fhh 发表于 2021-3-5 11:18:42 | 显示全部楼层 |阅读模式 IP:–浙江–宁波 电信
本帖最后由 fhh 于 2021-3-23 14:04 编辑 * K. P/ N) N9 B4 C

+ {; U. J0 \! |, u* G/ V) |发现了几乎完美的解决方案,此贴终结9 y6 |* y3 n! a/ `# x
https://bbs.nasdiyer.com/thread-7843-1-1.html+ E* _. Z. w8 V7 w6 }: h$ ^8 O
刷机完成后,如果希望从emmc启动,只需更改bootcmd环境变量即可。) i, I0 e5 Q4 J
6 w% G7 f! l7 Z5 y" J2 M3 v+ C
0 Q' \. p! O& k2 C3 ~
------------原内容------------------------------------
9 P3 u6 h7 B% i, Z' b1 d首先声明一点:9 H4 B' S" |8 r! h0 q3 S
猫盘掉IP并不是所谓的“网卡虚焊”& h: l! \& O* E+ J7 \" c
(不然为什么X3P可以正常使用)' _. P/ w; l  s5 ]9 r. I# J' x
掉IP的真正的原因是H大提供的驱动(u-boot/Linux)存在问题,导致网卡没有被正常初始化8 ?3 U+ x! O7 D
(比对了一下x3p的dts和H大的dts发现基本上完全不一样,可能是硬件版本区别?)" a; ]4 \/ I5 G, Y$ u, D# Q
所以,临时的解决方法如下:
( N4 {4 D. z0 L, \( }4 v2 \1.刷X3P
8 C% U1 ^' `( b3 M  v6 r: ]9 G2.将H大提供的系统img(debian/ubuntu/archlinuxarm均可,我用的是Archlinux)写入U盘
1 ?8 V. L. I. C( k8 s4 i3.将U盘插入猫盘,进入ttl,清除emmc的mmcblk0p2分区,将U盘的文件系统复制到这个分区;
/ b- Z) z1 _- H$ A/ x4.重启,在uboot中修改启动命令,从emmc的mmcblk0p2分区启动
! U, s2 q' C3 |* B+ f( O  o5.启动alpine后,将U盘挂载(比如/mnt)5 o) b8 U3 l; }0 C$ s! g6 f1 V
6.将/dev和/proc挂载到/mnt/dev和/mnt/proc" B* n2 }/ ?  y5 k. H% ?+ i1 d
7.将/boot中的Image和dtb文件复制到/mnt备份  Q$ B% Y$ E3 V' n" z0 c& A. ?% t
8.将/lib/modules文件夹复制到/mnt备份5 |4 C& D6 `% t: {7 ?7 m7 E
9.chroot进/mnt,执行emmc-install.sh' J5 f3 v! ^6 W2 Y/ A# b' [8 H" i
10.挂载/dev/mmcblk0p1(安装完成的系统),备份当前的Image和dtb,将x3p的备份复制进去7 u6 |/ _+ R$ R# n1 \) ^
11.将x3p的/lib/modules复制到当前系统
$ q( g4 d/ s& J9 v12.重启+ e1 j0 I2 p! G5 B, q  J
应该直接就能进去了,并且100%获取IP, o# ^9 t" C# M3 r  D
内核也不会有crc错误的提示
0 J5 P; m6 ]0 q* V4 |  A
% R1 k* o  ?0 c  X问题:
5 u$ \+ ~+ q6 q/ K与之前的内核相同,无法控制风扇
) a, W* L; S, y( F2 e9 j3 K" a(LED的控制方法见楼下)
- f; l4 f. _# \2 Q' s; A; c2 X/ g, ^! y8 X3 f. c3 L/ o
废话不多说,上图
1 D) l5 v. Z' _3 f

获取IP截图

获取IP截图
2 l+ x( x2 x" s8 S

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:
' I7 ?5 K4 L' ]5 j& Z3 [/usr/bin/led
% ?' y& ]* r  H
  1. #! /usr/bin/bash
    9 v/ k, _# l& t" [4 a! W
  2. if [ ! -f "/sys/class/leds/c1/brightness" ]; then& b  i% b# ]; P! C
  3.         insmod /lib/modules/4.4.52-armada-17.10.1/leds-aw2013.ko
    * Z- o1 }. @' k# B5 `! D
  4. fi
    ) I7 w; v0 c5 ?0 E( @8 a6 i' K
  5. if [ $# -eq 3 ]; then) [6 S* h3 O; o- N
  6.         echo $1 > /sys/class/leds/c1/brightness
    0 b* g9 p+ i& J0 W1 ?) e+ [
  7.         echo $2 > /sys/class/leds/c2/brightness
    % ~& Y+ X  R: d; [* s
  8.         echo $3 > /sys/class/leds/c3/brightness9 c, W$ M3 e3 P( ]$ |. [
  9. else& w* E6 ?: T" O3 }* Y
  10. 2 Q) k, g$ C! I
  11.         echo 23 > /sys/class/leds/c1/brightness3 Y! z4 ]( u& o# c/ `
  12.         echo 147 > /sys/class/leds/c2/brightness
    ' x1 Z; t* x+ c7 K" Y: I/ |8 F
  13.         echo 209 > /sys/class/leds/c3/brightness
    2 y% K/ [) N( Y9 e2 U: i3 O( C
  14. fi
      ?6 Z, z' L" \3 U2 E* R; ^5 q$ R3 l
复制代码
  W/ @1 z) s" b; p
使用方法:" R7 G6 h" Y5 c
led R G B& M; i2 h, R& S7 H! \. b
不传RGB值默认是Arch蓝% ^* _( P! O9 w4 F
为了让这个脚本开机启动,添加一个systemd脚本:
; J" C3 U/ I5 A, r1 ]7 ]. M) }/usr/lib/systemd/system/led.service
6 w. Q- C4 W' s: _. m0 a1 }4 z6 i
  1. [Unit]& r% C$ w& l5 K1 G" l0 j5 A
  2. Description=LED enable. r6 t2 o3 J) N
  3. Before=basic.target
    7 t1 p! U2 _4 x8 u+ t( U0 g$ u
  4. After=sysinit.target local-fs.target  R) s) Y1 G( s# l0 Z( t! V2 T+ q9 q$ o
  5. DefaultDependencies=no) y) N1 T1 g0 p$ i& s. J$ r- T
  6. 9 {2 s% K- M: a" f  O
  7. [Service]
    % ~& Y( {, Y: {) S% X
  8. Type=oneshot: ^- U( _+ l$ S3 I; @( D! z
  9. RemainAfterExit=yes) C8 o( M9 h2 T
  10. ExecStart=/usr/bin/led7 @/ S' H# O( ?9 z, I/ H% X; P
  11. TimeoutStartSec=1min
    ' s/ `1 F& u5 a1 G) E0 S
  12. 3 l- x# ~  ]% k8 X- D# ]
  13. [Install]& S$ ~7 p) S; z* D
  14. WantedBy=basic.target& ]4 s1 X0 m# A/ d7 G$ }
复制代码

# z$ N! j4 M; h) W/ T. T! qsystemctl enable led后重启即可。

33

主题

327

回帖

1358

积分

中级渣柚V3

积分
1358
四川大海 发表于 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:–浙江–宁波 电信
获取网卡温度:- l$ H8 g: \- x
1.按照https://blog.csdn.net/han_dawei/article/details/9427033这个教程,编译一个操作网卡接口的程序;
& j+ j2 U) A# X5 |1 ?2.按照Marvell的官方datasheet,编写以下脚本:1 {) a+ h; b% t
/usr/bin/phytemp
* y0 C8 k, `8 @4 l3 C7 N9 R: z
  1. #! /usr/bin/bash0 B% b8 K6 |' g5 i
  2. mdio eth0 22 6
    $ h1 y& N: p  @( ?  ^
  3. raw=$(mdio eth0 26)
    ; x& m- _- n$ W# S
  4. mdio eth0 22 0' K1 G+ V, e- Z1 e2 [; w* Z
  5. echo $(((raw&31)*5-25))2 U3 H" p/ k& x4 |* `' m/ Z. d
复制代码

# L  |, n* V* h! `- ~3.直接执行即可。0 z. }$ K3 ~. _& K- M1 _/ _, B7 I# R

9 Z# f8 n) I& n" L/ M. H) H) [风扇控制:0 R' @' ^6 z8 U! i( ?! V/ a) s
编写以下脚本:
0 P# _3 [8 F0 D1 _) A7 _6 [/usr/bin/gpiofan
1 r4 O0 c7 C+ b" B6 M" O  a
  1. if [ $# -eq 1 ]; then
    8 C  V  J5 O: A/ y7 e; e9 U9 G
  2.         case $1 in
    ; a! H+ R9 r4 H3 [! c
  3.                 high)   echo 0 > /sys/class/gpio/gpio38/value! U9 Q9 c/ @* c' J
  4.                         echo 1 > /sys/class/gpio/gpio40/value;;9 N: v; m& ]) X
  5.                 low)    echo 1 > /sys/class/gpio/gpio38/value
      y$ v! ^$ E( u
  6.                         echo 0 > /sys/class/gpio/gpio40/value;;
    - O# Y" q( o) U& K
  7.                 off)    echo 0 > /sys/class/gpio/gpio38/value# s1 \5 X6 }( _& B( q3 e% X$ s
  8.                         echo 0 > /sys/class/gpio/gpio40/value;;
    4 K: J1 r0 [! B" B! l% R! F2 ~8 j; C
  9.                 init)   if [ ! -d "/sys/class/gpio/gpio38" ]; then
    3 k+ _+ X3 x( D2 j$ \
  10.                                 echo 38 > /sys/class/gpio/export
    8 K, {1 M% f3 B/ V/ \$ }! B
  11.                                 echo out >  /sys/class/gpio/gpio38/direction+ ~8 x$ [9 }1 D
  12.                         fi: T( P% v( u9 R" M
  13.                         if [ ! -d "/sys/class/gpio/gpio40" ]; then
    . g- D- i' s. d2 d8 z
  14.                                 echo 40 > /sys/class/gpio/export
    , \3 |/ h) r/ p+ q" Q+ ?
  15.                                 echo out > /sys/class/gpio/gpio40/direction5 U' o$ k+ ~8 `' Q
  16.                         fi;;- u% N2 F+ `: m/ d6 M, ~2 `- b  f- Z
  17.                 *)    echo $0 "high|low|off|init";;. R2 a: G! n# r2 o
  18.         esac1 {1 p( ~& b, X1 F) B0 b9 y
  19. else  ~4 r" p, {- u1 F; ~& c3 p% e7 }( M) [
  20.         echo $0 "high|low|off|init"
    # w# o% y) s6 a. c# l
  21.         exit 127
    : ]* G6 k+ J- b8 S6 e
  22. fi
复制代码

2 t  w7 @! f4 p! h7 t! M- U8 p& ?4 b用systemd调用gpiofan init即可启动。4 O  V, V' l8 d" j5 ?
支持以下参数:- r! n% X6 ?; F6 y  p" w# a# x
off:完全关闭# B; G, T+ Q- M0 {" ~  P
high:高速度运行
( X) f: {& Z  d& }6 ?7 ~low:低速度运行' _. r% U3 X7 |/ l8 g
init:初始化,在调用其他功能之前,必须init!/ c' M3 Q  R2 s
0 z' b) a7 h8 h- l! {, a
至此,终于是完美实现功能了

5

主题

5269

回帖

7649

积分

资深垃圾佬

积分
7649
adiao 发表于 2021-3-6 10:06:23 | 显示全部楼层 IP:–湖北–十堰 电信
0 _" Y- g7 {6 g5 c) m) N/ Q' D
好贴帮顶,顺便得渣金

0

主题

27

回帖

89

积分

初级渣柚V2

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

5

主题

5269

回帖

7649

积分

资深垃圾佬

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

. Y0 R1 e7 Y2 i! [2 v好贴帮顶,顺便得渣金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-10-30 17:50 , Processed in 0.063824 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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