LINUX.ORG.RU

Как скопировать данные прошивки на флэшку

 ,


0

1

Добрый день! Мне надо скопировать /dev/root (получается что здесь хранится прошивка с которой поднимается система ?) на флэшку. Пробую так:

# fdisk -l

Disk /dev/sda: 3876 MB, 3876225024 bytes

255 heads, 63 sectors/track, 471 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 1 471 3783276 7 HPFS/NTFS

# df -h

Filesystem Size Used Available Use% Mounted on

/dev/root 90.0M 56.6M 33.4M 63% /

tmpfs 91.7M 4.0K 91.7M 0% /dev

tmpfs 91.7M 4.0K 91.7M 0% /tmp

# dd if=/dev/root of=/dev/sda

dd: can't open '/dev/root': No such file or directory

не работает....

Погуглил, вроде какое то отношение к этому делу имеет файл /ect/fstab

Вот его содержимое:

proc /proc proc defaults 0 0

sysfs /sys sysfs defaults 0 0

tmpfs /dev tmpfs defaults 0 0

tmpfs /tmp tmpfs defaults 0 0

приведи вывод ls -l /dev

только используй тег code из www.linux.org.ru/help/lorcode.md

и еще таким dd как ты используешь ты затрешь все содержимое флешки, если тебе надо в файлик на флешке то dd надо иначе вызывать

Deleted ()
Ответ на: комментарий от Deleted

Ага, уже затер флэшку. Подскажите как вызвать что бы в файл сохранить.

# ls -l /dev
crw-rw----    1 root     root      254,   0 Jan  1 00:00 3:0:0:0
crw-rw----    1 root     root       10,  42 Jan  1 00:00 acodec
crw-rw----    1 root     root       10,  38 Jan  1 00:00 adec
crw-rw----    1 root     root       10,  39 Jan  1 00:00 aenc
crw-rw----    1 root     root       10,  41 Jan  1 00:00 ai
crw-rw----    1 root     root       10,  40 Jan  1 00:00 ao
crw-rw----    1 root     root        5,   1 Jan  4 12:21 console
crw-rw----    1 root     root       10,  61 Jan  1 00:00 cpu_dma_latency
crw-rw----    1 root     root       10,  63 Jan  1 00:00 cuse
crw-rw----    1 root     root       29,   0 Jan  1 00:00 fb0
crw-rw----    1 root     root       29,   1 Jan  1 00:00 fb1
crw-rw----    1 root     root       29,   2 Jan  1 00:00 fb2
crw-rw----    1 root     root       29,   3 Jan  1 00:00 fb3
crw-rw----    1 root     root        1,   7 Jan  1 00:00 full
crw-rw-rw-    1 root     root       10, 229 Jan  1 00:00 fuse
crw-rw----    1 root     root       10,  45 Jan  1 00:00 hdmi
crw-rw----    1 root     root       10,  62 Jan  1 00:00 hi_encry_ex
crw-rw----    1 root     root       10,  43 Jan  1 00:00 hi_gpio
crw-rw----    1 root     root       10, 135 Jan  1 00:00 hi_rtc
crw-rw----    1 root     root       10,  54 Jan  1 00:00 hi_tde
crw-rw----    1 root     root       10,  49 Jan  1 00:00 ive
crw-rw----    1 root     root       10,  44 Jan  1 00:00 jpeg
crw-rw----    1 root     root        1,  11 Jan  1 00:00 kmsg
crw-rw----    1 root     root       10,  56 Jan  1 00:00 logmpp
crw-rw----    1 root     root       10, 237 Jan  1 00:00 loop-control
brw-rw----    1 root     root        7,   0 Jan  1 00:00 loop0
brw-rw----    1 root     root        7,   1 Jan  1 00:00 loop1
brw-rw----    1 root     root        7,   2 Jan  1 00:00 loop2

crw-rw----    1 root     root        1,   1 Jan  1 00:00 mem
crw-rw----    1 root     root       13,  63 Jan  1 00:00 mice
crw-rw----    1 root     root       10,  58 Jan  1 00:00 mmz_userdev
crw-rw----    1 root     root       90,   0 Jan  1 00:00 mtd0
crw-rw----    1 root     root       90,   1 Jan  1 00:00 mtd0ro
crw-rw----    1 root     root       90,   2 Jan  1 00:00 mtd1
crw-rw----    1 root     root       90,   3 Jan  1 00:00 mtd1ro
crw-rw----    1 root     root       90,   4 Jan  1 00:00 mtd2
crw-rw----    1 root     root       90,   5 Jan  1 00:00 mtd2ro
crw-rw----    1 root     root       90,   6 Jan  1 00:00 mtd3
crw-rw----    1 root     root       90,   7 Jan  1 00:00 mtd3ro
crw-rw----    1 root     root       90,   8 Jan  1 00:00 mtd4
crw-rw----    1 root     root       90,   9 Jan  1 00:00 mtd4ro
crw-rw----    1 root     root       90,  10 Jan  1 00:00 mtd5
crw-rw----    1 root     root       90,  11 Jan  1 00:00 mtd5ro
brw-rw----    1 root     root       31,   0 Jan  1 00:00 mtdblock0
brw-rw----    1 root     root       31,   1 Jan  1 00:00 mtdblock1
brw-rw----    1 root     root       31,   2 Jan  1 00:00 mtdblock2
brw-rw----    1 root     root       31,   3 Jan  1 00:00 mtdblock3
brw-rw----    1 root     root       31,   4 Jan  1 00:00 mtdblock4
brw-rw----    1 root     root       31,   5 Jan  1 00:00 mtdblock5
crw-rw----    1 root     root       10,  60 Jan  1 00:00 network_latency
crw-rw----    1 root     root       10,  59 Jan  1 00:00 network_throughput
crw-rw----    1 root     root        1,   3 Jan  1 00:00 null
crw-rw----    1 root     root      108,   0 Jan  1 00:00 ppp
crw-rw----    1 root     root       10,   1 Jan  1 00:00 psaux
crw-rw----    1 root     root        5,   2 Jan  1 00:00 ptmx
drwxr-xr-x    2 root     root             0 Jan  1 00:00 pts
brw-rw----    1 root     root        1,   0 Jan  1 00:00 ram0
brw-rw----    1 root     root        1,   1 Jan  1 00:00 ram1
brw-rw----    1 root     root        1,  10 Jan  1 00:00 ram10
brw-rw----    1 root     root        1,  11 Jan  1 00:00 ram11
brw-rw----    1 root     root        1,   8 Jan  1 00:00 ram8
brw-rw----    1 root     root        1,   9 Jan  1 00:00 ram9
crw-rw----    1 root     root        1,   8 Jan  1 00:00 random
crw-rw----    1 root     root       10,  47 Jan  1 00:00 rgn
brw-rw----    1 root     root      240,   0 Jan  1 00:00 romblock0
brw-rw----    1 root     root      240,   1 Jan  1 00:00 romblock1
brw-rw----    1 root     root      240,   2 Jan  1 00:00 romblock2
brw-rw----    1 root     root      240,   3 Jan  1 00:00 romblock3
brw-rw----    1 root     root      240,   4 Jan  1 00:00 romblock4
brw-rw----    1 root     root      240,   5 Jan  1 00:00 romblock5
brw-rw----    1 root     root        8,   0 Jan  1 00:00 sda
crw-rw----    1 root     root       21,   0 Jan  1 00:00 sg0
drwxr-xr-x    2 root     root            40 Jan  4 12:21 shm
crw-rw----    1 root     root       10,  55 Jan  1 00:00 sys
crw-rw----    1 root     root        5,   0 Jan  1 00:00 tty
crw-rw----    1 root     root        4,   0 Jan  4 12:21 tty0
crw-rw----    1 root     root        4,   1 Jan  1 00:00 tty1
crw-rw----    1 root     root        4,  10 Jan  1 00:00 tty10
crw-rw----    1 root     root        4,  11 Jan  1 00:00 tty11
crw-rw----    1 root     root      204,  64 Jan  1 00:00 ttyAMA0
crw-rw----    1 root     root      204,  65 Jan  1 00:00 ttyAMA1
crw-rw----    1 root     root      204,  66 Jan  1 00:00 ttyAMA2
crw-------    1 root     root      204,  64 Jan  4 12:21 ttyS000
crw-r--r--    1 root     root      204,  65 Jan  1 00:00 ttyS1
crw-r--r--    1 root     root      204,  66 Jan  1 00:00 ttyS2
crw-rw----    1 root     root       10, 223 Jan  1 00:00 uinput
crw-rw----    1 root     root        1,   9 Jan  1 00:00 urandom
crw-rw----    1 root     root      189,   0 Jan  1 00:00 usbdev1.1
crw-rw----    1 root     root      189,   1 Jan  1 00:00 usbdev1.2
crw-rw----    1 root     root      189, 128 Jan  1 00:00 usbdev2.1
crw-rw----    1 root     root      189, 256 Jan  1 00:00 usbdev3.1
crw-rw----    1 root     root      189, 384 Jan  1 00:00 usbdev4.1
crw-rw----    1 root     root       10,  57 Jan  1 00:00 vb
crw-rw----    1 root     root        7,   0 Jan  1 00:00 vcs
crw-rw----    1 root     root        7,   1 Jan  1 00:00 vcs1
crw-rw----    1 root     root        7, 128 Jan  1 00:00 vcsa
crw-rw----    1 root     root        7, 129 Jan  1 00:00 vcsa1
crw-rw----    1 root     root       10,  48 Jan  1 00:00 vda
crw-rw----    1 root     root       10,  46 Jan  1 00:00 vdec
crw-rw----    1 root     root       10,  52 Jan  1 00:00 venc
crw-rw----    1 root     root       10,  53 Jan  1 00:00 vgs
crw-rw----    1 root     root       10,  51 Jan  1 00:00 vo
crw-rw----    1 root     root       10,  50 Jan  1 00:00 vpss
crw-rw----    1 root     root        1,   5 Jan  1 00:00 zero

GrukhvinEV ()
Ответ на: комментарий от AITap

Видеорегистратор на Вашу команду 0 реакции, а вот на dmesg есть:

# dmesg | grep mount
# dmesg
ad
yaffs: checking block 305 bad
yaffs: checking block 306 bad
и еще таких же строк буран только цыфры разные....
yaffs: checking block 718 bad
yaffs: checking block 719 bad
scsi 3:0:0:0: Direct-Access     UFD 2.0  Silicon-Power4G  PMAP PQ: 0 ANSI: 4
scsi 3:0:0:0: Attached scsi generic sg0 type 0
yaffs: yaffs_read_super: is_checkpointed 0
VFS: Mounted root (yaffs2 filesystem) on device 31:2.
Freeing init memory: 180K
udevd (607): /proc/607/oom_adj is deprecated, please use /proc/607/oom_score_adj instead.
STMMAC driver:
        platform registration...
        done!
Set system config register 0x200300ec with value 0x003f003f
        done!
        DWMAC1000 - user ID: 0x10, Synopsys ID: 0x36
        Enhanced descriptor structure
MACADDR in get is 0:0:0:0:0:0
        no valid MAC address for MAC 0;please, use ifconfig or nwhwconfig!
        eth0 - (dev. name: stmmaceth - id: 0, IRQ #59
        IO base addr: 0xfe0a0000)
STMMAC MII Bus: probed
eth0: No PHY found
stmmac_reset: RESET COMPLETE!

**************************************************
*  TNK driver built on Aug  8 2014 at 11:39:11
*  TNK driver mode is TOE
**************************************************
stmmac: Rx Checksum Offload Engine supported
Hisilicon Media Memory Zone Manager
hi3535_base: module license 'Proprietary' taints kernel.
Disabling lock debugging due to kernel taint
Hisilicon UMAP device driver interface: v3.00
load sys.ko for Hi3535...OK!
Load tde.ko ...OK!
load vgs.ko for Hi3535...OK!
load venc.ko for Hi3535...OK!
load chnl.ko for Hi3535...OK!
load h264e.ko for Hi3535...OK!
load rc.ko for Hi3535...OK!
load jpege.ko for Hi3535...OK!
load vou.ko ....OK!
load vpss.ko ....OK!
load vda.ko ....OK!
load region.ko ....OK!
load vdec.ko ....OK
load vhd firmware.ko OK
load hdmi.ko ....OK!
Load hi3535_jpegd.ko success.           (SDK_VERSION:[jpeg6bv1.0] Build Time:[Feb 27 2014, 20:11:08])
sd 3:0:0:0: [sda] 7570752 512-byte logical blocks: (3.87 GB/3.60 GiB)
sd 3:0:0:0: [sda] Write Protect is off
sd 3:0:0:0: [sda] Mode Sense: 23 00 00 00
sd 3:0:0:0: [sda] No Caching mode page present
sd 3:0:0:0: [sda] Assuming drive cache: write through
sd 3:0:0:0: [sda] No Caching mode page present
sd 3:0:0:0: [sda] Assuming drive cache: write through
 sda: unknown partition table
sd 3:0:0:0: [sda] No Caching mode page present
sd 3:0:0:0: [sda] Assuming drive cache: write through
sd 3:0:0:0: [sda] Attached SCSI removable disk
usbcore: registered new interface driver option
USB Serial support registered for GSM modem (1-port)
acodec inited!
eth0: generated random MAC address c2:38:1a:f6:bf:dd
PHY 1:01 not found
eth0: Could not attach to PHY
stmmac_open: Cannot attach to PHY (error: -19)
[GPIO] GPIOGET_WATCHDOG Enable chardata = 1!!!
#
Usage: grep [-HhnlLoqvsriFE] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]...

Search for PATTERN in FILEs (or stdin)

Options:
        -H      Add 'filename:' prefix
        -h      Do not add 'filename:' prefix
        -n      Add 'line_no:' prefix
        -l      Show only names of files that match
        -L      Show only names of files that don't match
        -c      Show only count of matching lines
        -o      Show only the matching part of line
        -q      Quiet. Return 0 if PATTERN is found, 1 otherwise
        -v      Select non-matching lines
        -s      Suppress open and read errors
        -r      Recurse
        -i      Ignore case
        -F      PATTERN is a literal (not regexp)
        -E      PATTERN is an extended regexp
        -m N    Match up to N times per file
        -A N    Print N lines of trailing context
        -B N    Print N lines of leading context
        -C N    Same as '-A N -B N'
        -e PTRN Pattern to match
        -f FILE Read pattern from file

# dmesg | grep /proc/cmdline
#

GrukhvinEV ()
Ответ на: комментарий от GrukhvinEV

VFS: Mounted root (yaffs2 filesystem) on device 31:2.

Отлично, нам нужно всего-то сдампить yaffs с устройства с major number = 31 и minor number = 2 (поищите в ls -l /dev). Возможно, при помощи бинарника nanddump, который придётся где-то найти или собрать.

# dmesg | grep /proc/cmdline

Нет, cat /proc/cmdline.

AITap ★★★★★ ()
Ответ на: комментарий от AITap
# cat /proc/cmdline
mem=192M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2  mtdparts=hinand:1M(uboot),3M(kernel),90M(rfs),20M(app),10M(config),4M(logo)
GrukhvinEV ()
Ответ на: комментарий от AITap

И честно вот тут я ничего не понял: " major number = 31 и minor number = 2 (поищите в ls -l /dev). Возможно, при помощи бинарника nanddump, который придётся где-то найти или собрать."

GrukhvinEV ()
Ответ на: комментарий от AITap

Задача на самом деле у меня простая. Есть 2 регистратора одинаковых. 1 я убил, второй работает. С рабочего надо как то через telnet скопировать содержимое NAND Flash. У уж на убитый регер я через U-boot смогу залить этот файл. Это возможно ?

GrukhvinEV ()
Ответ на: комментарий от outsider

Спасибо. Это научился делать, теперь вопросы появились вот какие:

# cat /proc/cmdline
mem=192M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2  mtdparts=hinand:1M(uboot),3M(kernel),90M(rfs),20M(app),10M(config),4M(logo)
mem=192M -это размер в чем, 192Мбайта что ли ? Если это так то вопрос такой откуда на NAND Flash взялось столько места если на ней всего есть 512Мбит(134Мбайта) микросхема - MX30LF1208AA.

Файл с помощью dd я скопировал, открываю и вижу начало файла:

08 20 8D E5 68 97 FC EB 02 10 9D E9 0C 20 60 E0 01 30 8A E0 03 00 72 E1 04 00 00 4A 09 40 A0 E1 00 90 D4 E5 00 00 59 E3 D7 FF FF 1A 04 40 65 E0 10 00 9D E5 05 30 A0 E1 02 10 A0 E3 04 20 A0 E1 FA 95 FC EB 00 00 50 E3 04 00 A0 A1 00 00 E0 B3

Вот разделы при загрузке:

Creating 6 MTD partitions on "hinand":
0x000000000000-0x000000100000 : "uboot"
0x000000100000-0x000000400000 : "kernel"
0x000000400000-0x000005e00000 : "rfs"
0x000005e00000-0x000007200000 : "app"
0x000007200000-0x000007c00000 : "config"
ata1: SATA link down (SStatus 0 SControl 300)
0x000007c00000-0x000008000000 : "logo"
Тперь захожу в U-boot
hisilicon # nand device

Device 0: NAND 128MiB 3,3V 8-bit, sector size 128 KiB
hisilicon # nand read 81000000 100000 100 (читаю начало ядра)

NAND read: device 0 offset 0x100000, size 0x100
 256 bytes read: OK
hisilicon # nand read 82000000 0 100 (читаю начало U-boot)

NAND read: device 0 offset 0x0, size 0x100
 256 bytes read: OK
hisilicon # md 81000000 20
81000000: 56190527 df8b87d9 7d413b54 906a2b00    '..V....T;A}.+j.
81000010: 00800080 00800080 90f1e996 00020205    ................
81000020: 756e694c 2e332d78 35332e34 3369685f    Linux-3.4.35_hi3
81000030: 00353335 00000000 00000000 00000000    535.............
81000040: e1a00000 e1a00000 e1a00000 e1a00000    ................
81000050: e1a00000 e1a00000 e1a00000 e1a00000    ................
81000060: ea000002 016f2818 00000000 002b6a90    .....(o......j+.
81000070: e1a07001 e1a08002 e10f2000 e3120003    .p....... ......
hisilicon # md 82000000 20
82000000: ea000419 e59ff014 e59ff014 e59ff014    ................
82000010: e59ff014 e59ff014 e59ff014 e59ff014    ................
82000020: 80801300 80801360 808013c0 80801420    ....`....... ...
82000030: 80801480 808014e0 80801540 12345678    ........@...xV4.
82000040: 20030038 00000006 00000000 000000fd    8.. ............
82000050: 200e0000 0000007b 00000000 000000fd    ... {...........
82000060: 200e0004 00000015 00000000 000000fd    ... ............
82000070: 200e0020 000000a7 00000000 000000fd     .. ............
hisilicon #
Во первых что вот это такое NAND 128MiB ? что это за размер такой ? Во вторых u-boot я верю он показывает все верно, поскольку не первый раз вижу как начаинается раздел у ядра и u-boot. А вот то что я скопировал через DD я фиг его знает че это ))) Куда копать ? ))

GrukhvinEV ()
Ответ на: комментарий от outsider

И вообще может дамп флэша можно слить через u-boot ? Тут то уже наверняка будет. Я так делал не раз, но вот беда. Прочитать содержимое флэша я могу. А вот как ее на комп передать ума не приложу, потому что обычно я делал это через tftp, а тут не цепляется никак, такое впечатление что вообще связи с устройством нет по Lan. И вот тоже вопрос такой, а U-boot как то конфигурируется при сборке, мб там дрова не те стоят на котроллер lan или другой тип контроллера прописан. Поясните пожалуйста.

hisilicon # ?
?       - alias for 'help'
base    - print or set address offset
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
cmp     - memory compare
cp      - memory copy
crc32   - checksum calculation
ddr     - ddr training function
decjpg  - jpgd   - decode jpeg picture.

erase_env- erase_env  erase the environment

ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
getinfo - print hardware information
go      - start application at address 'addr'
help    - print command description/usage
loadb   - load binary file over serial line (kermit mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
md      - memory display
mii     - MII utility commands
mm      - memory modify (auto-incrementing address)
mtest   - simple RAM read/write test
mw      - memory write (fill)
nand    - NAND sub-system
nboot   - boot from NAND device
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
rarpboot- boot image via network using RARP/TFTP protocol
reset   - Perform RESET of the CPU
saveenv - save environment variables to persistent storage
setenv  - set environment variables
setvobg - setvobg   - set vo backgroud color.
        - setvobg [dev color]
sf      - SPI flash sub-system
startgx - startgx   - open graphics layer.
        - startgx [layer addr stride x y w h]

startvo - startvo   - open interface of vo device.
        - startvo [dev type sync]
stopgx  - stopgx   - close graphics layer.
        - stopgx [layer]
stopvo  - stopvo   - close interface of vo device.
        - stopvo [dev]
tftp    - tftp  - download or upload image via network using TFTP protocol
update  - update  uboot
update  kernel
update  rfs
update  logo
update  all

usb     - USB sub-system
usbboot - boot from USB device
version - print monitor version

GrukhvinEV ()
Ответ на: комментарий от GrukhvinEV

И честно вот тут я ничего не понял: " major number = 31 и minor number = 2 (поищите в ls -l /dev).

Устройство с major number = 31 и minor number = 2 оказалось /dev/mtdblock2.

mem=192M -это размер в чем, 192Мбайта что ли ?

Да, это оперативная память.

А вот то что я скопировал через DD я фиг его знает че это ))) Куда копать ? ))

А если скопировать остальные /dev/mtdblock*? А если натравить на них binwalk или аналог, чтобы тот поискал в них заголовки ядра и u-boot?

И вообще может дамп флэша можно слить через u-boot ?

Нигде не видно команд записи (на флешку?), если они только не запрятаны в недрах реализации update.

И вот тоже вопрос такой, а U-boot как то конфигурируется при сборке, мб там дрова не те стоят на котроллер lan или другой тип контроллера прописан.

Обычно поставщик устройства поставляет исходники uboot, уже пропатченные и настроенные на данный чип.

AITap ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.