|
本帖最后由 jiuweiljp 于 2024-1-4 01:05 编辑
3 r0 F$ n% f( b; V6 h9 k7 S9 Y2 r! H% J( d4 Y
使用条件:
) T4 D4 \4 Y4 t2 s 1、有usb接口并且能驱动U pan的无视这个方法;
% h3 c" [+ t9 S3 ?7 w9 h( Z+ F+ ` 2、光猫不能telnet,并没有tftp或者wget、chmod命令也可以不用看;3 n/ l! V% R# ^; ^: R. s& r
5 j3 @& D4 M) q5 z! G
正文如下( |2 E5 z8 r# b3 p/ [
手上有一个闲置的中兴光猫F657GV9,焊接TTL线后启动信息如下(可无视):
% e, K* Z# d3 D5 b) P( n5 P- U-Boot 2013.04 (Sep 11 2021 - 00:00:57)
; V9 o( [. V3 } - % p$ O J# c4 k/ {9 @; A' M$ c
- CPU : ZX279127S@A9,1000MHZ. W8 _3 }) h0 m* n, m! Q4 C4 {4 P+ d
- Board: ZXIC zx279127sevb
f) \9 J7 b% e$ A' E" M4 j) F - 127s product_vid = 158' E c& s! M0 L$ I
- DRAM: 256 MiB
/ W* |2 z& R1 v+ { - 127s product_vid = 158
$ g' r3 Q* A, ` - ,10000000,50000000
; [% E( v3 d# W8 j4 p# C - cpuid=279127104 O7 ^8 O' U# T n/ n% e
- 127s pinmux: 3f7ffffa 3ffffeff 19ff0555 6be1b
& T( w9 i4 }* w6 V; h - 127s product_vid = 158% H: E6 M/ F( U) r5 h" v8 X
- bootsel=35 W+ |3 X% D7 z
- NAND: . Q' ^* t) ?+ _
- Manu ID: 0x2c, Chip ID: 0x24 (Micron SPI NAND MT29F2G01ABAGDWB 256MiB 3,3V)
( ~6 d- z- z3 N9 J7 {+ [( d) b - 256 MiB- ~) U" a6 e0 A
- <nand_read_skip_bad_,447>!mtdpart=0x1,offset=0x0,mtdpartoffset=0x180000,mtdPartsize=0x80000,length=0x200009 ]7 z9 c$ q& O# s L
- In: serial
, U: I+ @, C" ^ - Out: serial6 S3 X& o" _* i5 G# C" U
- Err: serial
* {9 O8 O }# |: k) ~* ? x - clk_pll env is not setted, core clk won't change, ^8 U6 o$ |& C
- Net: enter ref_clk_set.. mode = 0 .. R G# \7 T$ T; E& H! [
- enter pll_cfg_fractional. q5 R( u4 G7 i8 b8 D4 p
- ref_clk_set success!& [9 i; l( q. t6 [& u2 Z
- gpon serdes init - Q: C- G" }' Y5 U6 t
- addr 0x9400002c before value is 11000013& @, a! F( Q5 C9 N
- addr 0x9400004c after value is 11003ff3
. {1 {; a. D! @' A$ d1 g" N - eth00 r- x0 z/ a& p0 ?" t# W. J% W. ^
- sec mode! }/ z, T+ |" I9 I
' @) O8 D, {: M' z# f- r' x- Hit 1 to upgrade software version
2 N+ ?$ L* }, B5 v% c7 Q% \. } - Hit any key to stop autoboot: 0
; u7 ~& f w1 v4 B/ R$ ~3 D - addr=1200000
7 x) E/ U p0 I5 M: S7 u* o3 p# C - addr=4200000
. L& V' i, A+ S5 W2 B3 {+ P - select=0x0
) d& a/ ^3 t- i2 [0 s! Y - search=0x2
1 O1 g" z" q& E1 I1 Y - <nand_read_skip_bad_,447>!mtdpart=0x6,offset=0x0,mtdpartoffset=0x200000,mtdPartsize=0x200000,length=0x10006 K" S% d! Z# h6 ^( |+ v' U% j
- tmp=0x00000000, value=0
8 s" [4 @, g$ n+ K - select=0x0
. }6 p4 G7 L0 X' T& ~6 N - search=0x20 f4 o r% Z/ I2 i& h
- search->result[0].entry=12002404 {9 f) n; v: V/ `4 j
- <nand_read_skip_bad_,447>!mtdpart=0x2,offset=0x0,mtdpartoffset=0x1200000,mtdPartsize=0x3000000,length=0x23e0000
- f' R) H% f" l b& M2 g" A1 \8 |' J - RSA Verify OK4 O5 ]& Z3 h3 @7 O4 @: U
" X J9 R- M3 f1 H X( J% b- M: |; p- ---mtdparts_init--current_mtd_partnum=0-: h: t y4 D8 L
- dev id: type = 2, num = 0, size = 0xffffffff, mtd_id = single part6 w, o, Q) o6 @, X4 e
- part : name = rootfs0, size = 0x023c0000, offset = 0x01220000
9 ~' G0 a1 t9 {& e+ G( H - part : name = rootfs1, size = 0x023c0000, offset = 0x04220000* n! i& J( X8 k: C& X M
- 5 i/ P5 t( n8 N: @1 Q
- --- jffs2_part_info: partition number 0 for device nand0 (single part)
3 S$ u: |, {) B! Q - jffs2_part_info:rootfs0,1220000. D5 ]5 ]9 Q; L9 ~. A! g
- ### JFFS2 loading '0uImage' to 0x44000000
+ |# n- G# h' N( P: I, x - Scanning JFFS2 FS: ..................... done.
% a9 V* ?% V) r- [3 @ - ### JFFS2 load complete: 4344391 bytes loaded to 0x44000000
* ]5 k" n, \) D7 L; `' z1 y - 127s product_vid = 158
# z- E2 C# E. V- w( ] - <nand_read_skip_bad_,447>!mtdpart=0x0,offset=0x0,mtdpartoffset=0x0,mtdPartsize=0x180000,length=0x100000
$ V6 I2 \* m @ - lseek=0x42080800
# F; l, S" K. r7 q) i4 x - cmdline=U-Boot V1.0.0P1N1 20210911001937
( j* q; S$ S( b- B' C - output gpio:58, value=1, 0( O( U% J$ g3 e) j% g2 U1 J7 X
- output gpio:59, value=1, 0
: `0 {& Z# _+ h n4 D2 ?8 o - ## Booting kernel from Legacy Image at 44000000 ...
2 J% R. G1 I1 O) I - Image Name: Linux Kernel Image- P; v) d: U' b& ^3 L3 ]8 |
- Image Type: ARM Linux Kernel Image (uncompressed)
; u5 E2 J& s" \% f" e S - Data Size: 4344327 Bytes = 4.1 MiB! X8 L! x# D% h1 \ i) D" r% ]2 k1 E! A
- Load Address: 40008000/ x; f6 N n' ^( P' E/ Y
- Entry Point: 400080004 @7 g& z' w: ]5 F% E
- Verifying Checksum ... OK! U/ _' L0 s0 C# r# {+ V' f' H. R
- Loading Kernel Image ... OK
3 S" v- i+ z5 z$ E1 m - OK/ Q" Z- W% @( R x
- ----------------------6 @* ^. I, \& Q" A
- |-->setup versioninfo tag...
6 m9 y3 o% ?* y+ j* { - * y' q8 o: K% ~; w
- Starting kernel ...
复制代码 根据启动信息可以得知
* y7 `/ N6 @2 t" zcpu(ZX279127S@A9,1000MHZ)后面再吐槽它,内存(DRAM: 256 MiB),闪存用的美光(Micron SPI NAND MT29F2G01ABAGDWB 256MiB 3,3V)其实这个光猫也有USB接口,我测量过没有5V输出,如果想USB好用需要补元件。
+ p% _6 J( Q& u' W4 D; v0 @, d6 V' z& ^# l, ^* t; N) e
使用工具软件打开光猫telnet并登录后查看mtd信息; d0 k: ?! Y3 S5 Q- S4 `* e: o3 ^% O6 @' _' _
- / # cat /proc/mtd
# ~- G& v! Y3 `& y8 E - dev: size erasesize name
; `) {5 \: S* W5 d - mtd0: 10000000 00020000 "whole flash"
+ Y3 d6 L5 G: ?/ j - mtd1: 00200000 00020000 "u-boot"
- \$ b6 L" x3 g' Q$ f1 e; v - mtd2: 00200000 00020000 "others"
1 E/ w6 R0 b/ l. p3 n - mtd3: 00200000 00020000 "parameter tags"% h4 M* W: i' d) [; d; M3 q1 g
- mtd4: 00200000 00020000 "wlan"
, C3 z+ |& V C) ` - mtd5: 00800000 00020000 "usercfg"
2 b3 m1 d( v% X% `, y8 l! H1 I8 D - mtd6: 00200000 00020000 "middleware"7 K1 Z1 T1 @# k! \( u1 |- w0 A& O
- mtd7: 03000000 00020000 "kernel1"; X; _: S0 H8 W3 t3 e/ u
- mtd8: 03000000 00020000 "kernel2"
b! b" I" q: |) d& s' @ u - mtd9: 01000000 00020000 "framework1"0 m& L0 ?% m: P( ~' g
- mtd10: 01000000 00020000 "framework2"
; W: F5 C/ x8 A7 }7 s# G; } - mtd11: 01800000 00020000 "preplugin_data"
) U) l8 E3 Q; @1 v: A% [ - mtd12: 05600000 00020000 "plugin_data". O4 v$ S; e+ \4 \/ Q/ [
- mtd13: 02fe0000 00020000 "rootfs"
复制代码 可以看见有一个MTD0它就是一个完整的nand flash影像把它拷贝出来就是一个完整且连续的flash备份,有人会说下面不是有MTD1-13,分别拷贝不方便点吗?
9 U4 `8 h L6 j6 u- f( Z, ^1、mtd1-13 加起来是超过256MB的;
( Z5 w! E: u: p9 w n1 W2、你不知道它mtd1-13在flash存储地址是不是按1-13这个编号连续分布的;
- d: W" Z6 `% o0 K5 i0 Y, H& d/ u4 P% B1 G/ H2 i, @
我查过启动信息如下:(我没看出来有MTD地址分布信息). Y( N2 c' Q2 g
- /opt/cu/apps # ./busybox1 dmesg" [: H: q' V, V/ T3 z$ Y, ?7 d
- NET: Registered protocol family 24
4 }1 `+ Y! s. e$ {1 C2 m! `! N, D$ @ - p p t p driver version 0.8.5
: b s* b) ~. [ R+ N; ?3 A - 127s doesn't have USB3.0,just return -ENODEV
) v/ n" X/ d4 z$ I7 } - **********TOP_CRM_BASE+0x2c=0x11393ff3******* e) t! m- c4 l& I2 k8 X: g: v
- **********TOP_CRM_BASE+0x2c=0x113f3ff3******
6 U7 M# y* U& r/ k. y0 N% x, k$ S - dwc2 9000000.usb: 1792 invalid for host_rx_fifo_size. Check HW configuration.
0 J( j- f/ m+ e9 o f - dwc2 9000000.usb: 1024 invalid for host_nperio_tx_fifo_size. Check HW configuration.
0 ~7 g7 r" q5 p G% ^ - dwc2 9000000.usb: 1024 invalid for max_packet_count. Check HW configuration.+ S, O- E t! E( s; x
- dwc2 9000000.usb: DWC OTG Controller
0 l$ y0 z% H% d8 S4 w - dwc2 9000000.usb: new USB bus registered, assigned bus number 1
7 b \+ w( L5 }7 @% ]* P - dwc2 9000000.usb: irq 60, io mem 0x00000000& b' X) m, d' {0 C
- usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
- k4 Y7 a( M# w% h - usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
$ @$ _7 }: F- c# m - usb usb1: Product: DWC OTG Controller
! [' l) I8 R6 m- t& [7 z - usb usb1: Manufacturer: Linux 4.1.25 dwc2_hsotg
& t+ e, G& F* P+ X6 h - usb usb1: SerialNumber: 9000000.usb& ]3 s V* p( L; z" _0 p# v. A
- hub 1-0:1.0: USB hub found- D; _$ n, [" \- {1 B
- hub 1-0:1.0: 1 port detected; e h: V% U9 P7 B' A0 y4 S4 \
- usbcore: registered new interface driver cdc_acm d7 q2 g" C! \. I. l4 H( R, {6 [" r
- cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
4 ?$ ~8 \0 @, |" [% \' E - usbcore: registered new interface driver usbserial
: W4 C, l% Q; {. A2 R$ v, k* [ - usbcore: registered new interface driver usbserial_generic% K( Q1 \9 R; k9 {9 y: H
- usbserial: USB Serial support registered for generic' p% K: ^3 b8 @3 A/ S
- usbcore: registered new interface driver ch341
7 F* S* A, t0 { - usbserial: USB Serial support registered for ch341-uart( C5 { |' ]: Z
- usbcore: registered new interface driver cp210x$ o$ C; V3 I( }6 l- x' q: W
- usbserial: USB Serial support registered for cp210x
, ], W( \; Q. M7 t, s# i - usbcore: registered new interface driver pl2303
, q+ c# c# ]( w$ G3 l- N3 I5 g - usbserial: USB Serial support registered for pl2303$ a% @+ I/ \9 A
- mousedev: PS/2 mouse device common for all mice5 t8 e. r" `/ C: Z3 v/ Z
- I2C probe start!
. d. [* y) c' h - zx_i2c_probe i2c-1 i2c-1->clk is ccdce7c0 ,clk rate is 1000000003 J3 Q) `7 C- C& X9 y$ G
- I2C probe successed!& B. _0 l5 s# v3 N
- usbcore: registered new interface driver usbhid6 P8 H+ {* k7 d* N. w
- usbhid: USB HID core driver
7 d. t2 w; {' Y( }+ [& ]$ k - zx tempsensor: zx_bsp_tempsensor.regs = 0xf0500034,&(zx_bsp_tempsensor.regs->cfg)= 0xf0500034
& ^+ r7 O! Q4 y( [! @ - bsp_temp_start,val = 0x2ef
2 ~/ m* E, x+ u. U+ c. U: E6 o - (458):creat proc files for temper sensor!!!
$ a2 J: S) X6 |0 J* M# { - (463):temper sensor is running...9 b2 ^/ w+ ^( s+ m0 \- ]
- zx tempsensor: work clock 0
) V0 }" w8 i8 K9 }7 f/ n. V& D - zx tempsensor: selector0's int num 27 allocated.
7 j% B S5 F6 \# b" E n: A+ T - zx tempsensor: selector1's int num 28 allocated. t# P. M1 }/ Z5 T8 [- j. F
- zx tempsensor: selector2's int num 29 allocated.: A: x- P0 s7 l! k
- Netfilter messages via NETLINK v0.30.
% l( V; f% Y$ _# U- h - nf_conntrack version 0.5.0 (3372 buckets, 60000 max)
4 r# N" V, m( I# @6 v - ip_set: protocol 6
. f0 Q& t+ z& j1 S- h - gre: GRE over IPv4 demultiplexor driver( D! Q; x9 ^+ H
- ip_tables: (C) 2000-2006 Netfilter Core Team* @0 S+ F6 l$ s- ?
- NET: Registered protocol family 10, n8 G7 p- o7 @! V
- ip6_tables: (C) 2000-2006 Netfilter Core Team
4 T0 ~1 k$ S2 w) S2 @! k - sit: IPv6 over IPv4 tunneling driver
6 t, @$ o- o3 i4 w" C - NET: Registered protocol family 17
3 c. u" b2 K. G- a; w) \ J" ^ - bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.2 Y% I) u, s. J1 l' k+ @# r
- Bridge firewalling registered
" G* N4 s" V- K6 F i5 v - Ebtables v2.0 registered2 Y2 u3 a) r) n) F) ]' w
- l2tp_core: L2TP core driver, V2.0
7 l8 A/ l; w& F+ g - l2tp_ppp: PPPoL2TP kernel driver, V2.0
6 w# N, n+ F5 T" k9 Y - 8021q: 802.1Q VLAN Support v1.8
2 |6 b. m l, l - systools version:v0.7.5
5 J" J. Y' \7 P) N - zte--oss cpu usage module init4 r7 Z f. @# g8 @, m7 [8 F$ _
- DPI interface Loaded
$ j' }- d- \9 i3 C# C - e8_init OK!
2 o' j( K! Z( h - Registering SWP/SWPB emulation handler1 p: x* _- I3 X7 H H/ o1 V
- FLowRL module init* F5 s0 f2 [+ Z6 e* U
- DevBw module init
/ J9 I0 ?6 V1 p- m) |$ {% B - jffs2: notice: (1) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.9 I J% H* B# v4 j8 \' L
- VFS: Mounted root (jffs2 filesystem) readonly on device 31:13.
0 S4 N( A3 w; w/ [# H - Freeing unused kernel memory: 212K (c07d3000 - c0808000)
: o- h( C5 r: m4 w: u Z6 I - This architecture does not have kernel memory protection. I J) k& D! a O* L5 b
- jffs2: notice: (532) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
% x' t( s N( G |9 O% ]# w9 T - jffs2: notice: (577) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.+ I2 R2 r6 z3 @5 }. o
- jffs2: notice: (585) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.0 B* f# ^& Z. @1 t1 R# a: D; l+ {) I/ r
- jffs2: notice: (587) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.6 {3 S/ a; k/ L% b6 @
- 11930:23:02 [Klogfile][Error] [(1348)CheckLogConfFile] CheckLogConfFile%CheckRestartCntConfFile
3 N( _( K% b# ]) t2 h) X8 ?6 Q. [
% d) e' q# y; ]+ r R- jffs2: notice: (578) check_node_data: wrong data CRC in data node at 0x006d5d7c: read 0x19d3a03, calculated 0x1e78a0ef.
, H; p8 C8 P& ^& O$ e6 t - ubi0: attaching mtd12
2 H- Q% a9 z7 b( X - ubi0: scanning is finished$ y" |" P z5 @3 T; G
- ubi0: attached mtd12 (name "plugin_data", size 86 MiB)
. c2 p& ^" k1 q( @ J4 N - ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes# {9 {0 m4 N! `
- ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
* `% l* ]8 M8 a6 I9 N% k - ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
4 \' I& P" ]1 g! G6 w - ubi0: good PEBs: 688, bad PEBs: 0, corrupted PEBs: 0* T" i" r) H; o2 ]8 W, t0 X' y8 t! H
- ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
8 D0 M, q" s8 J - ubi0: max/mean erase counter: 14/9, WL threshold: 4096, image sequence number: 2012089330; L- u& s! l+ n$ I4 H( X3 a0 m( |
- ubi0: available PEBs: 0, total reserved PEBs: 688, PEBs reserved for bad PEB handling: 16
7 _! M! O5 P, U8 Z( m) [ - ubi0: background thread "ubi_bgt0d" started, PID 601! w6 \* g2 a1 L, z+ c% Q
- UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 607- f8 R) Z I8 |. R, w* x7 w X$ Z
- UBIFS (ubi0:0): recovery needed
+ S6 C# X( s6 U, k8 o8 X' A - UBIFS (ubi0:0): recovery completed! d% N7 \4 ~5 e, C% [8 X
- UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "plugin_ubifs"8 ]# O2 Q; Z' `7 z& C5 x
- UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes/ k s# H& E1 D4 v
- UBIFS (ubi0:0): FS size: 83423232 bytes (79 MiB, 657 LEBs), journal size 4190208 bytes (3 MiB, 33 LEBs)
$ A, f7 k: X# }/ [: {( U - UBIFS (ubi0:0): reserved for root: 3940284 bytes (3847 KiB)/ M1 ~/ J; L: J# X( N: y* R0 S. u7 X
- UBIFS (ubi0:0): media format: w4/r0 (latest is w4/r0), UUID 156BD46D-0725-43B0-AA2C-8A8DCD1D83F4, small LPT model5 V7 ^1 R+ q* K# s
- jffs2: notice: (618) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
1 O$ v8 l' q5 C u" |* q - lo up% L0 V* b3 D& q. V) G% t; k7 ^, e
- mux[0]=3f7ffffa6 o6 j9 n5 y! e! r5 B# P$ o7 A
- mux[1]=3ffffeff8 k6 t) ?0 C$ T! S* I2 [
- mux[2]=19ff0555
0 k+ J2 E" s8 P9 P, q" w - mux[3]=6be1b
7 i" h* `8 S; N2 k - storage_wakeup_proc_create success!( K; d4 P5 E4 O+ i& P1 N
- verinfo=U-Boot V1.0.0P1N1 20210911001937 0x1200000 0x0 0x8f 0x83
0 P- E2 V; T/ E& D4 h0 ~8 G - can find /usr/java/osgi_verosgi_version_info_get error!$ r) y, C v+ E, k# P# {
- data_in=0x06 X0 l1 W: E* n
- data_in=0x0: E7 f* g- g" D1 N
- >>TagaramodInit the typeindex: 5 1 c* |( ?+ Z2 H' M$ v3 B2 v! T# ^
- >>TagaramodInit the board_name: F657GV9 ,wan=0x40
% n$ \! B4 U' s - pon init* w: ^) |+ b7 V
- ZX_PA_BUF_BASE0=4dea0000
# K" g5 U$ F" `1 A - ZX_VA_BUF_BASE0=cdea0000
* x: j$ a/ \! g) u. f9 e1 g. b( ` - ZX_BP_BUFFER_BASE=4dec0000
9 Q9 u* v+ E, M/ r# V - ZX_DESC_BASE=4ee80000: N) W$ j: I4 [$ [
- ZX_TX_UP_DESC_BASE=4ef40000
$ S8 N8 y" N+ n% | - ZX_TX_DN_DESC_BASE=4ef50000. B' z1 D5 C6 e! d: a6 b6 n/ i
- ZX_BPPE_SW_BASE=4dea0000 Z O" A4 s% k% J0 y6 k
- ZX_BP_BUFFER_SW_BASE=4dec00000 P E8 \) l0 L, a; n: z- E2 m5 G
- ZX_DESC_SW_BASE=4ea00000$ a6 H8 ~0 `# i# } }* H' x
- ZX_TX_UP_DESC_SW_BASE=4eac0000, b: G* v- a- [; B: C
- ZX_BPPE_BASE_127S=4eae0000+ P+ Y, P, N/ L: V* f. D
- ZX_BP_BUFFER_BASE_127S=4eb02000
X" _1 K) b9 j2 N4 r; M - BP_BUFFER_SIZE_127S=b40000
; C1 R: B4 W7 u: O' D1 k% @7 t - ZX_VA_TX_DN_DESC_BASE=cef50000& h3 n$ X! t' f( H Y) M5 c p
- BPPE_POOL_SIZE=1c00
; K% |- O+ W( P- E6 m - NORMAL_BP_BUFFER_SIZE=fc00001 I; G2 Z5 ^% m$ D6 n5 G( W- T
- JUMBO_BP_SIZE=2800& A$ N" w( e7 V3 W
- JUMBO_BPPE_POOL_SIZE=0: ~* G9 ?* c) r. k
- BP_BUFFER_SIZE=fc0000
6 ]0 X, \' o# k- d5 y' f2 u - lan_up=0, lan_up_port=00 H4 n H5 n' r* ~
- the pon mode is 40& N n% a7 ]$ U3 C: k' o' Y3 c6 b _
- lan_up=0, lan_up_port=04 h4 M; [9 U0 B
- g_pon_irq=36,d1000000,f0400000,f0500000,f0600000,d0e00000
, u( V3 a$ o, E, A - get npp irq succeed,g_npp_irq:38
0 k& E; T0 j+ G. q# D% x- p - get tm irq succeed,g_tm_irq:41 tm_base:0xf4340000
1 U2 V8 U$ a! f' E - get pp irq succeed,g_pp_irq:376 _, N- W' ?7 p7 Z
- get idm irq succeed,g_idm_irq:39
1 y. E" Q% l* Y' a3 O% M% K - enter ref_clk_set.. mode = 0 .
+ X0 a' ?' Q! U! d1 ]. L, _ - enter pll_cfg_fractional0 ~' N2 d P5 O1 h
- ref_clk_set success!3 l5 `8 H$ ?/ ?* E
- serdes band cpu_temper:32 coarse:0x29
% `8 U/ K+ O/ }/ Y) f# `5 v - band calc fin
$ i4 E$ i0 P& N1 n2 h, B" O - pon tm init5 y q# W) y# S1 s) A7 ]
- enter pon_tm_bppe_pool_init
( C4 z* D9 N. @ - bppe_va_addr = 0xceae0000
. ]9 S: ^& B9 b8 K: T - jumbo_bppe_va_addr = 0xceaf0000
6 _. s( i6 O7 m- I - BMU_JUMBO_BPPE_SW_PTR =0x0 (JUMBO_BPPE_SW_POOL_SIZE)<<16=0x0 % w+ V7 G7 E+ \9 q* c" N- j
- netif_napi_add() called with weight 512 on device pon4 U* }! H J8 k" I
- DMA_UP_DESC_CNT = 0x0
- P3 \ T% Z8 K2 k - pon_tm net init ok,272/176, ~; R) x3 q$ E
- pon_pp init; y' G2 Q2 Z: j* ?. v3 Z) c* R
- pon_npp init
2 X# Y- e. |9 U" \ - idm_status_proc success!
* o) y5 _: [, R# {' B8 {6 \0 `+ G" Q - idm_desc_init d0c35000/4c9800002 D: x0 b t; E/ O
- request idm irq succeed - S' f' @) I0 [3 d5 h: j4 Y
- idm net init ok
7 L3 ^3 ?7 a. Q# B" n- ~ - switch_phy_int_check 0 7 I& u1 y% u. ?( [
- mac 0 link down# j' l i* V( s/ U
- switch_phy_int_check 1
) Q8 e9 U' I8 U - mac 1 link down% |! ^( [+ ~- y H& f
- switch_phy_int_check 2 8 o1 I1 r7 o- s d3 l% s; [0 E
- mac 2 link down
2 Y, C0 |% `; h* O - switch_phy_int_check 3 ' A0 Q$ n2 _) l& p L; D ~2 b
- mac 3 link down8 U4 {5 F2 k5 E- Y1 r
- register fpga driver success, major=2223 A: N, Y, L, A! s5 n
- register peripheral success, major = 106" E! i4 G1 {2 v P9 v
- = TM Module SYS FS Init ended successfully =
) L5 Q/ L3 u4 k& t8 S2 h - tm_initModule begin...
; |6 {7 x" b$ k/ q! k' i: D - enter tm_sdk_init
! X8 z# ?, U/ g6 T4 |2 a - api lock init!!$ ?7 b2 s" u# y# e$ ~% P
- tm_initModule end...
" x+ M. |' U( x7 t9 e - hw_power_optx_get_fordg:txdisable=0
! T$ Z, Z1 P% ^( d - Kmodule ZX279511.ko insmod successfully !6 y& E; \' l9 E9 M8 [/ V1 S
- bob is not GN25L95: 40
) K( I j, V7 {% t8 @, s! N& i" j - pon up
. s& z9 |. ^2 M$ m0 t - ethdriver_init....3 l* W( L% r+ a( d. B3 b
- g_mii_dev_name[0] sw
/ K2 k$ Z6 S# t0 f2 c. U9 U - g_mii_dev_name[1] pon 0 O4 d: I. v" {3 v. W$ Z
- sw up
6 n" M" Z: I- n5 s/ V. G - zteGpmac_devReg begin...
5 {0 [. J' ~# O( j0 [$ h( |, h1 p - zteGpmac_devReg end...3 f0 L) d3 ^- ~/ c4 t
- enter zteGponCpuTypeAddrSet : K$ G3 L) p4 F9 q8 ~
- *
% Z+ x+ z; _7 B9 t* i- u - asicGlbDb[97], 0x46,0x31007,0x0
) ~, p' [- V6 {' X, ] - zteGpmac_initModule begin...9 N! [8 X5 w. R4 f
- === GponMac Supported MaxTcont: 16 MaxPLI: 800B ===
! L" K) G1 F7 ]2 F8 f, P" g) y5 S - htb debug 1 =====> inCnt =0,outCnt=07 A; U! ~/ t4 F; ~% s
- ##huoqf zteGponAsicStarttimeChkResultInit write cfg=10 ! q* i9 b2 z) S6 r, e, @
- ##huoqf zteGponAsicStarttimeChkResultInit read cfg=10
9 @5 _6 w# h0 m/ X1 M - = PON Module Operate ended successfully =
3 r1 E0 `1 X0 M* e - DEbug: GPON PIN_MUX_REG2:(0x19ff0555)
; {7 T% L9 q; {7 x - DEbug: GPON GPIO_PDD_REG:(0xfac)
9 l9 l$ {; ]4 S _9 q- G/ {$ D3 x - DEbug: GPON GPIO_POSEDGE_REG:(0x4)" e" M: H2 X4 s4 B; i
- DEbug: GPON PIN_MUX_REG3:(0x2be1b)- G0 V) z5 x% Q. k9 P+ S% R! w% f
- create zteGpon_rei_task ok!
3 a1 o L& C+ U& M' K, N: w) N - = GMAC Module SYS FS Init ended successfully =
; Z* e* J# b3 M) P( |- |- C - zteGpmac_initModule end...7 _" |" S, z! B% p+ @0 @
- gpon_Init ok
! \7 h% @ i8 q6 d# P$ Q; K - gpondrv g_OnuType is 2
! v( P" C9 `! j1 } - 11930:23:06 [KMONITOR][Warn] [monitor.c(607)MontorSendMsg] netlink_unicast failedmsgid = 0xa5c2, ptr = bf26dd20, len = 4
( m% X" d) x# r ~; M+ C/ q - omci up6 {4 R; |2 ~ A/ V) i6 V
- Init switch module; ?6 U7 n+ N, ]* q) F
- unicnt 4, wancnt 1, wifi cnt 0, all ports 5, portmask 0x0000002f& `2 h+ m4 d( P* r# s& s% ^
- Onu type is 1,Wan type is 4: T( e3 p' U* h: g O
- switch config GPON HGU mode!
; h' c9 F, c! q* S z G - protocol fail, error deal 66, `, z- M/ k4 ^ y) H" x9 U
- [TM][dpa_set_protocol_type_i_act] failed, x6 K1 U# U: S! p* v: }
- protocol fail, error deal 65
5 A5 e( s* {0 }# x$ R4 I: X0 N - [TM][dpa_set_protocol_type_i_act] failed
* P% x3 n: n- r3 `& O - -------chip_tm_init end-----
2 ^' [- P" a* h4 W; c4 l - [SW][sw_init_switch] l2_fast init
2 x1 X8 j2 ^: W) R$ X! {( ^6 U: W# i. w - [SW]set cpu queue rate limit to 8000pps( V# k! l; n) `: f' ^8 R
- tm_port_egress_traffic_sharp_set p_port:5 p_ena:1 p_band_width:2048
- G' j& [0 t' B) a9 J3 o) D
0 G% K+ P& H$ ~) E; @- W9 I- Capacity=256000tm_port_egress_traffic_sharp_set p_port:6 p_ena:1 p_band_width:2048
! @0 h. ~: {/ l4 G( x8 P& X7 Q
1 q6 C6 ]5 o# z3 R8 G) |" E0 K9 w/ U- Capacity=256000[SW][sw_init_switch] reg hff
& C9 l5 x9 h4 i9 h- U# J - [SW][sw_init_switch] reg get statistics 3 q: I) Z/ z% j8 s7 v
- Init switch module Success
1 B4 G+ w: y) q6 E2 x; h - bsp_i2c_probe 0x50 success!: Y" Z* b2 Q- @; R6 B# Y
- vendor name = ZTE_PX20+_G 1 v) M) _" w8 d
- optical PN(0x60) = d2 Q. \ O- a" M3 \9 ^
- optical PN(0x28) = ZX2795119 o* j) T/ j) P1 y
- tdm: exports duplicate symbol tdm_ch_close (owned by kernel)& W2 L8 l+ |" q% D, E$ {! f
- udpwatchd inited!
1 c* Y+ ?. B& x% H - kudp inited!
6 C0 r0 U1 N o! B - Init codec v2.3(2019-05-17)!! v" n! S7 q# C" [" e( R6 r3 q
- idm0 up7 X4 |7 w8 W9 S4 i2 t* v3 Q4 k
- idm1 up9 F/ k( N/ U1 G3 z& w% S
- redirusb_init,no usb dev!
% w* e' }# E* F& J" S0 K3 |' c - random: dbus-uuidgen urandom read with 47 bits of entropy available
# H) ?; J: ^" T/ G L) n- \7 Y2 N - gpondrvCfgXGRegInfoAdapter not support now!( G* A) e3 Z b" s* R9 c5 \9 z
- === GponMac Supported MaxTcont: 8 MaxPLI: 1536B ===
0 b* n1 g, p2 ^' P% o0 |" l7 B& p - htb debug 1 =====> inCnt =0,outCnt=09 c9 D2 b2 s; q: t
- IPv6: ADDRCONF(NETDEV_UP): br0: link is not ready) S0 m7 d$ v: L3 N$ n/ o; [
- br0 up
]9 ]. u3 W/ }: \ Z - ethdrv_dev_ioctl ,brdev_set.port_id 0 ,brdev_set.name eth0 ,brdev_set.flag 0 - u4 ?' Z" h K; o5 i2 R u# N& J
- eth0 up
8 }$ ^2 p: e5 m8 k3 r - ethdrv_dev_ioctl ,brdev_set.port_id 1 ,brdev_set.name eth1 ,brdev_set.flag 0
+ E: e) c# g8 F8 } - eth1 up
' Z9 a) f; N3 w# l- W2 L+ D; r4 m& t - ethdrv_dev_ioctl ,brdev_set.port_id 2 ,brdev_set.name eth2 ,brdev_set.flag 0 0 K! }7 b3 h% U4 r4 z( s7 b
- eth2 up, p, ^ v( Q' C6 \5 Q$ H; l& ]
- ethdrv_dev_ioctl ,brdev_set.port_id 3 ,brdev_set.name eth3 ,brdev_set.flag 0
, V2 D, i" p8 b) f - eth3 up
* Y1 G* x: v9 N. L0 }5 t- C - tm_port_egress_traffic_sharp_set p_port:3 p_ena:0 p_band_width:0# _ e( W6 B( J5 T/ f1 V8 M
- * ~- Z$ v, t0 e3 ]/ a7 y
- Capacity=200000tm_port_egress_traffic_sharp_set p_port:2 p_ena:0 p_band_width:0) Y' |* W z+ z* j0 V$ U9 A; z
- " q3 M3 V! v: d* `$ N& a) N( `) [; p
- Capacity=200000tm_port_egress_traffic_sharp_set p_port:1 p_ena:0 p_band_width:0
1 G# s9 t/ E3 E2 S+ ^ - & V* U0 E# T( K: {. {4 s
- Capacity=200000tm_port_egress_traffic_sharp_set p_port:0 p_ena:0 p_band_width:0
6 S% g# ^& Y3 J: P" E; e2 R. o. l - # {# d4 x7 C! L5 s/ a; [8 p
- Capacity=200000) z* x% m: O9 C; v; b& V, l
- switch_phy_int_check 1
6 w' J: j/ p1 A1 ]# ? - pon0 up
- [& Q" `, I/ N$ _ - set_netdev_type dev (pon0) type (300) vendor name = ZTE_PX20+_G + Z: d$ l+ x) ^# `' ^
- optical PN(0x60) = $ u6 e, \/ F! ^* } {2 d
- optical PN(0x28) = ZX279511
0 l$ C3 {* w$ q" |1 C3 Q - device eth0 entered promiscuous mode! C; t& Y4 K5 Z
- set_netdev_type dev (eth0) type (800)
+ V6 C5 }8 O) r+ H - device eth1 entered promiscuous mode
- H, w X( \9 _3 i' t( R; y - set_netdev_type dev (eth1) type (800)
; v& j- j/ r% R% X; b8 t+ t - device eth2 entered promiscuous mode. }4 J1 m) r9 A! s4 c
- br0: port 3(eth2) entered forwarding state
0 ?. |- D+ j) [5 T0 a( q3 C - br0: port 3(eth2) entered forwarding state" R5 H6 ^ {- \; [ _
- IPv6: ADDRCONF(NETDEV_CHANGE): br0: link becomes ready
$ }/ m3 m3 ?; Y% w" s) m% Y9 V - set_netdev_type dev (eth2) type (800)
7 o# r2 m* h3 t) J' b6 n - device eth3 entered promiscuous mode
3 O0 e5 q- @5 F& c0 ? - set_netdev_type dev (eth3) type (800) set_netdev_type dev (pon0) type (300) set_netdev_type dev (pon0) type (300) set_netdev_type dev (pon0) type (300)
9 u9 y7 l! d \: c# M - ch:0 pcm mode:G711A_U & C/ P1 b) M1 e
- Siliconlab chip id error! 0x0 & ]5 D5 {9 O, Y8 ?3 j* `0 \8 t" p
- cmd [ck 1389 1] not found
) F0 c& k, S8 p1 D7 v" y7 D# F - ====EVENT_O7_STATE_SAVE OFF====
8 v( O/ |5 F# `. t& J$ q# j - cmd [ck 1392 1] not found
+ y+ V1 d) B' d) K - cmd [ck 1387 1] not found
2 S: G9 o1 P5 X, x - random: nonblocking pool is initialized
5 A. V/ U9 g2 O: N( N - device br0 entered promiscuous mode
& u7 ~, f w) B% |6 g - tm_port_egress_traffic_sharp_set p_port:5 p_ena:0 p_band_width:01 \1 v b* V5 V
' h+ b5 U! ^* \0 Y# G- q- Capacity=200000tm_port_egress_traffic_sharp_set p_port:6 p_ena:0 p_band_width:0
5 } O" ^0 f" Y, i
0 q& O" a6 @2 x# q( A' B- Capacity=200000
- c% |" v/ b( C8 I- w* [; J - overlayfs: missing 'workdir'
复制代码 0 `6 ^, D8 l% H8 |5 f! [
但是将这个mtd0自接考出来是不容易的,因为它的内存也就256MB,临时分区也容不下这个falsh影像/ Q5 |0 r3 i. l6 p
- /opt/cu/apps # df
Z6 K% t( [0 s. V - Filesystem 1024-blocks Used Available Use% Mounted on
4 m$ m/ f5 Y6 _# k. A - /dev/root 49024 37824 11200 77% /
7 L. N- z) h. P: ` - /dev/mtdblock3 2048 404 1644 20% /tagparam
3 _; [$ q. J3 F - cgroup_root 108016 0 108016 0% /sys/fs/cgroup
6 }6 S1 _0 W) W - none 21604 0 21604 0% /run! ~. y7 Q- F; @: `6 l" ? q. H' T
- none 5120 0 5120 0% /run/lock+ k9 D# a, P' v ]( ?( |
- none 108016 0 108016 0% /run/shm7 H5 P! s3 f& {3 y( b M6 b
- tmpfs 20480 448 20032 2% /var" l# {" z) o3 J: A, T# x
- tmpfs 81920 2800 79120 3% /upgtempfile' U. B; @. f2 V# z% m
- tmpfs 2048 0 2048 0% /mnt. R* L, C) y+ b# W, A
- tmpfs 15360 4 15356 0% /tmp# e1 k4 F' ^8 ?( G" y8 r
- /dev/mtdblock5 8192 640 7552 8% /userconfig0 I* M( b9 J2 o; @
- /dev/mtdblock6 2048 384 1664 19% /usr/local/ct5 q H8 Q& [4 ^- A C9 q6 R
- /dev/mtdblock11 24576 6232 18344 25% /usr/tmp
3 K8 B( L8 E4 b! _( | - /dev/loop0 5376 5376 0 100% /usr/pre_plugin
m- \+ Y! p/ X0 V - ubi0_0 74660 2864 67948 4% /opt/cu/apps2 u Y' K; X4 R- Z; h7 k7 z a
- /dev/mtdblock4 2048 436 1612 21% /wlan7 G% }. H1 j' K4 g. [
- overlay 74660 2864 67948 4% /CuInform) h$ e/ r: k1 E9 ^8 S/ }: }
- tmpfs 5240 24 5216 0% /CuInform/tmp
8 ~3 ?* W& H# T, P* L- m" s$ L& F( I - overlay 74660 2864 67948 4% /usr/sbin
" \1 e3 [# U1 X$ F: Y - /dev/mtdblock9 4352 4352 0 100% /opt/cu/framework
复制代码 可以看见也就/upgtempfile 文件夹可用,大小为80MB,远远不能满足需求。
2 r8 f" l2 }9 O p7 X7 j: ?% T! y: A3 ] K' Y
以上都是分析,下面是操作步骤:( _4 ^; {( b& p$ q! e
方法一:采用压缩方法在拷贝flash的时候边拷贝边压缩,然后将压缩后的文件传给电脑:- k6 p5 p( t# S- _; B
- dd if=/dev/mtd0 | gzip > /upgtempfile/mtd0.gz
复制代码 我使用上述方法临时目录还是无法容纳,只有用更强的压缩方式,linux中有一个.xz文件它使用LZMA的压缩方式,LZMA压缩比相比较zip高不少,但在busybox中的命令xz只能解压这种文件,无法压缩。只能从网上下载完整代码自己编译一个。" o* X# ~7 w) n0 q% N
- /opt/cu/apps # ./xz-v5 -H2 t; z7 M, l0 ?0 U, G# u
- Usage: ./xz-v5 [OPTION]... [FILE]...* Y% }2 S' S Y" G
- Compress or decompress FILEs in the .xz format.! c" f$ ~3 V# l
6 Z+ U" _: O) R- Mandatory arguments to long options are mandatory for short options too.
3 r0 y \+ h9 Z; ~ - 6 z. R9 ?, X- Y, G
- Operation mode:
' }3 ?$ C* L5 w - -z, --compress force compression5 i: d' }# H; a+ s' V- C& A2 | c
- -d, --decompress force decompression
3 N G3 Y- i6 e9 Y - -t, --test test compressed file integrity) `) I& {- v! M
- -l, --list list information about .xz files4 }7 {3 \9 L" A$ E! I0 J* L
- ! s/ }3 I3 w6 ]; Y ^, F" F
- Operation modifiers:- s5 h+ a% T J, q
- -k, --keep keep (don't delete) input files H2 v$ B6 l! a, X! E$ A, {
- -f, --force force overwrite of output file and (de)compress links
5 D4 b/ L, H: b - -c, --stdout write to standard output and don't delete input files
! Y9 E& p& ~7 U - --single-stream decompress only the first stream, and silently
1 {9 t! c% b4 \$ d7 b5 [4 U - ignore possible remaining input data
g& s; C3 h1 V5 a - --no-sparse do not create sparse files when decompressing
* x% N2 \! f2 r1 O& j - -S, --suffix=.SUF use the suffix `.SUF' on compressed files
) r+ [6 D _1 h' @ - --files[=FILE] read filenames to process from FILE; if FILE is. q' V3 N7 [7 P$ z
- omitted, filenames are read from the standard input;' K' X) {* z( s6 B0 l% l5 V
- filenames must be terminated with the newline character4 {3 b0 x7 N& S O1 D/ W
- --files0[=FILE] like --files but use the null character as terminator- q+ p* N$ j& J/ r* h/ i8 }; W
- . K9 B4 p6 C* r
- Basic file format and compression options:9 U! ], z$ I$ m# q X2 z1 x! S5 C
- -F, --format=FMT file format to encode or decode; possible values are
9 ?- {9 a9 T6 P1 j) b4 ]; _- c) f - `auto' (default), `xz', `lzma', and `raw'
# g& c4 D" n# z/ E% }6 }+ O - -C, --check=CHECK integrity check type: `none' (use with caution),
# K! b p: d9 q. X7 c/ h - `crc32', `crc64' (default), or `sha256', _' ?0 L$ n9 ~, s: v8 d
- --ignore-check don't verify the integrity check when decompressing* _! S/ l' {$ ], i- v, J' j9 c# O
- -0 ... -9 compression preset; default is 6; take compressor *and*! I$ L6 d2 l6 ?7 Y/ k% `
- decompressor memory usage into account before using 7-9!
. E3 D/ `. x3 n; B6 i3 @, p - -e, --extreme try to improve compression ratio by using more CPU time;
1 a( l1 O! j, |; I" z5 z - does not affect decompressor memory requirements
3 ^6 V& B! c: [' O! Y - -T, --threads=NUM use at most NUM threads; the default is 1; set to 0
5 C- d+ L3 J# x" `( F - to use as many threads as there are processor cores
8 c, T) K+ a- x$ x - --block-size=SIZE
+ k' s: U2 r# M7 p' j! U) Z - start a new .xz block after every SIZE bytes of input;2 H! f( @: l; Q, M( [# \" D
- use this to set the block size for threaded compression# K; i; I# g3 @4 F3 |$ b
- --block-list=SIZES, ]/ e! m' [# g' |% }$ \
- start a new .xz block after the given comma-separated* H5 ^0 p: `& y& A5 J9 c
- intervals of uncompressed data: u# N- k+ E; B* p1 M
- --flush-timeout=TIMEOUT1 j! i( { w' `
- when compressing, if more than TIMEOUT milliseconds has5 u2 v0 q" }: h; t& f% S( F
- passed since the previous flush and reading more input+ W# m3 m! f# x1 A# y" l
- would block, all pending data is flushed out
+ y0 A" S% K% B; n2 N6 O - --memlimit-compress=LIMIT. y- H! n4 s. t* L
- --memlimit-decompress=LIMIT
7 E, P6 N* J: T& l* ] - -M, --memlimit=LIMIT
6 t0 `2 g k& |9 J - set memory usage limit for compression, decompression,. `' b6 d8 x( h
- or both; LIMIT is in bytes, % of RAM, or 0 for defaults
; X. S' |; ~( a: {' U/ N3 p, n - --no-adjust if compression settings exceed the memory usage limit,9 J) Q2 J1 q" B
- give an error instead of adjusting the settings downwards
+ f$ w; g1 P0 F# B L - ( Q. M$ D9 a1 A; ~
- Custom filter chain for compression (alternative for using presets):
9 a- ]! E$ G, I0 i- d. f4 c# q) @ - --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or
, X8 c3 ?* l4 c* o9 e! Q- n3 W - --lzma2[=OPTS] more of the following options (valid values; default):
1 ^6 o! o% s6 g3 k0 q. s" u - preset=PRE reset options to a preset (0-9[e])
- S2 O. k% B3 k3 u/ j - dict=NUM dictionary size (4KiB - 1536MiB; 8MiB). s+ j( F: T1 r0 N
- lc=NUM number of literal context bits (0-4; 3)/ S+ J2 Q$ W! N5 ?
- lp=NUM number of literal position bits (0-4; 0)
2 Q& j- Z, s' V - pb=NUM number of position bits (0-4; 2)8 W- `. C4 o3 g- d3 Z
- mode=MODE compression mode (fast, normal; normal)% b v3 ^8 ?% L0 I
- nice=NUM nice length of a match (2-273; 64): @* V9 b; t9 Z q* b' |0 O" q
- mf=NAME match finder (hc3, hc4, bt2, bt3, bt4; bt4)
* W3 o6 P* y3 p8 S - depth=NUM maximum search depth; 0=automatic (default), A; `$ W+ O# M) a7 l& y
- + }" [) D5 F) A& Z. b3 w
- --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit), f9 @5 v; F4 g u& o; l! S# A5 t
- --powerpc[=OPTS] PowerPC BCJ filter (big endian only) y1 z' @. K( S D$ y# ~0 `
- --ia64[=OPTS] IA-64 (Itanium) BCJ filter4 H; W2 w2 Y9 H; U+ |" T
- --arm[=OPTS] ARM BCJ filter (little endian only)
+ S$ F0 u, ?( h - --armthumb[=OPTS] ARM-Thumb BCJ filter (little endian only), y% D! }/ S# j4 z- B# A
- --sparc[=OPTS] SPARC BCJ filter; p) ^: b+ E8 y1 H; f ?
- Valid OPTS for all BCJ filters:" K6 a; j* B8 ?3 m
- start=NUM start offset for conversions (default=0); i9 O" `, ?: H0 h4 a$ D+ m6 l/ @
: Y, p9 J7 C( S! i9 w- --delta[=OPTS] Delta filter; valid OPTS (valid values; default):7 n1 _2 o3 P4 Q5 N7 C
- dist=NUM distance between bytes being subtracted
& I1 A5 S' A0 | l- v - from each other (1-256; 1)7 G* e. D; Y; D* ~7 l2 t: ^
- ( O, {% K7 ` m9 N e
- Other options:) n/ Q! u' `% z+ b3 ?/ f
# E$ }6 Y$ v) d$ w# D/ D- -q, --quiet suppress warnings; specify twice to suppress errors too
T* U. _- v0 n% J3 L/ V - -v, --verbose be verbose; specify twice for even more verbose" t' f* x& j6 C' u1 K2 c+ @
- -Q, --no-warn make warnings not affect the exit status
; f, X' ^# w1 q& ~# ? - --robot use machine-parsable messages (useful for scripts)+ |6 ?" y( D0 {$ t6 Q
0 W0 k& {% y4 W9 [7 x5 V- --info-memory display the total amount of RAM and the currently active
+ I: x+ V$ Y5 @1 F5 _0 u I$ r - memory usage limits, and exit3 K4 U/ F. P( k1 f! }
- -h, --help display the short help (lists only the basic options)
7 W- G8 w1 K+ B. X3 x - -H, --long-help display this long help and exit0 S+ z2 v/ m! ]4 R6 C
- -V, --version display the version number and exit
! S3 |% J/ ~5 L, ?8 W6 q0 P - & \3 D' d" C" S* g+ B
- With no FILE, or when FILE is -, read standard input.
1 R) ~; \: P* b( r8 j( a - 5 U U' Y8 v) W7 a3 h. V
- Report bugs to <lasse.collin@tukaani.org> (in English or Finnish).
* {3 K; t9 W; |) m8 u - XZ Utils home page: <https://tukaani.org/xz/>
复制代码 到这个地方我走了一段弯路,这里要吐槽这个中兴的这个 ARM cpu (ZX279127S@A9,1000MHZ)TNN的看名字用的是A9并且查看cpu信息用的是ARMv7 指令集,编译好的文件在板子上就是不能跑,查了不短的时间才发现这个cpu要用ARMv5 指令集方式编译才能跑起来,典型的挂羊头卖狗肉。
' Y: p) r P5 ^3 b1 [' K, m# a `- /opt/cu/apps # cat /proc/cpuinfo - [# F. N- q8 s2 ?
- processor : 09 ]" o& ~7 X5 Y: ]
- model name : ARMv7 Processor rev 1 (v7l)
6 k6 [+ Z1 B2 ]6 ^ - BogoMIPS : 1987.37' ^6 @. z1 o4 o7 D
- Features : half fastmult edsp tls ) [. A. q/ M0 B$ F
- CPU implementer : 0x41# g1 k3 L3 y7 A* J& U9 p6 A
- CPU architecture: 7
; a2 w9 i0 m- q/ Y8 p - CPU variant : 0x4
/ I/ R- o( |( g; n0 X' }8 N' A - CPU part : 0xc09' d. d3 f$ c+ J( \) d! }( A
- CPU revision : 19 B3 A# G W2 @; [& ~+ a
- 0 M4 a5 E4 @0 n5 D+ z
- Hardware : ZTE ZX27912X (Device Tree)
! _4 I: p3 n' S% z T1 x - Revision : 0000
( p8 x- u e g+ C - Serial : 0000000000000000
复制代码 $ }/ p ^, R+ \" b2 i$ f. H
后面就简单了, 压缩后的文件为76.1 MB (79,894,956 字节)
8 r9 ~7 a% w- Y1 _# I. k8 o- /opt/cu/apps/busybox1 dd if=/dev/mtd0 |/opt/cu/apps/xz-v5 -M32MB>/upgtempfile/mtd0.xz (边拷贝边压缩,用-M32MB参数是因为LZMA压缩特别占用内存,如果不限制使用内存,光猫在拷贝过程后期可能因为内存溢出而重启,我这款就重启了2次,后来加了参数就ok了)
复制代码 这个busybox1 文件也是我传到光猫的,光猫内置busybox文件很简化(有tftp及chmod ),但没有包含dd命令
( r1 C+ A9 O+ x) R! F3 e/ ?1 i f P: o: W! V& I. H0 P
方法二:( ~, m4 n$ t; h
在以上过程中我还参考网上信息Linux 下的dd命令使用详解以及dd if=/dev/zero of=的含义发现有另外一种方式使用netcat(简称nc)传数据,这是个非常有名的工具在busybox中集成了它的简化版,busybox windows版本也可以在 https://frippery.org/files/busybox/ 下载到
( Q2 x" u2 R3 w) m, k3 i4 T* X: u
: P) S/ k0 U# @- C# z3 E) S1、先在windows中执行命令:(接收数据端)$ ?9 Y$ f# O) p+ G$ A
- busybox nc -l -p 12345 >mtd0
复制代码 2、在光猫中执行命令:(传输数据端)- K: R2 D3 S# s# p
- /opt/cu/apps/busybox1 dd if=/dev/mtd0 | /opt/cu/apps/busybox1 nc 192.168.1.2 12345
复制代码 我这里每秒能传300-400KB的数据,整个传输过程大约需要13分钟。0 X4 r, Q8 x$ W9 @
: \8 Z* N9 N8 R
9 W: d, B" S; H) |最后留下文件:( L& L) h& l; x& l& ^
busybox for windows5 d0 F5 `! B o- G" }
6 @) k1 ]# s* `2 k: |* u4 c( G: x9 v) A% q* Z- [4 u5 {
/ \3 W- S$ ^, x$ i7 }, mbusybox for Arm 使用静态编译,文件较大,但无需另外的库支撑,直接使用8 ]' d8 T: B/ j& d/ z
/ f# k0 ~: f! ^& S
! C! \" J6 N! W5 p* [1 P
! }2 u( \$ P: f' _: }xz for Arm 使用静态编译,文件较大,但无需另外的库支撑,直接使用1 K( B1 C/ z1 _( |
p' ]) P* v0 g1 o
) Y; K; g) Z- c% g r5 X* n
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|