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

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

[复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
fhh 发表于 2021-3-5 11:18:42 | 显示全部楼层 |阅读模式 IP:–浙江–宁波 电信
本帖最后由 fhh 于 2021-3-23 14:04 编辑
+ F. ~/ t# c( `- H$ p9 E9 Z
( J- ?5 u  N9 c发现了几乎完美的解决方案,此贴终结0 g# E$ O2 y; p, q" R- o4 R7 C
https://bbs.nasdiyer.com/thread-7843-1-1.html8 e, Q  P& M4 `& r
刷机完成后,如果希望从emmc启动,只需更改bootcmd环境变量即可。# p) `) X, J  _* u1 h0 ^

  W' S* H* D  O! m
& Z2 i  a$ C  w* ?: L, w------------原内容------------------------------------
: I* u6 T- m6 [6 a, L6 x( Q1 k首先声明一点:
5 }0 a3 W" i: \! {+ H3 \猫盘掉IP并不是所谓的“网卡虚焊”; o2 F; j' S+ D0 T1 a1 C% M: A: d  O, k
(不然为什么X3P可以正常使用)
8 Z* h1 j) B+ G( |; F* T  x掉IP的真正的原因是H大提供的驱动(u-boot/Linux)存在问题,导致网卡没有被正常初始化# e: n* T# B! c  d2 b" m) S9 D
(比对了一下x3p的dts和H大的dts发现基本上完全不一样,可能是硬件版本区别?)( S2 K% w, V2 V. I
所以,临时的解决方法如下:# v8 H) K; \( Y5 z/ R* y. `( T
1.刷X3P
0 `4 v: u2 _( q' h8 o. {& _# u5 H9 Q% c2.将H大提供的系统img(debian/ubuntu/archlinuxarm均可,我用的是Archlinux)写入U盘
: ^6 t2 N; b/ }6 V3.将U盘插入猫盘,进入ttl,清除emmc的mmcblk0p2分区,将U盘的文件系统复制到这个分区;8 h$ V9 \( c$ s- I  X  s+ B: \
4.重启,在uboot中修改启动命令,从emmc的mmcblk0p2分区启动* J% W: N7 i. Z. H. Z+ j2 X3 ?) Q
5.启动alpine后,将U盘挂载(比如/mnt)
$ Z* {# c9 `: i) u6.将/dev和/proc挂载到/mnt/dev和/mnt/proc" \% `2 Z0 k) l0 S
7.将/boot中的Image和dtb文件复制到/mnt备份
1 k3 P; P3 k; f, {0 w1 M4 u$ {9 K8.将/lib/modules文件夹复制到/mnt备份/ {* Z! A$ `2 Y  [+ w3 G
9.chroot进/mnt,执行emmc-install.sh1 T3 g$ I4 Z$ h$ [
10.挂载/dev/mmcblk0p1(安装完成的系统),备份当前的Image和dtb,将x3p的备份复制进去, I0 Y; k% C: T% X% h
11.将x3p的/lib/modules复制到当前系统+ B: z' e0 H( ?' P
12.重启9 Y6 `. [. Z+ F# `6 M  O* [  K
应该直接就能进去了,并且100%获取IP
  E) A6 o0 L, Y* v" }; x内核也不会有crc错误的提示) B8 f! T' e* R
" @; A  t% p8 p0 H, I6 t5 d
问题:( [0 o& m/ I- s" C9 o/ p
与之前的内核相同,无法控制风扇  h3 g" g. b* C1 g! @
(LED的控制方法见楼下)- _" \  q9 p1 y# r2 ?0 u

, w4 q: @3 W& L- O. d; v& E, t废话不多说,上图
4 ^: a% J1 M+ V. ]7 r9 B

获取IP截图

获取IP截图

3 K' E2 j3 i7 q& J- H

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:
! u9 H: z3 z/ o9 y/ ~* y: b' N/usr/bin/led
( Z' h9 j7 H& c
  1. #! /usr/bin/bash9 H; _; V4 `2 n- g' _+ M7 B
  2. if [ ! -f "/sys/class/leds/c1/brightness" ]; then8 F! e- N# R2 e5 _6 H3 B2 w
  3.         insmod /lib/modules/4.4.52-armada-17.10.1/leds-aw2013.ko
    ! z; S& R) I, E: {- n! u6 h
  4. fi
    ' J" o* {8 g# N0 _3 c" d( _) U4 z
  5. if [ $# -eq 3 ]; then  l* [' v4 m" ?
  6.         echo $1 > /sys/class/leds/c1/brightness, H& f0 ~$ w% x/ E
  7.         echo $2 > /sys/class/leds/c2/brightness
    ( ^# G5 _, k  {3 o7 ]$ ~
  8.         echo $3 > /sys/class/leds/c3/brightness
    . _& _6 ~' f1 b; E
  9. else
    . P1 H3 K7 x; g2 F

  10. ) |1 t8 n4 F6 o% P1 \
  11.         echo 23 > /sys/class/leds/c1/brightness0 ~( e, ?( [* \! U( n; F
  12.         echo 147 > /sys/class/leds/c2/brightness* X+ U/ a. B7 s' d$ \$ K$ b
  13.         echo 209 > /sys/class/leds/c3/brightness
    0 P9 B& i; [7 s$ g
  14. fi
    8 B6 A; R4 l; |8 x: ~; m- ~
复制代码

* q; o9 H. b! N4 M0 H5 T) t使用方法:
( F* M$ _1 Q! I, }5 h7 Zled R G B
4 W5 k7 l) a, V  T0 s不传RGB值默认是Arch蓝
. N  u, q6 V; {: Z) E为了让这个脚本开机启动,添加一个systemd脚本:; U9 K! |, p: Q2 R$ t! |
/usr/lib/systemd/system/led.service
4 R+ p* u) s& f( z6 M$ [2 D3 ^
  1. [Unit]
    . u7 N, }) H* F9 o  [
  2. Description=LED enable6 G* i# E% S0 C+ b
  3. Before=basic.target1 c! W/ _! F7 w9 f7 s
  4. After=sysinit.target local-fs.target
    2 `0 b- U" s/ h8 @- G( C
  5. DefaultDependencies=no- n7 ^2 v! P8 U: |* A( R7 @

  6. & P0 ^( t2 ]3 ^- o
  7. [Service]% O' q! l! A+ J+ A8 j
  8. Type=oneshot3 E" H) i% k- f
  9. RemainAfterExit=yes
    3 O) I9 g- C$ q# t. Y; w' {
  10. ExecStart=/usr/bin/led% G" b. m& f% u1 J# F6 \3 q
  11. TimeoutStartSec=1min
    3 F1 O9 a1 h: H- D  r

  12. - J. x; t0 {1 W" c* R: ]& B; N$ G3 i  j
  13. [Install]
      D3 E6 |* A' c. ^1 T% m, q- l
  14. WantedBy=basic.target
    1 s' y. ?# m2 f. K2 X/ F$ y3 a
复制代码
( e5 ]( w6 `2 s
systemctl 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:–浙江–宁波 电信
获取网卡温度:
3 x2 C4 o2 i) i+ B+ m1.按照https://blog.csdn.net/han_dawei/article/details/9427033这个教程,编译一个操作网卡接口的程序;! L  Z: T, Q- p# }1 H3 g; o: H
2.按照Marvell的官方datasheet,编写以下脚本:6 U0 j! u0 j' S& t" o( o5 o
/usr/bin/phytemp
8 L0 _- A. |0 ^% a4 d
  1. #! /usr/bin/bash8 m5 U: ^& J3 E1 c
  2. mdio eth0 22 6. a' J, s1 {# z1 I* v
  3. raw=$(mdio eth0 26)
    / M  `6 m' ]: ~% {& c
  4. mdio eth0 22 0
    + W" V; |, h, h8 o' c2 O
  5. echo $(((raw&31)*5-25))9 S0 r& ]4 e2 n& s2 h/ u5 Q4 @  I
复制代码
& i. _% e- G, `" E  _# |, |
3.直接执行即可。
8 `; Z  D3 ^, {5 E2 q5 [+ ?0 T1 `) x' y
风扇控制:
7 `! p: s+ {5 `8 ?, P编写以下脚本:9 l7 g& S' i. |7 k9 l
/usr/bin/gpiofan4 {* Z) P" J  N7 y% e( w
  1. if [ $# -eq 1 ]; then
    ( \% M7 o- a8 V% p: [  t4 T# T
  2.         case $1 in
    5 s8 }$ A" q) g; |3 I8 q& w
  3.                 high)   echo 0 > /sys/class/gpio/gpio38/value+ M4 b# g) I$ R8 ^( [% H, e  a# W
  4.                         echo 1 > /sys/class/gpio/gpio40/value;;: d" B) j$ G% b- j* @" U7 I
  5.                 low)    echo 1 > /sys/class/gpio/gpio38/value
    " g8 c: j" R7 `/ S9 r8 e! Y
  6.                         echo 0 > /sys/class/gpio/gpio40/value;;- S( g2 T4 g. ^
  7.                 off)    echo 0 > /sys/class/gpio/gpio38/value. f! H" ~% _. F" h8 x" L# i3 }
  8.                         echo 0 > /sys/class/gpio/gpio40/value;;# v) x) n) W9 G5 H( k/ ]
  9.                 init)   if [ ! -d "/sys/class/gpio/gpio38" ]; then
    * W2 n: J( v8 \0 S  {& d& A& f
  10.                                 echo 38 > /sys/class/gpio/export
    5 k. a3 G8 F) J( P
  11.                                 echo out >  /sys/class/gpio/gpio38/direction2 r$ w6 @  U( O, H) K
  12.                         fi0 W) |4 Z6 `/ E* i. m3 J. ~
  13.                         if [ ! -d "/sys/class/gpio/gpio40" ]; then' N/ x" B( g  [6 K" x
  14.                                 echo 40 > /sys/class/gpio/export6 r( T6 n: j* A( U% ]
  15.                                 echo out > /sys/class/gpio/gpio40/direction4 Y" E. O) B, C/ P8 r
  16.                         fi;;
    9 g2 p3 z" t3 x8 Y0 z. f! k5 S; I
  17.                 *)    echo $0 "high|low|off|init";;
    9 `- N9 s" E* O3 ~; ]
  18.         esac# q$ j/ d9 o/ W, ~& h1 g
  19. else
    % v1 B# R, b" z4 E8 O  P
  20.         echo $0 "high|low|off|init"- @* i/ C/ X$ y- m& k
  21.         exit 1274 a% G# S6 E# g
  22. fi
复制代码
8 G* p' ?) x' C, K2 K' z* ]& v/ i+ {
用systemd调用gpiofan init即可启动。- E2 i( W4 m* s5 J6 t
支持以下参数:$ U9 _$ N$ X" ?' f9 d3 S/ w) x  y
off:完全关闭8 w6 y3 {) d$ f) k8 J
high:高速度运行
' _, r) C& b% M  C$ K7 U3 Blow:低速度运行
3 ]* `; @) S! g: `6 Qinit:初始化,在调用其他功能之前,必须init!. L! W# b5 U1 n/ N2 m/ V
$ T$ z' w' d6 O" ?$ l% N
至此,终于是完美实现功能了

5

主题

5267

回帖

7461

积分

资深垃圾佬

积分
7461
adiao 发表于 2021-3-6 10:06:23 | 显示全部楼层 IP:–湖北–十堰 电信
. P' ]0 D/ r" R" @
好贴帮顶,顺便得渣金

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:–湖北–十堰 电信
; n1 p3 d6 }/ D. \3 \
好贴帮顶,顺便得渣金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-23 13:55 , Processed in 0.122131 second(s), 37 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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