| Автор | Сообщение |
seeksys Новичок Сообщения: 24
|
При включении один раз моргает светодиод LAN, затем на экране появляется заставка :"H.264 DVR Welcome" далее процесс загрузки не идет.
Неисправность появилась при аварийном пропадании сети.
Вопросы:
1.Подскажите как правильно опознать регистратор? (фото внизу) встречались названия KB-7316HC или KT-7316HC надпись на плате MB-6137HC.
2.Как на нем выполнить HARD RESET?
3.Какова процедура его прошивки?
4.имеется ли возможность прошивки по LAN или с другого порта (с помощью какой программы это делается)?
ЗЫ
В сети находил несколько похожих прошивок:
1.алгоритм загрузки: нужно положить файлы на флешку и включить DVR - не помогло
2.другой алгоритм выполнить обновление через меню - до меню мой DVR не догружается
Ссылка на одну из прошивок
http://vid8-solucoes.ddns.com.br/Vid8-DVR%20(Linha%20L)/Firmware/04-04 ...
DVR_ENV_H.bin
first_boot_h.img
master_boot.img
master_boot_h.img
master_kernel.img
master_rootfs_h.img
slave_boot_h.img
slave_kernel.img
slave_rootfs_h.img
  
[ |
|
seeksys Новичок Сообщения: 24
|
Питания были проверены в первую очередь - всё работает и ШИМ`ы и LDO.
Также прошелся осциллом по кварцам - все генерят, кроме того что установлен на Часах Реального Времени DS1307.
Изучил даташит на часы DS1307 - если вынимаешь батарею(а я её вынимал) - часы останавливаются , и что бы их запустить надо сбросить бит Clock Halt.
Обмена по шине I2C между процем и часами нет? проц к часам не обращается нет инициализации часов - соответственно кварц генерить не должен.
Делая вывод из выше сказанного - необходима процедура перепрошивки. Как её вылнить |
|
Jenius Участник Сообщения: 333
|
| seeksys писал: | Питания были проверены в первую очередь - всё работает и ШИМ`ы и LDO.
Также прошелся осциллом по кварцам - все генерят, кроме того что установлен на Часах Реального Времени DS1307.
Изучил даташит на часы DS1307 - если вынимаешь батарею(а я её вынимал) - часы останавливаются , и что бы их запустить надо сбросить бит Clock Halt.
Обмена по шине I2C между процем и часами нет? проц к часам не обращается нет инициализации часов - соответственно кварц генерить не должен.
Делая вывод из выше сказанного - необходима процедура перепрошивки. Как её вылнить |
Иногда логика играет злую шутку. Бывали случаи когда DVR не запускался именно из за нерабочего часового кварца. Объяснить логически я это не смог, но его замена оживляла аппарат! Хоть это не логично но попробуй может поможет!? |
|
seeksys Новичок Сообщения: 24
|
Подключился к плате терминалом (на плате имеется разъём COM порта с TTL уровнями) и вот что увидел :
| Код: | NAND: No NAND device found!!!
0 MiB
U-Boot 2008.10 (Sep 1 2010 - 11:57:35)
DRAM: 128 MB
Flash: 32 MB
In: serial
Out: serial
Err: serial
jpeg decoding ...
>
decode success!!!!
jpeg decoding ...
>
decode success!!!!
Press CTRL-C to abort autoboot in ## Booting kernel from Legacy Image at 80100000 ...
Image Name: hilinux_kongtop20100816
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1534436 Bytes = 1.5 MB
Load Address: e2800000
Entry Point: e2800000
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux................................................................................................. done, booting the kernel.
Linux version 2.6.24-rt1-hi3520v100 (sunhao@localhost) (gcc version 3.4.3 (release) (CodeSourcery ARM Q3cvs 2004)) #9 Wed Oct 27 10:55:44 CST 2010
CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387f
Machine: hi3520v100
Memory policy: ECC disabled, Data cache writeback
CPU0: D VIPT write-back cache
CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 17780
Kernel command line: mem=70M console=ttyAMA0,115200 root=1f01 rootfstype=jffs2 mtdparts=physmap-flash.0:14M(boot),16M(rootfs) pcimod=host pciclksel=1 mac=00:19:21:68:1:50
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 70MB = 70MB total
Memory: 67712KB available (2784K code, 245K data, 108K init)
Mount-cache hash table entries: 512
HI_VERSION=LINUX_2_6_24-M01C04FB01F @Hi3520v100R001_C_0_2_0 2010-06-29 22:31:34
CPU: Testing write buffer coherency: ok
net_namespace: 64 bytes
NET: Registered protocol family 16
Hisilicon clock system V0.01
PCI: device 0000:00:00.0 has unknown header type 25, ignoring.
PCI: device 0000:00:01.0 has unknown header type 25, ignoring.
PCI: device 0000:00:03.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:04.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:05.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:06.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:07.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:08.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:09.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:0a.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:0b.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:0c.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:0d.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:0e.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:0f.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:10.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:11.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:12.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:13.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:14.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:15.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:16.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:17.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:18.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:19.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:1a.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:1b.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:1c.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:1d.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:1e.0 has unknown header type 0d, ignoring.
PCI: device 0000:00:1f.0 has unknown header type 0d, ignoring.
PCI: bus0: Fast back to back transfers disabled
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
Time: hisi_timer1 clocksource has been installed.
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) В© 2001-2006 Red Hat, Inc.
yaffs Oct 27 2010 10:39:49 Installing.
io scheduler noop registered
io scheduler deadline registered (default)
Serial: AMBA PL011 UART driver
uart:0: ttyAMA0 at MMIO 0x20090000 (irq = 12) is a AMBA/PL011
console [ttyAMA0] enabled
uart:1: ttyAMA1 at MMIO 0x200a0000 (irq = 12) is a AMBA/PL011
uart:2: ttyAMA2 at MMIO 0x200b0000 (irq = 13) is a AMBA/PL011
uart:3: ttyAMA3 at MMIO 0x200c0000 (irq = 13) is a AMBA/PL011
RAMDISK driver initialized: 4 RAM disks of 16384K size 4096 blocksize
loop: module loaded
physmap platform flash device: 04000000 at 80000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 8-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
physmap-flash.0: CFI does not contain boot bank location. Assuming top.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
2 cmdlinepart partitions found on MTD device physmap-flash.0
Creating 2 MTD partitions on "physmap-flash.0":
0x00000000-0x00e00000 : "boot"
0x00e00000-0x01e00000 : "rootfs"
No NAND device found!!!
h2v100-ehci h2v100-ehci.0: h2v100-ehci
h2v100-ehci h2v100-ehci.0: new USB bus registered, assigned bus number 1
h2v100-ehci h2v100-ehci.0: irq 23, io mem 0x100b0000
h2v100-ehci h2v100-ehci.0: USB 0.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
h2v100-ohci h2v100-ohci.0: h2v100-ohci
h2v100-ohci h2v100-ohci.0: new USB bus registered, assigned bus number 2
h2v100-ohci h2v100-ohci.0: irq 22, io mem 0x100a0000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
TCP cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 1
NET: Registered protocol family 17
CCID: Registered CCID 3 (ccid3)
CCID: Registered CCID 2 (ccid2)
VFS: Mounted root (jffs2 filesystem).
Freeing init memory: 108K
Kernel panic - not syncing: No init found. Try passing init= option to kernel.
|
Как я понял на плате установлена система Linux embedded, и ошибка
происходит на уровне загрузки ядра. Ранее с ним дело не имел
вот сейчас с ним и разбираюсь.
Вопросы:
Загрузчик UBOOT - работает, можно вывести инфу о флехе, переменные окружения, а вот на показать файлы система зависает.
Имеется ли возможность загрузить ядро в RAM и оттуда запустить?
Как загрузить прошивку через tftp сервер или USB?
имеется ли в UBOOT режим recovery ? |
|
Captain monitor.net.ru  Сообщения: 10774
|
На Help есть реакция? Если есть - выводи списки команд. Наверное это все на что ты сможешь рассчитывать. |
|
seeksys Новичок Сообщения: 24
|
Разбираюсь с следующими вопросами:
1. Как выяснить почему происходит сбой загрузки?
2. Как подключить флешку и читать/записывать файлы с неё?
3. Как подключить tftp сервер и с его помощью загрузить систему?
Работает ли на этом форуме тег spoiler, а то приходится выкладывать портянки.
help:
| Код: | hilinux # help
? - 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
jpgd - decode jpeg picture.
erase - erase FLASH memory
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 /)
flinfo - print FLASH memory information
fsinfo - print information about filesystems
fsload - load binary file from a filesystem image
go - start application at address 'addr'
help - print online help
loadb - load binary file over serial line (kermit mode)
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
ls - list files in a directory (default /)
md - memory display
mii - MII utility commands
mm - memory modify (auto-incrementing)
mtest - simple RAM 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
protect - enable or disable FLASH write protection
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 - set vo backgroud color.
- setvobg [dev color]slavestart - start slave arm!
startgx - open graphics layer.
- startgx [layer addr stride x y w h]
startvo - open interface of vo device.
- startvo [dev type sync]stopgx - close graphics layer.
- stopgx [layer]stopvo - close interface of vo device.
- stopvo [dev]tftp - download or upload image via network using TFTP protocol
usb - USB sub-system
usbboot - boot from USB device
version - print monitor version
ydump - YAFFS device struct
yls - yaffs ls
ymkdir - YAFFS mkdir
ymount - mount yaffs
ymv - YAFFS mv
yrd - read file from yaffs
yrdm - read file to memory from yaffs
yrm - YAFFS rm
yrmdir - YAFFS rmdir
yumount - unmount yaffs
ywr - write file to yaffs
ywrm - write file from memory to yaffs
hilinux # printenv
bootdelay=1
baudrate=115200
bootfile="uImage"
ethaddr=00:19:21:68:1:50
bootcmd=bootm 0x80100000
slave_bootargs=mem=15M quiet,115200
bootargs=mem=70M console=ttyAMA0,115200 root=1f01 rootfstype=jffs2 mtdparts=physmap-flash.0:14M(boot),16M(rootfs) pcimod=host pciclksel=1 mac=00:19:21:68:1:50
mdio_intf=mii
slave_kernel_addr=0x80400000
slave_initrd_addr=0x80600000
slave_autostart=1
filesize=16B71C
fileaddr=80100000
gatewayip=192.168.0.1
netmask=255.255.255.0
ipaddr=192.168.0.154
serverip=192.168.0.189
slave_bootcmd=bootm e0300000 e0a00000
stdin=serial
stdout=serial
stderr=serial
verify=n
ver=U-Boot 2008.10 (Sep 1 2010 - 11:57:35)
|
Переменные окружения:
| Код: | hilinux # printenv
bootdelay=1
baudrate=115200
bootfile="uImage"
ethaddr=00:19:21:68:1:50
bootcmd=bootm 0x80100000
slave_bootargs=mem=15M quiet,115200
bootargs=mem=70M console=ttyAMA0,115200 root=1f01 rootfstype=jffs2 mtdparts=physmap-flash.0:14M(boot),16M(rootfs) pcimod=host pciclksel=1 mac=00:19:21:68:1:50
mdio_intf=mii
slave_kernel_addr=0x80400000
slave_initrd_addr=0x80600000
slave_autostart=1
filesize=16B71C
fileaddr=80100000
gatewayip=192.168.0.1
netmask=255.255.255.0
ipaddr=192.168.0.154
serverip=192.168.0.189
slave_bootcmd=bootm e0300000 e0a00000
stdin=serial
stdout=serial
stderr=serial
verify=n
ver=U-Boot 2008.10 (Sep 1 2010 - 11:57:35)
Environment size: 635/131068 bytes
|
инфа о флехе:
| Код: | hilinux # flinfo
Bank # 1: CFI conformant FLASH (8 x 8) Size: 32 MB in 256 Sectors
AMD Standard command set, Manufacturer ID: 0x16, Device ID: 0x00
Erase timeout: 4096 ms, write timeout: 1 ms
Buffer write timeout: 3 ms, buffer size: 64 bytes
Sector Start Addresses:
80000000 80020000 80040000 80060000 80080000 RO
800A0000 800C0000 800E0000 80100000 80120000
80140000 80160000 80180000 801A0000 801C0000
801E0000 80200000 80220000 80240000 80260000
80280000 802A0000 802C0000 802E0000 80300000
80320000 80340000 80360000 80380000 803A0000
803C0000 803E0000 80400000 80420000 80440000
80460000 80480000 804A0000 804C0000 804E0000
80500000 80520000 80540000 80560000 80580000
805A0000 805C0000 805E0000 80600000 80620000
80640000 80660000 80680000 806A0000 806C0000
806E0000 80700000 80720000 80740000 80760000
80780000 807A0000 807C0000 807E0000 80800000
80820000 80840000 80860000 80880000 808A0000
808C0000 808E0000 80900000 80920000 80940000
80960000 80980000 809A0000 809C0000 809E0000
80A00000 80A20000 80A40000 80A60000 80A80000
80AA0000 80AC0000 80AE0000 80B00000 80B20000
80B40000 80B60000 80B80000 80BA0000 80BC0000
80BE0000 80C00000 80C20000 80C40000 80C60000
80C80000 80CA0000 80CC0000 80CE0000 80D00000
80D20000 80D40000 80D60000 80D80000 80DA0000
80DC0000 80DE0000 80E00000 80E20000 80E40000
80E60000 80E80000 80EA0000 80EC0000 80EE0000
80F00000 80F20000 80F40000 80F60000 80F80000
80FA0000 80FC0000 80FE0000 81000000 81020000
81040000 81060000 81080000 810A0000 810C0000
810E0000 81100000 81120000 81140000 81160000
81180000 811A0000 811C0000 811E0000 81200000
81220000 81240000 81260000 81280000 812A0000
812C0000 812E0000 81300000 81320000 81340000
81360000 81380000 813A0000 813C0000 813E0000
81400000 81420000 81440000 81460000 81480000
814A0000 814C0000 814E0000 81500000 81520000
81540000 81560000 81580000 815A0000 815C0000
815E0000 81600000 81620000 81640000 81660000
81680000 816A0000 816C0000 816E0000 81700000
81720000 81740000 81760000 81780000 817A0000
817C0000 817E0000 81800000 81820000 81840000
81860000 81880000 818A0000 818C0000 818E0000
81900000 81920000 81940000 81960000 81980000
819A0000 819C0000 819E0000 81A00000 81A20000
81A40000 81A60000 81A80000 81AA0000 81AC0000
81AE0000 81B00000 81B20000 81B40000 81B60000
81B80000 81BA0000 81BC0000 81BE0000 81C00000
81C20000 81C40000 81C60000 81C80000 81CA0000
81CC0000 81CE0000 81D00000 81D20000 81D40000
81D60000 81D80000 81DA0000 81DC0000 81DE0000
81E00000 81E20000 81E40000 81E60000 81E80000
81EA0000 81EC0000 81EE0000 81F00000 81F20000
81F40000 81F60000 81F80000 81FA0000 81FC0000
81FE0000
|
На этой комманде зависает :
| Код: |
hilinux # fsinfo
### filesystem type is JFFS2
Scanning JFFS2 FS: |
|
|
Captain monitor.net.ru  Сообщения: 10774
|
| seeksys писал: | | На этой комманде зависает : |
давно понятно было что файловая система разрушена и требуется восстанавливать рабочую прошивку. Единственный вариант, который возможен - обратиться к производителю за прошивкой. Ну или в поиск дампа на твою флеху. |
|
seeksys Новичок Сообщения: 24
|
Регистратор восстановлен!
Выкладываю хронологию ремонта может кому пригодится
1.Считывание дампа с флешки (Back_up).
Из документации на подобные платы на чипе hi3520v100
стало известно адресное пространство:
flash
master boot 0x80000000
master kernel 0x80100000
slave boot 0x80300000
slave kernel 0x80400000
slave fs 0x80600000
master fs 0x80E00000
RAM
DDRA
0xC0000000 - 0xD0000000
DDRB
0xE0000000 - 0xE8000000
2.
На компе устанавливаем TFTP сервер у меня W7 и ставил отсюда
http://tftpd32.jounin.net
настраиваем переменные окружения serverip, ipaddr под сервер TFTP
подключаем кабель Ethernet.
3.Работа в терминальном режиме по COM порту
команда tftp настроена так : если в качестве параметра указан адрес RAM файл передается на сервер,
если указан адрес flash то скачивается с сервера.
//копируем флеш в озу (объем флешки 32М - "S29GL256P10TF")
cp.b 0x80000000 0xE4000000 0x2000000
//передаём файл на комп
tftp 0xE4000000 flash_dump.bin 0x2000000
2. Сравнение дампа с файлами из первого поста позволи сделать вывод что это прошивка от данного аппарата, но более новой версии.
,так же была изучена структура файлов (заголовки и т.д.).
3. По логу загрузки можно сделать вывод что испортилась файловая система (master_rootfs) расположенная по адресу 0x80E00000.
Файл master_rootfs_h.img содержит ещё загрузчик hirootfs (0x0 - 0x3F) поэтому перед заливкой его необходимо вырезать.
4. загрузить файл можно двумя способами через сервер TFTP или USB
//отключаем защиту записи
protect off 0x80E00000 +0x1000000
//стираем flash
erase 0x80E00000 +0x1000000
На компьютере копируем подготовленный файл master_rootfs.img в директорию TFTP сервера
//заливаем
tftp 0x80Е00000 master_rootfs.img.
//включаем защиту
protect on 0x80E00000 +0x1000000
по USB
флешку отформатировать в систему FAT16 и записать на ней файл master_rootfs.img
//вставляем флешку в DVR и запускаем USB
usb reset или usb start
//переписываем файл в RAM (записать напрямую у меня не получилось)
fatload usb 0:1 0xE4000000 master_rootfs.img
//отключаем защиту записи
protect off 0x80E00000 +0x1000000
//стираем flash
erase 0x80E00000 +0x1000000
// записываем на флешь
cp.b 0xE4000000 0x80E00000 0x1000000
//включаем защиту
protect on 0x80E00000 +0x1000000
Остались следующие вопросы:
Для чего в прошивке модули slave?
как активировать процедуру автоматического восстановления прошивки?
 |
|
Виктор_А_Н Участник Сообщения: 3379
|
Стыдно признаться, у меня такого энтузиазма уже давно нет.
Белая зависть и уважение! |
|
Salomon_Z Забанен  Сообщения: 104
|
странный линуховод со своим DVR и темой.....в начале плачется как прошить, с кучей вопросов, в конце выкладывает методу восстановления D-Link, Tp-Link и прочей сетевой ерунды.... |
|
Jenecs Участник Сообщения: 62
|
Респект , уважение . Вот это человек копнул и разобрался , молодец. |
|
Васисуалий monitor.net.ru  Сообщения: 3990
|
seeksys, а ты часом не работник сервисной службы этой компании? Все твои описания очень похожи на аккуратный вброс инфы по восстановлению конкретного аппарата. Создается впечатление, что ты владеешь предметом немного лучше, чем прикинулся сначала! Но все равно огромное тебе спасибо! Надеюсь, твой труд еще кому нибудь пригодится!
Еще раз спасибо! Респект тебе...  |
|
seeksys Новичок Сообщения: 24
|
| Васисуалий писал: | seeksys, а ты часом не работник сервисной службы этой компании? Все твои описания очень похожи на аккуратный вброс инфы по восстановлению конкретного аппарата. Создается впечатление, что ты владеешь предметом немного лучше, чем прикинулся сначала! Но все равно огромное тебе спасибо! Надеюсь, твой труд еще кому нибудь пригодится!
Еще раз спасибо! Респект тебе...  |
Никогда никем не прикидовался Стараюсь, по возможности ремонты доводить до конца. С такой проблемой столкнулся впервые вот и решил спросить - может кто сталкивался и сразу поможет.
По DVR: Насколько я разобрался - платы на регистраторы продают отдельно (полно предложений на taobao и т.д.) в комплект входит инфа для разработчика SDK (доки на плату , исходники Linux`a ,инфа по сборке,примеры). На китайских и корейских блогах по linux частично есть инфа по разработке регистраторов на этих платах. Переводчик с китайского сейчас не проблема. Далее анализ инфы и эксперименты. |
|
Salomon_Z Забанен  Сообщения: 104
|
да хватит лирики, давай конкретно по ссылкам пройдемся...интересно посмотреть на все это.....так сказать освежить знания.... |
|
seeksys Новичок Сообщения: 24
|
|
Dedushka Гость 176.37.*.*
|
seeksys, Спасибо. Действительно интересная и ценная информация. |
|
|