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

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

[复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
fhh 发表于 2021-3-5 11:18:42 | 显示全部楼层 |阅读模式 IP:–浙江–宁波 电信
本帖最后由 fhh 于 2021-3-23 14:04 编辑
% a0 ^' y/ n+ ?
- L4 G" n3 @! `# K6 x; K发现了几乎完美的解决方案,此贴终结. O" w# ?, R$ ~# b( H
https://bbs.nasdiyer.com/thread-7843-1-1.html, m1 F) G4 t# P$ b& |
刷机完成后,如果希望从emmc启动,只需更改bootcmd环境变量即可。) t8 w$ M0 S, s: ?
3 T: `0 k; X1 y1 P( U. r
2 [& s1 `0 f; ?3 U1 J$ d' @2 f
------------原内容------------------------------------
2 R1 ]8 U; ?8 s9 B; W7 {首先声明一点:
+ ^) i, I$ \! ]% \猫盘掉IP并不是所谓的“网卡虚焊”
9 e( E3 W7 M4 i0 q3 I& v) i(不然为什么X3P可以正常使用)
+ |  M% ]) e& H; }  g掉IP的真正的原因是H大提供的驱动(u-boot/Linux)存在问题,导致网卡没有被正常初始化
( A. ?7 S* W5 ?) e, `9 e' D: `(比对了一下x3p的dts和H大的dts发现基本上完全不一样,可能是硬件版本区别?)" C; i/ X' B! H; I1 o4 z
所以,临时的解决方法如下:8 r: j" s- i: U; B# m8 P& l: o
1.刷X3P
7 V7 D  E( D' k" D5 m# J3 o- U2.将H大提供的系统img(debian/ubuntu/archlinuxarm均可,我用的是Archlinux)写入U盘  |, X7 D8 k0 {
3.将U盘插入猫盘,进入ttl,清除emmc的mmcblk0p2分区,将U盘的文件系统复制到这个分区;
4 {1 ]6 l2 F+ S# f( J, f9 N4.重启,在uboot中修改启动命令,从emmc的mmcblk0p2分区启动
# _) I0 k* F1 F9 L5.启动alpine后,将U盘挂载(比如/mnt)
& c- D  |6 R+ Q6 I  f  x% F6.将/dev和/proc挂载到/mnt/dev和/mnt/proc
) g( [7 F; I% X, X, ?, `. g7.将/boot中的Image和dtb文件复制到/mnt备份* y! r! ]+ o$ f6 i; |9 @
8.将/lib/modules文件夹复制到/mnt备份
$ S( G: {% ]0 X4 K7 k% c" `. r& N9.chroot进/mnt,执行emmc-install.sh6 X; c. S# ^+ V/ D; T
10.挂载/dev/mmcblk0p1(安装完成的系统),备份当前的Image和dtb,将x3p的备份复制进去
5 k) T7 D: k2 G  S' [7 i11.将x3p的/lib/modules复制到当前系统; a. b% W& H, V8 _+ S) Q
12.重启0 P: _5 G) H% ?8 {
应该直接就能进去了,并且100%获取IP
# s  A5 V1 K$ g/ [) `内核也不会有crc错误的提示: ]4 x( q3 |- h  Y$ ]

, S6 c4 P' S% ~  @9 |& _& {问题:
6 {( t. w: N$ M0 W# z与之前的内核相同,无法控制风扇
2 c% A# m  O; D* R# G(LED的控制方法见楼下), b; N2 _0 t' m- h4 \

/ N& j7 N4 g. l/ v, E废话不多说,上图
) F' j2 W  i: O  B

获取IP截图

获取IP截图
/ ^7 L, U% k5 X2 k

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% j; S# Q* Q" y- h
/usr/bin/led
2 h7 P) M* _" Q; K2 p. M9 Y/ V2 z
  1. #! /usr/bin/bash
    4 C) Z' U* e& c0 |
  2. if [ ! -f "/sys/class/leds/c1/brightness" ]; then
    6 r9 h8 p6 M  b6 I. k& R  Z
  3.         insmod /lib/modules/4.4.52-armada-17.10.1/leds-aw2013.ko: w! v$ E  P: h8 r5 W6 t
  4. fi$ |  `1 b& g# a
  5. if [ $# -eq 3 ]; then
    ( k# i: U0 q3 A- E7 l
  6.         echo $1 > /sys/class/leds/c1/brightness
    2 n, v+ A6 a& Z$ e. I
  7.         echo $2 > /sys/class/leds/c2/brightness
    , V( \# _5 |) M+ ~
  8.         echo $3 > /sys/class/leds/c3/brightness
    4 B: X; }- ~9 S! v2 L) I" O; _/ b- }
  9. else6 n4 I/ _! b" b' W
  10. ) Y: o, H8 {! c0 \4 s/ [$ G8 C- i) w' K
  11.         echo 23 > /sys/class/leds/c1/brightness
    - Z9 d3 @6 t/ ^3 t. B# P' N  ^
  12.         echo 147 > /sys/class/leds/c2/brightness
    8 m9 Y9 J3 R" h! `
  13.         echo 209 > /sys/class/leds/c3/brightness
    5 {& h, G0 @5 S* _2 T' o
  14. fi
    * C/ j3 \7 y" U0 r7 C
复制代码
. Y6 [6 p/ b& }- A! }* h4 Q( e' I# g
使用方法:
% ^/ C/ ^* g- Aled R G B
  Y5 [( \8 Y( Y+ G不传RGB值默认是Arch蓝" D! a8 @) ^3 ]) u/ W( Y6 `! x
为了让这个脚本开机启动,添加一个systemd脚本:
8 u( X: D9 t$ i4 T" I  \1 ^1 J, g/usr/lib/systemd/system/led.service* A6 l- J3 }. r9 b
  1. [Unit]
    6 }: U" v2 n# n# {( Y
  2. Description=LED enable
    # T0 b/ o3 k: E  }  f
  3. Before=basic.target
      ~' q, D. I+ z3 R) G& u
  4. After=sysinit.target local-fs.target" B- i! J; Z. S
  5. DefaultDependencies=no6 z  U: y( k* W7 E
  6. 8 k. Y  K, V" d# }+ O0 Y0 |
  7. [Service]% Q- N, ~  O- u: M- X; M& I
  8. Type=oneshot: s  ^) W1 S. Z9 i6 H
  9. RemainAfterExit=yes+ ^0 X% H' H6 L  T! ]# w- B, k5 y
  10. ExecStart=/usr/bin/led0 f6 X+ @# M: P, f# d6 {
  11. TimeoutStartSec=1min5 t) h5 X1 p& l, d4 m% R
  12. * l! T. F) o* @# A
  13. [Install]
    $ @% B1 r$ D2 e' |+ D9 Z
  14. WantedBy=basic.target
    ! ^8 ^) G& b1 T- T: }& f
复制代码

9 I) Q  `  x/ N" P& G  _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:–浙江–宁波 电信
获取网卡温度:
+ Y  {3 n! P6 h* S& M* {, s1 p/ C1.按照https://blog.csdn.net/han_dawei/article/details/9427033这个教程,编译一个操作网卡接口的程序;: C" R; ]$ c" U1 q8 ?: b
2.按照Marvell的官方datasheet,编写以下脚本:" Y+ ^# x  q9 A* h* S/ d
/usr/bin/phytemp
# z" P. K% V. y' Y! S' E) ^
  1. #! /usr/bin/bash
    6 s9 |; {* l0 R! @
  2. mdio eth0 22 6
    % }' ?/ D5 W4 M
  3. raw=$(mdio eth0 26)$ }6 A8 \/ c) W9 r  l7 `- J
  4. mdio eth0 22 0
    3 {8 n! N# Z8 V& W, R: |+ L/ S
  5. echo $(((raw&31)*5-25))
    " m7 O/ k: [+ o- U. X" z
复制代码

/ F6 l3 L8 n; L- e' u' |3.直接执行即可。8 E$ `, C' L5 l* T; M' D
0 [6 ~/ L  `8 K$ F9 m$ N
风扇控制:
% V3 M/ @" O  s4 N6 Q$ C4 q编写以下脚本:& h. E; Z+ L. S7 t, j
/usr/bin/gpiofan
; p* m$ P' \* }8 U; G: D
  1. if [ $# -eq 1 ]; then5 I( i* z$ @* |; j
  2.         case $1 in& b4 U/ ^- C$ l2 c9 [3 A8 B
  3.                 high)   echo 0 > /sys/class/gpio/gpio38/value4 ^0 t% s- O& S2 _8 V
  4.                         echo 1 > /sys/class/gpio/gpio40/value;;
    - q9 ]: `2 o* f7 D
  5.                 low)    echo 1 > /sys/class/gpio/gpio38/value
    9 F" ]/ k" l* _; l, Q
  6.                         echo 0 > /sys/class/gpio/gpio40/value;;
    & ]* k# v. D: J2 X
  7.                 off)    echo 0 > /sys/class/gpio/gpio38/value
    9 F" n2 l, z! o$ G) B# A
  8.                         echo 0 > /sys/class/gpio/gpio40/value;;
    . w' q% C8 f/ f) z
  9.                 init)   if [ ! -d "/sys/class/gpio/gpio38" ]; then) A& ^# D, t: F6 A+ y6 }
  10.                                 echo 38 > /sys/class/gpio/export+ _6 f" {' J) g& o% k8 Y6 Z6 ^2 W% }
  11.                                 echo out >  /sys/class/gpio/gpio38/direction& V  Z: Z4 x2 h" h
  12.                         fi
    8 P( b* O2 p9 j) s6 |, i+ _4 t; v2 s
  13.                         if [ ! -d "/sys/class/gpio/gpio40" ]; then
    1 x$ m8 o9 q, d
  14.                                 echo 40 > /sys/class/gpio/export
    8 ?7 m* t# W  s0 X' u7 P+ I0 c
  15.                                 echo out > /sys/class/gpio/gpio40/direction: j0 i- d/ \& S( W' D( K
  16.                         fi;;
    ( r' ~7 j) v$ u/ R% e3 [* P
  17.                 *)    echo $0 "high|low|off|init";;
    . W# O8 T+ v$ V8 Q  Q3 ~4 k0 Q
  18.         esac2 x: S3 t  S2 v0 v
  19. else
    # D# K4 ^, `. R1 N. l' O1 u
  20.         echo $0 "high|low|off|init"4 a4 n4 q9 n& K) v( J6 J9 |
  21.         exit 127
    + a2 j4 Q3 s% G& c7 J- c* X
  22. fi
复制代码
/ J2 D# q- l' R# Q
用systemd调用gpiofan init即可启动。
$ _% t8 B2 n0 [& h/ g% U6 n6 b4 e5 t支持以下参数:  J; ^) s( J' J! {' f  T
off:完全关闭
8 H$ Y( j1 Q( {( D  l( ?' J; Khigh:高速度运行
! l4 ]& G- ]% L0 S1 O* Zlow:低速度运行
; n5 ^& V$ D2 G) o5 p! s: O5 Sinit:初始化,在调用其他功能之前,必须init!
7 j# S' S4 I9 s9 M4 [
9 U3 j5 v' n! C7 S& g# S5 e6 _# t至此,终于是完美实现功能了

5

主题

5267

回帖

7501

积分

资深垃圾佬

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

3 A# {+ O. o: w! K6 ^- X$ l& _, C好贴帮顶,顺便得渣金

0

主题

27

回帖

89

积分

初级渣柚V2

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

5

主题

5267

回帖

7501

积分

资深垃圾佬

积分
7501
adiao 发表于 2021-3-8 09:06:55 | 显示全部楼层 IP:–湖北–十堰 电信
( t' i% L) e% K( ~. K$ [2 n* D
好贴帮顶,顺便得渣金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-6-3 12:48 , Processed in 0.203439 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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