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

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

[复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
fhh 发表于 2021-3-5 11:18:42 | 显示全部楼层 |阅读模式 IP:–浙江–宁波 电信
本帖最后由 fhh 于 2021-3-23 14:04 编辑 4 g$ z0 q5 Q" t4 @3 w
: Z: `/ b2 m# _0 A
发现了几乎完美的解决方案,此贴终结
1 Q* W* W8 o( B7 i" Qhttps://bbs.nasdiyer.com/thread-7843-1-1.html) ^( v( P9 a& i6 \0 v7 Z, a9 ]$ N
刷机完成后,如果希望从emmc启动,只需更改bootcmd环境变量即可。* l0 x3 c4 C' }% |5 f
% O7 C4 a" z$ \7 p

2 _- W2 r1 w- ~% `( a" |------------原内容------------------------------------
- c( j' X( W/ S2 R$ Y首先声明一点:3 e% f3 M) j8 s1 k
猫盘掉IP并不是所谓的“网卡虚焊”5 R( N' Q! z& i5 R
(不然为什么X3P可以正常使用)
  Y: @+ M1 c. O) h  y掉IP的真正的原因是H大提供的驱动(u-boot/Linux)存在问题,导致网卡没有被正常初始化. u7 y5 J' B4 E0 Y6 C- ~7 ^/ k1 C
(比对了一下x3p的dts和H大的dts发现基本上完全不一样,可能是硬件版本区别?)/ |# a: a3 n( f& T- h
所以,临时的解决方法如下:
5 z" @& l" l) i1.刷X3P
' j& U8 @1 r* y! J' k2.将H大提供的系统img(debian/ubuntu/archlinuxarm均可,我用的是Archlinux)写入U盘
: r; Z- u! n- l$ h  U3.将U盘插入猫盘,进入ttl,清除emmc的mmcblk0p2分区,将U盘的文件系统复制到这个分区;
4 |/ H" L) @: F0 V4.重启,在uboot中修改启动命令,从emmc的mmcblk0p2分区启动
9 S4 C, G" Q; m& @% n; T1 C+ V5.启动alpine后,将U盘挂载(比如/mnt)& N: n8 L& l- t7 }  ?
6.将/dev和/proc挂载到/mnt/dev和/mnt/proc. O# s; W" C% I: S8 P
7.将/boot中的Image和dtb文件复制到/mnt备份3 v: o( o$ |6 T0 ]8 f
8.将/lib/modules文件夹复制到/mnt备份; n; J: v0 N& Q9 N% x* q
9.chroot进/mnt,执行emmc-install.sh* E$ p! a% s/ [4 d* P( v6 |
10.挂载/dev/mmcblk0p1(安装完成的系统),备份当前的Image和dtb,将x3p的备份复制进去
6 X3 y3 r/ i& H11.将x3p的/lib/modules复制到当前系统8 M! b" Y5 A  Y: P- l: C
12.重启
- U" k2 c! u! Z( K+ L+ i2 P, T& A; w应该直接就能进去了,并且100%获取IP
- \( Y! f' W; h- g% r内核也不会有crc错误的提示" z" p( d0 X+ ~& H) h) t- l
) R/ G5 ^6 H  B3 }1 ?
问题:9 r5 w$ `$ ]2 \& G  {4 \
与之前的内核相同,无法控制风扇0 n, s! Y& W" L! H  Y: c
(LED的控制方法见楼下)
' O& m4 \; Q# s/ Y4 ?. @( R' {6 p
+ M$ I4 H) y/ h: T废话不多说,上图' y9 ?) i' \' K8 c4 e

获取IP截图

获取IP截图

4 i% D" r/ F* G

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:
3 J& L0 A5 p7 k+ q, v& V/usr/bin/led
" g6 r& {7 L( r* X" E: u: e# a/ a
  1. #! /usr/bin/bash
    ) r. e+ h+ [( f& `) W5 w
  2. if [ ! -f "/sys/class/leds/c1/brightness" ]; then  n: y' ]# E7 q
  3.         insmod /lib/modules/4.4.52-armada-17.10.1/leds-aw2013.ko
    : @$ `& S4 l/ ~. M' |  ~
  4. fi- D( V$ Z$ k# [% `4 t
  5. if [ $# -eq 3 ]; then
    / y& w: y" K4 I9 e
  6.         echo $1 > /sys/class/leds/c1/brightness
    . B, u. ]9 f, b4 `; F$ `' S
  7.         echo $2 > /sys/class/leds/c2/brightness% |- L7 M: z5 c- C" a' e2 Y$ S5 w7 S
  8.         echo $3 > /sys/class/leds/c3/brightness
    # Y1 a4 t7 q% T% k& |
  9. else
    : Z4 n$ D/ S6 ]$ G; d7 R
  10. : Q( J0 _- f3 U3 \; T! ]' i
  11.         echo 23 > /sys/class/leds/c1/brightness
    ) H, I' e1 h, Y* b
  12.         echo 147 > /sys/class/leds/c2/brightness
    5 l5 }# o3 f2 j
  13.         echo 209 > /sys/class/leds/c3/brightness
    , Z; }; ?; R% B% [0 H  l
  14. fi
    3 t( i4 y0 ~. j* s; v" `
复制代码
9 \& |5 |# E9 @
使用方法:* f5 N. x9 {! N
led R G B1 t7 ?+ Q" q( j1 u
不传RGB值默认是Arch蓝! V1 M9 q7 r, }
为了让这个脚本开机启动,添加一个systemd脚本:0 ~1 }& O1 R1 H$ n, s" i- ?; g
/usr/lib/systemd/system/led.service
" f4 X' V6 v6 q- B7 Q$ u0 s2 I) l+ f
  1. [Unit]. w, o! R( P4 {5 t9 z6 g
  2. Description=LED enable
    0 F! A, R; a/ L8 n
  3. Before=basic.target
    ( I- u" t8 }4 p3 o) _+ |% K6 t
  4. After=sysinit.target local-fs.target% O) u. d0 l8 v5 h; U
  5. DefaultDependencies=no- A* D4 X: {* ]7 O4 J8 R5 A4 Z

  6. 4 q9 {0 {5 @, o" w2 J# r
  7. [Service]
    & A& A9 v1 r8 L0 f) h
  8. Type=oneshot' o$ X5 m0 A( x! R* G. v9 A
  9. RemainAfterExit=yes
    ! u  g; U6 o# R1 a
  10. ExecStart=/usr/bin/led
    7 a4 u2 q8 O5 k, Y
  11. TimeoutStartSec=1min
    ! P5 X8 K$ a* X$ O7 G! |9 g

  12. 9 s: J, W& |0 T4 K2 r
  13. [Install]9 ~: O  H* L& n) S. R: ?7 a
  14. WantedBy=basic.target
    . w2 a, i& g. U& m7 F
复制代码
' w% L/ {+ a. u
systemctl 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:–浙江–宁波 电信
获取网卡温度:& K. u% ?& J$ [+ N/ H- H, {; w* Z# A
1.按照https://blog.csdn.net/han_dawei/article/details/9427033这个教程,编译一个操作网卡接口的程序;1 Y) j6 D4 m4 c1 ~' J: M
2.按照Marvell的官方datasheet,编写以下脚本:3 @0 U+ x" r& u: C; n' [/ w
/usr/bin/phytemp5 m* ]; u2 e1 ^  c0 ?
  1. #! /usr/bin/bash
    . A* C4 \( d. ^: {% W- I
  2. mdio eth0 22 6
    / ?4 R" F  D/ c5 k# d4 e9 n
  3. raw=$(mdio eth0 26)+ E& U% [/ n" R, E+ ~0 p' f; c
  4. mdio eth0 22 0
    3 t" r# z% e, J/ Y7 C) o7 u
  5. echo $(((raw&31)*5-25))
    % V( l3 d4 x0 p$ b% |
复制代码

7 r$ }* }0 z% H# l' M( Y3.直接执行即可。
* g2 K) m5 W" ]
% W  x/ O. [' O2 U$ ^4 i2 W7 K风扇控制:
% _  u7 Q3 [6 M6 ?) P编写以下脚本:
+ I* p$ D; n( K$ K( o/usr/bin/gpiofan% {# e5 A( t- k
  1. if [ $# -eq 1 ]; then
    ; b" t/ G6 A- l) p- v
  2.         case $1 in
    ! x9 P. }% _5 h& M2 E0 W( s/ k/ K" A
  3.                 high)   echo 0 > /sys/class/gpio/gpio38/value: t& F2 d$ y, z1 q4 A
  4.                         echo 1 > /sys/class/gpio/gpio40/value;;2 A0 U8 ?2 I6 q. v
  5.                 low)    echo 1 > /sys/class/gpio/gpio38/value
    7 t+ b3 K3 y$ b
  6.                         echo 0 > /sys/class/gpio/gpio40/value;;
    ! U% r7 u; V4 h3 B2 o; p
  7.                 off)    echo 0 > /sys/class/gpio/gpio38/value8 `  K; e; J# r* c( D  m8 r
  8.                         echo 0 > /sys/class/gpio/gpio40/value;;  z* o% ]% d6 `) g% D
  9.                 init)   if [ ! -d "/sys/class/gpio/gpio38" ]; then. C$ X1 y- X2 n: Z9 m" i5 _2 [
  10.                                 echo 38 > /sys/class/gpio/export
    . W) [3 I- {( J5 ?+ C& s# J
  11.                                 echo out >  /sys/class/gpio/gpio38/direction
    $ |' u7 c0 A: d9 z/ C$ w
  12.                         fi( Y8 i+ l7 x5 |) u& b0 y
  13.                         if [ ! -d "/sys/class/gpio/gpio40" ]; then
    ! P" R6 l) e! K; m0 A" ^) Q
  14.                                 echo 40 > /sys/class/gpio/export1 ]" t; b, w2 v" s/ d) m4 [! j: x
  15.                                 echo out > /sys/class/gpio/gpio40/direction. Q, H: f* j$ U% d2 g  J; `
  16.                         fi;;) w  M2 n9 o2 v: S: m* ^0 ~# f  p
  17.                 *)    echo $0 "high|low|off|init";;" g- ]& B2 F% p3 t
  18.         esac$ h: L, T! q& K+ h3 k$ F
  19. else% i) w  p# y# l
  20.         echo $0 "high|low|off|init"  N) M8 e2 s5 ^8 l, }
  21.         exit 1278 e4 e% n  g+ S
  22. fi
复制代码

4 w  H8 }2 g6 x9 u2 r" i+ [用systemd调用gpiofan init即可启动。7 F1 W' Q" _+ K; H  j- E6 O
支持以下参数:
2 i3 T3 }" w3 u off:完全关闭" f  {" b  ]; ^8 P1 d) x, Z
high:高速度运行
* g/ A5 i' X7 F" _7 Hlow:低速度运行4 B) |. B5 N' [$ |2 `
init:初始化,在调用其他功能之前,必须init!* z/ M* ?; Q4 q' |; ?: U- u  o8 g
& X% }) \6 [6 P) ]$ a
至此,终于是完美实现功能了

5

主题

5269

回帖

7658

积分

资深垃圾佬

积分
7658
adiao 发表于 2021-3-6 10:06:23 | 显示全部楼层 IP:–湖北–十堰 电信
# p/ h5 B; m# x: I0 Z3 h4 A: F% F
好贴帮顶,顺便得渣金

0

主题

27

回帖

89

积分

初级渣柚V2

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

5

主题

5269

回帖

7658

积分

资深垃圾佬

积分
7658
adiao 发表于 2021-3-8 09:06:55 | 显示全部楼层 IP:–湖北–十堰 电信
8 K. H; a: R5 n
好贴帮顶,顺便得渣金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-11-8 01:04 , Processed in 0.068278 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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