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

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

[复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
fhh 发表于 2021-3-5 11:18:42 | 显示全部楼层 |阅读模式 IP:–浙江–宁波 电信
本帖最后由 fhh 于 2021-3-23 14:04 编辑 8 C; m% ~; E$ E2 l% o

$ H4 @, O' K8 I7 L( {  T: V发现了几乎完美的解决方案,此贴终结4 ^& G8 G, W. p" h$ h* \/ c
https://bbs.nasdiyer.com/thread-7843-1-1.html
; F* Y" M* \3 v" G0 C刷机完成后,如果希望从emmc启动,只需更改bootcmd环境变量即可。5 q$ @# I, Y6 G/ k; }! A

9 R  F. F& z" J" i! Z; T
0 J7 M* u; r3 E3 j( b4 a$ [0 V) j2 D------------原内容------------------------------------4 f. z0 v  t0 U+ m
首先声明一点:7 o9 g5 Y+ Q) R) O% I- ^: J6 a
猫盘掉IP并不是所谓的“网卡虚焊”
2 I% g8 }0 `+ R(不然为什么X3P可以正常使用)
! p+ d0 M$ H6 k- Q' `掉IP的真正的原因是H大提供的驱动(u-boot/Linux)存在问题,导致网卡没有被正常初始化+ S" @  o# h- V( k
(比对了一下x3p的dts和H大的dts发现基本上完全不一样,可能是硬件版本区别?). y5 v2 ]2 i$ r
所以,临时的解决方法如下:0 V- s$ w2 I# Y+ x( R, l" P
1.刷X3P
$ S4 l+ |5 E- q1 \$ q# j2.将H大提供的系统img(debian/ubuntu/archlinuxarm均可,我用的是Archlinux)写入U盘
% h) c3 N9 h) Z9 S: t2 v3.将U盘插入猫盘,进入ttl,清除emmc的mmcblk0p2分区,将U盘的文件系统复制到这个分区;; p: O5 N' ^' u/ D3 a# U
4.重启,在uboot中修改启动命令,从emmc的mmcblk0p2分区启动% ^; s% U" R( H* u: S" J* W: s/ c% {
5.启动alpine后,将U盘挂载(比如/mnt)
( R( p( Z# K: d, \6.将/dev和/proc挂载到/mnt/dev和/mnt/proc- f  V+ @( f& f
7.将/boot中的Image和dtb文件复制到/mnt备份
9 V4 ~4 P# Y5 N8.将/lib/modules文件夹复制到/mnt备份6 P, e8 W- ^* h4 R6 g5 B( r
9.chroot进/mnt,执行emmc-install.sh% u5 J3 m8 f5 j& d* h
10.挂载/dev/mmcblk0p1(安装完成的系统),备份当前的Image和dtb,将x3p的备份复制进去; J' Z/ o% _% B% K
11.将x3p的/lib/modules复制到当前系统
! ]4 Q9 t1 |$ f2 R12.重启0 o+ E( v! n+ ]2 M9 B0 h
应该直接就能进去了,并且100%获取IP
& S7 y5 Y. A+ ^- g/ o3 J8 L内核也不会有crc错误的提示* }. [! ]: |3 v3 O. F% i
7 V; b# P- V! A, u, K1 {: [+ f' h
问题:
2 V, n- u$ B5 O1 a1 U4 J) h# `与之前的内核相同,无法控制风扇3 W7 T% i" q0 B# H0 s5 M! F
(LED的控制方法见楼下)
3 L& ^- M  B) J# @  S( d# o3 b) X4 k4 s8 e/ Z
废话不多说,上图8 }! [4 S  {% w4 l8 @, z' G

获取IP截图

获取IP截图
& p  f7 S+ C. i% _1 S2 \

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:4 V; w+ Z4 ^( d+ g  ?  y- F% r2 J# J# l
/usr/bin/led1 r8 Q, [+ A* k, o; c
  1. #! /usr/bin/bash5 _( h$ N% F, o7 o
  2. if [ ! -f "/sys/class/leds/c1/brightness" ]; then
    4 ]! ]$ B1 m) }  p, r4 @
  3.         insmod /lib/modules/4.4.52-armada-17.10.1/leds-aw2013.ko( A. T) t) _" N. j
  4. fi
    ; w" Q7 ~9 D! e
  5. if [ $# -eq 3 ]; then- a) ~9 X+ W: h& g  B* F
  6.         echo $1 > /sys/class/leds/c1/brightness$ }4 |9 |2 [. Z, \" f
  7.         echo $2 > /sys/class/leds/c2/brightness
    # E+ ^' F; g) V; |0 Y! ]% b" R0 O
  8.         echo $3 > /sys/class/leds/c3/brightness; a" g  B" Y% E; g, W5 f8 ]
  9. else
    5 E' K7 |- H# H

  10. 6 g, ~' Y# I2 j$ O
  11.         echo 23 > /sys/class/leds/c1/brightness
    / {$ K( K, E* k) r3 C
  12.         echo 147 > /sys/class/leds/c2/brightness' e, a5 `' i8 l) x
  13.         echo 209 > /sys/class/leds/c3/brightness4 w. M6 i$ P" v
  14. fi( |* b6 n6 k; m" s2 @
复制代码

2 k  X7 f- {) u4 x' V  j$ |7 z使用方法:
4 `0 f2 E$ x; Q' D9 b3 K' O7 e0 \  lled R G B
1 g% ~0 X9 E' }5 i4 b/ H不传RGB值默认是Arch蓝1 I3 z2 H- A: f' U' k: h
为了让这个脚本开机启动,添加一个systemd脚本:
1 |  i+ ]* _1 `/usr/lib/systemd/system/led.service
$ x. L$ ]% Q+ Z  Y5 @2 {4 f6 ]
  1. [Unit]
    2 |  e( p, [% w! C4 `
  2. Description=LED enable
    3 a  N! ^- m) U, F- ]
  3. Before=basic.target
    " q* _  Q- O; F
  4. After=sysinit.target local-fs.target: w1 m: f3 G$ p2 h! o  B
  5. DefaultDependencies=no. ?/ _6 s4 H4 w; F/ L
  6. 9 B% r/ B7 X( i' p
  7. [Service]* R' S3 |$ {5 D& ~! J' Z7 U1 r3 O
  8. Type=oneshot/ e  _+ S2 ]0 R& d; C
  9. RemainAfterExit=yes; G( i) x( r8 M- [' ^
  10. ExecStart=/usr/bin/led% a* b5 U8 h; {/ h
  11. TimeoutStartSec=1min
    ( g$ s9 s" S) b! Z# J
  12. " e2 \2 Z" w/ Q7 U# K& c1 f
  13. [Install]7 s, z* Z' E3 U6 v. }
  14. WantedBy=basic.target+ }8 R: ^  O6 v3 v- z) `; A
复制代码
3 K8 K6 v6 B; d6 @
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:–浙江–宁波 电信
获取网卡温度:0 ]( D/ O/ |* t, o! j
1.按照https://blog.csdn.net/han_dawei/article/details/9427033这个教程,编译一个操作网卡接口的程序;
; k+ k) B7 v& K! v  q6 i2.按照Marvell的官方datasheet,编写以下脚本:
2 k9 g4 a- l0 e0 j# e1 k/usr/bin/phytemp, {6 C9 C7 L6 h
  1. #! /usr/bin/bash
    . t# ^) q' j( D, R
  2. mdio eth0 22 6
    . }8 j/ V" W* u
  3. raw=$(mdio eth0 26)
    8 ]- N* a" b7 V* X$ U( Z' u" H: @
  4. mdio eth0 22 0
    0 W$ k* L, o( @" E, P6 o
  5. echo $(((raw&31)*5-25))
    5 ?( r  l4 ~' M. ]7 P% p& o
复制代码

" V( `- l8 V( I' @8 I# k2 z4 h3.直接执行即可。
$ z6 P4 K$ H! s+ z5 `% A$ V& r
2 s! r+ i1 @# c% T' q) L( [风扇控制:
! d2 N2 F6 q5 O编写以下脚本:& Z1 P# F' t$ P4 ?
/usr/bin/gpiofan
8 k/ W, O% M# R0 Z! E9 B
  1. if [ $# -eq 1 ]; then
    / d1 p; Q( P% Z* ]
  2.         case $1 in
    $ G  n/ V5 D7 p0 `
  3.                 high)   echo 0 > /sys/class/gpio/gpio38/value
    6 {' K5 A' Z, s8 a& B
  4.                         echo 1 > /sys/class/gpio/gpio40/value;;
    7 {) D4 s* q* u8 l2 v
  5.                 low)    echo 1 > /sys/class/gpio/gpio38/value0 A, o& }) r* ~$ e
  6.                         echo 0 > /sys/class/gpio/gpio40/value;;
    / ?% ^3 C! O: T) G
  7.                 off)    echo 0 > /sys/class/gpio/gpio38/value5 v& W6 `2 I1 ?9 v
  8.                         echo 0 > /sys/class/gpio/gpio40/value;;
    6 R2 ~  |6 ~0 b
  9.                 init)   if [ ! -d "/sys/class/gpio/gpio38" ]; then7 S: C% Z0 M+ U% G( q
  10.                                 echo 38 > /sys/class/gpio/export! b$ s3 s0 J% h2 p7 Q& g/ H
  11.                                 echo out >  /sys/class/gpio/gpio38/direction/ {7 V0 }: y* ~! n8 [; |
  12.                         fi, n, u- d' I; \+ N1 t7 a
  13.                         if [ ! -d "/sys/class/gpio/gpio40" ]; then
    0 R* o. I/ H. V& D, F
  14.                                 echo 40 > /sys/class/gpio/export' r! @8 |  s' k" b$ }. c4 c+ q
  15.                                 echo out > /sys/class/gpio/gpio40/direction% X% b7 r* z  k) e6 P$ ]
  16.                         fi;;7 S/ I9 Z. k' ]! M  \9 Z7 m% P
  17.                 *)    echo $0 "high|low|off|init";;/ V# Y# Z% n! V& R
  18.         esac* ~* J5 v: h, ], L9 j! ]1 b, l4 K
  19. else8 ?2 i1 p8 p* S, t# f6 q
  20.         echo $0 "high|low|off|init": e1 _/ e) c' L
  21.         exit 1271 ~% b5 N2 Z- A% [7 A. h5 i
  22. fi
复制代码
0 p( h' }% ?$ I* d2 ~  w; p
用systemd调用gpiofan init即可启动。
6 ?- f  O% l8 g( t8 ^2 X支持以下参数:
0 V& E2 L/ o7 ~! |( J6 u! E! \ off:完全关闭6 a8 L0 C1 p+ n1 u; W$ h
high:高速度运行
" G7 p+ U1 \& v) Q$ r6 ?) @4 K  ^low:低速度运行5 d& u5 _& ~, b- I
init:初始化,在调用其他功能之前,必须init!' Q0 H- c$ Q- \" F  \9 z
8 Z8 e( P( `1 @( _* d
至此,终于是完美实现功能了

5

主题

5267

回帖

7552

积分

资深垃圾佬

积分
7552
adiao 发表于 2021-3-6 10:06:23 | 显示全部楼层 IP:–湖北–十堰 电信
: Z9 B$ W, i; l4 u% e
好贴帮顶,顺便得渣金

0

主题

27

回帖

89

积分

初级渣柚V2

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

5

主题

5267

回帖

7552

积分

资深垃圾佬

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

. g9 B! x, w' h好贴帮顶,顺便得渣金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-7-24 10:29 , Processed in 0.086578 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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