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

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

[复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
fhh 发表于 2021-3-5 11:18:42 | 显示全部楼层 |阅读模式 IP:–浙江–宁波 电信
本帖最后由 fhh 于 2021-3-23 14:04 编辑
6 g) t& y; X6 ~) T( x
# S/ s2 k) O% g发现了几乎完美的解决方案,此贴终结( L% _9 y4 z1 t% e
https://bbs.nasdiyer.com/thread-7843-1-1.html
9 Q; @2 b- D6 l1 @% Z% }" D刷机完成后,如果希望从emmc启动,只需更改bootcmd环境变量即可。
( C* p7 u2 G: G1 l9 d0 @2 [: v" @% }1 X/ L' K! d, i
9 q5 ?6 Z1 f3 H, `
------------原内容------------------------------------6 ^; ?9 j9 }, ~  x* i
首先声明一点:
8 C: h0 O1 f+ B. x猫盘掉IP并不是所谓的“网卡虚焊”8 X5 J; Z. n8 `
(不然为什么X3P可以正常使用)
7 |" z0 Z4 c4 F; j& l1 j9 i& @掉IP的真正的原因是H大提供的驱动(u-boot/Linux)存在问题,导致网卡没有被正常初始化
+ q) ~: G; E) g' h4 h" W" m) Q- v(比对了一下x3p的dts和H大的dts发现基本上完全不一样,可能是硬件版本区别?)# p* v# ]3 o* e+ B$ A3 d
所以,临时的解决方法如下:3 y1 g+ G+ D  N) @& m
1.刷X3P
8 L8 M* D2 O0 m* i6 R5 \2.将H大提供的系统img(debian/ubuntu/archlinuxarm均可,我用的是Archlinux)写入U盘! m  ?/ ~$ w# b
3.将U盘插入猫盘,进入ttl,清除emmc的mmcblk0p2分区,将U盘的文件系统复制到这个分区;
7 c8 p. r: T4 l! w. w; Z6 ]4.重启,在uboot中修改启动命令,从emmc的mmcblk0p2分区启动
1 T/ s! [# V" K4 y0 e8 o3 u5.启动alpine后,将U盘挂载(比如/mnt)
, W( c& x7 L$ s* A; |. H2 K6.将/dev和/proc挂载到/mnt/dev和/mnt/proc) Q, w" R4 A. [; U3 c
7.将/boot中的Image和dtb文件复制到/mnt备份. t, b6 X! y1 L1 y: x9 z* O4 \
8.将/lib/modules文件夹复制到/mnt备份7 Q4 Z4 f6 X: d3 ^2 H) Z
9.chroot进/mnt,执行emmc-install.sh! X6 c  \8 ]& Y7 y
10.挂载/dev/mmcblk0p1(安装完成的系统),备份当前的Image和dtb,将x3p的备份复制进去
* O' w$ r4 y6 y11.将x3p的/lib/modules复制到当前系统
7 x% D* P4 G; |12.重启: d8 u# \  u9 g5 c
应该直接就能进去了,并且100%获取IP
% f( ^0 \! u" l6 {& `# c3 V内核也不会有crc错误的提示
* U9 m+ g' E# Q6 K! L" F8 Y! l. Q
* h, S, j: U" U% a" S问题:
/ r, d6 D7 W( f与之前的内核相同,无法控制风扇! r1 `- f: ^# s3 n# c
(LED的控制方法见楼下)
$ y% n* w/ m* y$ C7 G, ?  X' P0 F% }9 `1 t. [
废话不多说,上图
$ v( c+ ~2 w8 [

获取IP截图

获取IP截图
/ }& J8 h4 q" X' f4 L, L

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:
/ O; V% i2 c' ~9 y# r/usr/bin/led
7 i/ _5 I/ h* \0 T
  1. #! /usr/bin/bash$ d( a% y% s7 `) ]) K" B
  2. if [ ! -f "/sys/class/leds/c1/brightness" ]; then
    ! a' a7 V! f! N5 Z
  3.         insmod /lib/modules/4.4.52-armada-17.10.1/leds-aw2013.ko
    9 o" [/ g8 v( _! Y
  4. fi  B+ d& x" T1 g+ G, ]
  5. if [ $# -eq 3 ]; then/ p9 t8 w) t7 ~' D  Y+ N! Q1 \
  6.         echo $1 > /sys/class/leds/c1/brightness% X' `4 a& c8 J
  7.         echo $2 > /sys/class/leds/c2/brightness4 y$ w/ }0 ^: |* n! H
  8.         echo $3 > /sys/class/leds/c3/brightness
    ( V! t, \0 t1 t. ?
  9. else; q; t/ W6 L  S# c$ X; l' e  W5 Z

  10. - [1 h+ O# g* q/ v7 ]2 m
  11.         echo 23 > /sys/class/leds/c1/brightness  z# f0 R3 e! W5 Y! S) U% a
  12.         echo 147 > /sys/class/leds/c2/brightness
    $ Z" ^3 o. I& }. |) l+ m
  13.         echo 209 > /sys/class/leds/c3/brightness* O& W- x- `2 c$ }* h
  14. fi. M) O2 o4 e" T( Z, w7 z
复制代码
4 x8 _! B4 ^* h0 ?
使用方法:
: D* z0 \* I* E: b) M& Pled R G B
/ V; M7 F4 _3 f+ O/ g5 X/ C( s不传RGB值默认是Arch蓝
& W2 r9 `! c: x& f/ Y# Q为了让这个脚本开机启动,添加一个systemd脚本:
# N6 X+ H8 |; k) S3 F/usr/lib/systemd/system/led.service
9 q. \. k( o/ K! D2 f3 ?$ c
  1. [Unit]
    7 n$ p( a; M- E- b& E
  2. Description=LED enable
    7 Q6 d: o- f! U, {1 w
  3. Before=basic.target
    ) o" m4 r, \7 x7 p/ C( w4 x
  4. After=sysinit.target local-fs.target
    ; r( L+ `3 a8 T1 B9 v
  5. DefaultDependencies=no7 T3 n7 L* X$ D( V. M% h
  6. ; O  O2 ]& w, Y3 g/ y; y' B
  7. [Service]! x+ x. }3 P9 V. ^! d& \1 ~" G! S
  8. Type=oneshot. Q. ^9 F0 d% a( w0 F% m
  9. RemainAfterExit=yes
    - n, [+ Y! h& R* m: Q
  10. ExecStart=/usr/bin/led
    ; O1 I' ~8 j  Y6 f: c7 q* u- {
  11. TimeoutStartSec=1min; B! P* \: [! I

  12. ! A4 X  d" \: X! h
  13. [Install]
    6 g' u& `" z) u7 {: i
  14. WantedBy=basic.target  ]+ n' z7 `9 |& i. }
复制代码

4 l, G: F- K& T: T1 psystemctl 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:–浙江–宁波 电信
获取网卡温度:# x3 ]5 S. Q  Y+ N( [4 y1 U8 e
1.按照https://blog.csdn.net/han_dawei/article/details/9427033这个教程,编译一个操作网卡接口的程序;
$ t! Q* w! K7 l' J" z% T5 D' C2 r2.按照Marvell的官方datasheet,编写以下脚本:
8 {# ?: x8 B, f/usr/bin/phytemp
  h/ Q5 i+ K% \0 j, j
  1. #! /usr/bin/bash/ X8 p* j1 c( ?( R+ x
  2. mdio eth0 22 6
      R! M! r" r/ P: p7 k* I- R
  3. raw=$(mdio eth0 26)0 Q! \" s1 X2 A1 ^
  4. mdio eth0 22 0
    / u+ a& D' O0 n; d5 \
  5. echo $(((raw&31)*5-25)), o- N! ?+ R+ W+ v* u) _& _4 Y
复制代码

8 _. n2 ^6 ~3 u( |3.直接执行即可。' c! u4 Z: c" p( u6 ~

. c4 t! n( j+ Z风扇控制:+ y  v& ^, s& q2 t, e$ i, ]' R
编写以下脚本:
2 P1 Q# ]" Z, U' V) }/ k. A/usr/bin/gpiofan
" h/ N& K" h% E4 g
  1. if [ $# -eq 1 ]; then7 \3 H* Z+ M9 I1 W4 F3 t, f
  2.         case $1 in
    " b' L% `0 N0 V1 G
  3.                 high)   echo 0 > /sys/class/gpio/gpio38/value  X1 y9 \& ]1 f1 b. X4 D
  4.                         echo 1 > /sys/class/gpio/gpio40/value;;
    3 f! ~4 C# ]; ^" ]! R; H# G
  5.                 low)    echo 1 > /sys/class/gpio/gpio38/value7 g( {& I. Z1 w
  6.                         echo 0 > /sys/class/gpio/gpio40/value;;3 e9 r5 {& i% J. R8 H
  7.                 off)    echo 0 > /sys/class/gpio/gpio38/value4 n) H. u$ k2 l, q, b4 d: e3 ]
  8.                         echo 0 > /sys/class/gpio/gpio40/value;;
    " k6 @- o1 D' M9 {
  9.                 init)   if [ ! -d "/sys/class/gpio/gpio38" ]; then
    3 q5 l! B3 `6 E9 K9 Z8 \
  10.                                 echo 38 > /sys/class/gpio/export0 C& a' g7 N* C8 Z9 I4 U+ u9 }
  11.                                 echo out >  /sys/class/gpio/gpio38/direction, |, J0 B1 j# Q6 z! B; E
  12.                         fi7 w9 b$ |8 a9 a" _. E6 D' q8 I
  13.                         if [ ! -d "/sys/class/gpio/gpio40" ]; then6 u5 T/ s# L; i8 c
  14.                                 echo 40 > /sys/class/gpio/export
    7 r  x' @; d* r/ Y' Z
  15.                                 echo out > /sys/class/gpio/gpio40/direction& S4 i0 b: K$ N8 w( @* x
  16.                         fi;;
    : A( }# n" H. b/ B. u
  17.                 *)    echo $0 "high|low|off|init";;
    ( z, Z4 S" V1 T
  18.         esac
    / D" v6 g" Z% s- S6 c$ K
  19. else
    % f& R& C4 L, a$ U' i5 L: p
  20.         echo $0 "high|low|off|init"
    7 I4 X" Z$ Q; l6 H" b
  21.         exit 1278 E' G" m( O/ f: o
  22. fi
复制代码
, H7 ~0 S3 _  P
用systemd调用gpiofan init即可启动。
* w1 O/ X; p0 z2 c+ ^  q  v支持以下参数:2 ?( l' N/ h: x" ?, [6 Q6 H
off:完全关闭7 F# K; \" C6 F+ w5 }4 D/ n
high:高速度运行' E' U# D3 h' B/ o
low:低速度运行4 W  G7 m* Q- g7 Q5 @
init:初始化,在调用其他功能之前,必须init!
4 K; `& g" ~9 B! T# e; D! n2 u2 D  i
- H" a+ b; [. A/ A至此,终于是完美实现功能了

5

主题

5267

回帖

7461

积分

资深垃圾佬

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

" ~, P" r6 X3 s% m, X! W4 m好贴帮顶,顺便得渣金

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:–湖北–十堰 电信
% G' C' A. D( q6 K3 O: i
好贴帮顶,顺便得渣金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-23 15:27 , Processed in 0.096798 second(s), 37 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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