<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="http://dartraiden.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="http://dartraiden.github.io/" rel="alternate" type="text/html" /><updated>2026-05-23T14:05:56+00:00</updated><id>http://dartraiden.github.io/feed.xml</id><title type="html">Alexander Gavrilov</title><subtitle>dartraiden</subtitle><author><name>Alexander Gavrilov</name></author><entry><title type="html">Прошивка и программное обеспечение для смартфона RoverPC R5</title><link href="http://dartraiden.github.io/RoverPC-R5/" rel="alternate" type="text/html" title="Прошивка и программное обеспечение для смартфона RoverPC R5" /><published>2023-09-11T00:00:00+00:00</published><updated>2023-09-11T00:00:00+00:00</updated><id>http://dartraiden.github.io/RoverPC-R5</id><content type="html" xml:base="http://dartraiden.github.io/RoverPC-R5/"><![CDATA[<p>Когда-то владел этим аппаратом, осталась коллекция файлов, которые сейчас найти в интернете будет довольно трудно. В архиве (<a href="/files/2023-9-11/R5-1.zip">часть 1</a>, <a href="/files/2023-9-11/R5-2.zip">часть 2</a>, <a href="/files/2023-9-11/R5-3.zip">часть 3</a>) находятся прошивки Windows Mobile 6.1 (официальная и модифицированные), программное обеспечение и «твики» реестра.</p>]]></content><author><name>Alexander Gavrilov</name></author><category term="roverpc" /><category term="прошивка" /><category term="программное обеспечение" /><summary type="html"><![CDATA[Когда-то владел этим аппаратом, осталась коллекция файлов, которые сейчас найти в интернете будет довольно трудно. В архиве (часть 1, часть 2, часть 3) находятся прошивки Windows Mobile 6.1 (официальная и модифицированные), программное обеспечение и «твики» реестра.]]></summary></entry><entry><title type="html">Включение в mail.ru двухфакторной авторизации с помощью мобильного приложения</title><link href="http://dartraiden.github.io/Mail.ru-2FA/" rel="alternate" type="text/html" title="Включение в mail.ru двухфакторной авторизации с помощью мобильного приложения" /><published>2023-08-19T00:00:00+00:00</published><updated>2023-08-19T00:00:00+00:00</updated><id>http://dartraiden.github.io/Mail.ru-2FA</id><content type="html" xml:base="http://dartraiden.github.io/Mail.ru-2FA/"><![CDATA[<p>Некоторое время назад mail.ru поменяла интерфейс настроек. При этом убрали возможность включить двухфакторную авторизацию с помощью мобильного приложения, генерирующего одноразовые коды, оставив получение кодов лишь через СМС.</p>

<p>Однако попасть в старый интерфейс настройки двухфакторной авторизации всё ещё можно. Для этого нужно вручную перейти по ссылке:</p>

<ul>
  <li>https://account.mail.ru/user/2-step-auth — новый интерфейс, где доступно получение кодов лишь через СМС</li>
  <li>https://e.mail.ru/settings/2-step-auth — старый интерфейс, где доступно получение кодов и через мобильное приложение</li>
</ul>

<p>Там же есть возможность для большей безопасности отвязать номер телефона от двухфакторной авторизации, таким образом оставив приложение единственным способом подтверждения входа. Обратите внимание, что если после отвязки номера вы хотите получить резервные коды, их нужно получать через новый интерфейс, поскольку старый интерфейс пытается перед выдачей кодов отправить СМС на номер, который уже отвязан.</p>]]></content><author><name>Alexander Gavrilov</name></author><category term="mail.ru" /><category term="2fa" /><summary type="html"><![CDATA[Некоторое время назад mail.ru поменяла интерфейс настроек. При этом убрали возможность включить двухфакторную авторизацию с помощью мобильного приложения, генерирующего одноразовые коды, оставив получение кодов лишь через СМС. Однако попасть в старый интерфейс настройки двухфакторной авторизации всё ещё можно. Для этого нужно вручную перейти по ссылке: https://account.mail.ru/user/2-step-auth — новый интерфейс, где доступно получение кодов лишь через СМС https://e.mail.ru/settings/2-step-auth — старый интерфейс, где доступно получение кодов и через мобильное приложение Там же есть возможность для большей безопасности отвязать номер телефона от двухфакторной авторизации, таким образом оставив приложение единственным способом подтверждения входа. Обратите внимание, что если после отвязки номера вы хотите получить резервные коды, их нужно получать через новый интерфейс, поскольку старый интерфейс пытается перед выдачей кодов отправить СМС на номер, который уже отвязан.]]></summary></entry><entry><title type="html">Всё о ZM-VE200/iodd-2511</title><link href="http://dartraiden.github.io/VE-200/" rel="alternate" type="text/html" title="Всё о ZM-VE200/iodd-2511" /><published>2021-08-31T00:00:00+00:00</published><updated>2021-08-31T00:00:00+00:00</updated><id>http://dartraiden.github.io/VE-200</id><content type="html" xml:base="http://dartraiden.github.io/VE-200/"><![CDATA[<p>В отличие от конкурентов, помимо обычной роли компактного переносного накопителя, умеет монтировать лежащие в папке <code class="language-plaintext highlighter-rouge">_ISO</code> образы на виртуальный привод. Это даёт возможность перегнать в образы горы необходимых для работы дисков и забыть про запись болванок. Отлично работает на обычных компьютерах с Linux, Mac, Windows и виртуальных машинах наподобие VirtualBox.</p>

<h1 id="характеристики">Характеристики</h1>
<p>Внешний корпус для накопителей Zalman ZM-VE200 является первым в мире решением такого рода, снабжённым поддержкой функции виртуального диска. Это даёт возможность пользователям загружать на HDD/SSD-накопитель ISO-образы CD/DVD/BD-дисков, и затем работать с ними как с настоящими оптическими накопителями.</p>

<p>Это не разработка Zalman, а лицензированная модель <a href="http://iodd.kr">iodd-2501/2511</a>.</p>

<p>Изготовлен из алюминия и выполнен в элегантном тонком дизайне, при этом его габариты составляют 135,3 x 78,6 x 13,1 мм, а вес 98,5 грамм. Устройство оснащено LCD экраном, отображающим список загруженных ISO образов, и снабжено интерфейсами USB 2.0 и eSATA.</p>

<p>Тип оборудования: внешний бокс<br />
Форматы поддерживаемых HDD: 2.5”<br />
Интерфейсы подключаемых HDD: SATA, SATA-II<br />
Толщина подключаемых HDD: не более 10,5 мм<br />
Интерфейс подключения к ПК: eSATA, USB 2.0<br />
Количество слотов для HDD: 1<br />
Питание: от USB<br />
Цвет: серебристый, чёрный<br />
Материал корпуса: алюминий</p>

<h1 id="использование-образов">Использование образов</h1>
<p>Виртуальный привод может эмулировать не только USB-CD-ROM, но и USB-FDD, USB-HDD. Устройство умеет работать со следующими типами образов:</p>
<ul>
  <li>образы CD/DVD/BD в форматах <a href="https://ru.wikipedia.org/wiki/ISO-образ">ISO</a> и <a href="https://ru.wikipedia.org/wiki/Дисковая утилита">CDR</a>;</li>
  <li>образы в формате TOA (автору этих строк не попадались).</li>
  <li>образы дискет в формате <a href="https://en.wikipedia.org/wiki/IMG_(file_format)">IMA</a>;</li>
  <li>образы жёстких дисков в формате DSK (а также VHD, при условии смены расширения на RMD или DSK) и Removable Disk image в формате RMD;</li>
</ul>

<p>В последних трёх случаях, контроллер переключается в режим Removable Device и позволяет, помимо CD/DVD/BD образа, замонтировать до 4 устройств.</p>

<p>Чтобы устройство «увидело» образы, надо в корне первого раздела жёсткого диска создать папку под названием <code class="language-plaintext highlighter-rouge">_ISO</code> и поместить в неё необходимые файлы образов. Устройство справляется с файлами размером больше 4 ГБ, если это умеет используемая файловая система (exFAT или NTFS).</p>

<p>В папке <code class="language-plaintext highlighter-rouge">_ISO</code> может содержаться не более 32 объектов (суммарно образов и папок). В каждой из вложенных папок действуют аналогичные ограничения. Глубина вложенности ограничена лишь используемой файловой системой (рано или поздно длина пути к образу начнёт превышать ограничения файловой системы).</p>

<p>Раздел для <code class="language-plaintext highlighter-rouge">_ISO</code> всегда должен быть MBR, первым, основным, флаг загрузки роли не играет. Файловая система раздела должна соответствовать прошивке.</p>

<h2 id="использование-образов-дискет">Использование образов дискет</h2>
<p>Кроме ISO-образов устройство умеет монтировать до 4-х образов дискет в формате IMA и позволяет производить на них запись.</p>

<h3 id="монтирование-образов">Монтирование образов</h3>
<ol>
  <li>сдвинуть рычажок вниз, чтобы попасть в меню выбора образов;</li>
  <li>с помощью рычажка выбрать нужный образ;</li>
  <li>щелчком подтвердить свой выбор и вернуться на основной экран;</li>
  <li>щёлкнуть ещё раз, чтобы подключить образ.</li>
</ol>

<p>В системе появится floppy-дисковод с выбранным образом.</p>

<h3 id="отключения-всех-образов-дискет">Отключения всех образов дискет</h3>
<ol>
  <li>перейти в пункт меню «Begin of list» (начальный пункт меню со списком образов);</li>
  <li>зажать рычажок в среднем положении на несколько секунд;</li>
  <li>устройство перезагрузится, отключив образ дискеты.</li>
</ol>

<p>Того же эффекта можно достичь вытащив USB-кабель с последующим его подключением вместе с удержанием зажатого рычажка (разъем Mini USB прочностью не отличается, без нужды лучше его не тревожить).</p>

<h1 id="меню-и-управление">Меню и управление</h1>
<p>Управление осуществляется с помощью колёсика, находящегося сбоку контейнера.</p>

<p>Рычажок вверх — пункт «Mode Select» (выбор режима работы устройства).<br />
Рычажок вниз — перейти к выбору образов.</p>

<p>Нажатие на рычажок производит следующие действия:</p>
<ul>
  <li>перейти к смене режима при выборе пункта «Mode Select»;</li>
  <li>выбрать образ для монтирования из списка образов;</li>
  <li>смонтировать или отключить выбранный образ.</li>
</ul>

<p>Удерживание рычажка в нижнем положении в течение нескольких секунд позволяет остановить шпиндель жёсткого диска.<br />
Удерживание рычажка в верхнем положении в течение нескольких секунд позволяет пересканировать папку <code class="language-plaintext highlighter-rouge">_ISO</code> на наличие новых образов.</p>

<p>С помощью рычажка можно указать режим работы устройства непосредственно перед подключением:</p>
<ul>
  <li>зажать в среднем положении — запуск в «Dual - Mode» (CD-ROM + HDD);</li>
  <li>провернуть вверх и удерживать — запуск в «ODD - Mode» (только CD-ROM);</li>
  <li>провернуть вниз и удерживать — запуск в «HDD - Mode» (только HDD).</li>
</ul>

<h1 id="коды-ошибок">Коды ошибок</h1>
<p><code class="language-plaintext highlighter-rouge">Error 15</code> — на диске обнаружены повреждённые сектора.</p>

<p><code class="language-plaintext highlighter-rouge">Error 23</code> — повреждена файловая система, необходимо запустить проверку диска.</p>

<p><code class="language-plaintext highlighter-rouge">1st Partition : 0 &gt; Partition is not set</code> — диск не разбит на разделы или же файловая система первого раздела не совпадает с типом прошивки.</p>

<p><code class="language-plaintext highlighter-rouge">1st Partition : 5 &gt; ZM-VE200 Hard Disk have extended partition</code> — жёсткий диск содержит расширенный раздел. Отформатируйте его согласно типу прошивки.</p>

<p><code class="language-plaintext highlighter-rouge">1st Partition : 6 &gt; ZM-VE200 Hard Disk is formatted as FAT</code> — раздел отформатирован в FAT (не в FAT32). Отформатируйте его согласно типу прошивки.</p>

<p><code class="language-plaintext highlighter-rouge">1st Partition : 7 &gt; ZM-VE200 Hard disk is formatted as NTFS</code> — прошивка FAT не поддерживает NTFS. Отформатируйте раздел в FAT32 или exFAT.</p>

<p><code class="language-plaintext highlighter-rouge">1st Partition : C &gt; ZM-VE200 Hard Disk is formatted as FAT32</code> — прошивка NTFS не поддерживает FAT32. Отформатируйте раздел в NTFS.</p>

<p><code class="language-plaintext highlighter-rouge">1st Partition : F &gt; Extended partition</code> — логические и расширенные разделы не поддерживаются, создайте раздел, как основной.</p>

<p><code class="language-plaintext highlighter-rouge">1st Partition : FF &gt; ZM-VE200 Hard Disk is formatted as exFAT</code> — эта прошивка не поддерживает exFAT. Отформатируйте раздел в NTFS.</p>

<p><code class="language-plaintext highlighter-rouge">1st Partition: EE : MBR area is existed after EFI header</code> — создайте новый и удалите старый раздел в «Управлении дисками». Если не помогло, попробуйте выполнить инициализацию. Это займёт какое-то время, наберитесь терпения.</p>

<p><code class="language-plaintext highlighter-rouge">NO _ISO</code> — не найдена папка _ISO или _iso на первом разделе.</p>

<p><code class="language-plaintext highlighter-rouge">NO - DISC</code> — в папке _ISO не найдены файлы с допустимыми расширениями (ISO, IMA, DSK, RMD).</p>

<p><code class="language-plaintext highlighter-rouge">TOO Many FILES</code> — в корне папки _ISO (и в любой другой папке, которая находится внутри _ISO) может содержаться не более 32 объектов (файлов + папок).</p>

<p><code class="language-plaintext highlighter-rouge">ALREADY HIT</code> — данный файл уже был выбран для эмуляции, загружен и эмулируется.</p>

<p><code class="language-plaintext highlighter-rouge">vDISK LIMIT</code> — бокс может одновременно эмулировать не более 4 виртуальных дискет.</p>

<p><code class="language-plaintext highlighter-rouge">DEFRAG!!</code> — скорее всего, раздел отформатирован в NTFS и файл образа, который вы пытаетесь эмулировать, фрагментирован. Необходимо дефрагментировать раздел или, как минимум, этот файл образа. Если дефрагментация не помогает, то скорее всего это так называемый sparse-файл. Такой файл может получиться, например, в результате загрузки торрента. Копирование и удаление оригинала (не перемещение!) этого файла должно решить проблему.</p>

<p>Если сообщение вида <code class="language-plaintext highlighter-rouge">1st Partition : XX</code> не соответствует указанным выше, то оно может указывать на тип неподдерживаемого раздела:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>00 Empty
01 DOS 12-bit FAT
02 XENIX root
03 XENIX /usr
04 DOS 3.0+ 16-bit FAT (up to 32M)
05 DOS 3.3+ Extended Partition
06 DOS 3.31+ 16-bit FAT (over 32M)
07 OS/2 IFS (e.g., HPFS)
07 Windows NT NTFS
07 exFAT
07 Advanced Unix
07 QNX2.x pre-1988 (see below under IDs 4d-4f)
08 OS/2 (v1.0-1.3 only)
08 AIX boot partition
08 SplitDrive
08 Commodore DOS
08 DELL partition spanning multiple drives
08 QNX 1.x and 2.x ("qny")
09 AIX data partition
09 Coherent filesystem
09 QNX 1.x and 2.x ("qnz")
0a Coherent swap partition
0a OPUS
0b WIN95 OSR2 FAT32
0c WIN95 OSR2 FAT32, LBA-mapped
0e WIN95: DOS 16-bit FAT, LBA-mapped
0f WIN95: Extended partition, LBA-mapped
10 OPUS (?)
11 Hidden DOS 12-bit FAT
11 Leading Edge DOS 3.x logically sectored FAT
12 Configuration/diagnostics partition
14 Hidden DOS 16-bit FAT &lt;32M
14 AST DOS with logically sectored FAT
16 Hidden DOS 16-bit FAT &gt;=32M
17 Hidden IFS (e.g., HPFS)
18 AST SmartSleep Partition
19 Unused
1b Hidden WIN95 OSR2 FAT32
1c Hidden WIN95 OSR2 FAT32, LBA-mapped
1e Hidden WIN95 16-bit FAT, LBA-mapped
20 Unused
21 Reserved
21 Unused
22 Unused
23 Reserved
24 NEC DOS 3.x
26 Reserved
27 PQservice
27 Windows RE hidden partition
27 MirOS partition
27 RouterBOOT kernel partition
2a AtheOS File System (AFS)
2b SyllableSecure (SylStor)
31 Reserved
32 NOS
33 Reserved
34 Reserved
35 JFS on OS/2 or eCS
36 Reserved
38 THEOS ver 3.2 2gb partition
39 Plan 9 partition
39 THEOS ver 4 spanned partition
3a THEOS ver 4 4gb partition
3b THEOS ver 4 extended partition
3c PartitionMagic recovery partition
3d Hidden NetWare
40 Venix 80286
40 PICK
41 Linux/MINIX (sharing disk with DRDOS)
41 Personal RISC Boot
41 PPC PReP (Power PC Reference Platform) Boot
42 Linux swap (sharing disk with DRDOS)
42 SFS (Secure Filesystem)
42 Windows 2000 dynamic extended partition marker
43 Linux native (sharing disk with DRDOS)
44 GoBack partition
45 Boot-US boot manager
45 Priam
45 EUMEL/Elan
46 EUMEL/Elan
47 EUMEL/Elan
48 EUMEL/Elan
4a Mark Aitchison's ALFS/THIN lightweight filesystem for DOS
4a AdaOS Aquila (Withdrawn)
4c Oberon partition
4d QNX4.x
4e QNX4.x 2nd part
4f QNX4.x 3rd part
4f Oberon partition
50 OnTrack Disk Manager (older versions) RO
50 Lynx RTOS
50 Native Oberon (alt)
51 OnTrack Disk Manager RW (DM6 Aux1)
51 Novell
52 CP/M
52 Microport SysV/AT
53 Disk Manager 6.0 Aux3
54 Disk Manager 6.0 Dynamic Drive Overlay (DDO)
55 EZ-Drive
56 Golden Bow VFeature Partitioned Volume.
56 DM converted to EZ-BIOS
56 AT&amp;T MS-DOS 3.x logically sectored FAT.
57 DrivePro
57 VNDI Partition
5c Priam EDisk
61 SpeedStor
63 Unix System V (SCO, ISC Unix, UnixWare, …), Mach, GNU Hurd
64 PC-ARMOUR protected partition
64 Novell Netware 286, 2.xx
65 Novell Netware 386, 3.xx or 4.xx
66 Novell Netware SMS Partition
67 Novell
68 Novell
69 Novell Netware 5+, Novell Netware NSS Partition
6e ??
70 DiskSecure Multi-Boot
71 Reserved
72 V7/x86
73 Reserved
74 Reserved
74 Scramdisk partition
75 IBM PC/IX
76 Reserved
77 M2FS/M2CS partition
77 VNDI Partition
78 XOSL FS
7e Unused
7f Unused
80 MINIX until 1.4a
81 MINIX since 1.4b, early Linux
81 Mitac disk manager
82 Prime
82 Solaris x86
82 Linux swap
83 Linux native partition
84 OS/2 hidden C: drive
84 Hibernation partition
85 Linux extended partition
86 Old Linux RAID partition superblock
86 FAT16 volume set
87 NTFS volume set
88 Linux plaintext partition table
8a Linux Kernel Partition (used by AiR-BOOT)
8b Legacy Fault Tolerant FAT32 volume
8c Legacy Fault Tolerant FAT32 volume using BIOS extd INT 13h
8d Free FDISK 0.96+ hidden Primary DOS FAT12 partition
8e Linux Logical Volume Manager partition
90 Free FDISK 0.96+ hidden Primary DOS FAT16 partition
91 Free FDISK 0.96+ hidden DOS extended partition
92 Free FDISK 0.96+ hidden Primary DOS large FAT16 partition
93 Hidden Linux native partition
93 Amoeba
94 Amoeba bad block table
95 MIT EXOPC native partitions
96 CHRP ISO-9660 filesystem
97 Free FDISK 0.96+ hidden Primary DOS FAT32 partition
98 Free FDISK 0.96+ hidden Primary DOS FAT32 partition (LBA)
98 Datalight ROM-DOS Super-Boot Partition
99 DCE376 logical drive
9a Free FDISK 0.96+ hidden Primary DOS FAT16 partition (LBA)
9b Free FDISK 0.96+ hidden DOS extended partition (LBA)
9e ForthOS partition
9f BSD/OS
a0 Laptop hibernation partition
a1 Laptop hibernation partition
a1 HP Volume Expansion (SpeedStor variant)
a3 HP Volume Expansion (SpeedStor variant)
a4 HP Volume Expansion (SpeedStor variant)
a5 BSD/386, 386BSD, NetBSD, FreeBSD
a6 OpenBSD
a6 HP Volume Expansion (SpeedStor variant)
a7 NeXTStep
a8 Mac OS-X
a9 NetBSD
ab Mac OS-X Boot partition
ab GO! partition
ae ShagOS filesystem
af ShagOS swap partition
af MacOS X HFS
b0 BootStar Dummy
b1 HP Volume Expansion (SpeedStor variant)
b1 QNX Neutrino Power-Safe filesystem
b2 QNX Neutrino Power-Safe filesystem
b3 HP Volume Expansion (SpeedStor variant)
b3 QNX Neutrino Power-Safe filesystem
b4 HP Volume Expansion (SpeedStor variant)
b6 HP Volume Expansion (SpeedStor variant)
b6 Corrupted Windows NT mirror set (master), FAT16 file system
b7 Corrupted Windows NT mirror set (master), NTFS file system
b7 BSDI BSD/386 filesystem
b8 BSDI BSD/386 swap partition
bb Boot Wizard hidden
bc Acronis backup partition
be Solaris 8 boot partition
bf New Solaris x86 partition
c0 CTOS
c0 REAL/32 secure small partition
c0 NTFT Partition
c0 DR-DOS/Novell DOS secured partition
c1 DRDOS/secured (FAT-12)
c2 Unused
c2 Hidden Linux
c3 Hidden Linux swap
c4 DRDOS/secured (FAT-16, &lt; 32M)
c5 DRDOS/secured (extended)
c6 DRDOS/secured (FAT-16, &gt;= 32M)
c6 Windows NT corrupted FAT16 volume/stripe set
c7 Windows NT corrupted NTFS volume/stripe set
c7 Syrinx boot
c8 Reserved for DR-DOS 8.0+
c9 Reserved for DR-DOS 8.0+
ca Reserved for DR-DOS 8.0+
cb DR-DOS 7.04+ secured FAT32 (CHS)
cc DR-DOS 7.04+ secured FAT32 (LBA)
cd CTOS Memdump
ce DR-DOS 7.04+ FAT16X (LBA)
cf DR-DOS 7.04+ secured EXT DOS (LBA)
d0 REAL/32 secure big partition
d0 Multiuser DOS secured partition
d1 Old Multiuser DOS secured FAT12
d4 Old Multiuser DOS secured FAT16 &lt;32M
d5 Old Multiuser DOS secured extended partition
d6 Old Multiuser DOS secured FAT16 &gt;=32M
d8 CP/M-86
da Non-FS Data
da Powercopy Backup
db Digital Research CP/M, Concurrent CP/M, Concurrent DOS
db CTOS (Convergent Technologies OS -Unisys)
db KDG Telemetry SCPU boot
dd Hidden CTOS Memdump
de Dell PowerEdge Server utilities (FAT fs)
df DG/UX virtual disk manager partition
df BootIt EMBRM
e0 Reserved by STMicroelectronics for a filesystem called ST AVFS.
e1 DOS access or SpeedStor 12-bit FAT extended partition
e3 DOS R/O or SpeedStor
e4 SpeedStor 16-bit FAT extended partition &lt; 1024 cyl.
e5 Tandy MSDOS with logically sectored FAT
e6 Storage Dimensions SpeedStor
e8 LUKS
eb BeOS BFS
ec SkyOS SkyFS
ee Indication that this legacy MBR is followed by an EFI header
ef Partition that contains an EFI file system
f0 Linux/PA-RISC boot loader
f1 Storage Dimensions SpeedStor
f2 DOS 3.3+ secondary partition
f3 Reserved
f4 SpeedStor large partition
f4 Prologue single-volume partition
f5 Prologue multi-volume partition
f6 Storage Dimensions SpeedStor
f7 DDRdrive Solid State File System
f9 pCache
fa Bochs
fb VMware File System partition
fc VMware Swap partition
fe SpeedStor &gt; 1024 cyl.
fe LANstep
fe IBM PS/2 IML (Initial Microcode Load) partition, located at the end of the disk
fe Windows NT Disk Administrator hidden partition
ff Xenix Bad Block Table
</code></pre></div></div>

<h1 id="настройка-спящего-режима">Настройка спящего режима</h1>
<p>Бокс позволяет изменять некоторые настройки через конфигурационный файл. Это работает, как на прошивке от iodd, так и на Zalman.</p>

<p>Настройки указываются в текстовом файле <code class="language-plaintext highlighter-rouge">_iodd.ini</code> (кодировка UTF-8, перевод строки CR+LF), расположенном внутри папки <code class="language-plaintext highlighter-rouge">_ISO</code>. Если файл не существует, то все нижеперечисленные возможности будут отключены. Для применения изменений нужно переподключить устройство.</p>

<p><code class="language-plaintext highlighter-rouge">powersave_time</code> — время неактивности, после которого произойдёт переход устройства в спящий режим (в секундах);<br />
<code class="language-plaintext highlighter-rouge">pd_on_exit</code> — если значение равно <code class="language-plaintext highlighter-rouge">1</code>, то бокс перейдёт в спящий режим при безопасном извлечении устройства (работает лишь в Windows XP);<br />
<code class="language-plaintext highlighter-rouge">health_period</code> — частота опроса накопителя о состоянии его здоровья (в секундах).</p>

<p>Значение <code class="language-plaintext highlighter-rouge">0</code> приводит к отключению соответствующей настройки.</p>

<p>Пример: спящий режим через 10 минут простоя, опрос накопителя каждые 4 минуты</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>powersave_time = 600
pd_on_exit = 0
health_period = 240
</code></pre></div></div>

<p>Вышеописанные параметры можно регулировать и через графический интерфейс утилиты <a href="/files/2021-8-31/iodd_lover_(E).zip">iodd Lover</a> (итогом работы которой всё равно станет создание <code class="language-plaintext highlighter-rouge">_iodd.ini</code>). Обратите внимание, что спящий режим не работает при подключении бокса через eSATA, поскольку в этом режиме диск подключается в обход контроллера бокса.</p>

<h1 id="полезные-советы">Полезные советы</h1>
<ul>
  <li>ZM-VE200 SE отличается от ZM-VE200 лишь отсутствием в комплекте кабеля eSATA, дизайном корпуса и отсутствием ферритового кольца на USB-кабеле. Электронная «начинка» и прошивки абсолютно идентичны.</li>
  <li>Прозрачную наклейку из комплекта нужно помещать на жёсткий диск со стороны платы, чтобы предотвратить возможное замыкание на корпус.</li>
  <li>Некорректное отображение кириллицы исправляется прошивкой шрифта через стандартный режим обновления программного обеспечения. Качаем <a href="/files/2021-8-31/iso_prg_font_latin®_global_Έ_C.zip">файл</a>, распаковываем и кладём в папку <code class="language-plaintext highlighter-rouge">_ISO</code>. В имени файла содержатся какие-то корейские символы, поэтому нужно переименовать во что-то более удобное, например <code class="language-plaintext highlighter-rouge">_iso_prg_font_latin_global.iso</code> (обязательное условие — имя файла должно начинаться с <code class="language-plaintext highlighter-rouge">_iso_prg_</code>). Далее опять-таки колёсиком выбираем этот образ, идёт прошивка шрифта и все образы с русскими символами в имени начинают отображаться правильно.</li>
  <li>Как избавиться от подключённых образов IMA (дискет) — они подключаются намертво, причём основной раздел становится доступным «только для чтения». Выходим в пункт меню «Begin of List» (начальный пункт меню со списком образов), зажимаем и держим колёсико, бокс перезагружается и отключает дискеты.</li>
  <li>Чтобы создать пустой образ дискеты (IMA) или флешки (RMD) в Windows выполните в командной строке <code class="language-plaintext highlighter-rouge">fsutil file createnew f:\_iso\floppy.ima 1500000</code></li>
  <li>Пустой бокс (без жёсткого диска) не работает при подключении к компьютеру. Горит лишь подсветка экрана.</li>
  <li>При подключении к старым системникам и ноутбукам, диску может не хватит питания от USB-порта. Если используется сторонний длинный кабель, стоит попробовать воспользоваться коротким «родным». Или приобрести Y-образный кабель Mini USB 2.0. Ещё имеет смысл попробовать воспользоваться не передними портами системника, а задними, расположенными непосредственно на материнской плате. Кроме того, можно попытаться включать не двойной режим, а только тот, который необходим (только HDD или только ODD).</li>
  <li>2.5” жёсткие диски Western Digital имеют <a href="/images/posts/2021-8-31/scrp_connect.png">специальный джампер для снижения токов раскрутки</a> (Reduced Power Spinup). Иногда это помогает решить проблему с невозможностью запуска таких дисков.</li>
  <li>C некоторыми дисками производства Seagate и некоторыми SSD-дисками индикатор активности диска не работает. LED-ом управляет сам жёсткий диск с помощью пина №11 в 15-контактном разъёме питания SATA. Мигание — функция аппаратная, её работа зависит от модели и прошивки жёсткого диска.</li>
  <li>Чип на плате сильно греется при работе. Высокая температура чипа — норма. Корейский производитель считает температуру до 50 градусов нормальной, а выше 60 — критической.</li>
  <li>Устройство нормально работает с дисками Advanced Format (например, WD7500BPVT, WD6400BPVT, WD5000BPVT).</li>
  <li>При проблемах загрузки с виртуального привода, имеет смысл включить в BIOS режим «Legacy mode» для USB.</li>
  <li>Хотите поменять порядок сортировки образов на устройстве? Воспользуйтесь утилитой <a href="/files/2021-8-31/File_Splitter_4G.zip">File Splitter 4G</a>. По невыясненной причине иногда на прошивке exFAT образы начинают сортироваться не по алфавиту, а по дате изменения. В качестве «костыля» можно использовать File Splitter 4G: подключить бокс в качестве USB-HDD, выбрать в программе букву диска, способ сортировки и нажать «Sort». Процедуру придётся повторять после каждого добавления или изменения образа.</li>
  <li>Если лень использовать безопасное извлечение устройства — переводим накопитель в спящий режим проворачиванием колёсика вниз и удержанием в таком положении больше 3 секунд. Вывод из спящего режима осуществляется любым нажатием.</li>
  <li>Переключать защиты от записи работает лишь при подключении по USB, но не при подключении по eSATA.</li>
  <li>Если сломался переключатель защиты от записи или лень его дёргать — необходимо в папку к образам (<code class="language-plaintext highlighter-rouge">_ISO</code>) поместить образ дискеты (IMA). Для защиты от записи монтируем образ, переключаем в режим «HDD - Mode» или «Dual - Mode». Всё, диск в режиме чтения, и отключится этот режим только при размонтировании дискеты (о размонтировании читайте выше). Подключения и отключения не влияют: пока дискета смонтирована, диск остаётся защищённым от записи.</li>
  <li>Плохо реагирует на некоторые «живые» дистрибутивы, которые осуществляют переинициализацию USB во время загрузки. В этот момент контейнер перезапускается, загрузчик теряет свой диск.</li>
  <li>Бокс умеет работать с жёсткими ссылками на NTFS. Например, на диске в <code class="language-plaintext highlighter-rouge">\Install\System\WinXP</code> находятся подпапки с образами, серийниками и инструкциями, в <code class="language-plaintext highlighter-rouge">\BackUp</code> — ещё что-нибудь. Если использовать жёсткие ссылки (hardlink), можно продублировать в папку <code class="language-plaintext highlighter-rouge">_ISO</code> только те образы, которые нужны, чтобы не ломать существующую структуру папок и не копировать в <code class="language-plaintext highlighter-rouge">_ISO</code> уже имеющиеся на жёстком диске образы.</li>
  <li>При нестабильной работе устройства: потеря диска через раз, ошибка ввода/вывода при попытке обращения, потеря папки <code class="language-plaintext highlighter-rouge">_ISO</code>, потеря информации о файловой системе и подобных проблемах — читайте статью <a href="https://rmprepusb.com/tutorials/034-the-zalman-zm-ve200-sata-hard-disk-caddy-with-dvd-hdd-fdd-emulation/">The ZALMAN ZM VE200 SATA hard disk caddy with DVD/HDD/FDD emulation</a>. После следования совету по переинициализации файловой системы, (с помощью RMPrepUSB) всё заработает нормально.</li>
  <li>Если бокс зависает при подгрузке образа или смене режима, попробуйте подключить его с зажатым в среднем положении колёсиком.</li>
  <li>Прошивка определяет назначение образа по имени файла:<br />
<code class="language-plaintext highlighter-rouge">_iso_firm_*</code> — это прошивка<br />
<code class="language-plaintext highlighter-rouge">_iso_prg_*</code> — это конфиг (настройки) прошивки</li>
  <li>На некоторых современных (с UEFI) материнских платах в загрузочном меню вместо, допустим, <code class="language-plaintext highlighter-rouge">UEFI: Virtual CDRom</code> отображается пункт <code class="language-plaintext highlighter-rouge">UEFI: ZMVE Ext Hard Disk</code>. Этот косметический недочёт исправлен в прошивках iodd.</li>
  <li>Бокс имеет скрытые возможности для настройки режима энергосбережения и частоты опроса S.M.A.R.T.</li>
  <li>Если компьютер не видит виртуальный CD/DVD-привод, но видит подключённые образы жёстких дисков (DSK), можно создать на компьютере виртуальный жёсткий диск размером несколько гигабайт, отформатировать и сделать активным. Скопировать на него файлы установочного диска. Размонтировать виртуальный жёсткий диск, скопировать в папку <code class="language-plaintext highlighter-rouge">_ISO</code>, изменив расширение с VHD на DSK, смонтировать его с помощью бокса и попытаться, загрузившись с этого образа, провести с него установку операционной системы.</li>
  <li>Существует утилита <a href="/files/2021-8-31/VHD_Tool++(v0.6.0.5)-01.zip">VHD Tool</a>, способная преобразовывать RAW-образы в формат VHD, расширять образы VHD «на лету» и дефрагментировать их. Бокс, в свою очередь, способен работать с этими образами после смены их расширения на DSK.</li>
  <li>Некоторые пользователи <a href="https://forum.ixbt.com/topic.cgi?id=11:44853:911#911">сообщают</a> о возможности использования с файловой системой FAT32 образов, размер которых превышает 4 ГБ. Для этого образ нужно разбить на части с помощью утилиты 4G File Splitter.</li>
</ul>

<h1 id="обновление-прошивки">Обновление прошивки</h1>
<p>Прошивки делятся на сделанные для NTFS и для FAT32/exFAT — сначала стоит решить, что же будет использоваться и скачать прошивку (ссылки на последние версии прошивок ищите в разделе «Ссылки»).</p>

<p>Нужно создать на диске папку <code class="language-plaintext highlighter-rouge">_ISO</code> и залить туда новую прошивку. Затем выбрать этот образ прошивки через меню и подключить — она автоматически прошьётся.</p>

<p>Примечание №1: Перепрошивка устройства не удаляет содержимое жёсткого диска, но если диск отформатирован в непонятную устройству файловую систему — он будет виден как простой внешний жёсткий диск.</p>

<p>Примечание №2: При загрузке с зажатой кнопкой сброса диск тоже будет виден, как простой внешний жёсткий диск.</p>

<h1 id="перепрошивка-в-iodd-2511-и-обратно">Перепрошивка в iodd-2511 и обратно</h1>
<p>Бокс легко прошивается прошивкой от iodd-2511 (Zalman и корейский производитель уже давно прекратили выпуск обновлённых прошивок, но корейцы прекратили позже, поэтому их прошивка чуть свежее).</p>

<p>Качаем последнюю прошивку от iodd. В зависимости от формата файловой системы вашего диска, она будет называться <a href="/files/2021-8-31/iso_firm_iodd2501_exFAT-newer.zip">iso_firm_iodd2501_exFAT-newer.zip</a> или <a href="/files/2021-8-31/iso_firm_iodd2501_NTFS-newer.zip">iso_firm_iodd2501_NTFS-newer.zip</a>. Распаковываем архив.</p>

<p>Перетаскиваем полученный ISO-файл в окно HEX-редактора (например, <a href="https://mh-nexus.de/hxd/">HxD</a>), находим третий по счету байт (выделен на <a href="/images/2021-8-31/zalman-to-iodd.png">изображении</a>), меняем его с <code class="language-plaintext highlighter-rouge">01</code> на <code class="language-plaintext highlighter-rouge">02</code>. Сохраняем файл и прошиваем обычным способом.</p>

<p>Возврат на «родную» прошивку: в прошивке от Zalman (см. в разделе «Ссылки») меняем третий байт с <code class="language-plaintext highlighter-rouge">02</code> на <code class="language-plaintext highlighter-rouge">01</code> и прошиваем. После этого снова прошиваем теперь уже оригинальной нетронутой залмановской прошивкой.</p>

<h1 id="ремонт-и-модификация">Ремонт и модификация</h1>

<p><img src="/images/posts/2021-8-31/post.jpg" alt="Изображение платы" /></p>

<h2 id="восстановление-прошивки">Восстановление прошивки</h2>
<p>Если прошивка «слетела» (через USB или eSATA работает, но на дисплее нет никакой информации — только подсвечен и всё) и, соответственно, отсутствует возможность перепрошить устройство в штатном режиме, необходимо воспользоваться утилитой iODD25x1 Firmware Repair. Требования:</p>
<ul>
  <li>32-разрядная операционная система;</li>
  <li>Установленная среда исполнения Java;</li>
  <li>Права администратора;</li>
  <li>Соответствие утилиты файловой системе первого раздела (того, где располагается папка <code class="language-plaintext highlighter-rouge">_ISO</code>) на устройстве: <a href="/files/2021-8-31/iODD25x1_Firmware_Repairx86_FAT.zip">версия для FAT</a>/<a href="/files/2021-8-31/iODD25x1_Firmware_Repairx86_NTFS.zip">версия для NTFS</a>.</li>
</ul>

<p>Следует, запустив предварительно утилиту с правами администратора, подключить бокс USB-кабелем к компьютеру и ввести бокс в режим firmware recovery, зажав секунд на 10 чем-то тонким кнопку «Reset» (кнопка располагается в дырочке на торце бокса). В ранее открытой утилите нажимаем кнопку «Scan USB». После того, как устройство будет найдено, нужно подождать секунд 30 и нажать кнопку «Program devices» (утилита покажет прогресс выполнения операции). После удачной прошивки отключаем бокс от компьютера и подключаем его уже обычным способом (без нажатия Reset). Поскольку теперь прошита какая-то очень древняя версия прошивки, стоит обновить её (ссылки на последние версии прошивок iodd ищите в разделе «Ссылки»).</p>

<h2 id="укрепление-разъёма-mini-usb">Укрепление разъёма Mini USB</h2>
<p>Если не жалко гарантии — пропаивайте или укрепляйте термоклеем (силиконом с помощью клеящего пистолета) разъём Mini USB, так как он имеет тенденцию к расшатыванию.</p>

<p>Ещё один способ снизить нагрузку на разъём — приобрести угловой переходник с Mini USB на Mini USB и пропустить кабель внутри чехла. Автор этих строк успешно использует угловой переходник с Mini USB на Micro USB и кабель Micro USB соответственно (следует помнить, что на старых системниках и ноутбуках диску может не хватать питания от одного USB-порта и понадобится Y-образный кабель).</p>

<h2 id="замена-разъёма-mini-usb-на-usb-type-c">Замена разъёма Mini USB на USB Type-C</h2>

<h3 id="вариант-1">Вариант 1</h3>
<p>Использовался микромодуль в виде разъёма USB-C на маленькой платке, где с другой стороны 4 контакта: Vcc, D+, D-, Gnd.</p>

<p><img src="/images/posts/2021-8-31/659a6a.jpg" alt="Вид снаружи" /></p>

<p><img src="/images/posts/2021-8-31/fe12f6.jpg" alt="Вид изнутри" /></p>

<p><img src="/images/posts/2021-8-31/H97ec842596934ddcb0769b5561e731308.jpg" alt="Разъём" /></p>

<p><a href="https://mysku.club/blog/aliexpress/85528.html#comment3824218">Источник</a></p>

<h3 id="вариант-2">Вариант 2</h3>
<p>Надфиль, выводы конденсаторов, платка с AliExpress, клей Kafuter AB.</p>

<p><img src="/images/posts/2021-8-31/1677091905902.jpg" alt="Вид снаружи" /></p>

<p><img src="/images/posts/2021-8-31/1677091905913.jpg" alt="Вид изнутри" /></p>

<p><img src="/images/posts/2021-8-31/1677091905934.jpg" alt="Разъём изнутри 1" /></p>

<p><img src="/images/posts/2021-8-31/1677091905943.jpg" alt="Разъём изнутри 2" /></p>

<p><img src="/images/posts/2021-8-31/1677091905924.jpg" alt="Внутренняя часть крышки" /></p>

<p><a href="https://mysku.club/blog/usa-stores/93748.html#comment4235681">Источник</a></p>

<h2 id="замена-колёсика">Замена колёсика</h2>
<p>JOG-DIAL подходит от копеечных китайских USB-медиаплееров (те, которые с батарейкой и радио). Ещё можно покопаться в коммуникаторах-динозаврах, вроде ASUS 527, и первых смартфонах от Sony. На eBay/AliExpress колёсики ищутся по запросу <code class="language-plaintext highlighter-rouge">SLLB510100</code>, а рычажок защиты от записи — <code class="language-plaintext highlighter-rouge">SPDT Switch 7</code> (<a href="/images/posts/2021-8-31/1285229578118_hz-myalibaba-web2_5142.png">размеры</a>).</p>

<h2 id="замена-колёсика-на-кнопки">Замена колёсика на кнопки</h2>
<p>4 провода напаяны на плату с одной стороны, а с другой на кнопки. Кнопки просто приклеены к экрану клеем при помощи клеевого пистолета (внутрь кнопки не помещались, использованы первые попавшиеся, использовать можно любые кнопки, в том числе и плёночные).</p>

<p><img src="/images/posts/2021-8-31/8fcfe9c5e9e4ce36e9b3cb7426f52503.jpg" alt="Финальный вид" /></p>

<p><img src="/images/posts/2021-8-31/c5eb2a6c0f1bf3cc5ad50e67d76108b1.jpg" alt="Раскладка кнопок" /></p>

<h2 id="замена-дисплея">Замена дисплея</h2>
<p>Дисплей полностью совместим с <a href="https://aliexpress.ru/item/32813149005.html">таковым от iodd-2531/2541</a>.</p>

<p><a href="/files/2021-8-31/MTC3059FB_MTC3059FB_MTC3059P04_MTC3059L02_MTC3059B01_datasheet.zip">Даташит на дисплей</a>. Можно найти аналогичный дисплей с похожей микросхемой и приделать к порту платы виртуального дисковода (возможно придётся переделать шлейф, если распиновка не совпадёт). Если вдруг сломается плата а дисплей будет исправен, благодаря даташиту вы сможете прикрутить дисплей к какой-нибудь ардуине. Для справки, модельные номера дисплея: весь дисплей в сборе — <code class="language-plaintext highlighter-rouge">MTC3059FB</code>, FPC плоский шлейф — <code class="language-plaintext highlighter-rouge">MTC3059P04</code>, сам экран — <code class="language-plaintext highlighter-rouge">MTC3059L02</code>, подсветка — <code class="language-plaintext highlighter-rouge">MTC3059B01</code>. Производитель дисплея: Microtech Technology Co. Ltd.</p>

<h2 id="установка-радиатора">Установка радиатора</h2>
<p>С чипа нужно снять наклейку. Потом намазать тонюсеньким слоем термопасту (она лучше проводит тепло, чем термоклей). Посадить радиатор на клей или через радиаторные заушины на винты (там уже есть 2 винта, необходимо лишь подобрать новые с учётом толщины радиатора).</p>

<p>Радиатор изогнут чтобы ничего не замкнуть и обеспечить прижатие корпусом.</p>

<p><img src="/images/posts/2021-8-31/radiator1.jpg" alt="Радиатор отдельно" /></p>

<p><img src="/images/posts/2021-8-31/radiator2.jpg" alt="Вид сбоку" /></p>

<p><img src="/images/posts/2021-8-31/radiator3.jpg" alt="Вид под углом" /></p>

<p><img src="/images/posts/2021-8-31/radiator4.jpg" alt="Вид сверху" /></p>

<h2 id="расстояние-между-диском-и-боксом">Расстояние между диском и боксом</h2>
<p>Уменьшение расстояния способствует лучшей передаче избыточного тепла с диска на корпус бокса. Неплохим решением будет кусок терморезины (добывается у оверклокеров или на радиорынке). На диск наклеиваются прокладки из терморезины: 0,5 мм с одной стороны и боков, и 2 мм с другой. Чтобы диск в таком «упакованном» виде вошёл в корпус, сверху на терморезину наклеивается тонкий термоскотч («медный») и диск, в натяг вставляется в корпус.</p>

<p>Прокладку из терморезины можно наклеить и на чип, чтобы создать тепловую перемычку на корпус.</p>

<p>К винчестеру стоит двумя ноутбучными винтиками прикрутить пластиковый «язычок», чтобы легче было снимать и устанавливать винчестер. Такой «язычок» можно вырезать из прозрачного пластика от упаковки BOX-ового процессора. Можно использовать пластиковую «черепаху» от винчестера 3,5” — вырезать полоску и привинтить её к подошве винчестера. Остаток «язычка»» загнуть внутрь, чтобы, при необходимости, удобно было извлекать винчестер.</p>

<h2 id="доп-конденсатор-в-шнур-питания">Доп. конденсатор в шнур питания</h2>
<p><a href="https://forum.ixbt.com/topic.cgi?id=11:42979-40#1432">Подробнее…</a></p>

<h2 id="ещё-один-пример-модификации-бокса">Ещё один пример модификации бокса</h2>
<ul>
  <li>Установлен фильтр (двойная катушка на феррите) от ноутбучной материнки. Он конструктивно предусмотрен, но ввиду удешевления изделия был заменен 0-омными резисторами;</li>
  <li>Установлен танталовый конденсатор 47мкФ/6,3в. в цепь питания. Отлично поместился вплотную к дисплею между 1 ногой стабилизатора и корпусом USB-разъёма;</li>
  <li>Добавлен теплоотвод между процессором и корпусом;</li>
  <li>Добавлено ферритовое кольцо на USB-кабель;</li>
  <li>При осмотре под микроскопом была выявлена плохая пайка USB и SATA разъёмов. Пропаял.</li>
</ul>

<p><a href="https://sergiokrm.livejournal.com/52144.html">Источник</a></p>

<h2 id="уменьшение-размера-и-веса-бокса">Уменьшение размера и веса бокса</h2>
<p>Потребуются:</p>
<ul>
  <li>SSD M.2 2242;</li>
  <li>короткий переходник M.2—SATA, например, <a href="https://aliexpress.ru/item/1005001514860304.html">такой</a>;</li>
  <li>3D-принтер;</li>
  <li>(опционально) угловой переходник с Mini USB на Micro USB, а также магнитный кабель Micro USB.</li>
</ul>

<p><img src="/images/posts/2021-8-31/custom_case.jpg" alt="Компактный и лёгкий бокс" /></p>

<h1 id="ссылки-и-файлы">Ссылки и файлы</h1>
<ul>
  <li><a href="https://habr.com/post/116799/">Обзор и тестирование на Хабре</a></li>
  <li><a href="https://ixbt.com/storage/esata-p22-zalman.shtml">Обзор и тестирование на iXBT</a></li>
  <li><a href="https://forum.ixbt.com/topic.cgi?id=11:42979">Обсуждение VE200 на iXBT (вопросы по работе с устройством следует задавать там)</a></li>
</ul>

<h2 id="прошивки">Прошивки</h2>
<ul>
  <li><a href="https://www.usbdev.ru/files/zalman/">ZM-VE200</a></li>
  <li><a href="https://www.usbdev.ru/files/iodd/">iodd-2501/2511</a></li>
</ul>

<h2 id="дополнительные-шрифты">Дополнительные шрифты</h2>
<ul>
  <li><a href="/files/2021-8-31/iso_prg_font_ganja(中)_2494_C.zip">китайский</a></li>
  <li><a href="/files/2021-8-31/iso_prg_font_latin®_hiraあ_bunja乙_C.zip">японский</a></li>
  <li><a href="/files/2021-8-31/iso_prg_font_latin_hangul(한글)_2350_C.zip">корейский</a></li>
</ul>

<p>Шрифты устанавливаются точно так же, как и кириллический (см. раздел «Полезные советы». При установке заменяется уже прошитый шрифт, так что одновременное использование нескольких шрифтов невозможно.</p>

<h2 id="руководство-пользователя">Руководство пользователя</h2>
<ul>
  <li><a href="/files/2021-8-31/iodd_2501_(Quick_Guide,_English).pdf">iodd 2501 (Quick Guide, English)</a></li>
  <li><a href="/files/2021-8-31/ko_guide_iodd2501.pdf">iodd 2501 (Quick Guide, Korean)</a></li>
  <li><a href="/files/2021-8-31/iodd_2501_(User_Manual,_English).pdf">iodd 2501 (User Manual, English)</a></li>
  <li><a href="/files/2021-8-31/ko_manual_iodd2501.pdf">iodd 2501 (User Manual, Korean)</a></li>
  <li><a href="/files/2021-8-31/iodd_2501_(Brochure,_English).pdf">iodd 2501 (Brochure, English)</a></li>
  <li><a href="/files/2021-8-31/qg_ko_iodd2511-20130807.pdf">iodd 2511 (Quick Guide, Korean)</a></li>
  <li><a href="/files/2021-8-31/Korean User_s Manual for iodd2511.pdf">iodd 2511 (User Manual, Korean)</a></li>
  <li><a href="/files/2021-8-31/Zalman_ZM-VE200_(User_Manual,_English).pdf">Zalman ZM-VE200 (User Manual, English)</a></li>
  <li><a href="/files/2021-8-31/Zalman_ZM-VE200SE_(User_Manual,_English).pdf">Zalman ZM-VE200SE (User Manual, English))</a></li>
  <li><a href="/files/2021-8-31/ZM-VE200_офсайт.chm">ZM-VE200 (копия оф. сайта)</a></li>
  <li><a href="/files/2021-8-31/iodd_virtual_USB_drive_guide_0425.pdf">VHD Tool (User Manual, English)</a></li>
  <li><a href="/files/2021-8-31/iodd_virtual_USB_drive_guide_0425_KO.pdf">VHD Tool (User Manual, Korean)</a></li>
  <li><a href="/files/2021-8-31/FAT32_File_Split_Utility_(User_Manual,_English).pdf">4G File Splitter (User Manual, English)</a></li>
  <li><a href="/files/2021-8-31/What's_new.txt">Список изменений прошивки (неполный)</a></li>
</ul>]]></content><author><name>Alexander Gavrilov</name></author><category term="zalman" /><category term="iodd" /><category term="ve200" /><category term="hdd" /><category term="бокс" /><summary type="html"><![CDATA[В отличие от конкурентов, помимо обычной роли компактного переносного накопителя, умеет монтировать лежащие в папке _ISO образы на виртуальный привод. Это даёт возможность перегнать в образы горы необходимых для работы дисков и забыть про запись болванок. Отлично работает на обычных компьютерах с Linux, Mac, Windows и виртуальных машинах наподобие VirtualBox. Характеристики Внешний корпус для накопителей Zalman ZM-VE200 является первым в мире решением такого рода, снабжённым поддержкой функции виртуального диска. Это даёт возможность пользователям загружать на HDD/SSD-накопитель ISO-образы CD/DVD/BD-дисков, и затем работать с ними как с настоящими оптическими накопителями. Это не разработка Zalman, а лицензированная модель iodd-2501/2511. Изготовлен из алюминия и выполнен в элегантном тонком дизайне, при этом его габариты составляют 135,3 x 78,6 x 13,1 мм, а вес 98,5 грамм. Устройство оснащено LCD экраном, отображающим список загруженных ISO образов, и снабжено интерфейсами USB 2.0 и eSATA. Тип оборудования: внешний бокс Форматы поддерживаемых HDD: 2.5” Интерфейсы подключаемых HDD: SATA, SATA-II Толщина подключаемых HDD: не более 10,5 мм Интерфейс подключения к ПК: eSATA, USB 2.0 Количество слотов для HDD: 1 Питание: от USB Цвет: серебристый, чёрный Материал корпуса: алюминий Использование образов Виртуальный привод может эмулировать не только USB-CD-ROM, но и USB-FDD, USB-HDD. Устройство умеет работать со следующими типами образов: образы CD/DVD/BD в форматах ISO и CDR; образы в формате TOA (автору этих строк не попадались). образы дискет в формате IMA; образы жёстких дисков в формате DSK (а также VHD, при условии смены расширения на RMD или DSK) и Removable Disk image в формате RMD; В последних трёх случаях, контроллер переключается в режим Removable Device и позволяет, помимо CD/DVD/BD образа, замонтировать до 4 устройств. Чтобы устройство «увидело» образы, надо в корне первого раздела жёсткого диска создать папку под названием _ISO и поместить в неё необходимые файлы образов. Устройство справляется с файлами размером больше 4 ГБ, если это умеет используемая файловая система (exFAT или NTFS). В папке _ISO может содержаться не более 32 объектов (суммарно образов и папок). В каждой из вложенных папок действуют аналогичные ограничения. Глубина вложенности ограничена лишь используемой файловой системой (рано или поздно длина пути к образу начнёт превышать ограничения файловой системы). Раздел для _ISO всегда должен быть MBR, первым, основным, флаг загрузки роли не играет. Файловая система раздела должна соответствовать прошивке. Использование образов дискет Кроме ISO-образов устройство умеет монтировать до 4-х образов дискет в формате IMA и позволяет производить на них запись. Монтирование образов сдвинуть рычажок вниз, чтобы попасть в меню выбора образов; с помощью рычажка выбрать нужный образ; щелчком подтвердить свой выбор и вернуться на основной экран; щёлкнуть ещё раз, чтобы подключить образ. В системе появится floppy-дисковод с выбранным образом. Отключения всех образов дискет перейти в пункт меню «Begin of list» (начальный пункт меню со списком образов); зажать рычажок в среднем положении на несколько секунд; устройство перезагрузится, отключив образ дискеты. Того же эффекта можно достичь вытащив USB-кабель с последующим его подключением вместе с удержанием зажатого рычажка (разъем Mini USB прочностью не отличается, без нужды лучше его не тревожить). Меню и управление Управление осуществляется с помощью колёсика, находящегося сбоку контейнера. Рычажок вверх — пункт «Mode Select» (выбор режима работы устройства). Рычажок вниз — перейти к выбору образов. Нажатие на рычажок производит следующие действия: перейти к смене режима при выборе пункта «Mode Select»; выбрать образ для монтирования из списка образов; смонтировать или отключить выбранный образ. Удерживание рычажка в нижнем положении в течение нескольких секунд позволяет остановить шпиндель жёсткого диска. Удерживание рычажка в верхнем положении в течение нескольких секунд позволяет пересканировать папку _ISO на наличие новых образов. С помощью рычажка можно указать режим работы устройства непосредственно перед подключением: зажать в среднем положении — запуск в «Dual - Mode» (CD-ROM + HDD); провернуть вверх и удерживать — запуск в «ODD - Mode» (только CD-ROM); провернуть вниз и удерживать — запуск в «HDD - Mode» (только HDD). Коды ошибок Error 15 — на диске обнаружены повреждённые сектора. Error 23 — повреждена файловая система, необходимо запустить проверку диска. 1st Partition : 0 &gt; Partition is not set — диск не разбит на разделы или же файловая система первого раздела не совпадает с типом прошивки. 1st Partition : 5 &gt; ZM-VE200 Hard Disk have extended partition — жёсткий диск содержит расширенный раздел. Отформатируйте его согласно типу прошивки. 1st Partition : 6 &gt; ZM-VE200 Hard Disk is formatted as FAT — раздел отформатирован в FAT (не в FAT32). Отформатируйте его согласно типу прошивки. 1st Partition : 7 &gt; ZM-VE200 Hard disk is formatted as NTFS — прошивка FAT не поддерживает NTFS. Отформатируйте раздел в FAT32 или exFAT. 1st Partition : C &gt; ZM-VE200 Hard Disk is formatted as FAT32 — прошивка NTFS не поддерживает FAT32. Отформатируйте раздел в NTFS. 1st Partition : F &gt; Extended partition — логические и расширенные разделы не поддерживаются, создайте раздел, как основной. 1st Partition : FF &gt; ZM-VE200 Hard Disk is formatted as exFAT — эта прошивка не поддерживает exFAT. Отформатируйте раздел в NTFS. 1st Partition: EE : MBR area is existed after EFI header — создайте новый и удалите старый раздел в «Управлении дисками». Если не помогло, попробуйте выполнить инициализацию. Это займёт какое-то время, наберитесь терпения. NO _ISO — не найдена папка _ISO или _iso на первом разделе. NO - DISC — в папке _ISO не найдены файлы с допустимыми расширениями (ISO, IMA, DSK, RMD). TOO Many FILES — в корне папки _ISO (и в любой другой папке, которая находится внутри _ISO) может содержаться не более 32 объектов (файлов + папок). ALREADY HIT — данный файл уже был выбран для эмуляции, загружен и эмулируется. vDISK LIMIT — бокс может одновременно эмулировать не более 4 виртуальных дискет. DEFRAG!! — скорее всего, раздел отформатирован в NTFS и файл образа, который вы пытаетесь эмулировать, фрагментирован. Необходимо дефрагментировать раздел или, как минимум, этот файл образа. Если дефрагментация не помогает, то скорее всего это так называемый sparse-файл. Такой файл может получиться, например, в результате загрузки торрента. Копирование и удаление оригинала (не перемещение!) этого файла должно решить проблему. Если сообщение вида 1st Partition : XX не соответствует указанным выше, то оно может указывать на тип неподдерживаемого раздела: 00 Empty 01 DOS 12-bit FAT 02 XENIX root 03 XENIX /usr 04 DOS 3.0+ 16-bit FAT (up to 32M) 05 DOS 3.3+ Extended Partition 06 DOS 3.31+ 16-bit FAT (over 32M) 07 OS/2 IFS (e.g., HPFS) 07 Windows NT NTFS 07 exFAT 07 Advanced Unix 07 QNX2.x pre-1988 (see below under IDs 4d-4f) 08 OS/2 (v1.0-1.3 only) 08 AIX boot partition 08 SplitDrive 08 Commodore DOS 08 DELL partition spanning multiple drives 08 QNX 1.x and 2.x ("qny") 09 AIX data partition 09 Coherent filesystem 09 QNX 1.x and 2.x ("qnz") 0a Coherent swap partition 0a OPUS 0b WIN95 OSR2 FAT32 0c WIN95 OSR2 FAT32, LBA-mapped 0e WIN95: DOS 16-bit FAT, LBA-mapped 0f WIN95: Extended partition, LBA-mapped 10 OPUS (?) 11 Hidden DOS 12-bit FAT 11 Leading Edge DOS 3.x logically sectored FAT 12 Configuration/diagnostics partition 14 Hidden DOS 16-bit FAT &lt;32M 14 AST DOS with logically sectored FAT 16 Hidden DOS 16-bit FAT &gt;=32M 17 Hidden IFS (e.g., HPFS) 18 AST SmartSleep Partition 19 Unused 1b Hidden WIN95 OSR2 FAT32 1c Hidden WIN95 OSR2 FAT32, LBA-mapped 1e Hidden WIN95 16-bit FAT, LBA-mapped 20 Unused 21 Reserved 21 Unused 22 Unused 23 Reserved 24 NEC DOS 3.x 26 Reserved 27 PQservice 27 Windows RE hidden partition 27 MirOS partition 27 RouterBOOT kernel partition 2a AtheOS File System (AFS) 2b SyllableSecure (SylStor) 31 Reserved 32 NOS 33 Reserved 34 Reserved 35 JFS on OS/2 or eCS 36 Reserved 38 THEOS ver 3.2 2gb partition 39 Plan 9 partition 39 THEOS ver 4 spanned partition 3a THEOS ver 4 4gb partition 3b THEOS ver 4 extended partition 3c PartitionMagic recovery partition 3d Hidden NetWare 40 Venix 80286 40 PICK 41 Linux/MINIX (sharing disk with DRDOS) 41 Personal RISC Boot 41 PPC PReP (Power PC Reference Platform) Boot 42 Linux swap (sharing disk with DRDOS) 42 SFS (Secure Filesystem) 42 Windows 2000 dynamic extended partition marker 43 Linux native (sharing disk with DRDOS) 44 GoBack partition 45 Boot-US boot manager 45 Priam 45 EUMEL/Elan 46 EUMEL/Elan 47 EUMEL/Elan 48 EUMEL/Elan 4a Mark Aitchison's ALFS/THIN lightweight filesystem for DOS 4a AdaOS Aquila (Withdrawn) 4c Oberon partition 4d QNX4.x 4e QNX4.x 2nd part 4f QNX4.x 3rd part 4f Oberon partition 50 OnTrack Disk Manager (older versions) RO 50 Lynx RTOS 50 Native Oberon (alt) 51 OnTrack Disk Manager RW (DM6 Aux1) 51 Novell 52 CP/M 52 Microport SysV/AT 53 Disk Manager 6.0 Aux3 54 Disk Manager 6.0 Dynamic Drive Overlay (DDO) 55 EZ-Drive 56 Golden Bow VFeature Partitioned Volume. 56 DM converted to EZ-BIOS 56 AT&amp;T MS-DOS 3.x logically sectored FAT. 57 DrivePro 57 VNDI Partition 5c Priam EDisk 61 SpeedStor 63 Unix System V (SCO, ISC Unix, UnixWare, …), Mach, GNU Hurd 64 PC-ARMOUR protected partition 64 Novell Netware 286, 2.xx 65 Novell Netware 386, 3.xx or 4.xx 66 Novell Netware SMS Partition 67 Novell 68 Novell 69 Novell Netware 5+, Novell Netware NSS Partition 6e ?? 70 DiskSecure Multi-Boot 71 Reserved 72 V7/x86 73 Reserved 74 Reserved 74 Scramdisk partition 75 IBM PC/IX 76 Reserved 77 M2FS/M2CS partition 77 VNDI Partition 78 XOSL FS 7e Unused 7f Unused 80 MINIX until 1.4a 81 MINIX since 1.4b, early Linux 81 Mitac disk manager 82 Prime 82 Solaris x86 82 Linux swap 83 Linux native partition 84 OS/2 hidden C: drive 84 Hibernation partition 85 Linux extended partition 86 Old Linux RAID partition superblock 86 FAT16 volume set 87 NTFS volume set 88 Linux plaintext partition table 8a Linux Kernel Partition (used by AiR-BOOT) 8b Legacy Fault Tolerant FAT32 volume 8c Legacy Fault Tolerant FAT32 volume using BIOS extd INT 13h 8d Free FDISK 0.96+ hidden Primary DOS FAT12 partition 8e Linux Logical Volume Manager partition 90 Free FDISK 0.96+ hidden Primary DOS FAT16 partition 91 Free FDISK 0.96+ hidden DOS extended partition 92 Free FDISK 0.96+ hidden Primary DOS large FAT16 partition 93 Hidden Linux native partition 93 Amoeba 94 Amoeba bad block table 95 MIT EXOPC native partitions 96 CHRP ISO-9660 filesystem 97 Free FDISK 0.96+ hidden Primary DOS FAT32 partition 98 Free FDISK 0.96+ hidden Primary DOS FAT32 partition (LBA) 98 Datalight ROM-DOS Super-Boot Partition 99 DCE376 logical drive 9a Free FDISK 0.96+ hidden Primary DOS FAT16 partition (LBA) 9b Free FDISK 0.96+ hidden DOS extended partition (LBA) 9e ForthOS partition 9f BSD/OS a0 Laptop hibernation partition a1 Laptop hibernation partition a1 HP Volume Expansion (SpeedStor variant) a3 HP Volume Expansion (SpeedStor variant) a4 HP Volume Expansion (SpeedStor variant) a5 BSD/386, 386BSD, NetBSD, FreeBSD a6 OpenBSD a6 HP Volume Expansion (SpeedStor variant) a7 NeXTStep a8 Mac OS-X a9 NetBSD ab Mac OS-X Boot partition ab GO! partition ae ShagOS filesystem af ShagOS swap partition af MacOS X HFS b0 BootStar Dummy b1 HP Volume Expansion (SpeedStor variant) b1 QNX Neutrino Power-Safe filesystem b2 QNX Neutrino Power-Safe filesystem b3 HP Volume Expansion (SpeedStor variant) b3 QNX Neutrino Power-Safe filesystem b4 HP Volume Expansion (SpeedStor variant) b6 HP Volume Expansion (SpeedStor variant) b6 Corrupted Windows NT mirror set (master), FAT16 file system b7 Corrupted Windows NT mirror set (master), NTFS file system b7 BSDI BSD/386 filesystem b8 BSDI BSD/386 swap partition bb Boot Wizard hidden bc Acronis backup partition be Solaris 8 boot partition bf New Solaris x86 partition c0 CTOS c0 REAL/32 secure small partition c0 NTFT Partition c0 DR-DOS/Novell DOS secured partition c1 DRDOS/secured (FAT-12) c2 Unused c2 Hidden Linux c3 Hidden Linux swap c4 DRDOS/secured (FAT-16, &lt; 32M) c5 DRDOS/secured (extended) c6 DRDOS/secured (FAT-16, &gt;= 32M) c6 Windows NT corrupted FAT16 volume/stripe set c7 Windows NT corrupted NTFS volume/stripe set c7 Syrinx boot c8 Reserved for DR-DOS 8.0+ c9 Reserved for DR-DOS 8.0+ ca Reserved for DR-DOS 8.0+ cb DR-DOS 7.04+ secured FAT32 (CHS) cc DR-DOS 7.04+ secured FAT32 (LBA) cd CTOS Memdump ce DR-DOS 7.04+ FAT16X (LBA) cf DR-DOS 7.04+ secured EXT DOS (LBA) d0 REAL/32 secure big partition d0 Multiuser DOS secured partition d1 Old Multiuser DOS secured FAT12 d4 Old Multiuser DOS secured FAT16 &lt;32M d5 Old Multiuser DOS secured extended partition d6 Old Multiuser DOS secured FAT16 &gt;=32M d8 CP/M-86 da Non-FS Data da Powercopy Backup db Digital Research CP/M, Concurrent CP/M, Concurrent DOS db CTOS (Convergent Technologies OS -Unisys) db KDG Telemetry SCPU boot dd Hidden CTOS Memdump de Dell PowerEdge Server utilities (FAT fs) df DG/UX virtual disk manager partition df BootIt EMBRM e0 Reserved by STMicroelectronics for a filesystem called ST AVFS. e1 DOS access or SpeedStor 12-bit FAT extended partition e3 DOS R/O or SpeedStor e4 SpeedStor 16-bit FAT extended partition &lt; 1024 cyl. e5 Tandy MSDOS with logically sectored FAT e6 Storage Dimensions SpeedStor e8 LUKS eb BeOS BFS ec SkyOS SkyFS ee Indication that this legacy MBR is followed by an EFI header ef Partition that contains an EFI file system f0 Linux/PA-RISC boot loader f1 Storage Dimensions SpeedStor f2 DOS 3.3+ secondary partition f3 Reserved f4 SpeedStor large partition f4 Prologue single-volume partition f5 Prologue multi-volume partition f6 Storage Dimensions SpeedStor f7 DDRdrive Solid State File System f9 pCache fa Bochs fb VMware File System partition fc VMware Swap partition fe SpeedStor &gt; 1024 cyl. fe LANstep fe IBM PS/2 IML (Initial Microcode Load) partition, located at the end of the disk fe Windows NT Disk Administrator hidden partition ff Xenix Bad Block Table Настройка спящего режима Бокс позволяет изменять некоторые настройки через конфигурационный файл. Это работает, как на прошивке от iodd, так и на Zalman. Настройки указываются в текстовом файле _iodd.ini (кодировка UTF-8, перевод строки CR+LF), расположенном внутри папки _ISO. Если файл не существует, то все нижеперечисленные возможности будут отключены. Для применения изменений нужно переподключить устройство. powersave_time — время неактивности, после которого произойдёт переход устройства в спящий режим (в секундах); pd_on_exit — если значение равно 1, то бокс перейдёт в спящий режим при безопасном извлечении устройства (работает лишь в Windows XP); health_period — частота опроса накопителя о состоянии его здоровья (в секундах). Значение 0 приводит к отключению соответствующей настройки. Пример: спящий режим через 10 минут простоя, опрос накопителя каждые 4 минуты powersave_time = 600 pd_on_exit = 0 health_period = 240 Вышеописанные параметры можно регулировать и через графический интерфейс утилиты iodd Lover (итогом работы которой всё равно станет создание _iodd.ini). Обратите внимание, что спящий режим не работает при подключении бокса через eSATA, поскольку в этом режиме диск подключается в обход контроллера бокса. Полезные советы ZM-VE200 SE отличается от ZM-VE200 лишь отсутствием в комплекте кабеля eSATA, дизайном корпуса и отсутствием ферритового кольца на USB-кабеле. Электронная «начинка» и прошивки абсолютно идентичны. Прозрачную наклейку из комплекта нужно помещать на жёсткий диск со стороны платы, чтобы предотвратить возможное замыкание на корпус. Некорректное отображение кириллицы исправляется прошивкой шрифта через стандартный режим обновления программного обеспечения. Качаем файл, распаковываем и кладём в папку _ISO. В имени файла содержатся какие-то корейские символы, поэтому нужно переименовать во что-то более удобное, например _iso_prg_font_latin_global.iso (обязательное условие — имя файла должно начинаться с _iso_prg_). Далее опять-таки колёсиком выбираем этот образ, идёт прошивка шрифта и все образы с русскими символами в имени начинают отображаться правильно. Как избавиться от подключённых образов IMA (дискет) — они подключаются намертво, причём основной раздел становится доступным «только для чтения». Выходим в пункт меню «Begin of List» (начальный пункт меню со списком образов), зажимаем и держим колёсико, бокс перезагружается и отключает дискеты. Чтобы создать пустой образ дискеты (IMA) или флешки (RMD) в Windows выполните в командной строке fsutil file createnew f:\_iso\floppy.ima 1500000 Пустой бокс (без жёсткого диска) не работает при подключении к компьютеру. Горит лишь подсветка экрана. При подключении к старым системникам и ноутбукам, диску может не хватит питания от USB-порта. Если используется сторонний длинный кабель, стоит попробовать воспользоваться коротким «родным». Или приобрести Y-образный кабель Mini USB 2.0. Ещё имеет смысл попробовать воспользоваться не передними портами системника, а задними, расположенными непосредственно на материнской плате. Кроме того, можно попытаться включать не двойной режим, а только тот, который необходим (только HDD или только ODD). 2.5” жёсткие диски Western Digital имеют специальный джампер для снижения токов раскрутки (Reduced Power Spinup). Иногда это помогает решить проблему с невозможностью запуска таких дисков. C некоторыми дисками производства Seagate и некоторыми SSD-дисками индикатор активности диска не работает. LED-ом управляет сам жёсткий диск с помощью пина №11 в 15-контактном разъёме питания SATA. Мигание — функция аппаратная, её работа зависит от модели и прошивки жёсткого диска. Чип на плате сильно греется при работе. Высокая температура чипа — норма. Корейский производитель считает температуру до 50 градусов нормальной, а выше 60 — критической. Устройство нормально работает с дисками Advanced Format (например, WD7500BPVT, WD6400BPVT, WD5000BPVT). При проблемах загрузки с виртуального привода, имеет смысл включить в BIOS режим «Legacy mode» для USB. Хотите поменять порядок сортировки образов на устройстве? Воспользуйтесь утилитой File Splitter 4G. По невыясненной причине иногда на прошивке exFAT образы начинают сортироваться не по алфавиту, а по дате изменения. В качестве «костыля» можно использовать File Splitter 4G: подключить бокс в качестве USB-HDD, выбрать в программе букву диска, способ сортировки и нажать «Sort». Процедуру придётся повторять после каждого добавления или изменения образа. Если лень использовать безопасное извлечение устройства — переводим накопитель в спящий режим проворачиванием колёсика вниз и удержанием в таком положении больше 3 секунд. Вывод из спящего режима осуществляется любым нажатием. Переключать защиты от записи работает лишь при подключении по USB, но не при подключении по eSATA. Если сломался переключатель защиты от записи или лень его дёргать — необходимо в папку к образам (_ISO) поместить образ дискеты (IMA). Для защиты от записи монтируем образ, переключаем в режим «HDD - Mode» или «Dual - Mode». Всё, диск в режиме чтения, и отключится этот режим только при размонтировании дискеты (о размонтировании читайте выше). Подключения и отключения не влияют: пока дискета смонтирована, диск остаётся защищённым от записи. Плохо реагирует на некоторые «живые» дистрибутивы, которые осуществляют переинициализацию USB во время загрузки. В этот момент контейнер перезапускается, загрузчик теряет свой диск. Бокс умеет работать с жёсткими ссылками на NTFS. Например, на диске в \Install\System\WinXP находятся подпапки с образами, серийниками и инструкциями, в \BackUp — ещё что-нибудь. Если использовать жёсткие ссылки (hardlink), можно продублировать в папку _ISO только те образы, которые нужны, чтобы не ломать существующую структуру папок и не копировать в _ISO уже имеющиеся на жёстком диске образы. При нестабильной работе устройства: потеря диска через раз, ошибка ввода/вывода при попытке обращения, потеря папки _ISO, потеря информации о файловой системе и подобных проблемах — читайте статью The ZALMAN ZM VE200 SATA hard disk caddy with DVD/HDD/FDD emulation. После следования совету по переинициализации файловой системы, (с помощью RMPrepUSB) всё заработает нормально. Если бокс зависает при подгрузке образа или смене режима, попробуйте подключить его с зажатым в среднем положении колёсиком. Прошивка определяет назначение образа по имени файла: _iso_firm_* — это прошивка _iso_prg_* — это конфиг (настройки) прошивки На некоторых современных (с UEFI) материнских платах в загрузочном меню вместо, допустим, UEFI: Virtual CDRom отображается пункт UEFI: ZMVE Ext Hard Disk. Этот косметический недочёт исправлен в прошивках iodd. Бокс имеет скрытые возможности для настройки режима энергосбережения и частоты опроса S.M.A.R.T. Если компьютер не видит виртуальный CD/DVD-привод, но видит подключённые образы жёстких дисков (DSK), можно создать на компьютере виртуальный жёсткий диск размером несколько гигабайт, отформатировать и сделать активным. Скопировать на него файлы установочного диска. Размонтировать виртуальный жёсткий диск, скопировать в папку _ISO, изменив расширение с VHD на DSK, смонтировать его с помощью бокса и попытаться, загрузившись с этого образа, провести с него установку операционной системы. Существует утилита VHD Tool, способная преобразовывать RAW-образы в формат VHD, расширять образы VHD «на лету» и дефрагментировать их. Бокс, в свою очередь, способен работать с этими образами после смены их расширения на DSK. Некоторые пользователи сообщают о возможности использования с файловой системой FAT32 образов, размер которых превышает 4 ГБ. Для этого образ нужно разбить на части с помощью утилиты 4G File Splitter. Обновление прошивки Прошивки делятся на сделанные для NTFS и для FAT32/exFAT — сначала стоит решить, что же будет использоваться и скачать прошивку (ссылки на последние версии прошивок ищите в разделе «Ссылки»). Нужно создать на диске папку _ISO и залить туда новую прошивку. Затем выбрать этот образ прошивки через меню и подключить — она автоматически прошьётся. Примечание №1: Перепрошивка устройства не удаляет содержимое жёсткого диска, но если диск отформатирован в непонятную устройству файловую систему — он будет виден как простой внешний жёсткий диск. Примечание №2: При загрузке с зажатой кнопкой сброса диск тоже будет виден, как простой внешний жёсткий диск. Перепрошивка в iodd-2511 и обратно Бокс легко прошивается прошивкой от iodd-2511 (Zalman и корейский производитель уже давно прекратили выпуск обновлённых прошивок, но корейцы прекратили позже, поэтому их прошивка чуть свежее). Качаем последнюю прошивку от iodd. В зависимости от формата файловой системы вашего диска, она будет называться iso_firm_iodd2501_exFAT-newer.zip или iso_firm_iodd2501_NTFS-newer.zip. Распаковываем архив. Перетаскиваем полученный ISO-файл в окно HEX-редактора (например, HxD), находим третий по счету байт (выделен на изображении), меняем его с 01 на 02. Сохраняем файл и прошиваем обычным способом. Возврат на «родную» прошивку: в прошивке от Zalman (см. в разделе «Ссылки») меняем третий байт с 02 на 01 и прошиваем. После этого снова прошиваем теперь уже оригинальной нетронутой залмановской прошивкой. Ремонт и модификация Восстановление прошивки Если прошивка «слетела» (через USB или eSATA работает, но на дисплее нет никакой информации — только подсвечен и всё) и, соответственно, отсутствует возможность перепрошить устройство в штатном режиме, необходимо воспользоваться утилитой iODD25x1 Firmware Repair. Требования: 32-разрядная операционная система; Установленная среда исполнения Java; Права администратора; Соответствие утилиты файловой системе первого раздела (того, где располагается папка _ISO) на устройстве: версия для FAT/версия для NTFS. Следует, запустив предварительно утилиту с правами администратора, подключить бокс USB-кабелем к компьютеру и ввести бокс в режим firmware recovery, зажав секунд на 10 чем-то тонким кнопку «Reset» (кнопка располагается в дырочке на торце бокса). В ранее открытой утилите нажимаем кнопку «Scan USB». После того, как устройство будет найдено, нужно подождать секунд 30 и нажать кнопку «Program devices» (утилита покажет прогресс выполнения операции). После удачной прошивки отключаем бокс от компьютера и подключаем его уже обычным способом (без нажатия Reset). Поскольку теперь прошита какая-то очень древняя версия прошивки, стоит обновить её (ссылки на последние версии прошивок iodd ищите в разделе «Ссылки»). Укрепление разъёма Mini USB Если не жалко гарантии — пропаивайте или укрепляйте термоклеем (силиконом с помощью клеящего пистолета) разъём Mini USB, так как он имеет тенденцию к расшатыванию. Ещё один способ снизить нагрузку на разъём — приобрести угловой переходник с Mini USB на Mini USB и пропустить кабель внутри чехла. Автор этих строк успешно использует угловой переходник с Mini USB на Micro USB и кабель Micro USB соответственно (следует помнить, что на старых системниках и ноутбуках диску может не хватать питания от одного USB-порта и понадобится Y-образный кабель). Замена разъёма Mini USB на USB Type-C Вариант 1 Использовался микромодуль в виде разъёма USB-C на маленькой платке, где с другой стороны 4 контакта: Vcc, D+, D-, Gnd. Источник Вариант 2 Надфиль, выводы конденсаторов, платка с AliExpress, клей Kafuter AB. Источник Замена колёсика JOG-DIAL подходит от копеечных китайских USB-медиаплееров (те, которые с батарейкой и радио). Ещё можно покопаться в коммуникаторах-динозаврах, вроде ASUS 527, и первых смартфонах от Sony. На eBay/AliExpress колёсики ищутся по запросу SLLB510100, а рычажок защиты от записи — SPDT Switch 7 (размеры). Замена колёсика на кнопки 4 провода напаяны на плату с одной стороны, а с другой на кнопки. Кнопки просто приклеены к экрану клеем при помощи клеевого пистолета (внутрь кнопки не помещались, использованы первые попавшиеся, использовать можно любые кнопки, в том числе и плёночные). Замена дисплея Дисплей полностью совместим с таковым от iodd-2531/2541. Даташит на дисплей. Можно найти аналогичный дисплей с похожей микросхемой и приделать к порту платы виртуального дисковода (возможно придётся переделать шлейф, если распиновка не совпадёт). Если вдруг сломается плата а дисплей будет исправен, благодаря даташиту вы сможете прикрутить дисплей к какой-нибудь ардуине. Для справки, модельные номера дисплея: весь дисплей в сборе — MTC3059FB, FPC плоский шлейф — MTC3059P04, сам экран — MTC3059L02, подсветка — MTC3059B01. Производитель дисплея: Microtech Technology Co. Ltd. Установка радиатора С чипа нужно снять наклейку. Потом намазать тонюсеньким слоем термопасту (она лучше проводит тепло, чем термоклей). Посадить радиатор на клей или через радиаторные заушины на винты (там уже есть 2 винта, необходимо лишь подобрать новые с учётом толщины радиатора). Радиатор изогнут чтобы ничего не замкнуть и обеспечить прижатие корпусом. Расстояние между диском и боксом Уменьшение расстояния способствует лучшей передаче избыточного тепла с диска на корпус бокса. Неплохим решением будет кусок терморезины (добывается у оверклокеров или на радиорынке). На диск наклеиваются прокладки из терморезины: 0,5 мм с одной стороны и боков, и 2 мм с другой. Чтобы диск в таком «упакованном» виде вошёл в корпус, сверху на терморезину наклеивается тонкий термоскотч («медный») и диск, в натяг вставляется в корпус. Прокладку из терморезины можно наклеить и на чип, чтобы создать тепловую перемычку на корпус. К винчестеру стоит двумя ноутбучными винтиками прикрутить пластиковый «язычок», чтобы легче было снимать и устанавливать винчестер. Такой «язычок» можно вырезать из прозрачного пластика от упаковки BOX-ового процессора. Можно использовать пластиковую «черепаху» от винчестера 3,5” — вырезать полоску и привинтить её к подошве винчестера. Остаток «язычка»» загнуть внутрь, чтобы, при необходимости, удобно было извлекать винчестер. Доп. конденсатор в шнур питания Подробнее… Ещё один пример модификации бокса Установлен фильтр (двойная катушка на феррите) от ноутбучной материнки. Он конструктивно предусмотрен, но ввиду удешевления изделия был заменен 0-омными резисторами; Установлен танталовый конденсатор 47мкФ/6,3в. в цепь питания. Отлично поместился вплотную к дисплею между 1 ногой стабилизатора и корпусом USB-разъёма; Добавлен теплоотвод между процессором и корпусом; Добавлено ферритовое кольцо на USB-кабель; При осмотре под микроскопом была выявлена плохая пайка USB и SATA разъёмов. Пропаял. Источник Уменьшение размера и веса бокса Потребуются: SSD M.2 2242; короткий переходник M.2—SATA, например, такой; 3D-принтер; (опционально) угловой переходник с Mini USB на Micro USB, а также магнитный кабель Micro USB. Ссылки и файлы Обзор и тестирование на Хабре Обзор и тестирование на iXBT Обсуждение VE200 на iXBT (вопросы по работе с устройством следует задавать там) Прошивки ZM-VE200 iodd-2501/2511 Дополнительные шрифты китайский японский корейский Шрифты устанавливаются точно так же, как и кириллический (см. раздел «Полезные советы». При установке заменяется уже прошитый шрифт, так что одновременное использование нескольких шрифтов невозможно. Руководство пользователя iodd 2501 (Quick Guide, English) iodd 2501 (Quick Guide, Korean) iodd 2501 (User Manual, English) iodd 2501 (User Manual, Korean) iodd 2501 (Brochure, English) iodd 2511 (Quick Guide, Korean) iodd 2511 (User Manual, Korean) Zalman ZM-VE200 (User Manual, English) Zalman ZM-VE200SE (User Manual, English)) ZM-VE200 (копия оф. сайта) VHD Tool (User Manual, English) VHD Tool (User Manual, Korean) 4G File Splitter (User Manual, English) Список изменений прошивки (неполный)]]></summary></entry><entry><title type="html">Enable IPv6 on Oracle Cloud</title><link href="http://dartraiden.github.io/Oracle-Cloud-IPv6/" rel="alternate" type="text/html" title="Enable IPv6 on Oracle Cloud" /><published>2021-08-24T00:00:00+00:00</published><updated>2021-08-24T00:00:00+00:00</updated><id>http://dartraiden.github.io/Oracle-Cloud-IPv6</id><content type="html" xml:base="http://dartraiden.github.io/Oracle-Cloud-IPv6/"><![CDATA[<p>It is assumed that you have already created an instance.</p>

<p>1) Networking → Virtual Cloud Networks → &lt;network_name&gt; → IP administration → CIDR Blocks/Prefixes → Add CIDR Block/IPv6 Prefix → Assign an Oracle allocated IPv6 /56 prefix → Add CIDR Blocks/Prefixes</p>

<p>2) Networking → Virtual Cloud Networks → &lt;network_name&gt; → Subnets → &lt;subnet_name&gt; → IP administration → IPv6 prefixes → Add IPv6 prefix → Assign an Oracle allocated IPv6 /64 prefix → enter any hexadecimal number between 00—FF (e.g. <code class="language-plaintext highlighter-rouge">7E</code>) → Add IPv6 prefix</p>

<p>3) Networking → Virtual Cloud Networks → &lt;network_name&gt; → Routing → Route Tables → Default Route Table for &lt;network_name&gt; → Route Rules → Add Route Rules<br />
Protocol Version: <code class="language-plaintext highlighter-rouge">IPv6</code><br />
Target Type: <code class="language-plaintext highlighter-rouge">Internet Gateway</code><br />
Destination CIDR Block: <code class="language-plaintext highlighter-rouge">::/0</code><br />
Target Internet Gateway: <code class="language-plaintext highlighter-rouge">Internet Gateway &lt;network_name&gt;</code></p>

<p>4) Networking → Virtual Cloud Networks → &lt;network_name&gt; → Security → Security Lists → Default Security List for &lt;network_name&gt; → Security rules → Egress Rules → Add Egress Rules<br />
Destination Type: <code class="language-plaintext highlighter-rouge">CIDR</code><br />
Destination CIDR: <code class="language-plaintext highlighter-rouge">::/0</code><br />
IP Protocol: <code class="language-plaintext highlighter-rouge">All Protocols</code></p>

<p>5) Compute → Instances → &lt;instance_name&gt; → Networking → Attached VNICs → &lt;vnic_name&gt; → IP administration → IPv6 Addresses → Assign IPv6 address → Assign</p>

<h1 id="testing">Testing</h1>
<p>Just ping <code class="language-plaintext highlighter-rouge">google.com</code>. It will be done over IPv6. If not, try rebooting the machine.</p>

<h1 id="port-opening">Port opening</h1>
<p><a href="https://medium.com/@fathi.ria/oracle-database-cloud-open-ports-on-oci-1af24f4eb9f2">As for IPv4</a>, but using <code class="language-plaintext highlighter-rouge">::/0</code> instead of <code class="language-plaintext highlighter-rouge">0.0.0.0/0</code> and <code class="language-plaintext highlighter-rouge">ip6tables</code> instead of <code class="language-plaintext highlighter-rouge">iptables</code>.</p>]]></content><author><name>Alexander Gavrilov</name></author><category term="oracle cloud" /><category term="ipv6" /><summary type="html"><![CDATA[It is assumed that you have already created an instance. 1) Networking → Virtual Cloud Networks → &lt;network_name&gt; → IP administration → CIDR Blocks/Prefixes → Add CIDR Block/IPv6 Prefix → Assign an Oracle allocated IPv6 /56 prefix → Add CIDR Blocks/Prefixes 2) Networking → Virtual Cloud Networks → &lt;network_name&gt; → Subnets → &lt;subnet_name&gt; → IP administration → IPv6 prefixes → Add IPv6 prefix → Assign an Oracle allocated IPv6 /64 prefix → enter any hexadecimal number between 00—FF (e.g. 7E) → Add IPv6 prefix 3) Networking → Virtual Cloud Networks → &lt;network_name&gt; → Routing → Route Tables → Default Route Table for &lt;network_name&gt; → Route Rules → Add Route Rules Protocol Version: IPv6 Target Type: Internet Gateway Destination CIDR Block: ::/0 Target Internet Gateway: Internet Gateway &lt;network_name&gt; 4) Networking → Virtual Cloud Networks → &lt;network_name&gt; → Security → Security Lists → Default Security List for &lt;network_name&gt; → Security rules → Egress Rules → Add Egress Rules Destination Type: CIDR Destination CIDR: ::/0 IP Protocol: All Protocols 5) Compute → Instances → &lt;instance_name&gt; → Networking → Attached VNICs → &lt;vnic_name&gt; → IP administration → IPv6 Addresses → Assign IPv6 address → Assign Testing Just ping google.com. It will be done over IPv6. If not, try rebooting the machine. Port opening As for IPv4, but using ::/0 instead of 0.0.0.0/0 and ip6tables instead of iptables.]]></summary></entry><entry><title type="html">Всё о TPM в системных требованиях Windows 11</title><link href="http://dartraiden.github.io/Windows-11/" rel="alternate" type="text/html" title="Всё о TPM в системных требованиях Windows 11" /><published>2021-06-26T00:00:00+00:00</published><updated>2021-06-26T00:00:00+00:00</updated><id>http://dartraiden.github.io/Windows-11</id><content type="html" xml:base="http://dartraiden.github.io/Windows-11/"><![CDATA[<p>В интернетах циркулируют дикие слухи о том, что клятый Микрософт придумал очередной способ лишить нас свободы с помощью TPM. Разумеется, это совершенно не так.</p>

<h1 id="tpm">TPM</h1>

<p>Про TPM хорошо сказал хабровчанин ValdikSS в <a href="https://habr.com/post/304014/">своей статье</a>:</p>

<blockquote>
  <p>TPM — замечательная штука — что-то вроде смарт-карты, которая несет в себе RSA-ключ, зашитый производителем на этапе производства, с возможностью генерирования своих ключей, приватная часть которых никогда не покинет TPM, загрузки уже существующих ключей, с небольшим энергонезависимым хранилищем произвольных данных (NVRAM) на борту, генератором случайных чисел и еще кучей всего. Но самое интересное, что предоставляет TPM — конфигурационные регистры платформы (Platform Configuration Registers, PCR), которые можно расширить SHA-1-суммой каких-то произвольных данных. Очень важно отметить, что эти регистры нельзя ни сбросить, ни установить в нужное значение, а только дополнить новой SHA-1-суммой, от которой сам TPM возьмет новую SHA-1-сумму от конкатенации старого и нового значения. Проще говоря, TPM выполняет следующую команду, если вы отправляете в PCR NEW_HASH:</p>
  <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>PCR[i] = SHA1(PCR[i] + NEW_HASH)
</code></pre></div>  </div>
  <p>BIOS/UEFI материнской платы, если он поддерживает спецификации Trusted Computing Group (TCG), измеряет (т.е. отправляет в TPM хеши) всего, что участвует в загрузке с момента включения компьютера: BIOS/UEFI Boot Block, сам BIOS/UEFI, сервисы UEFI, SMBIOS, таблицы ACPI, Option ROM устройств (например, сетевых карт), MBR или загрузчик EFI, разделы диска, и еще кучу всего.</p>

  <p>TPM может зашифровать произвольные данные RSA-ключом с привязкой к значениям PCR, и расшифровать их можно будет только в том случае, если значения PCR совпадут. Если мы зашифруем таким образом данные, то, в случае модификации BIOS/UEFI, загрузчика, модулей GRUB, ядра, initrd или всего лишь командной строки ядра, данные не расшифруются из-за несовпадения регистров.</p>

  <p>Из популярного софта TPM используется, насколько мне известно, только в Microsoft BitLocker. TPM можно использовать в качестве хранилища сертификатов для всяких банк-клиентов, VPN и SSH-доступа, и очень обидно, что его использует так мало людей, единицы, учитывая его стоимость (≈$10, дешевле, чем типичные смарт-карты), возможности и тот факт, что он уже установлен во многие модели ноутбуков, а в последних процессорах от Intel вообще реализован на уровне ПО и доступен всем.</p>
</blockquote>

<p>Хорошая новость: если у вас материнская плата на чипсете H110 (Intel) / A320 (AMD) или новее, то TPM у вас фактически есть в виде fTPM (Firmware-based Trusted Platform Module), который реализован поверх «ядра безопасности» (<a href="https://ru.wikipedia.org/wiki/Intel_Management_Engine">Intel ME</a> / AMD PSP), встроенного в чипсет материнской платы.</p>

<p>Если ориентироваться по чипсетам сложно, можно ориентироваться по процессору. Skylake / Ryzen (и новее) — вам повезло. Достаточно включить в настройках UEFI опцию «Intel PTT» (Intel Platform Trust Technology) или «AMD fTPM».</p>

<p>Поскольку PTT работает поверх Intel ME, то в качестве экзотического случая можно рассмотреть параноиков, <a href="https://github.com/corna/me_cleaner">отключающих ME</a> / PSP, и любителей <a href="https://forums.overclockers.ru/viewtopic.php?f=1&amp;t=602278">использовать</a> мобильные процессоры Intel на десктопных материнских платах (так называемые «ноутбучные мутанты», для работы которых часто необходимо отключать ME). Рекомендации: включить ME / PSP (если возможно) или читать далее.</p>

<p>Владельцам более старых систем рекомендуется заглянуть в руководство к материнской плате, чтобы определить, имеется ли на ней разъём для подключения внешнего модуля TPM. Если разъём есть, то при покупке модуля нужно учитывать нюансы:</p>

<ul>
  <li><strong>количество контактов (пинов)</strong> — например, у MSI <a href="https://us.msi.com/Motherboard/TPM-20-Module">есть модули</a> с интерфейсами SPI (12 контактов) и LPC (14 контактов). 12-контактный модуль не заработает в 14-пиновом разъёме.</li>
  <li><strong>совпадение производителя модуля с производителем материнской платы</strong> — совместимость между разными производителями не гарантируется.</li>
  <li><strong>версия TPM, поддерживаемая материнской платой</strong> — если заявлена поддержка TPM версии 1.2, то модуль версии 2.0 практически наверняка не заработает, т.к. для этого нужна поддержка со стороны прошивки. Можно пробовать обращаться в тех.поддержку производителя материнской платы, например, для одной из старых плат ASRock существовал бета-BIOS, с поддержкой TPM 2.0, который отсутствовал на официальном сайте и выдавался поддержкой по запросу.</li>
  <li><strong>версия TPM, реализованная в самом модуле</strong> — если ещё вчера в документации Microsoft было написано, что допускаются модули версии 1.2, то сегодня это упоминание исчезло. Завтра оно может снова вернуться, а может и нет, и вы останетесь с рабочим и отчасти даже полезным модулем (его можно использовать для усиления защиты BitLocker в Windows 10), но установить Windows 11 он вам не поможет.</li>
</ul>

<p>При самом плохом исходе (старая бюджетная плата без посадочного места под модуль) остаются лишь варианты с апгрейдом, либо модификацией установочного образа (нагуглить которую вы без труда сможете сами).</p>]]></content><author><name>Alexander Gavrilov</name></author><category term="windows 11" /><category term="системные требования" /><category term="TPM" /><summary type="html"><![CDATA[В интернетах циркулируют дикие слухи о том, что клятый Микрософт придумал очередной способ лишить нас свободы с помощью TPM. Разумеется, это совершенно не так. TPM Про TPM хорошо сказал хабровчанин ValdikSS в своей статье: TPM — замечательная штука — что-то вроде смарт-карты, которая несет в себе RSA-ключ, зашитый производителем на этапе производства, с возможностью генерирования своих ключей, приватная часть которых никогда не покинет TPM, загрузки уже существующих ключей, с небольшим энергонезависимым хранилищем произвольных данных (NVRAM) на борту, генератором случайных чисел и еще кучей всего. Но самое интересное, что предоставляет TPM — конфигурационные регистры платформы (Platform Configuration Registers, PCR), которые можно расширить SHA-1-суммой каких-то произвольных данных. Очень важно отметить, что эти регистры нельзя ни сбросить, ни установить в нужное значение, а только дополнить новой SHA-1-суммой, от которой сам TPM возьмет новую SHA-1-сумму от конкатенации старого и нового значения. Проще говоря, TPM выполняет следующую команду, если вы отправляете в PCR NEW_HASH: PCR[i] = SHA1(PCR[i] + NEW_HASH) BIOS/UEFI материнской платы, если он поддерживает спецификации Trusted Computing Group (TCG), измеряет (т.е. отправляет в TPM хеши) всего, что участвует в загрузке с момента включения компьютера: BIOS/UEFI Boot Block, сам BIOS/UEFI, сервисы UEFI, SMBIOS, таблицы ACPI, Option ROM устройств (например, сетевых карт), MBR или загрузчик EFI, разделы диска, и еще кучу всего. TPM может зашифровать произвольные данные RSA-ключом с привязкой к значениям PCR, и расшифровать их можно будет только в том случае, если значения PCR совпадут. Если мы зашифруем таким образом данные, то, в случае модификации BIOS/UEFI, загрузчика, модулей GRUB, ядра, initrd или всего лишь командной строки ядра, данные не расшифруются из-за несовпадения регистров. Из популярного софта TPM используется, насколько мне известно, только в Microsoft BitLocker. TPM можно использовать в качестве хранилища сертификатов для всяких банк-клиентов, VPN и SSH-доступа, и очень обидно, что его использует так мало людей, единицы, учитывая его стоимость (≈$10, дешевле, чем типичные смарт-карты), возможности и тот факт, что он уже установлен во многие модели ноутбуков, а в последних процессорах от Intel вообще реализован на уровне ПО и доступен всем. Хорошая новость: если у вас материнская плата на чипсете H110 (Intel) / A320 (AMD) или новее, то TPM у вас фактически есть в виде fTPM (Firmware-based Trusted Platform Module), который реализован поверх «ядра безопасности» (Intel ME / AMD PSP), встроенного в чипсет материнской платы. Если ориентироваться по чипсетам сложно, можно ориентироваться по процессору. Skylake / Ryzen (и новее) — вам повезло. Достаточно включить в настройках UEFI опцию «Intel PTT» (Intel Platform Trust Technology) или «AMD fTPM». Поскольку PTT работает поверх Intel ME, то в качестве экзотического случая можно рассмотреть параноиков, отключающих ME / PSP, и любителей использовать мобильные процессоры Intel на десктопных материнских платах (так называемые «ноутбучные мутанты», для работы которых часто необходимо отключать ME). Рекомендации: включить ME / PSP (если возможно) или читать далее. Владельцам более старых систем рекомендуется заглянуть в руководство к материнской плате, чтобы определить, имеется ли на ней разъём для подключения внешнего модуля TPM. Если разъём есть, то при покупке модуля нужно учитывать нюансы: количество контактов (пинов) — например, у MSI есть модули с интерфейсами SPI (12 контактов) и LPC (14 контактов). 12-контактный модуль не заработает в 14-пиновом разъёме. совпадение производителя модуля с производителем материнской платы — совместимость между разными производителями не гарантируется. версия TPM, поддерживаемая материнской платой — если заявлена поддержка TPM версии 1.2, то модуль версии 2.0 практически наверняка не заработает, т.к. для этого нужна поддержка со стороны прошивки. Можно пробовать обращаться в тех.поддержку производителя материнской платы, например, для одной из старых плат ASRock существовал бета-BIOS, с поддержкой TPM 2.0, который отсутствовал на официальном сайте и выдавался поддержкой по запросу. версия TPM, реализованная в самом модуле — если ещё вчера в документации Microsoft было написано, что допускаются модули версии 1.2, то сегодня это упоминание исчезло. Завтра оно может снова вернуться, а может и нет, и вы останетесь с рабочим и отчасти даже полезным модулем (его можно использовать для усиления защиты BitLocker в Windows 10), но установить Windows 11 он вам не поможет. При самом плохом исходе (старая бюджетная плата без посадочного места под модуль) остаются лишь варианты с апгрейдом, либо модификацией установочного образа (нагуглить которую вы без труда сможете сами).]]></summary></entry><entry><title type="html">Установка AdGuard Home на роутеры Keenetic</title><link href="http://dartraiden.github.io/AdGuard-Home-Keenetic/" rel="alternate" type="text/html" title="Установка AdGuard Home на роутеры Keenetic" /><published>2020-12-13T00:00:00+00:00</published><updated>2020-12-13T00:00:00+00:00</updated><id>http://dartraiden.github.io/AdGuard-Home-Keenetic</id><content type="html" xml:base="http://dartraiden.github.io/AdGuard-Home-Keenetic/"><![CDATA[<p>Нужно понимать, что блокировка рекламы с помощью блокировки доменов никогда не будет столь же эффективным способом борьбы с рекламой, как AdblockPlus/uBlock в браузере. Бывают случаи, когда реклама загружается с того же домена, что и полезный контент. Либо адреса рекламных доменов меняются так часто, что их невозможно блокировать все (YouTube). Браузерные дополнения борются с этим, скрывая такую рекламу непосредственно перед отрисовкой на экране, чего роутер сделать, по понятным причинам, не может. Тем не менее, блокировка рекламы с помощью блокировки доменов имеет смысл — например, если на клиентском устройстве реклама показывается в какой-нибудь мобильной игре или приложении, куда браузерный Adblock не установишь. Просто не нужно ожидать, что такая блокировка будет настолько же хороша, как при использовании AdblockPlus/uBlock и торопиться удалять эти дополнения из браузера.</p>

<ol>
  <li>
    <p>Установите поддержку репозитория Entware по <a href="https://help.keenetic.com/hc/ru/articles/360021214160-Установка-системы-пакетов-репозитория-Entware-на-USB-накопитель">инструкции</a>.</p>
  </li>
  <li>Установите AdGuard Home:
    <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>opkg update
opkg install adguardhome-go
</code></pre></div>    </div>
  </li>
  <li>Отключите DNS-сервер, встроенный в прошивку Keenetic. Подключитесь к <a href="https://help.keenetic.com/hc/ru/articles/213965889-Интерфейс-командной-строки-CLI-интернет-центра">CLI</a> (не путайте с SSH-сервером из Entware, который на порту 222):
    <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>opkg dns-override
system configuration save
</code></pre></div>    </div>
    <p>после этого пропадёт доступ в Интернет, это нормально (ведь родной dns-proxy кинетика вы только что отключили, а AdGuard Home займёт его место лишь после прохождения первоначальной настройки).</p>
  </li>
  <li>Запустите AdGuard Home:
    <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/opt/etc/init.d/S99adguardhome start
</code></pre></div>    </div>
  </li>
  <li>
    <p>Откройте в браузере мастер первоначальной настройки AdGuard Home по адресу <code class="language-plaintext highlighter-rouge">http://IP-адрес-роутера:3000</code>. В дальнейшем будем считать, что этот адрес — <code class="language-plaintext highlighter-rouge">http://192.168.1.1:3000</code></p>
  </li>
  <li>
    <p>Произведите первоначальную настройку. Веб-интерфейс повесьте на <code class="language-plaintext highlighter-rouge">Все интерфейсы</code>, порт <code class="language-plaintext highlighter-rouge">1234</code>, DNS-сервер повесьте на <code class="language-plaintext highlighter-rouge">Все интерфейсы</code>, порт <code class="language-plaintext highlighter-rouge">53</code>. Также придумайте логин и пароль (чтобы не усложнять, можно использовать логин/пароль от админки роутера).</p>
  </li>
  <li>Зайдите по адресу <code class="language-plaintext highlighter-rouge">http://IP-адрес-роутера:1234</code> (в нашем примере — <code class="language-plaintext highlighter-rouge">http://192.168.1.1:1234</code>) и настройте остальное (подписки, фильтры, upstream DNS) по вкусу.</li>
</ol>

<h1 id="решение-популярных-проблем">Решение популярных проблем</h1>
<h2 id="не-обновляются-подписки-по-https">Не обновляются подписки по HTTPS</h2>
<p>При установке AdGuard Home должен был автоматически установиться пакет <code class="language-plaintext highlighter-rouge">ca-bundle</code>, если он не установлен, то установите его (либо можно установить пакет <code class="language-plaintext highlighter-rouge">ca-certificates</code>):</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>opkg update
opkg install ca-bundle
</code></pre></div></div>

<h2 id="периодически-перестают-открываться-веб-страницы-в-веб-интерфейсе-управления-роутером-видна-загрузка-процессора-на-98-99">Периодически перестают открываться веб-страницы. В веб-интерфейсе управления роутером видна загрузка процессора на 98-99%</h2>
<p>Отключите в настройках AdGuard Home безопасную навигацию и родительский контроль. Если поможет, то это означает, что процессор роутера не справляется с нагрузкой, создаваемой этими функциями.</p>

<h2 id="добавление-домена-в-белый-список">Добавление домена в белый список</h2>
<p>Почитайте про пользовательские фильтры в раздел настроек «Фильтры → Пользовательское правило фильтрации» и добавьте туда фильтр, который разблокирует доступ к нужному вам домену.</p>

<h2 id="использование-с-vpn-антизапрет">Использование с VPN АнтиЗапрет</h2>
<p>1) убедитесь, что АнтиЗапрет настроен <a href="https://t.me/FuckYouRKN/7">по этой инструкции</a>.</p>

<p>2) в <code class="language-plaintext highlighter-rouge">http://192.168.1.1:1234/#dns</code> → «Upstream DNS-серверы» удалите все имеющиеся там адреса и впишите те, которые вы указывали в профилях «Системный» и «AntiZapret».</p>

<h2 id="получение-доступа-к-ии-сервисам-chatgpt-microsoft-copilot-google-gemini-из-россии">Получение доступа к ИИ-сервисам (ChatGPT, Microsoft Copilot, Google Gemini) из России</h2>
<p>Если вы используете VPN АнтиЗапрет то к адресам, добавленным выше, добавьте следующую строку:<br />
<code class="language-plaintext highlighter-rouge">[/chatgpt.com/openai.com/oaistatic.com/oaiusercontent.com/copilot.microsoft.com/bing.com/gemini.google.com/proactivebackend-pa.googleapis.com]https://dns.controld.com/comss</code></p>

<p>Если вы не используете VPN АнтиЗапрет, то в <code class="language-plaintext highlighter-rouge">http://192.168.1.1:1234/#dns</code> → «Upstream DNS-серверы» укажите единственный сервер <code class="language-plaintext highlighter-rouge">https://dns.controld.com/comss</code> или <code class="language-plaintext highlighter-rouge">tls://comss.dns.controld.com</code></p>

<h2 id="удаление-adguard-home">Удаление AdGuard Home:</h2>
<p>1) остановите его:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/opt/etc/init.d/S99adguardhome stop
</code></pre></div></div>

<p>2) удалите AdGuard Home:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>opkg remove adguardhome-go
</code></pre></div></div>

<p>3) включите DNS-сервер, встроенный в прошивку Keenetic. Подключитесь к <a href="https://help.keenetic.com/hc/ru/articles/213965889-Интерфейс-командной-строки-CLI-интернет-центра">CLI</a> (не путайте с SSH-сервером из Entware, который на порту 222):</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>no opkg dns-override
system configuration save
</code></pre></div></div>]]></content><author><name>Alexander Gavrilov</name></author><category term="adguardhome" /><category term="adguard" /><category term="dns" /><category term="keenetic" /><summary type="html"><![CDATA[Нужно понимать, что блокировка рекламы с помощью блокировки доменов никогда не будет столь же эффективным способом борьбы с рекламой, как AdblockPlus/uBlock в браузере. Бывают случаи, когда реклама загружается с того же домена, что и полезный контент. Либо адреса рекламных доменов меняются так часто, что их невозможно блокировать все (YouTube). Браузерные дополнения борются с этим, скрывая такую рекламу непосредственно перед отрисовкой на экране, чего роутер сделать, по понятным причинам, не может. Тем не менее, блокировка рекламы с помощью блокировки доменов имеет смысл — например, если на клиентском устройстве реклама показывается в какой-нибудь мобильной игре или приложении, куда браузерный Adblock не установишь. Просто не нужно ожидать, что такая блокировка будет настолько же хороша, как при использовании AdblockPlus/uBlock и торопиться удалять эти дополнения из браузера. Установите поддержку репозитория Entware по инструкции. Установите AdGuard Home: opkg update opkg install adguardhome-go Отключите DNS-сервер, встроенный в прошивку Keenetic. Подключитесь к CLI (не путайте с SSH-сервером из Entware, который на порту 222): opkg dns-override system configuration save после этого пропадёт доступ в Интернет, это нормально (ведь родной dns-proxy кинетика вы только что отключили, а AdGuard Home займёт его место лишь после прохождения первоначальной настройки). Запустите AdGuard Home: /opt/etc/init.d/S99adguardhome start Откройте в браузере мастер первоначальной настройки AdGuard Home по адресу http://IP-адрес-роутера:3000. В дальнейшем будем считать, что этот адрес — http://192.168.1.1:3000 Произведите первоначальную настройку. Веб-интерфейс повесьте на Все интерфейсы, порт 1234, DNS-сервер повесьте на Все интерфейсы, порт 53. Также придумайте логин и пароль (чтобы не усложнять, можно использовать логин/пароль от админки роутера). Зайдите по адресу http://IP-адрес-роутера:1234 (в нашем примере — http://192.168.1.1:1234) и настройте остальное (подписки, фильтры, upstream DNS) по вкусу. Решение популярных проблем Не обновляются подписки по HTTPS При установке AdGuard Home должен был автоматически установиться пакет ca-bundle, если он не установлен, то установите его (либо можно установить пакет ca-certificates): opkg update opkg install ca-bundle Периодически перестают открываться веб-страницы. В веб-интерфейсе управления роутером видна загрузка процессора на 98-99% Отключите в настройках AdGuard Home безопасную навигацию и родительский контроль. Если поможет, то это означает, что процессор роутера не справляется с нагрузкой, создаваемой этими функциями. Добавление домена в белый список Почитайте про пользовательские фильтры в раздел настроек «Фильтры → Пользовательское правило фильтрации» и добавьте туда фильтр, который разблокирует доступ к нужному вам домену. Использование с VPN АнтиЗапрет 1) убедитесь, что АнтиЗапрет настроен по этой инструкции. 2) в http://192.168.1.1:1234/#dns → «Upstream DNS-серверы» удалите все имеющиеся там адреса и впишите те, которые вы указывали в профилях «Системный» и «AntiZapret». Получение доступа к ИИ-сервисам (ChatGPT, Microsoft Copilot, Google Gemini) из России Если вы используете VPN АнтиЗапрет то к адресам, добавленным выше, добавьте следующую строку: [/chatgpt.com/openai.com/oaistatic.com/oaiusercontent.com/copilot.microsoft.com/bing.com/gemini.google.com/proactivebackend-pa.googleapis.com]https://dns.controld.com/comss Если вы не используете VPN АнтиЗапрет, то в http://192.168.1.1:1234/#dns → «Upstream DNS-серверы» укажите единственный сервер https://dns.controld.com/comss или tls://comss.dns.controld.com Удаление AdGuard Home: 1) остановите его: /opt/etc/init.d/S99adguardhome stop 2) удалите AdGuard Home: opkg remove adguardhome-go 3) включите DNS-сервер, встроенный в прошивку Keenetic. Подключитесь к CLI (не путайте с SSH-сервером из Entware, который на порту 222): no opkg dns-override system configuration save]]></summary></entry><entry><title type="html">Откат (даунгрейд) прошивки на материнских платах ASUS 100-й серии</title><link href="http://dartraiden.github.io/Firmware-rollback/" rel="alternate" type="text/html" title="Откат (даунгрейд) прошивки на материнских платах ASUS 100-й серии" /><published>2020-09-27T00:00:00+00:00</published><updated>2020-09-27T00:00:00+00:00</updated><id>http://dartraiden.github.io/Firmware-rollback</id><content type="html" xml:base="http://dartraiden.github.io/Firmware-rollback/"><![CDATA[<p>Здесь рассматривается только «программный» откат (без применения программатора).</p>

<h1 id="откат-с-версий-1xxx-и-2xxx">Откат с версий 1xxx и 2xxx</h1>

<p>Откат производится с помощью утилиты FPT из пакета <a href="https://www.win-raid.com/t596f39-Intel-Management-Engine-Drivers-Firmware-amp-System-Tools.html">Intel CSME System Tools 11</a>:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>FPTW64.exe -BIOS -F filename.rom
</code></pre></div></div>
<p>Если прошивка в формате CAP, нужно предварительно обрезать <a href="https://habr.com/post/185704/">капсулу</a>: открыть файл в <a href="https://github.com/LongSoft/UEFITool/releases">UEFITool</a>, встать на самое начало «AMI Aptio Capsule», и по нажатию правой кнопки мыши выбрать «Extract body».</p>

<h1 id="откат-с-версий-3xxx">Откат с версий 3xxx</h1>

<p>Откат с версий 3xxx требует больших усилий. Происходит это по нескольким причинам:</p>
<ul>
  <li>начиная с версий 3xxx, в прошивку интегрирован бинарник Intel ME более высокой версии (11.6—11.7 против 11.0)</li>
  <li>регион ME заблокирован на запись, при откате через утилиту FPT версия ME не понижается</li>
  <li>в прошивках 1xxx—2xxx имеется специальный модуль, который при обнаружении слишком «высокой» версии ME прерывает процедуру запуска и вызывает встроенную утилиту обновления прошивки (EZ Flash). Эта утилита точно также не может понизить версию ME (регион заблокирован на запись), поэтому пользователь вынужден либо при каждом запуске обходить этот запрос, нажимая клавишу <code class="language-plaintext highlighter-rouge">Esc</code>, либо вернуться на прошивку 3xxx</li>
</ul>

<p>Тем не менее, откат возможен. Для этого потребуется любой серийный (не инженерный) процессор Intel под сокет 1151 (поколения Skylake и Kaby Lake):</p>

<ol>
  <li>
    <p>Если уже производилась неудачная попытка отката через утилиту <code class="language-plaintext highlighter-rouge">FPT</code> и материнская плата находится в описанном выше состоянии «вечный запрос обновления при запуске», нужно скачать с официального сайта ASUS прошивку версии 3xxx, обновиться и убедиться, что при запуске плата больше не просит обновление прошивки.</p>
  </li>
  <li>
    <p>Скачайте подготовленный <a href="/files/2020-9-27/AMI_Setup-IFR_Extractor.zip">архив</a> и распакуйте его куда-нибудь. Скачайте файл прошивки с официального сайта ASUS. Версия прошивки должна совпадать с той версией, которая в данный момент прошита в плату (это важно). Поместите скачанный файл в формате CAP рядом с <code class="language-plaintext highlighter-rouge">AMISetup_IFR.bat</code>. Перетащите его на <code class="language-plaintext highlighter-rouge">AMISetup_IFR.bat</code> и дождитесь окончания работы программы. Откройте появившийся <code class="language-plaintext highlighter-rouge">setup_extr.txt</code> в текстовом редакторе.</p>
  </li>
  <li>Отыщите поиском блок «Me FW Image Re-Flash». Он будет выглядеть приблизительно так:
    <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>One Of: Me FW Image Re-Flash, VarStoreInfo (VarOffset/VarName): 0x68B, VarStore: 0x1
 One Of Option: Disabled, Value (8 bit): 0x0 (default) {09 07 04 00 10
</code></pre></div>    </div>
    <p>Необходимые параметры: <code class="language-plaintext highlighter-rouge">VarOffset</code> и состояние по умолчанию (<code class="language-plaintext highlighter-rouge">default</code>). В нашем примере это <code class="language-plaintext highlighter-rouge">0x68B</code> и <code class="language-plaintext highlighter-rouge">0x0</code>. Это означает «значение настройки Me FW Image Re-Flash в NVRAM располагается по смещению <code class="language-plaintext highlighter-rouge">0x68B</code>, по умолчанию возможность перезаписи Intel ME отключена».</p>
  </li>
  <li>Отыщите поиском блок «BIOS Lock». Он будет выглядеть приблизительно так:
    <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>One Of: BIOS Lock, VarStoreInfo (VarOffset/VarName): 0x8A7, VarStore: 0x1
 Default: DefaultId: 0x0, Value (8 bit): 0x1 {5B 06 00 00 00 01}
 One Of Option: Disabled, Value (8 bit): 0x0 {09 07 04 00 00 00 00}
 One Of Option: Enabled, Value (8 bit): 0x1 {09 07 03 00 00 00 01}
</code></pre></div>    </div>
    <p>Аналогично предыдущему, нужные параметры: <code class="language-plaintext highlighter-rouge">0x8A7</code> и <code class="language-plaintext highlighter-rouge">0x1</code>. Это означает, что блокировка региона BIOS от перезаписи включена.</p>
  </li>
  <li>
    <p>Таким образом, чтобы иметь возможность откатить версию BIOS и ME, необходимо разрешить перезапись региона ME (поменять по смещению <code class="language-plaintext highlighter-rouge">0x68B</code> значение <code class="language-plaintext highlighter-rouge">0x0</code> на <code class="language-plaintext highlighter-rouge">0x1</code>), а также снять блокировку региона BIOS (поменять по смещению <code class="language-plaintext highlighter-rouge">0x8A7</code> значение <code class="language-plaintext highlighter-rouge">0x1</code> на <code class="language-plaintext highlighter-rouge">0x0</code>). Запишите это на листке бумаги.</p>
  </li>
  <li>
    <p>Отформатируйте USB-накопитель (флешку) в файловую систему FAT32 и переместите папку «efi» из <a href="/files/2020-9-27/efi.zip">архива</a> на флешку. Таким образом, должна получиться  структура каталогов <code class="language-plaintext highlighter-rouge">флешка/efi/boot/bootx64.efi</code></p>
  </li>
  <li>
    <p>Перезагрузите ПК, войдите в настройки BIOS (нажимая клавишу <code class="language-plaintext highlighter-rouge">Del</code>) и отключите Secure Boot (выставив ему значение «Other OS» или «Disabled»).</p>
  </li>
  <li>
    <p>Перезагрузите ПК, нажимая при загрузке клавишу F8, чтобы вызвать меню загрузки. Выберите флешку, чтобы загрузиться с неё. Вы попадёте в командную строку EFI Shell.</p>
  </li>
  <li>Введите следующие команды:
    <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>setup_var 0x68B 0x01
</code></pre></div>    </div>
    <p><code class="language-plaintext highlighter-rouge">Enter</code></p>
    <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>setup_var 0x8A7 0x00
</code></pre></div>    </div>
    <p><code class="language-plaintext highlighter-rouge">Enter</code></p>
  </li>
</ol>

<p>Все значения взяты из п.5. Не забудьте, что у вас они будут другими.</p>

<ol>
  <li>
    <p>Нажатием <code class="language-plaintext highlighter-rouge">Ctrl+Alt+Delete</code> перезагрузите ПК и сразу войдите в настройки BIOS (нажимая клавишу <code class="language-plaintext highlighter-rouge">Del</code>). Нажмите клавишу F7 для перехода в расширенный режим настроек (или перейдите каким-либо иным способом) и убедитесь, что значение параметра «ME FW Version» (на первой, информационной, странице настроек) равно <code class="language-plaintext highlighter-rouge">0.0.0.0</code>. Это будет свидетельствовать о том, что регион ME успешно разблокирован на запись.</p>
  </li>
  <li>
    <p>Выйдите из настроек BIOS, нажимая клавишу <code class="language-plaintext highlighter-rouge">Esc</code> (выход без сохранения изменений, это важно). Начнёт загружаться операционная система. Важно не перезагружать ПК, так как при перезагрузке все разблокированные регионы заблокируются обратно и вам придётся снова загружаться с флешки.</p>
  </li>
  <li>
    <p>Выполните откат прошивки на желаемую версию (2xxx или 1xxx). Откат производится с помощью утилиты FPT из пакета <a href="https://www.win-raid.com/t596f39-Intel-Management-Engine-Drivers-Firmware-amp-System-Tools.html">Intel CSME System Tools 11</a>:</p>
    <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>FPTW64.exe -F filename.rom
</code></pre></div>    </div>
    <p>Если прошивка в формате CAP, нужно предварительно обрезать <a href="https://habr.com/post/185704/">капсулу</a>: открыть файл в <a href="https://github.com/LongSoft/UEFITool/releases">UEFITool</a>, встать на самое начало «AMI Aptio Capsule», и по нажатию правой кнопки мыши выбрать «Extract body».</p>
  </li>
</ol>]]></content><author><name>Alexander Gavrilov</name></author><category term="asus" /><category term="bios" /><category term="биос" /><category term="материнская плата" /><category term="прошивка" /><summary type="html"><![CDATA[Здесь рассматривается только «программный» откат (без применения программатора). Откат с версий 1xxx и 2xxx Откат производится с помощью утилиты FPT из пакета Intel CSME System Tools 11: FPTW64.exe -BIOS -F filename.rom Если прошивка в формате CAP, нужно предварительно обрезать капсулу: открыть файл в UEFITool, встать на самое начало «AMI Aptio Capsule», и по нажатию правой кнопки мыши выбрать «Extract body». Откат с версий 3xxx Откат с версий 3xxx требует больших усилий. Происходит это по нескольким причинам: начиная с версий 3xxx, в прошивку интегрирован бинарник Intel ME более высокой версии (11.6—11.7 против 11.0) регион ME заблокирован на запись, при откате через утилиту FPT версия ME не понижается в прошивках 1xxx—2xxx имеется специальный модуль, который при обнаружении слишком «высокой» версии ME прерывает процедуру запуска и вызывает встроенную утилиту обновления прошивки (EZ Flash). Эта утилита точно также не может понизить версию ME (регион заблокирован на запись), поэтому пользователь вынужден либо при каждом запуске обходить этот запрос, нажимая клавишу Esc, либо вернуться на прошивку 3xxx Тем не менее, откат возможен. Для этого потребуется любой серийный (не инженерный) процессор Intel под сокет 1151 (поколения Skylake и Kaby Lake): Если уже производилась неудачная попытка отката через утилиту FPT и материнская плата находится в описанном выше состоянии «вечный запрос обновления при запуске», нужно скачать с официального сайта ASUS прошивку версии 3xxx, обновиться и убедиться, что при запуске плата больше не просит обновление прошивки. Скачайте подготовленный архив и распакуйте его куда-нибудь. Скачайте файл прошивки с официального сайта ASUS. Версия прошивки должна совпадать с той версией, которая в данный момент прошита в плату (это важно). Поместите скачанный файл в формате CAP рядом с AMISetup_IFR.bat. Перетащите его на AMISetup_IFR.bat и дождитесь окончания работы программы. Откройте появившийся setup_extr.txt в текстовом редакторе. Отыщите поиском блок «Me FW Image Re-Flash». Он будет выглядеть приблизительно так: One Of: Me FW Image Re-Flash, VarStoreInfo (VarOffset/VarName): 0x68B, VarStore: 0x1 One Of Option: Disabled, Value (8 bit): 0x0 (default) {09 07 04 00 10 Необходимые параметры: VarOffset и состояние по умолчанию (default). В нашем примере это 0x68B и 0x0. Это означает «значение настройки Me FW Image Re-Flash в NVRAM располагается по смещению 0x68B, по умолчанию возможность перезаписи Intel ME отключена». Отыщите поиском блок «BIOS Lock». Он будет выглядеть приблизительно так: One Of: BIOS Lock, VarStoreInfo (VarOffset/VarName): 0x8A7, VarStore: 0x1 Default: DefaultId: 0x0, Value (8 bit): 0x1 {5B 06 00 00 00 01} One Of Option: Disabled, Value (8 bit): 0x0 {09 07 04 00 00 00 00} One Of Option: Enabled, Value (8 bit): 0x1 {09 07 03 00 00 00 01} Аналогично предыдущему, нужные параметры: 0x8A7 и 0x1. Это означает, что блокировка региона BIOS от перезаписи включена. Таким образом, чтобы иметь возможность откатить версию BIOS и ME, необходимо разрешить перезапись региона ME (поменять по смещению 0x68B значение 0x0 на 0x1), а также снять блокировку региона BIOS (поменять по смещению 0x8A7 значение 0x1 на 0x0). Запишите это на листке бумаги. Отформатируйте USB-накопитель (флешку) в файловую систему FAT32 и переместите папку «efi» из архива на флешку. Таким образом, должна получиться структура каталогов флешка/efi/boot/bootx64.efi Перезагрузите ПК, войдите в настройки BIOS (нажимая клавишу Del) и отключите Secure Boot (выставив ему значение «Other OS» или «Disabled»). Перезагрузите ПК, нажимая при загрузке клавишу F8, чтобы вызвать меню загрузки. Выберите флешку, чтобы загрузиться с неё. Вы попадёте в командную строку EFI Shell. Введите следующие команды: setup_var 0x68B 0x01 Enter setup_var 0x8A7 0x00 Enter Все значения взяты из п.5. Не забудьте, что у вас они будут другими. Нажатием Ctrl+Alt+Delete перезагрузите ПК и сразу войдите в настройки BIOS (нажимая клавишу Del). Нажмите клавишу F7 для перехода в расширенный режим настроек (или перейдите каким-либо иным способом) и убедитесь, что значение параметра «ME FW Version» (на первой, информационной, странице настроек) равно 0.0.0.0. Это будет свидетельствовать о том, что регион ME успешно разблокирован на запись. Выйдите из настроек BIOS, нажимая клавишу Esc (выход без сохранения изменений, это важно). Начнёт загружаться операционная система. Важно не перезагружать ПК, так как при перезагрузке все разблокированные регионы заблокируются обратно и вам придётся снова загружаться с флешки. Выполните откат прошивки на желаемую версию (2xxx или 1xxx). Откат производится с помощью утилиты FPT из пакета Intel CSME System Tools 11: FPTW64.exe -F filename.rom Если прошивка в формате CAP, нужно предварительно обрезать капсулу: открыть файл в UEFITool, встать на самое начало «AMI Aptio Capsule», и по нажатию правой кнопки мыши выбрать «Extract body».]]></summary></entry><entry><title type="html">Маркировка сигарет. Хотели как лучше, а получилось как всегда</title><link href="http://dartraiden.github.io/Cigarette-marking/" rel="alternate" type="text/html" title="Маркировка сигарет. Хотели как лучше, а получилось как всегда" /><published>2020-09-17T00:00:00+00:00</published><updated>2020-09-17T00:00:00+00:00</updated><id>http://dartraiden.github.io/Cigarette-marking</id><content type="html" xml:base="http://dartraiden.github.io/Cigarette-marking/"><![CDATA[<p><code class="language-plaintext highlighter-rouge">Это копия оригинальной версии поста https://habr.com/post/510996/, который был значительно сокращён по просьбе ЦРПТ.</code></p>

<p>Этот лозунг лучше всего подходит для внедряемого в России проекта маркировки.</p>

<p>Сразу договоримся, что я не буду писать о банальных вещах, о которых рассказывают на всякого рода конференциях, официально проводимых ЦРПТ, производителями ККМ или операторами ЭДО. Об этом вы и сами можете посмотреть на сайте <a href="https://честныйзнак.рф">Честный знак</a>.</p>

<p>На всех форумах говорят одну и ту же мантру: «Внедрение маркировки проходит легко и сама маркировка защитит покупателя от контрафакта».</p>

<p>Но это, мягко говоря, неправда.</p>

<p>Я расскажу о том, о чем вам никогда не расскажут на официальных мероприятиях. О проблемах, возникающих при внедрении маркировки.</p>

<h1 id="введение">Введение</h1>

<p>Я работаю руководителем отдела ИТ и отвечаю за внедрение маркировки в учётных системах 1С в группе табачных компаний (от производителя до розничной торговли).</p>

<p>Сегодня я хочу поделиться опытом моей команды и особенностями внедрения маркировки сигарет.</p>

<p>Всё, что я буду писать ниже, относится только к табачной продукции. Опыта для обувной продукции у меня нет, но, возможно, там аналогичные проблемы.</p>

<h1 id="для-дальнейшего-понимания-вас-нужно-погрузить-в-некоторую-техническую-часть">Для дальнейшего понимания вас нужно погрузить в некоторую техническую часть</h1>

<p>Маркированными являются те сигареты, на потребительской упаковке которой нанесён код в соответствии с требованиями оператора (эмитента) кодов маркировки.</p>

<p>Надо помнить, что в течение переходного периода для производителей (2018—07.2019) состав маркировки менялся. Производители сигарет совместно с оператором ЦРПТ пытались найти приемлемые решения. Выявляли ошибки работы оборудования, как при нанесении маркировки, так и при их регистрации в самом ЦРПТ. В это время производилась наладка оборудования, выявлялись ошибки в программных средствах производителя при бесконечно меняющихся правилах от ЦРПТ. Исправлялись ошибки в работе СУЗ от ЦРПТ, которых тоже было много.</p>

<p><strong>Давайте быстро разберём строение кода маркировки сигарет, действующего сегодня.</strong><br />
Для кодирования серийного номера сигарет, МРЦ (максимальная розничная цена) используется 80 символов:<br />
<code class="language-plaintext highlighter-rouge">ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!”%&amp;’*+-./_,:;=&lt;&gt;?</code></p>

<p>Алгоритм кодирования-декодирования МРЦ основан на переводе размера МРЦ в копейках в 80-чную систему счисления, используя следующий алфавит:<br />
<img src="/images/posts/2020-9-17/q1jfjuhy8tvpyyjra_7ab8ikonu.png" alt="Алфавит" /></p>

<p><em><ins>Кодирование</ins></em></p>

<ol>
  <li>МРЦ преобразуем в копейки, например</li>
  <li>Находим целую часть и остаток от деления МРЦ на основание системы счисления (в нашем случае – 80)</li>
  <li>Берём символ из алфавита по индексу, равному остатку и записываем его в начало результирующей строки</li>
  <li>Повторяем шаги 2 и 3 пока целая часть не окажется равной 0</li>
  <li>Дополняем результирующую строку до 4 символов слева символом по индексу 0 из алфавита (“A”)</li>
</ol>

<p>Пусть МРЦ = <strong>146</strong>р<strong>30</strong>к, тогда МРЦ в копейках = <strong>14630</strong>к<br />
Результирующая строка изначально пустая.</p>

<ol>
  <li>Находим целое и остаток от деления 14630 на 80: 182 и 70</li>
  <li>Находим символ по индексу 70 в алфавите и добавляем его в начало результирующей строки: “.”</li>
  <li>Целое от деления больше 0, поэтому находим новые целое и остаток от деления 182 на 80: 2 и 22</li>
  <li>Находим символ по индексу 22 в алфавите и добавляем его в начало результирующей строки: “W.”</li>
  <li>Целое от деления больше 0, поэтому находим новые целое и остаток от деления 2 на 80: 0 и 2</li>
  <li>Находим символ по индексу 2 в алфавите и добавляем его в начало результирующей строки: “CW.”</li>
  <li>Целое равно 0, поэтому дополняем результирующую строку слева нулевым символом: “ACW.”</li>
</ol>

<p><em><ins>Декодирование</ins></em></p>

<ol>
  <li>Для каждого символа из закодированного представления МРЦ повторяем следующие шаги</li>
  <li>Возводим длину алфавита, равную 80, в степень, равную позиции текущего символа МРЦ, считая с конца строки и начиная с 0, и умножаем на индекс текущего символа в алфавите</li>
  <li>Прибавляем полученное значение к результирующему</li>
</ol>

<p>Пусть закодированное значение МРЦ равно <strong>“ACW.”</strong><br />
Результирующее значение изначально равно 0.</p>

<ol>
  <li>Берём первый символ МРЦ: “A”</li>
  <li>Индекс символа “A”: 0</li>
  <li>Возводим 80 в степень 3 (позиция текущего символа, считая от конца строки из 4 символов) и умножаем на 0, получаем 0</li>
  <li>Прибавляем 0 к результирующему значению строке: 0</li>
  <li>Берём второй символ МРЦ: “C”</li>
  <li>Индекс символа “C”: 2</li>
  <li>Возводим 80 в степень 2 и умножаем на 2, получаем 12800</li>
  <li>Прибавляем 12800 к результирующей строке: 12800</li>
  <li>Берём третий символ МРЦ: “W”</li>
  <li>Индекс символа “W”: 22</li>
  <li>Возводим 80 в степень 1 и умножаем на 22, получаем 1760</li>
  <li>Прибавляем 1760 к результирующему значению: 14560</li>
  <li>Берём четвёртый символ МРЦ: “.”</li>
  <li>Индекс символа “.”: 70</li>
  <li>Возводим 80 в степень 0 и умножаем на 70, получаем 70</li>
  <li>Прибавляем 70 к результирующему значению: 14630</li>
  <li>Итоговое значение МРЦ = 14360к или 146р30к</li>
</ol>

<p>Поскольку на практике МРЦ (максимальная розничная цена) округляется до рублей и имеет диапазон от 60 до 500 рублей, можно сделать вывод: МРЦ в 80-ричной кодировке всегда начинается с “A”, а заканчивается на один из четырёх символов “A”,“U”,“o”,“8”. Можно использовать это для проверки валидности МРЦ в коде маркировки пачки.</p>

<p>Таблица кодирования МРЦ:<br />
<img src="/images/posts/2020-9-17/chvw9epsnn3q4bualdii-hsdsbg.jpeg" alt="Таблица кодирования МРЦ" /></p>

<p><em>Рассмотрим маркировку на примере сигарет с фильтром «T&amp;W» ОРИДЖИНАЛ КОМПАКТ МРЦ 106</em></p>

<p>Вот как выглядит маркировка на пачках и блоках:<br />
<img src="/images/posts/2020-9-17/nmysovou6f3yujvx01wi9dv7wfo.png" alt="Маркировка на пачках и блоках" />
<em>Извините, я не нашёл блок с МРЦ 106, для фото брал 115.</em></p>

<p><ins>Маркировка пачки:</ins></p>

<p><img src="/images/posts/2020-9-17/opxgpfbrniotcjzrldbtywutbg0.png" alt="Маркировка пачки" /></p>

<p><span style="color:red">04610030141527</span><span style="color:blue">00000Hd</span><span style="color:purple">AB0o</span><span style="color:green">OnE1</span></p>

<p>Строка длиной 29 символов, содержит:</p>
<ul>
  <li><span style="color:red">GTIN-14 (14 цифровых символов).</span> Содержит лидирующие “0” и EAN-13 код для единицы измерения «пачка» прижаты к правому краю. Аналогичен обычному EAN-13, нанесённому на пачке.</li>
  <li><span style="color:blue">Серийный номер (7 символов).</span> Идентификационный код, сгенерированный оператором эмиссии из набора 80 символов. Задумывался он как уникальный для указанного EAN.</li>
  <li><span style="color:purple">МРЦ (4 символа).</span> Максимальная розничная цена, указанная в копейках в 80-ричном исчислении.</li>
  <li><span style="color:green">Криптохвост (4 символа).</span> Код создаётся на производстве в «чёрном ящике» при запросе очередного пула кодов у оператора эмиссии маркировки. Его запрещено накапливать в базах данных и передавать третьим лицам. На мой взгляд, это требование — самая большая ошибка ЦРПТ, потом вы поймёте, почему я так считаю.</li>
</ul>

<p><ins>Маркировка блоков:</ins></p>

<p><img src="/images/posts/2020-9-17/fq3pof2gbgztwi4f0eme58xcjra.png" alt="Маркировка блока" /></p>

<p><span style="color:red">(01)04610030141534</span><span style="color:blue">(21)00000!&amp;</span>&lt;FNC1&gt;<span style="color:purple">(8005)106000</span>&lt;FNC1&gt;<span style="color:green">(93)yikZ</span></p>

<p>Строка длиной не менее 41 символов и содержит код в формате GS1. Скобочки добавлены для наглядности. Содержит символы GS1 <FNC1></FNC1></p>

<ul>
  <li><span style="color:red">(01) GTIN-14 (14 цифровых символов).</span> Содержит лидирующие “0” и EAN-13 код для единицы измерения «блок». Аналогичен обычному EAN-13 нанесённому на блоке.</li>
  <li><span style="color:blue">(21) Серийный номер (7 символов).</span> Идентификационный код, сгенерированный производителем из набора 80 символов. Задумывался как уникальный для указанного GTIN-14.</li>
  <li><span style="color:purple">(8005) МРЦ (6 цифровых символов).</span> Максимальная розничная цена, указанная цифрами в копейках для блока. В нашем примере 1060.00 рублей для блока (106 для пачки)</li>
  <li><span style="color:green">(93) Криптохвост (4 символа).</span> Код создаётся на производстве в «чёрном ящике» при запросе очередного пула кодов у оператора эмиссии маркировки. Его запрещено накапливать в базах данных и передавать третьим лицам.</li>
</ul>

<p>В код могут быть включены дополнительные данные, но первыми должны идти коды 01 и 21.</p>

<p><ins>Маркировка коробов:</ins></p>

<p><img src="/images/posts/2020-9-17/ctdl4tepsettidpdyuqxt2gl28u.png" alt="Маркировка короба" /></p>

<p><span style="color:red">(01)14610030141524</span> <span style="color:blue">(21)0011986</span><FNC1><span style="color:purple">(8005)106000</span><FNC1><span style="color:orange">(37)50</span></FNC1></FNC1></p>

<p>Строка длиной не менее 25 символов. Содержит обязательные коды 01 и 21 в формате GS1. Каждый производитель сам определяет состав кода маркировки для транспортной упаковки. Не имеет криптохвоста. Может быть нанесён как GS-1 DataMatrix код.</p>

<p>Часто производители дублируют GS-1 (CODE-128) и GS-1 DataMatrix, вот пример:</p>

<p><img src="/images/posts/2020-9-17/uu_spudmqllhdqxjniw9nxdxofw.png" alt="Дублирование кодов" /></p>

<p>Другие производителя иногда не указывают МРЦ, а некоторые добавляют элемент 240 для указания внутреннего кода номенклатуры производителя.</p>

<p>Разберём наш пример кода маркировки транспортной упаковки «короб»:</p>

<ul>
  <li><span style="color:red">(01) GTIN-14 (14 цифровых символов).</span> Содержит IFT-14 код для единицы измерения «короб». Аналогичен обычному IFT-14, нанесённому на коробе в чёрной рамке.</li>
  <li><span style="color:blue">(21) Серийный номер (7 цифр).</span> Идентификационный код, сгенерированный производителем и обеспечивающий неповторимость в рамках одного IFT-14 кода.</li>
  <li><span style="color:purple">(8005) МРЦ юнита (6 цифровых символов).</span> Максимальная розничная цена, указанная в копейках для вложенного юнита – «блока».</li>
  <li><span style="color:orange">(37) Количество вложенных юнитов (2 и более цифровых символов).</span> Количество вложенных в короб блоков сигарет.</li>
</ul>

<p>В код могут быть включены дополнительные данные, но первыми должны идти коды 01 и 21.</p>

<p><ins>Маркировка паллет:</ins></p>

<p><img src="/images/posts/2020-9-17/ohdt9tprqmxhzjls4tiitbtb4ru.png" alt="Маркировка паллеты" /></p>

<p><span style="color:red">(00)94610030141</span><span style="color:blue">0004634</span></p>

<p>Строка длиной 20 символов. Содержит префикс 00 и обязательный логистический код паллеты (контейнера) SSCC.</p>

<p>На всех упаковках, кроме пачек, наносится как машиночитаемый код, так и его человекочитаемый эквивалент. Это позволяет набрать код маркировки вручную, если по какой-то причине код не сканируется сканером.</p>

<p><strong>Агрегации и дезагрегации.</strong></p>

<p>В маркировке от ЦРПТ заложены такие возможности как агрегация и дезагрегация упаковок.
До недавнего времени агрегация производилась только на заводе изготовителе. С завода информация передаётся в ЦРПТ. Не только о нанесённых кодах маркировки, но и об её агрегации. JSON файл, передаваемый с завода в СУЗ ЦРПТ, содержит структуру, в которой нельзя отправить данные о маркировке без данных о заводской агрегации. На заводе, агрегация блоков/коробов/паллет производится при повторном сканировании маркировки с каждого вложенного элемента и кодов упаковки. Этим обеспечивается проверка читаемости кода и гарантия соответствия кодов, входящих в состав упаковки, коду самой упаковки.
Поэтому старайтесь сохранять заводскую упаковку до последнего момента. Вскрыв заводскую коробку, уже нельзя гарантировать, что все блоки относятся именно к этому коробу. Привет всем торговым сетям, которые проверяют вложенные блоки и вскрывают короба для этого ;)</p>

<p>Недавно функция агрегации сигарет появилась в API для торговых организаций. Видим большую перспективу здесь для отгрузки паллетами с логистических складов.</p>

<p>Дезагрегация производится автоматически, как только вложенная в упаковку единица была использована в документах выбытия или смены собственника. Другими словами, если продать пачку сигарет, то блок, в котором она находилась, автоматически дезагрегируется на пачки, а короб, в котором находился этот блок, дезагрегируется на блоки и т.д. Использовать в дальнейшем дезагрегированные коды блока, короба, паллет будет невозможно. Это, кстати, «ахиллесова пята» маркировки сигарет, создающая наибольшие проблемы в обороте сигарет. Но об этом ниже.</p>

<h1 id="теперь-разберём-проблемы-с-которыми-мы-столкнулись-при-внедрении-прослеживаемости-движения-сигарет">Теперь разберём проблемы, с которыми мы столкнулись при внедрении прослеживаемости движения сигарет</h1>

<h2 id="криптохвост-на-сигаретах-никому-не-нужен-и-нигде-не-проверяется">Криптохвост на сигаретах никому не нужен и нигде не проверяется</h2>

<p><a href="https://snob.ru/entry/173257/">Некто Резав Юсупов писал:</a></p>
<blockquote>
  <p>… фабрика наносит код, который генерирует единая система, а защищает его криптография, поэтому подделать или скопировать его невозможно… То есть система замкнутая и ни у кого нет возможности на каком-либо этапе добавить в партию нелегальный товар.</p>
</blockquote>

<p>Вот только он забыл добавить, что на всех участках криптохвосты обрезаются, и никуда не передаются, и нигде не запоминаются. Криптохвост существует только на упаковке и в недрах баз данных органов власти (я на это искренне надеюсь). Доказать задним числом, что ты продал подделку или оригинал невозможно, если ты ранее приобретал аналогичную продукцию.</p>

<p>Нет, наверное, можно проверить криптохвост, пока сохранена сама упаковка у покупателя, но при продаже, узнать та ли конкретная упаковка продавалась или другая с подменным криптохвостом невозможно. Злоумышленнику все, что нужно, это попасть на существующий в природе серийный номер (благо он нумеруется по порядку у всех, кроме как у ФилипМорис)</p>

<p>Ниже пример:</p>

<p>Обратите внимание на последние четыре символа — это для теста подменённый криптохвост.</p>

<p><img src="/images/posts/2020-9-17/aebnqjbl5tdxde2thmrb1c811h4.png" alt="Проверка кода" /></p>

<p>Когда мы эту картинку показали ЦРПТ, они признались, что у них нет технической возможности проверять криптохвосты. Более того, у них нет информации о том, по какому алгоритму генерируются криптохвосты. И, что они сделали после нашего обращения? Они обновили приложение «Честный знак» и теперь обрезают криптохвосты и не показывают его на экране. Наверное, чтобы никто не мог тыкать их носом. Но мы-то снимок экрана сохранили :)</p>

<p>К чему приводит отказ от проверки криптохвостов ЦРПТ?</p>

<p>Первая и самая главная проблема, <ins>это возможность выводить из оборота сигарет продукцию, которая вам не принадлежит</ins>. Вы можете даже не иметь под рукой настоящую пачку сигарет. Для вывода из оборота сигарет вам нужны только ЕАН13 и серийный номер, который у большинства производителей идет по порядку в 80-ричном исчислении (см. выше).</p>

<p>В частности, в ККМ и оператору ЭДО через УПД передаётся только первые 21 символ кода маркировки с пачек или 25 символов с блоков сигарет. И даже если вы каким-то чудом отправите более длинную строку, в ЦРПТ поступят исключительно первые 21/25 символов на выбытие сигарет или смены собственника.</p>

<p>Вы можете самостоятельно провести эксперимент: сосканируйте код с пачки сигарет в notepad, замените криптохвост (последние 4 символа) на любые другие 4 символа и из полученного результата обратно сгенерируйте DataMatrix. Программа для проверки подлинности продукции «Честный знак» покажет, что этот код подлинный.</p>

<p>Другими словами, никто в цепочке от предпринимателя до оператора ЦРПТ, не проверяет соответствие серийного номера пачки сигарет его криптохвосту. Я даже больше скажу, ЦРПТ не проверяет даже соответствие серийного номера к указанному МРЦ в коде. Программа честный знак показывает размер МРЦ, динамически рассчитывая его из кода, ограничивая верхнюю и нижнюю планку, после которой МРЦ просто не выводится.</p>

<p>Вы можете сказать: «Ну и что, ну не проверяет криптохвост, нам же лучше». А вот и не лучше! Сейчас объясню почему в следующем пункте с проблемами.</p>

<h2 id="бесконтрольная-дезагрегация-транспортных-упаковок">Бесконтрольная дезагрегация транспортных упаковок</h2>

<p>Впервые мы столкнулись с этой проблемой, когда ЦРПТ стал отказывать в отражении смены собственников по некоторым нашим ЭУПД. Это было еще в 2019 году, когда использовать ЭДО обязаны были только производители и первые покупатели.</p>

<p>Причина отказа — дезагрегация транспортной упаковки (короба).</p>

<p>На каждый такой случай ЦРПТ писал: «короб дезагрегирован, потому что из короба была продана одна пачка или блок».</p>

<p>ЦРПТ обвинял всех, кроме себя. Мы тоже полагали, что это внутренний пересорт. Но однажды подвернулся случай. В день, когда мы узнали об очередной такой дезагрегации, дезагрегированный короб ещё не покинул наш склад. Конечно, мы его тут же вскрыли и увидели, что пачка, которая по данным ЦРПТ была выведена из оборота через розницу, лежит целая и нетронутая в коробке.</p>

<p>Посмотрели в личном кабинете, кто и когда продал эту пачку. Договорились с розничным продавцом и получили все его логи из POS систем по нашим сигаретам.</p>

<p>Увидели, что была продажа пачки сигарет с совпадающим серийным номером, но с совершенно кривым МРЦ и другим криптохвостом. Связались с производителем POS, а он пояснил, что у этих продавцов 2D сканеры воткнуты «в разрыв клавиатуры» и на результат их сканирования влияют: текущий вид OS (там был линукс), кодировка раскладки клавиатуры, CapsLock и SHIFT.</p>

<p>Соответственно, код маркировки, приведённый в примере выше, <span style="color:red">04610030141527</span><span style="color:blue">00000Hd</span><span style="color:purple">AB0o</span><span style="color:green">OnE1</span> при включённом CapsLock превращается в <span style="color:red">04610030141527</span><span style="color:blue">00000hD</span><span style="color:purple">ab0O</span><span style="color:green">oNe1</span>. Вспоминаем, что ЦРПТ не смотрит и не проверяет МРЦ и криптохвост. В результате получаем <span style="color:red">04610030141527</span><span style="color:blue">00000hD</span>. А такая пачка есть, но в другом коробе. Кстати, если включена русская раскладка и в серийном номере нет букв, то можно попасть на подмену знака препинания с <span style="color:red">(01)04610030141534</span><span style="color:blue">(21)00001.6</span> на <span style="color:red">(01)04610030141534</span><span style="color:blue">(21)00001?6</span> и так далее.</p>

<p><strong>Если ЦРПТ находил похожий серийный номер сигарет и вне зависимости от того, кто собственник, он проводил выбытие этой пачки/блока, попутно дезагрегировав все вышестоящие упаковки.</strong></p>

<p>Когда стал доступен <a href="https://честныйзнак.рф/business/projects/tobacco/documents/for_developers/">TrueAPI</a> мы провели инвентаризацию на складах, и обнаружили еще не проданных от производителя, но уже дезагрегированных 63 короба на одном центральном складе и 23 короба на другом центральном складе.</p>

<p>И, отгружая через неделю из проверенных остатков, мы вдруг обнаруживаем, что появились ещё несколько дезагрегированных коробов по той же причине.</p>

<p><strong>Пример такой дезагрегации</strong><br />
При просмотре состава дезагрегированного блока видно, что одна пачка продана неким индивидуальным предпринимателем, несмотря на то что все остальные пачки этого блока ещё не проданы от производителя ООО «УСМ»</p>

<p><img src="/images/posts/2020-9-17/yakrmzwkv1cvlmbhsiljrw-pja8.png" alt="Просмотр состава дезагрегированного блока" /></p>

<p>По этому поводу мы написали в ЦРПТ официальную заявку. Более того, мы поднимали этот вопрос на собрании совместно с другими производителями и министром промышленности. Заявленная проблема была занесена в протокол собрания, но так и не была решена до сих пор. Любой участник оборота может продать ваши сигареты, просто случайно попав на ваш серийный номер.</p>

<p>Последнее заявление, которое мы получили от ЦРПТ примерно такое:</p>
<blockquote>
  <p>мы разработали систему маркировки для гос.органов, в которой у нас самих нет технической возможности проверять валидность эмитируемых нами кодов маркировки. Мы опознаем сигареты и отражаем их движение ориентируясь исключительно на серийные номера.</p>
</blockquote>

<p>Трудно представить, как такая маркировка будет применяться на лекарствах?!?</p>

<p>И даже, если мы будем проверять статусы маркировки перед каждой отгрузкой, а мы это уже делаем, нет гарантии того, что пока машина едет до покупателя, все короба останутся недезагрегированными на момент приёмки.</p>

<p>Я уже молчу о том, что при продаже в рознице у вас будут пачки, которые по данным ЦРПТ уже выведены из оборота кем-то другим.</p>

<p>Напоминаю, что ЦРПТ говорит:</p>
<blockquote>
  <p>это не наши проблемы и ничего пока исправлять не будем.</p>
</blockquote>

<h2 id="рекомендации-црпт-проверять-статус-и-собственника-маркированного-товара-перед-подписанием-документов-о-покупке-или-продаже">Рекомендации ЦРПТ проверять статус и собственника маркированного товара перед подписанием документов о покупке или продаже</h2>

<p>Действительно, с появлением <a href="https://честныйзнак.рф/upload/iblock/d53/TRUE_API.pdf">TRUE_API.pdf</a>, у участников оборота появилась возможность получить данные о кодах маркировки, их вложенность в агрегаты, текущих собственниках и др. информацию.</p>

<p>Многие сети решили с помощью данного API внедрить проверку собственника перед покупкой и сделали это одним из условий договоров.</p>

<p>Да что там греха таить, некоторые производители ККМ и операторы ЭДО решили обезопасить своих клиентов, и не дают им продавать или подписывать документы, пока данные о собственнике маркированного товара не будут соответствовать участникам сделки. Не будем во всех тыкать пальцем, но хочу передать привет особенно компании 1С, СБИС и АТОЛ.</p>

<p><img src="/images/posts/2020-9-17/o-s49ijb_pixwrr5m4tc42ge79q.png" alt="ЭДО" /></p>

<p>Как всегда хорошие задумки этих компаний разбиваются об айсберг действительности.</p>

<p>Особо пытливые умы могут проверить на примере:</p>

<p><img src="/images/posts/2020-9-17/9nsb1w23ckhns0ic_pqsl66ii00.png" alt="Пример" /></p>

<p>Верхняя пачка в приложении «Честный знак» не проходит проверку (слева), а нижняя проходит (справа):</p>

<p><img src="/images/posts/2020-9-17/ywwr0pan5ex8icati2h5cuib1jc.png" alt="Проверка кода" /></p>

<p>Чтобы не дезинформировать потребителей в ЦРПТ обещали исправить своё приложение уже на следующей неделе. Но вот когда они поправят ГИС МТ для предпринимателей?</p>

<p>Что касается проверки информации о текущем собственнике, в реальности, дела обстоят так: сегодня, когда я пишу эту статью 26.06.2020, в ЦРПТ отражена смена собственников только до 15.06.2020. Ни один документ после 15.06.2020 ещё не отражён в базе данных ЦРПТ. У нас были случаи, когда ЭУПД появлялась в личном кабинете ЦРПТ спустя месяц, <ins>и только после обращения в службу поддержки ЦРПТ</ins>.</p>

<p>Как это обычно происходит. Мы видим, что наши документы не появляются в ЦРПТ слишком долго (более недели). Пишем в поддержку ЦРПТ обращение. Поддержка ЦРПТ пишет, что они не получали наших ЭУПД. Пишем оператору ЭДО. Оператор ЭДО пишет, что все ЭУПД давно направлены в ЦРПТ. Вот так и бегаем от одних к другим.</p>

<p>А покупатели, наслушавшись невыполнимых рекомендаций ЦРПТ об обязательной проверке, бегают и мучают нас вопросами: «Почему у меня не отразилось в личном кабинете?», «Почему ваши сигареты не проходит проверку в ЭДО?», «Почему ККМ не даёт продать ваши сигареты?»</p>

<p>На практике за один день собственник может смениться несколько раз (производитель-первый покупатель-торговая сеть).</p>

<p>И не забываем, что маркированные сигареты вы могли совершенно законно приобрести на бумажном носителе до 01.07.2020. Но их собственник в ГИС МТ будет отражён неверно.</p>

<p>Помножим проблему несвоевременного отражения в ЦРПТ информации о смене собственников на проблему о бесконтрольной дезагрегации и получим недостоверность данных, отражённых в ГИС МТ.</p>

<p>Подытожим. Внедрение проверки статусов и собственников при приёмке товаров и при продаже товаров пока даёт лишь головную боль участникам оборота, а не защищает вас от штрафов.</p>

<p><img src="/images/posts/2020-9-17/wuvpwnpe7xnyg14djjhjupr36vm.png" alt="Информация о коде маркировки" /></p>

<p><img src="/images/posts/2020-9-17/phsqpb0fsasehiaozzafhbntstu.png" alt="Проверка кода" /></p>

<h2 id="согласие-на-передачу-информации-в-гис-мт-третьим-лицам">Согласие на передачу информации в ГИС МТ третьим лицам</h2>

<p>ЦРПТ ввёл сбор «согласия» тогда, когда мы продемонстрировали в поддержку ЦРПТ, как можно по кодам маркировки смотреть всю историю движения сигарет, в том числе, не принадлежавших нам, и скачивать все ЭУПД по всей цепочке продаж с вложенными кодами маркировки и ценами.</p>

<p>Например: нашли на улице пачку от ФИЛИП МОРРИС и по коду маркировки пачки, используя специальный GET запрос, скачали для этой пачки цепочку всех продаж в виде документов УПД -XML. В этих УПД видим цены и коды маркировки. По каждому коду смотрим дальнейшее движение… и так по кругу.</p>

<p>Вы не представляете, какое было желание продать все блоки конкурента по цене 0.01 коп. Это бы привело к выводу из оборота и дезагрегации всех заводских коробов конкурента. Однако удержались и написали об этой уязвимости в поддержку ЦРПТ.</p>

<p>Как исправили эту уязвимость в ЦРПТ? Придумали брать согласие от поставщиков на передачу данных своим покупателям. Даёшь согласие, снимаешь с ЦРПТ ответственность за утечку информации.</p>

<p>И в чем проблема? Да в том, что ЦРПТ, приучив всех участников рынка сигарет пользоваться TrueAPI, вдруг объявляет, что будет закрывать доступ к данным, если поставщик маркированной продукции не будет давать «согласие на предоставление данных из ГИС МТ». Соответственно все сети поголовно стали требовать от своих поставщиков такого «согласия». Но давая его, поставщик дарит покупателю возможность в личном кабинете скачать все свои ЭУПД и смотреть, по каким ценам он покупает или продаёт сигареты конкурентам.</p>

<p>Мы уже написали об этой уязвимости в поддержку ЦРПТ, ждём их реакции.</p>

<p>Ниже приведён пример копии экрана из личного <ins>кабинета покупателя</ins>, <s>отражённого</s> заштрихованного в самой последней строке внизу. Как видите, он может просматривать ЭУПД вышестоящих участников в цепочке продаж.</p>

<p><img src="/images/posts/2020-9-17/nldeubekwkhek4hpiwwtv45it98.png" alt="Личный кабинет покупателя 1" /></p>

<p>Скачивать их и смотреть цены.</p>

<p><img src="/images/posts/2020-9-17/nc2i76wrig9bebaemem8y1pembu.png" alt="Личный кабинет покупателя 2" /></p>

<p>P.S.: В день, когда я закончил писать статью, ЦРПТ временно сделал запрет на скачивание всех документов и теперь показывает заглушку вместо списка документов.</p>

<h2 id="эдо-материальная-ответственность-и-covid-19">ЭДО, материальная ответственность и COVID-19</h2>

<p>Для запуска ЭДО, все участники оборота должны иметь цифровую квалифицированную подпись для подписания ЭУПД. На каждом собрании (семинаре) от ЦРПТ нам заявляют, что практически все предприниматели и организации уже имеют такой ключ ЭЦП, полученный на директора компании или на индивидуального предпринимателя. Также заявляется, что ЭДО позволит избавиться от лишних бумаг.</p>

<p>Про бумаги мы сразу скажем: для перевозки сигарет автотранспортом все ещё нужны бумажные ТТН. Но я не об этом.</p>

<p>Сигареты, это высоколиквидные материальные ценности, которые все время воруют из транспорта, со складов, магазинов. В случае обнаружения недостачи, с материально ответственных лиц нужно удержать выявленную недостачу, и не всегда добровольно — через в суд. Как раз суду-то и плевать на ваш электронный документооборот, он просит предоставить документы с личной подписью материально ответственного лица. Если у вас все отгрузки и поступления подписаны только цифровой подписью директора, то в суд вам нести нечего.</p>

<p>Сегодня есть два нормальных решения:</p>

<ul>
  <li>дублировать все ЭУПД на бумажном носителе и брать подписи с кладовщиков и продавцов или вводить у себя бумажную-ордерную систему;</li>
  <li>получать квалифицированную подпись непосредственно на материально ответственных лиц (рекомендуется ЦРПТ).</li>
</ul>

<p>Мы применяем первый вариант, так как он единственно рабочий.</p>

<p>В варианте, где всё подписывается директорской подписью есть проблемы: сложно доказать отсутствие фиктивности сделок перед налоговой инспекцией. Например, когда документы подписываются директорской цифровой подписью, а тот при этом он находился за границей.</p>

<p>И при такой схеме есть риск остановить все продажи, если вдруг подпись директора перестанет действовать. Дело в том, что новую ЭЦП не так быстро зарегистрировать, как показывают на презентациях. Например , если директор уволится или погибнет, со дня увольнения его подпись нельзя использовать без доверенности, а пока проведут собрание и назначат нового директора и пока налоговая зарегистрирует этого нового директора пройдёт 15 дней минимум.</p>

<p>Для другого варианта, нужно отправить всех материально ответственных лиц за квалифицированной электронной подписью. Каждая бабушка — продавец, из каждого магазина с сигаретами, должна ехать в период пандемии в город за ЭЦП? Минпромторг вы в своём уме?</p>

<p>Сейчас мы склоняемся к гибридному варианту, когда будет и на бумаге, и электронных подписей будет несколько — генерального директора и нескольких региональных руководителей.</p>

<h2 id="корректировочный-эукд">Корректировочный ЭУКД</h2>

<p>Даже не хочу об этом писать. Если вы не программист и не специалист в маркировке, вы вряд ли сможете оформить электронную корректировку.</p>

<p>Потому что коды маркировки там нужно указывать особым способом и вперемешку.</p>

<p>Да и заявленное ЦРПТ ранее уведомление об уточнении счёт-фактуры также не стандартизировано, и все претензии в нем пишут просто текстом, кто во что горазд.</p>

<p>Лучшее решение сегодня — не подписывать покупателем входящий ЭУПД, если есть претензии. А выслать ТОРГ-2 и коды маркировки поставщику, которые нужно убрать или добавить в УПД. На основании их поставщик аннулирует ЭУПД и выпишет новый, уже правильный. Но если покупатель успел продать дальше или дезагрегировать транспортные упаковки, ваша дорога только одна, через ЭУКД.</p>

<h2 id="учитывайте-всегда-что-могут-быть-ошибки-в-указании-мрц-в-кодах-маркировки">Учитывайте всегда, что могут быть ошибки в указании МРЦ в кодах маркировки</h2>

<p>В код маркировки встроен параметр «МРЦ» и первое что приходит в голову разработчикам POS систем — будет классно, если POS система сама будет определять цену, по которой нужно продавать сигареты в рознице.</p>

<p>Так делают, например, кассы «ЭВАТОР».</p>

<p>Не буду расписывать — вот примеры:</p>

<p><img src="/images/posts/2020-9-17/rhbcmjchg0nw9eolfwimfh_qa1c.jpeg" alt="Пример 1" /></p>

<p><img src="/images/posts/2020-9-17/d_xm4c_n6zchmncany_y5iktvk8.jpeg" alt="Пример 2" /></p>

<p>Нам известна пока только <a href="https://bitnic.ru/">одна POS система</a>, которая правильно работает с такими ошибками.</p>

<h2 id="непечатаемые-символы-в-маркировке">Непечатаемые символы в маркировке</h2>

<p>Позвонил клиент с жалобой, что 1С не пропускает наш код маркировки, так как он имеет нестандартные символы… сразу вспомнил о ещё одной проблеме. Раз клиент не может загрузить такую маркировку в 1С, то видать компания 1С не в курсе.</p>

<p><code class="language-plaintext highlighter-rouge">ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!”%&amp;’*+-./_,:;=&lt;&gt;?</code> это не все символы, используемые в маркировке.
При выдаче кодов маркировки оператором эмиссии — ЦРПТ, коды могут содержат непечатаемые символы в криптохвосте.</p>

<p>Когда мы с этим столкнулись в начале 2020 года, мы добавили новый алгоритм в оборудование, работающее на производстве с СУЗ. Теперь мы получаем гораздо больший пул кодов, чем нам нужно для производства, и отбрасываем те коды, которые имеют непечатаемые символы, чтобы защитить наших покупателей.</p>

<p>Конечно, это произошло не сразу и мы успели выпустить много продукции с такими криптохвостами. Такая продукция все еще ходит в обороте. Как решают этот вопрос другие производители мы не знаем.</p>

<h2 id="мифы-о-маркировке-которые-мне-приходится-каждый-день-развеивать">Мифы о маркировке, которые мне приходится каждый день развеивать</h2>

<blockquote>
  <p>если сигареты куплены по бумажному УПД, то 01.07.2020 придётся их все сканировать и подавать остатки в ЦРПТ;</p>
</blockquote>

<p>Это делать не нужно. Данные о маркировке уже есть в ЦРПТ от производителя, а новый собственник будет указан при следующей реализации.</p>

<blockquote>
  <p>покупатель обязан сканировать маркировку при приёмке табачных изделий;</p>
</blockquote>

<p>Создаёт электронное УПД и прикрепляет к нему маркировку только поставщик. Покупатель может лишь подписать или не подписать документ в ЭДО. Желание сканировать товары при приходе — это личное желание покупателя свериться с поставщиком.</p>

<blockquote>
  <p>поскольку немаркированные сигареты с 01.07.2020 уже нельзя продавать, то их можно только выбросить (утилизировать);</p>
</blockquote>

<p>До 01.12.2020 можно самостоятельно маркировать и наклеить стикеры с маркировкой на продукцию. Ждём информацию от ЦРПТ, как это сделать.</p>

<blockquote>
  <p>в каждом УПД содержится информация обо всех вложенных пачках сигарет (информация об агрегации);</p>
</blockquote>

<p>В УПД содержится только тот код маркировки, в котором производится отгрузка. В коробах — значит код короба, в блоках — код блока. Информации о вложенности нет. Отсюда и проблема во многих учётных системах, которые пытаются проверить на совпадение EAN в коде маркировке и ЕАН внесённый в 1С (как правило вносят ЕАН только для пачек и проверка не работает).</p>

<blockquote>
  <p>если Честный знак показывает, что такой пачки в ГИС МТ не числится или такой блок уже дезагрегирован, то продать эту пачку будет невозможно;</p>
</blockquote>

<p>Система маркировки от ЦРПТ является уведомительной системой, а не как в ЕГАИС — разрешительной. Задача покупателя, в соответствии с законом, оформить ЭУПД через своего оператора ЭДО, приложить к нему отгружаемые коды маркировки и подписать документ своим ЭЦП. Никакой проверки, ни поставщик и ни покупатель не обязаны проводить. Сегодня все проверки, это проверки, придуманные производителями ПО POS систем или 1С или операторами ЭДО, основанных на! РЕКОМЕНДАЦИЯХ!.. Участник оборота так же не обязаны проверять работу ЦРПТ и следить за тем, что они у себя отражали все правильно. Следует отметить, что в личном кабинете ЦРПТ, проблемные ЭУПД имеют значок «x», но привлечь к ответственности за это невозможно, так как нельзя доказать — это неверные коды или ошибка в ЦРПТ.</p>

<blockquote>
  <p>ЦРПТ ведёт остатки табачной продукции за каждым предприятием также, как ЕГАИС;</p>
</blockquote>

<p>Учёт построен по-другому. Есть реестр всех эмитированных кодов маркировки. Для каждого кода маркировки, при появлении более позднего документа, устанавливается новый статус и новый владелец. (Аналог периодического регистра сведений в 1С). Легко можно пропустить несколько участников оборота и закончить выбытием в ККМ. Сами коды маркировки заказывают и вводят в оборот производители. Сейчас будут еще и те, кто будет маркировать не маркированные сигареты. Именно по причине, что остатки не проверяются возможна ситуация, когда сторонний розничный продавец продаёт сигареты, которые на самом деле ему не принадлежат, а лежат на вашем складе.</p>

<blockquote>
  <p>продать в розницу один и тот же код маркировки много раз невозможно;</p>
</blockquote>

<p>Можно, если вы не используете такую POS систему, которая сохраняет проданную маркировку и/или проверяют её через ГИС МТ на предмет выбытия. Все запреты — это желание производителей ПО для POS помочь как-то своим клиентам «не залететь на штрафы». Таких запретов, как в ЕГАИС, нет.
Могу привести свои случаи: POS система накапливает выбывшие коды и не даёт их продавать повторно. Если дело доходит до пачки с уже выбывшем кодом, продавцы просто меняются проблемными пачками с продавцами из другого магазина. А если включить контроль по ГИС МТ, то в нем информация меняется с большим запозданием и это тоже не решение.</p>

<blockquote>
  <p>код маркировки не проходит проверку в Честном знаке, потому что он является контрафактным;</p>
</blockquote>

<p>Читайте статью, и поймёте, что если что то не отражается в ГИС МТ — это ещё не значит что продукция плохая. На практике, это почти всегда сбои в ЦРПТ.</p>

<blockquote>
  <p>на коробах/паллетах коды маркировки должны быть в виде datamatrix, как на блоках и пачках;</p>
</blockquote>

<p>Читайте правила нанесения маркировки. Любая маркировка на заводе проходит согласование с ЦРПТ. Если завод её наносит на упаковку, значит она нанесена в соответствии с законом. На коробах маркировка может быть нанесена как при помощи GS-1 CODE128 так и при помощи GS-1 DataMatrix. Содержание кодов одинаково.</p>

<blockquote>
  <p>можно использовать бесплатный ЭДО Лайт от ЦРПТ для оптовой торговли с другими операторами, настроив роуминг (пока это неправда);</p>
</blockquote>

<p>Пока это только реклама. Ещё ни один клиент не смог настроить роуминг с ЭДО Лайт. Надеемся что скоро изменится ситуация.</p>

<p>На остальные вопросы буду отвечать в комментариях.</p>

<p>Для тех кто дочитал до конца подарок:<br />
<a href="/files/posts/2020-9-17/ON_NSCHFDOPPRMARK_2BE69a3315cbc6a11e2a5f3005056900000_2BE84e01ee637474d4d8ed2077388e00000_20200629_6CAE8B34-B200-1EEA-AEC3-1AF982B00000.zip">XML. Образец ЭУПД от Мегаполис.</a><br />
<a href="/files/posts/2020-9-17/ON_NSCHFDOPPRMARK_2BM-0000000000-000000000-201408170205389000000_2BM-0000000000-000000000-201805210911243000000_20200529_f3e6ab70-3dd6-4f39-ba41-b813c77ead01 (1).zip">XML. Образец ЭУПД c разными видами упаковок.</a><br />
<a href="/files/posts/2020-9-17/Уведомление об уточнении счет-фактуры_d3885a10-9b18-11ea-811f-00505690378b (1).zip">XML. Образец уведомления об уточнении счёт-фактуры.</a></p>]]></content><author><name>Alexander Gavrilov</name></author><category term="честный знак" /><category term="црпт" /><summary type="html"><![CDATA[Это копия оригинальной версии поста https://habr.com/post/510996/, который был значительно сокращён по просьбе ЦРПТ. Этот лозунг лучше всего подходит для внедряемого в России проекта маркировки. Сразу договоримся, что я не буду писать о банальных вещах, о которых рассказывают на всякого рода конференциях, официально проводимых ЦРПТ, производителями ККМ или операторами ЭДО. Об этом вы и сами можете посмотреть на сайте Честный знак. На всех форумах говорят одну и ту же мантру: «Внедрение маркировки проходит легко и сама маркировка защитит покупателя от контрафакта». Но это, мягко говоря, неправда. Я расскажу о том, о чем вам никогда не расскажут на официальных мероприятиях. О проблемах, возникающих при внедрении маркировки. Введение Я работаю руководителем отдела ИТ и отвечаю за внедрение маркировки в учётных системах 1С в группе табачных компаний (от производителя до розничной торговли). Сегодня я хочу поделиться опытом моей команды и особенностями внедрения маркировки сигарет. Всё, что я буду писать ниже, относится только к табачной продукции. Опыта для обувной продукции у меня нет, но, возможно, там аналогичные проблемы. Для дальнейшего понимания вас нужно погрузить в некоторую техническую часть Маркированными являются те сигареты, на потребительской упаковке которой нанесён код в соответствии с требованиями оператора (эмитента) кодов маркировки. Надо помнить, что в течение переходного периода для производителей (2018—07.2019) состав маркировки менялся. Производители сигарет совместно с оператором ЦРПТ пытались найти приемлемые решения. Выявляли ошибки работы оборудования, как при нанесении маркировки, так и при их регистрации в самом ЦРПТ. В это время производилась наладка оборудования, выявлялись ошибки в программных средствах производителя при бесконечно меняющихся правилах от ЦРПТ. Исправлялись ошибки в работе СУЗ от ЦРПТ, которых тоже было много. Давайте быстро разберём строение кода маркировки сигарет, действующего сегодня. Для кодирования серийного номера сигарет, МРЦ (максимальная розничная цена) используется 80 символов: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!”%&amp;’*+-./_,:;=&lt;&gt;? Алгоритм кодирования-декодирования МРЦ основан на переводе размера МРЦ в копейках в 80-чную систему счисления, используя следующий алфавит: Кодирование МРЦ преобразуем в копейки, например Находим целую часть и остаток от деления МРЦ на основание системы счисления (в нашем случае – 80) Берём символ из алфавита по индексу, равному остатку и записываем его в начало результирующей строки Повторяем шаги 2 и 3 пока целая часть не окажется равной 0 Дополняем результирующую строку до 4 символов слева символом по индексу 0 из алфавита (“A”) Пусть МРЦ = 146р30к, тогда МРЦ в копейках = 14630к Результирующая строка изначально пустая. Находим целое и остаток от деления 14630 на 80: 182 и 70 Находим символ по индексу 70 в алфавите и добавляем его в начало результирующей строки: “.” Целое от деления больше 0, поэтому находим новые целое и остаток от деления 182 на 80: 2 и 22 Находим символ по индексу 22 в алфавите и добавляем его в начало результирующей строки: “W.” Целое от деления больше 0, поэтому находим новые целое и остаток от деления 2 на 80: 0 и 2 Находим символ по индексу 2 в алфавите и добавляем его в начало результирующей строки: “CW.” Целое равно 0, поэтому дополняем результирующую строку слева нулевым символом: “ACW.” Декодирование Для каждого символа из закодированного представления МРЦ повторяем следующие шаги Возводим длину алфавита, равную 80, в степень, равную позиции текущего символа МРЦ, считая с конца строки и начиная с 0, и умножаем на индекс текущего символа в алфавите Прибавляем полученное значение к результирующему Пусть закодированное значение МРЦ равно “ACW.” Результирующее значение изначально равно 0. Берём первый символ МРЦ: “A” Индекс символа “A”: 0 Возводим 80 в степень 3 (позиция текущего символа, считая от конца строки из 4 символов) и умножаем на 0, получаем 0 Прибавляем 0 к результирующему значению строке: 0 Берём второй символ МРЦ: “C” Индекс символа “C”: 2 Возводим 80 в степень 2 и умножаем на 2, получаем 12800 Прибавляем 12800 к результирующей строке: 12800 Берём третий символ МРЦ: “W” Индекс символа “W”: 22 Возводим 80 в степень 1 и умножаем на 22, получаем 1760 Прибавляем 1760 к результирующему значению: 14560 Берём четвёртый символ МРЦ: “.” Индекс символа “.”: 70 Возводим 80 в степень 0 и умножаем на 70, получаем 70 Прибавляем 70 к результирующему значению: 14630 Итоговое значение МРЦ = 14360к или 146р30к Поскольку на практике МРЦ (максимальная розничная цена) округляется до рублей и имеет диапазон от 60 до 500 рублей, можно сделать вывод: МРЦ в 80-ричной кодировке всегда начинается с “A”, а заканчивается на один из четырёх символов “A”,“U”,“o”,“8”. Можно использовать это для проверки валидности МРЦ в коде маркировки пачки. Таблица кодирования МРЦ: Рассмотрим маркировку на примере сигарет с фильтром «T&amp;W» ОРИДЖИНАЛ КОМПАКТ МРЦ 106 Вот как выглядит маркировка на пачках и блоках: Извините, я не нашёл блок с МРЦ 106, для фото брал 115. Маркировка пачки: 0461003014152700000HdAB0oOnE1 Строка длиной 29 символов, содержит: GTIN-14 (14 цифровых символов). Содержит лидирующие “0” и EAN-13 код для единицы измерения «пачка» прижаты к правому краю. Аналогичен обычному EAN-13, нанесённому на пачке. Серийный номер (7 символов). Идентификационный код, сгенерированный оператором эмиссии из набора 80 символов. Задумывался он как уникальный для указанного EAN. МРЦ (4 символа). Максимальная розничная цена, указанная в копейках в 80-ричном исчислении. Криптохвост (4 символа). Код создаётся на производстве в «чёрном ящике» при запросе очередного пула кодов у оператора эмиссии маркировки. Его запрещено накапливать в базах данных и передавать третьим лицам. На мой взгляд, это требование — самая большая ошибка ЦРПТ, потом вы поймёте, почему я так считаю. Маркировка блоков: (01)04610030141534(21)00000!&amp;&lt;FNC1&gt;(8005)106000&lt;FNC1&gt;(93)yikZ Строка длиной не менее 41 символов и содержит код в формате GS1. Скобочки добавлены для наглядности. Содержит символы GS1 (01) GTIN-14 (14 цифровых символов). Содержит лидирующие “0” и EAN-13 код для единицы измерения «блок». Аналогичен обычному EAN-13 нанесённому на блоке. (21) Серийный номер (7 символов). Идентификационный код, сгенерированный производителем из набора 80 символов. Задумывался как уникальный для указанного GTIN-14. (8005) МРЦ (6 цифровых символов). Максимальная розничная цена, указанная цифрами в копейках для блока. В нашем примере 1060.00 рублей для блока (106 для пачки) (93) Криптохвост (4 символа). Код создаётся на производстве в «чёрном ящике» при запросе очередного пула кодов у оператора эмиссии маркировки. Его запрещено накапливать в базах данных и передавать третьим лицам. В код могут быть включены дополнительные данные, но первыми должны идти коды 01 и 21. Маркировка коробов: (01)14610030141524 (21)0011986(8005)106000(37)50 Строка длиной не менее 25 символов. Содержит обязательные коды 01 и 21 в формате GS1. Каждый производитель сам определяет состав кода маркировки для транспортной упаковки. Не имеет криптохвоста. Может быть нанесён как GS-1 DataMatrix код. Часто производители дублируют GS-1 (CODE-128) и GS-1 DataMatrix, вот пример: Другие производителя иногда не указывают МРЦ, а некоторые добавляют элемент 240 для указания внутреннего кода номенклатуры производителя. Разберём наш пример кода маркировки транспортной упаковки «короб»: (01) GTIN-14 (14 цифровых символов). Содержит IFT-14 код для единицы измерения «короб». Аналогичен обычному IFT-14, нанесённому на коробе в чёрной рамке. (21) Серийный номер (7 цифр). Идентификационный код, сгенерированный производителем и обеспечивающий неповторимость в рамках одного IFT-14 кода. (8005) МРЦ юнита (6 цифровых символов). Максимальная розничная цена, указанная в копейках для вложенного юнита – «блока». (37) Количество вложенных юнитов (2 и более цифровых символов). Количество вложенных в короб блоков сигарет. В код могут быть включены дополнительные данные, но первыми должны идти коды 01 и 21. Маркировка паллет: (00)946100301410004634 Строка длиной 20 символов. Содержит префикс 00 и обязательный логистический код паллеты (контейнера) SSCC. На всех упаковках, кроме пачек, наносится как машиночитаемый код, так и его человекочитаемый эквивалент. Это позволяет набрать код маркировки вручную, если по какой-то причине код не сканируется сканером. Агрегации и дезагрегации. В маркировке от ЦРПТ заложены такие возможности как агрегация и дезагрегация упаковок. До недавнего времени агрегация производилась только на заводе изготовителе. С завода информация передаётся в ЦРПТ. Не только о нанесённых кодах маркировки, но и об её агрегации. JSON файл, передаваемый с завода в СУЗ ЦРПТ, содержит структуру, в которой нельзя отправить данные о маркировке без данных о заводской агрегации. На заводе, агрегация блоков/коробов/паллет производится при повторном сканировании маркировки с каждого вложенного элемента и кодов упаковки. Этим обеспечивается проверка читаемости кода и гарантия соответствия кодов, входящих в состав упаковки, коду самой упаковки. Поэтому старайтесь сохранять заводскую упаковку до последнего момента. Вскрыв заводскую коробку, уже нельзя гарантировать, что все блоки относятся именно к этому коробу. Привет всем торговым сетям, которые проверяют вложенные блоки и вскрывают короба для этого ;) Недавно функция агрегации сигарет появилась в API для торговых организаций. Видим большую перспективу здесь для отгрузки паллетами с логистических складов. Дезагрегация производится автоматически, как только вложенная в упаковку единица была использована в документах выбытия или смены собственника. Другими словами, если продать пачку сигарет, то блок, в котором она находилась, автоматически дезагрегируется на пачки, а короб, в котором находился этот блок, дезагрегируется на блоки и т.д. Использовать в дальнейшем дезагрегированные коды блока, короба, паллет будет невозможно. Это, кстати, «ахиллесова пята» маркировки сигарет, создающая наибольшие проблемы в обороте сигарет. Но об этом ниже. Теперь разберём проблемы, с которыми мы столкнулись при внедрении прослеживаемости движения сигарет Криптохвост на сигаретах никому не нужен и нигде не проверяется Некто Резав Юсупов писал: … фабрика наносит код, который генерирует единая система, а защищает его криптография, поэтому подделать или скопировать его невозможно… То есть система замкнутая и ни у кого нет возможности на каком-либо этапе добавить в партию нелегальный товар. Вот только он забыл добавить, что на всех участках криптохвосты обрезаются, и никуда не передаются, и нигде не запоминаются. Криптохвост существует только на упаковке и в недрах баз данных органов власти (я на это искренне надеюсь). Доказать задним числом, что ты продал подделку или оригинал невозможно, если ты ранее приобретал аналогичную продукцию. Нет, наверное, можно проверить криптохвост, пока сохранена сама упаковка у покупателя, но при продаже, узнать та ли конкретная упаковка продавалась или другая с подменным криптохвостом невозможно. Злоумышленнику все, что нужно, это попасть на существующий в природе серийный номер (благо он нумеруется по порядку у всех, кроме как у ФилипМорис) Ниже пример: Обратите внимание на последние четыре символа — это для теста подменённый криптохвост. Когда мы эту картинку показали ЦРПТ, они признались, что у них нет технической возможности проверять криптохвосты. Более того, у них нет информации о том, по какому алгоритму генерируются криптохвосты. И, что они сделали после нашего обращения? Они обновили приложение «Честный знак» и теперь обрезают криптохвосты и не показывают его на экране. Наверное, чтобы никто не мог тыкать их носом. Но мы-то снимок экрана сохранили :) К чему приводит отказ от проверки криптохвостов ЦРПТ? Первая и самая главная проблема, это возможность выводить из оборота сигарет продукцию, которая вам не принадлежит. Вы можете даже не иметь под рукой настоящую пачку сигарет. Для вывода из оборота сигарет вам нужны только ЕАН13 и серийный номер, который у большинства производителей идет по порядку в 80-ричном исчислении (см. выше). В частности, в ККМ и оператору ЭДО через УПД передаётся только первые 21 символ кода маркировки с пачек или 25 символов с блоков сигарет. И даже если вы каким-то чудом отправите более длинную строку, в ЦРПТ поступят исключительно первые 21/25 символов на выбытие сигарет или смены собственника. Вы можете самостоятельно провести эксперимент: сосканируйте код с пачки сигарет в notepad, замените криптохвост (последние 4 символа) на любые другие 4 символа и из полученного результата обратно сгенерируйте DataMatrix. Программа для проверки подлинности продукции «Честный знак» покажет, что этот код подлинный. Другими словами, никто в цепочке от предпринимателя до оператора ЦРПТ, не проверяет соответствие серийного номера пачки сигарет его криптохвосту. Я даже больше скажу, ЦРПТ не проверяет даже соответствие серийного номера к указанному МРЦ в коде. Программа честный знак показывает размер МРЦ, динамически рассчитывая его из кода, ограничивая верхнюю и нижнюю планку, после которой МРЦ просто не выводится. Вы можете сказать: «Ну и что, ну не проверяет криптохвост, нам же лучше». А вот и не лучше! Сейчас объясню почему в следующем пункте с проблемами. Бесконтрольная дезагрегация транспортных упаковок Впервые мы столкнулись с этой проблемой, когда ЦРПТ стал отказывать в отражении смены собственников по некоторым нашим ЭУПД. Это было еще в 2019 году, когда использовать ЭДО обязаны были только производители и первые покупатели. Причина отказа — дезагрегация транспортной упаковки (короба). На каждый такой случай ЦРПТ писал: «короб дезагрегирован, потому что из короба была продана одна пачка или блок». ЦРПТ обвинял всех, кроме себя. Мы тоже полагали, что это внутренний пересорт. Но однажды подвернулся случай. В день, когда мы узнали об очередной такой дезагрегации, дезагрегированный короб ещё не покинул наш склад. Конечно, мы его тут же вскрыли и увидели, что пачка, которая по данным ЦРПТ была выведена из оборота через розницу, лежит целая и нетронутая в коробке. Посмотрели в личном кабинете, кто и когда продал эту пачку. Договорились с розничным продавцом и получили все его логи из POS систем по нашим сигаретам. Увидели, что была продажа пачки сигарет с совпадающим серийным номером, но с совершенно кривым МРЦ и другим криптохвостом. Связались с производителем POS, а он пояснил, что у этих продавцов 2D сканеры воткнуты «в разрыв клавиатуры» и на результат их сканирования влияют: текущий вид OS (там был линукс), кодировка раскладки клавиатуры, CapsLock и SHIFT. Соответственно, код маркировки, приведённый в примере выше, 0461003014152700000HdAB0oOnE1 при включённом CapsLock превращается в 0461003014152700000hDab0OoNe1. Вспоминаем, что ЦРПТ не смотрит и не проверяет МРЦ и криптохвост. В результате получаем 0461003014152700000hD. А такая пачка есть, но в другом коробе. Кстати, если включена русская раскладка и в серийном номере нет букв, то можно попасть на подмену знака препинания с (01)04610030141534(21)00001.6 на (01)04610030141534(21)00001?6 и так далее. Если ЦРПТ находил похожий серийный номер сигарет и вне зависимости от того, кто собственник, он проводил выбытие этой пачки/блока, попутно дезагрегировав все вышестоящие упаковки. Когда стал доступен TrueAPI мы провели инвентаризацию на складах, и обнаружили еще не проданных от производителя, но уже дезагрегированных 63 короба на одном центральном складе и 23 короба на другом центральном складе. И, отгружая через неделю из проверенных остатков, мы вдруг обнаруживаем, что появились ещё несколько дезагрегированных коробов по той же причине. Пример такой дезагрегации При просмотре состава дезагрегированного блока видно, что одна пачка продана неким индивидуальным предпринимателем, несмотря на то что все остальные пачки этого блока ещё не проданы от производителя ООО «УСМ» По этому поводу мы написали в ЦРПТ официальную заявку. Более того, мы поднимали этот вопрос на собрании совместно с другими производителями и министром промышленности. Заявленная проблема была занесена в протокол собрания, но так и не была решена до сих пор. Любой участник оборота может продать ваши сигареты, просто случайно попав на ваш серийный номер. Последнее заявление, которое мы получили от ЦРПТ примерно такое: мы разработали систему маркировки для гос.органов, в которой у нас самих нет технической возможности проверять валидность эмитируемых нами кодов маркировки. Мы опознаем сигареты и отражаем их движение ориентируясь исключительно на серийные номера. Трудно представить, как такая маркировка будет применяться на лекарствах?!? И даже, если мы будем проверять статусы маркировки перед каждой отгрузкой, а мы это уже делаем, нет гарантии того, что пока машина едет до покупателя, все короба останутся недезагрегированными на момент приёмки. Я уже молчу о том, что при продаже в рознице у вас будут пачки, которые по данным ЦРПТ уже выведены из оборота кем-то другим. Напоминаю, что ЦРПТ говорит: это не наши проблемы и ничего пока исправлять не будем. Рекомендации ЦРПТ проверять статус и собственника маркированного товара перед подписанием документов о покупке или продаже Действительно, с появлением TRUE_API.pdf, у участников оборота появилась возможность получить данные о кодах маркировки, их вложенность в агрегаты, текущих собственниках и др. информацию. Многие сети решили с помощью данного API внедрить проверку собственника перед покупкой и сделали это одним из условий договоров. Да что там греха таить, некоторые производители ККМ и операторы ЭДО решили обезопасить своих клиентов, и не дают им продавать или подписывать документы, пока данные о собственнике маркированного товара не будут соответствовать участникам сделки. Не будем во всех тыкать пальцем, но хочу передать привет особенно компании 1С, СБИС и АТОЛ. Как всегда хорошие задумки этих компаний разбиваются об айсберг действительности. Особо пытливые умы могут проверить на примере: Верхняя пачка в приложении «Честный знак» не проходит проверку (слева), а нижняя проходит (справа): Чтобы не дезинформировать потребителей в ЦРПТ обещали исправить своё приложение уже на следующей неделе. Но вот когда они поправят ГИС МТ для предпринимателей? Что касается проверки информации о текущем собственнике, в реальности, дела обстоят так: сегодня, когда я пишу эту статью 26.06.2020, в ЦРПТ отражена смена собственников только до 15.06.2020. Ни один документ после 15.06.2020 ещё не отражён в базе данных ЦРПТ. У нас были случаи, когда ЭУПД появлялась в личном кабинете ЦРПТ спустя месяц, и только после обращения в службу поддержки ЦРПТ. Как это обычно происходит. Мы видим, что наши документы не появляются в ЦРПТ слишком долго (более недели). Пишем в поддержку ЦРПТ обращение. Поддержка ЦРПТ пишет, что они не получали наших ЭУПД. Пишем оператору ЭДО. Оператор ЭДО пишет, что все ЭУПД давно направлены в ЦРПТ. Вот так и бегаем от одних к другим. А покупатели, наслушавшись невыполнимых рекомендаций ЦРПТ об обязательной проверке, бегают и мучают нас вопросами: «Почему у меня не отразилось в личном кабинете?», «Почему ваши сигареты не проходит проверку в ЭДО?», «Почему ККМ не даёт продать ваши сигареты?» На практике за один день собственник может смениться несколько раз (производитель-первый покупатель-торговая сеть). И не забываем, что маркированные сигареты вы могли совершенно законно приобрести на бумажном носителе до 01.07.2020. Но их собственник в ГИС МТ будет отражён неверно. Помножим проблему несвоевременного отражения в ЦРПТ информации о смене собственников на проблему о бесконтрольной дезагрегации и получим недостоверность данных, отражённых в ГИС МТ. Подытожим. Внедрение проверки статусов и собственников при приёмке товаров и при продаже товаров пока даёт лишь головную боль участникам оборота, а не защищает вас от штрафов. Согласие на передачу информации в ГИС МТ третьим лицам ЦРПТ ввёл сбор «согласия» тогда, когда мы продемонстрировали в поддержку ЦРПТ, как можно по кодам маркировки смотреть всю историю движения сигарет, в том числе, не принадлежавших нам, и скачивать все ЭУПД по всей цепочке продаж с вложенными кодами маркировки и ценами. Например: нашли на улице пачку от ФИЛИП МОРРИС и по коду маркировки пачки, используя специальный GET запрос, скачали для этой пачки цепочку всех продаж в виде документов УПД -XML. В этих УПД видим цены и коды маркировки. По каждому коду смотрим дальнейшее движение… и так по кругу. Вы не представляете, какое было желание продать все блоки конкурента по цене 0.01 коп. Это бы привело к выводу из оборота и дезагрегации всех заводских коробов конкурента. Однако удержались и написали об этой уязвимости в поддержку ЦРПТ. Как исправили эту уязвимость в ЦРПТ? Придумали брать согласие от поставщиков на передачу данных своим покупателям. Даёшь согласие, снимаешь с ЦРПТ ответственность за утечку информации. И в чем проблема? Да в том, что ЦРПТ, приучив всех участников рынка сигарет пользоваться TrueAPI, вдруг объявляет, что будет закрывать доступ к данным, если поставщик маркированной продукции не будет давать «согласие на предоставление данных из ГИС МТ». Соответственно все сети поголовно стали требовать от своих поставщиков такого «согласия». Но давая его, поставщик дарит покупателю возможность в личном кабинете скачать все свои ЭУПД и смотреть, по каким ценам он покупает или продаёт сигареты конкурентам. Мы уже написали об этой уязвимости в поддержку ЦРПТ, ждём их реакции. Ниже приведён пример копии экрана из личного кабинета покупателя, отражённого заштрихованного в самой последней строке внизу. Как видите, он может просматривать ЭУПД вышестоящих участников в цепочке продаж. Скачивать их и смотреть цены. P.S.: В день, когда я закончил писать статью, ЦРПТ временно сделал запрет на скачивание всех документов и теперь показывает заглушку вместо списка документов. ЭДО, материальная ответственность и COVID-19 Для запуска ЭДО, все участники оборота должны иметь цифровую квалифицированную подпись для подписания ЭУПД. На каждом собрании (семинаре) от ЦРПТ нам заявляют, что практически все предприниматели и организации уже имеют такой ключ ЭЦП, полученный на директора компании или на индивидуального предпринимателя. Также заявляется, что ЭДО позволит избавиться от лишних бумаг. Про бумаги мы сразу скажем: для перевозки сигарет автотранспортом все ещё нужны бумажные ТТН. Но я не об этом. Сигареты, это высоколиквидные материальные ценности, которые все время воруют из транспорта, со складов, магазинов. В случае обнаружения недостачи, с материально ответственных лиц нужно удержать выявленную недостачу, и не всегда добровольно — через в суд. Как раз суду-то и плевать на ваш электронный документооборот, он просит предоставить документы с личной подписью материально ответственного лица. Если у вас все отгрузки и поступления подписаны только цифровой подписью директора, то в суд вам нести нечего. Сегодня есть два нормальных решения: дублировать все ЭУПД на бумажном носителе и брать подписи с кладовщиков и продавцов или вводить у себя бумажную-ордерную систему; получать квалифицированную подпись непосредственно на материально ответственных лиц (рекомендуется ЦРПТ). Мы применяем первый вариант, так как он единственно рабочий. В варианте, где всё подписывается директорской подписью есть проблемы: сложно доказать отсутствие фиктивности сделок перед налоговой инспекцией. Например, когда документы подписываются директорской цифровой подписью, а тот при этом он находился за границей. И при такой схеме есть риск остановить все продажи, если вдруг подпись директора перестанет действовать. Дело в том, что новую ЭЦП не так быстро зарегистрировать, как показывают на презентациях. Например , если директор уволится или погибнет, со дня увольнения его подпись нельзя использовать без доверенности, а пока проведут собрание и назначат нового директора и пока налоговая зарегистрирует этого нового директора пройдёт 15 дней минимум. Для другого варианта, нужно отправить всех материально ответственных лиц за квалифицированной электронной подписью. Каждая бабушка — продавец, из каждого магазина с сигаретами, должна ехать в период пандемии в город за ЭЦП? Минпромторг вы в своём уме? Сейчас мы склоняемся к гибридному варианту, когда будет и на бумаге, и электронных подписей будет несколько — генерального директора и нескольких региональных руководителей. Корректировочный ЭУКД Даже не хочу об этом писать. Если вы не программист и не специалист в маркировке, вы вряд ли сможете оформить электронную корректировку. Потому что коды маркировки там нужно указывать особым способом и вперемешку. Да и заявленное ЦРПТ ранее уведомление об уточнении счёт-фактуры также не стандартизировано, и все претензии в нем пишут просто текстом, кто во что горазд. Лучшее решение сегодня — не подписывать покупателем входящий ЭУПД, если есть претензии. А выслать ТОРГ-2 и коды маркировки поставщику, которые нужно убрать или добавить в УПД. На основании их поставщик аннулирует ЭУПД и выпишет новый, уже правильный. Но если покупатель успел продать дальше или дезагрегировать транспортные упаковки, ваша дорога только одна, через ЭУКД. Учитывайте всегда, что могут быть ошибки в указании МРЦ в кодах маркировки В код маркировки встроен параметр «МРЦ» и первое что приходит в голову разработчикам POS систем — будет классно, если POS система сама будет определять цену, по которой нужно продавать сигареты в рознице. Так делают, например, кассы «ЭВАТОР». Не буду расписывать — вот примеры: Нам известна пока только одна POS система, которая правильно работает с такими ошибками. Непечатаемые символы в маркировке Позвонил клиент с жалобой, что 1С не пропускает наш код маркировки, так как он имеет нестандартные символы… сразу вспомнил о ещё одной проблеме. Раз клиент не может загрузить такую маркировку в 1С, то видать компания 1С не в курсе. ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!”%&amp;’*+-./_,:;=&lt;&gt;? это не все символы, используемые в маркировке. При выдаче кодов маркировки оператором эмиссии — ЦРПТ, коды могут содержат непечатаемые символы в криптохвосте. Когда мы с этим столкнулись в начале 2020 года, мы добавили новый алгоритм в оборудование, работающее на производстве с СУЗ. Теперь мы получаем гораздо больший пул кодов, чем нам нужно для производства, и отбрасываем те коды, которые имеют непечатаемые символы, чтобы защитить наших покупателей. Конечно, это произошло не сразу и мы успели выпустить много продукции с такими криптохвостами. Такая продукция все еще ходит в обороте. Как решают этот вопрос другие производители мы не знаем. Мифы о маркировке, которые мне приходится каждый день развеивать если сигареты куплены по бумажному УПД, то 01.07.2020 придётся их все сканировать и подавать остатки в ЦРПТ; Это делать не нужно. Данные о маркировке уже есть в ЦРПТ от производителя, а новый собственник будет указан при следующей реализации. покупатель обязан сканировать маркировку при приёмке табачных изделий; Создаёт электронное УПД и прикрепляет к нему маркировку только поставщик. Покупатель может лишь подписать или не подписать документ в ЭДО. Желание сканировать товары при приходе — это личное желание покупателя свериться с поставщиком. поскольку немаркированные сигареты с 01.07.2020 уже нельзя продавать, то их можно только выбросить (утилизировать); До 01.12.2020 можно самостоятельно маркировать и наклеить стикеры с маркировкой на продукцию. Ждём информацию от ЦРПТ, как это сделать. в каждом УПД содержится информация обо всех вложенных пачках сигарет (информация об агрегации); В УПД содержится только тот код маркировки, в котором производится отгрузка. В коробах — значит код короба, в блоках — код блока. Информации о вложенности нет. Отсюда и проблема во многих учётных системах, которые пытаются проверить на совпадение EAN в коде маркировке и ЕАН внесённый в 1С (как правило вносят ЕАН только для пачек и проверка не работает). если Честный знак показывает, что такой пачки в ГИС МТ не числится или такой блок уже дезагрегирован, то продать эту пачку будет невозможно; Система маркировки от ЦРПТ является уведомительной системой, а не как в ЕГАИС — разрешительной. Задача покупателя, в соответствии с законом, оформить ЭУПД через своего оператора ЭДО, приложить к нему отгружаемые коды маркировки и подписать документ своим ЭЦП. Никакой проверки, ни поставщик и ни покупатель не обязаны проводить. Сегодня все проверки, это проверки, придуманные производителями ПО POS систем или 1С или операторами ЭДО, основанных на! РЕКОМЕНДАЦИЯХ!.. Участник оборота так же не обязаны проверять работу ЦРПТ и следить за тем, что они у себя отражали все правильно. Следует отметить, что в личном кабинете ЦРПТ, проблемные ЭУПД имеют значок «x», но привлечь к ответственности за это невозможно, так как нельзя доказать — это неверные коды или ошибка в ЦРПТ. ЦРПТ ведёт остатки табачной продукции за каждым предприятием также, как ЕГАИС; Учёт построен по-другому. Есть реестр всех эмитированных кодов маркировки. Для каждого кода маркировки, при появлении более позднего документа, устанавливается новый статус и новый владелец. (Аналог периодического регистра сведений в 1С). Легко можно пропустить несколько участников оборота и закончить выбытием в ККМ. Сами коды маркировки заказывают и вводят в оборот производители. Сейчас будут еще и те, кто будет маркировать не маркированные сигареты. Именно по причине, что остатки не проверяются возможна ситуация, когда сторонний розничный продавец продаёт сигареты, которые на самом деле ему не принадлежат, а лежат на вашем складе. продать в розницу один и тот же код маркировки много раз невозможно; Можно, если вы не используете такую POS систему, которая сохраняет проданную маркировку и/или проверяют её через ГИС МТ на предмет выбытия. Все запреты — это желание производителей ПО для POS помочь как-то своим клиентам «не залететь на штрафы». Таких запретов, как в ЕГАИС, нет. Могу привести свои случаи: POS система накапливает выбывшие коды и не даёт их продавать повторно. Если дело доходит до пачки с уже выбывшем кодом, продавцы просто меняются проблемными пачками с продавцами из другого магазина. А если включить контроль по ГИС МТ, то в нем информация меняется с большим запозданием и это тоже не решение. код маркировки не проходит проверку в Честном знаке, потому что он является контрафактным; Читайте статью, и поймёте, что если что то не отражается в ГИС МТ — это ещё не значит что продукция плохая. На практике, это почти всегда сбои в ЦРПТ. на коробах/паллетах коды маркировки должны быть в виде datamatrix, как на блоках и пачках; Читайте правила нанесения маркировки. Любая маркировка на заводе проходит согласование с ЦРПТ. Если завод её наносит на упаковку, значит она нанесена в соответствии с законом. На коробах маркировка может быть нанесена как при помощи GS-1 CODE128 так и при помощи GS-1 DataMatrix. Содержание кодов одинаково. можно использовать бесплатный ЭДО Лайт от ЦРПТ для оптовой торговли с другими операторами, настроив роуминг (пока это неправда); Пока это только реклама. Ещё ни один клиент не смог настроить роуминг с ЭДО Лайт. Надеемся что скоро изменится ситуация. На остальные вопросы буду отвечать в комментариях. Для тех кто дочитал до конца подарок: XML. Образец ЭУПД от Мегаполис. XML. Образец ЭУПД c разными видами упаковок. XML. Образец уведомления об уточнении счёт-фактуры.]]></summary></entry><entry><title type="html">Освобождение месенджера?</title><link href="http://dartraiden.github.io/Freeing-the-messenger/" rel="alternate" type="text/html" title="Освобождение месенджера?" /><published>2020-07-25T00:00:00+00:00</published><updated>2020-07-25T00:00:00+00:00</updated><id>http://dartraiden.github.io/Freeing-the-messenger</id><content type="html" xml:base="http://dartraiden.github.io/Freeing-the-messenger/"><![CDATA[<p><code class="language-plaintext highlighter-rouge">Это копия ныне удалённого поста https://valerykomarov.blogspot.com/2020/06/blog-post_19.html</code></p>

<p><img src="/images/posts/2020-7-25/karikatura-nad-propastyu_(sergey-korsun)_4821.jpg" alt="Карикатура" /></p>

<p>Пресс-релиз на сайте Роскомнадзора вызвал не только шум в прессе, но и серьёзные вопросы к легитимности принятых решений</p>

<p>“<em>Позитивно оцениваем высказанную основателем Телеграмм готовность противодействовать терроризму и экстремизму.<br />
<strong>По согласованию с Генеральной прокуратурой РФ Роскомнадзор снимает требования по ограничению доступа к мессенджеру Телеграмм.</strong></em>”<br />
https://rkn.gov.ru/news/rsoc/news73050.htm</p>

<p>Возникает вопрос: а причём здесь Генпрокуратура?<br />
Ответ:</p>

<p><img src="/images/posts/2020-7-25/тел1.jpg" alt="Требование Генпрокуратуры, лист 1" />
<img src="/images/posts/2020-7-25/тел2.jpg" alt="Требование Генпрокуратуры, лист 2" /></p>

<p>На основании этого требования РКН осуществлял блокировку доступа к телеграм. Были обращения в суды от пострадавших организаций https://zona.media/online/2018/08/06/rkn-ip.<br />
Обращаю внимание, что Генпрокуратура не требовала заблокировать доступ к месенджеру полностью, речь в Требованиях идёт о конкретных ресурсах.<br />
“<em>В возражениях надзорное ведомство подчёркивает, что <strong>в этом решении шла речь об ограничении доступа к семи аккаунтам мессенджера, которые пропагандируют</strong> деятельность нескольких запрещённых в России организаций на территории Сирии, <strong>а также к четырем сервисам, позволяющим обходить блокировки.</strong></em>”</p>

<p>А чем же обоснована блокировка работы самого месенджера на территории России?<br />
Ответ: решением суда № 02-1779/2018, карточка дела - https://mos-gorsud.ru/rs/taganskij/services/cases/civil/details/2cc72aea-39e7-4f8e-adc9-37d170966efa?caseFinalRangeDateFrom=13.04.2018&amp;caseFinalRangeDateTo=13.04.2018&amp;formType=fullForm.</p>

<p>И Генеральная прокуратура там никак не задействована.</p>

<p><strong>История вопроса.</strong><br />
<em>14 апреля 2017 года, посредством почтовой связи, а также на адрес электронной почты Telegram Messenger Limited Liability Partnership, содержащихся в реестровой записи № 90-РР, <strong>Федеральной службой безопасности</strong> Российской Федерации был направлен запрос <strong>о предоставлении Telegram Messenger Limited Liability Partnership в Управление ФСБ России информации, необходимой для декодирования электронных сообщений пользователей сети «Интернет», со сроком исполнения до 19.07.2017 года.</strong></em></p>

<p>Информация не предоставлена.</p>

<p><em>Постановлением мирового судьи судебного участка № 383 Мещанского района города Москвы от 16 октября 2017 года Telegram Messenger Limited Liability Partnership <strong>признано виновным в совершении административного правонарушения</strong>, предусмотренного ч. 2.1 ст. 13.31 КоАП РФ, предусматривающей административную ответственность <strong>за неисполнение организатором распространения информации в сети “Интернет” обязанности предоставлять в федеральный орган исполнительной власти в области обеспечения безопасности информацию, необходимую для декодирования принимаемых, передаваемых, доставляемых и (или) обрабатываемых электронных сообщений</strong>, и ему назначено административное наказание в виде административного штрафа <strong>в размере 800 000 руб.</strong></em></p>

<p>Информации об уплате штрафа нет.</p>

<p><em>20 марта 2018 года <strong>Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций</strong> в адрес Telegram Messenger Limited Liability Partnership были направлены уведомления на русском и английском языках <strong>о неисполнении установленных обязанностей</strong>, в котором последнему был предоставлен срок 15 дней с момента получения уведомления для исполнения обязанности, предусмотренной ч. 4.1 ст. 10.1 Федерального закона от 27 июля 2006 года № 149-ФЗ «Об информации, информационных технологиях и о защите информации».</em></p>

<p>Телеграм дал официальный ответ - отсутствует техническая возможность выполнить требования РКН.</p>

<p>Обращение <strong>РКН</strong> в суд с заявлением об ограничении на территории Российской Федерации доступа к информационным ресурсам, функционирование которых обеспечивается Telegram Messenger Limited Liability Partnership, указывая в обоснование требований, что в нарушение норм действующего законодательства, в частности ч. 4.1 ст. 10.1 Федерального закона от 27 июля 2006 года № 149-ФЗ «Об информации, информационных технологиях и о защите информации» Telegram Messenger Limited Liability Partnership <strong>не исполнена обязанность по предоставлению в Федеральную службу безопасности Российской Федерации информации</strong>, необходимой для декодирования принимаемых, передаваемых, доставляемых и (или) обрабатываемых электронных сообщений, что является основанием для применения в отношении Telegram Messenger Limited Liability Partnership ч. 2 ст. 15.4 Федерального закона от 27 июля 2006 года № 149-ФЗ «Об информации, информационных технологиях и о защите информации», предусматривающей возможность ограничения доступа к информационным системам и программам для электронных вычислительных машин, которые предназначены и используются для приёма, передачи, доставки и обработки электронных сообщений пользователей сети “Интернет” и функционирование которых обеспечивается данным организатором, <strong>до исполнения таких обязанностей</strong>.</p>

<p>Вынесено решение суда:<br />
<em><strong>Установить на территории Российской Федерации ограничение доступа</strong> к информационным системам и (или) программам для электронных вычислительных машин, которые предназначены и (или) используются для приёма, передачи, доставки и (или) обработки электронных сообщений пользователей сети «Интернет» и функционирование которых обеспечивается Telegram Messenger Limited Liability Partnership, <strong>до исполнения указанным организатором распространения информации в сети «Интернет» обязанности по представлению</strong> в федеральный орган исполнительной власти в области обеспечения безопасности <strong>информации, необходимой для декодирования принимаемых, передаваемых, доставляемых и (или) обрабатываемых электронных сообщений</strong>.<br />
<strong>Обязать</strong> Федеральную службу по надзору в сфере связи, информационных технологий и массовых коммуникаций <strong>принять меры по ограничению доступа</strong> на территории Российской Федерации к информационным системам и (или) программам для электронных вычислительных машин, которые предназначены и (или) используются для приёма, передачи, доставки и (или) обработки электронных сообщений пользователей сети «Интернет» и функционирование которых обеспечивается Telegram Messenger Limited Liability Partnership, <strong>до исполнение указанным организатором</strong> распространения информации в сети «Интернет» обязанности по представлению в федеральный орган исполнительной власти в области обеспечения безопасности информации, необходимой для декодирования принимаемых, передаваемых, доставляемых и (или) обрабатываемых электронных сообщений.<br />
<strong>Обязать</strong> Федеральную службу по надзору в сфере связи, информационных технологий и массовых коммуникаций и иных лиц <strong>прекратить создание технических условий</strong> для приёма, передачи, доставки и (или) обработки электронных сообщений пользователей сети «Интернет», распространяемых посредством информационных систем и (или) программ для электронных вычислительных машин, функционирование которых обеспечивает Telegram Messenger Limited Liability Partnership, в том числе путём ограничения доступа к указанным информационным системам и (или) программам для электронных вычислительных машин, <strong>до исполнения</strong> указанным организатором распространения информации в сети «Интернет» установленной обязанности по представлению в федеральный орган исполнительной власти в области обеспечения безопасности информации, необходимой для декодирования принимаемых, передаваемых, доставляемых и (или) обрабатываемых электронных сообщений.</em></p>

<p>Ответ пресс-службы суда на запрос СМИ: решение суда в силе и не отменено.</p>

<p><strong>Вывод:</strong> блокировка осуществлялась по заявлению РКН на основании уведомления ФСБ о неисполнении ОРИ своих обязанностей, установленных 149-ФЗ.<br />
Перед этим ОРИ был оштрафован по решению другого суда.<br />
РКН обязан блокировать, а не на своё усмотрение это делать. Суд обязал РКН, а не дал право.<br />
Условие снятие блокировки - передача информации в ФСБ.</p>

<p><strong>Итог:</strong> судя по тексту пресс-релиза РКН и суда, речь может идти исключительно о снятии блокировки конкретных ресурсов в телеграмме, заблокированных по требованию Генпрокуратуры ранее.<br />
Если же речь идёт о снятии полной блокировки на территории России, то такое решение РКН должен быть согласовано с ФСБ, а не с Генпрокуратурой.<br />
Так как такой информации не опубликовано, а вариант согласования Генпрокурором неисполнения РКН судебного решения выглядит сомнительным, то телеграм на территории страны продолжает быть запрещённым!</p>

<p>Дополнение:
<img src="/images/posts/2020-7-25/photo_2020-07-25_16-42-27.jpg" alt="Ответ на обращение" /></p>]]></content><author><name>Alexander Gavrilov</name></author><category term="генпрокуратура" /><category term="telegram" /><category term="фсб" /><category term="роскомнадзор" /><summary type="html"><![CDATA[Это копия ныне удалённого поста https://valerykomarov.blogspot.com/2020/06/blog-post_19.html Пресс-релиз на сайте Роскомнадзора вызвал не только шум в прессе, но и серьёзные вопросы к легитимности принятых решений “Позитивно оцениваем высказанную основателем Телеграмм готовность противодействовать терроризму и экстремизму. По согласованию с Генеральной прокуратурой РФ Роскомнадзор снимает требования по ограничению доступа к мессенджеру Телеграмм.” https://rkn.gov.ru/news/rsoc/news73050.htm Возникает вопрос: а причём здесь Генпрокуратура? Ответ: На основании этого требования РКН осуществлял блокировку доступа к телеграм. Были обращения в суды от пострадавших организаций https://zona.media/online/2018/08/06/rkn-ip. Обращаю внимание, что Генпрокуратура не требовала заблокировать доступ к месенджеру полностью, речь в Требованиях идёт о конкретных ресурсах. “В возражениях надзорное ведомство подчёркивает, что в этом решении шла речь об ограничении доступа к семи аккаунтам мессенджера, которые пропагандируют деятельность нескольких запрещённых в России организаций на территории Сирии, а также к четырем сервисам, позволяющим обходить блокировки.” А чем же обоснована блокировка работы самого месенджера на территории России? Ответ: решением суда № 02-1779/2018, карточка дела - https://mos-gorsud.ru/rs/taganskij/services/cases/civil/details/2cc72aea-39e7-4f8e-adc9-37d170966efa?caseFinalRangeDateFrom=13.04.2018&amp;caseFinalRangeDateTo=13.04.2018&amp;formType=fullForm. И Генеральная прокуратура там никак не задействована. История вопроса. 14 апреля 2017 года, посредством почтовой связи, а также на адрес электронной почты Telegram Messenger Limited Liability Partnership, содержащихся в реестровой записи № 90-РР, Федеральной службой безопасности Российской Федерации был направлен запрос о предоставлении Telegram Messenger Limited Liability Partnership в Управление ФСБ России информации, необходимой для декодирования электронных сообщений пользователей сети «Интернет», со сроком исполнения до 19.07.2017 года. Информация не предоставлена. Постановлением мирового судьи судебного участка № 383 Мещанского района города Москвы от 16 октября 2017 года Telegram Messenger Limited Liability Partnership признано виновным в совершении административного правонарушения, предусмотренного ч. 2.1 ст. 13.31 КоАП РФ, предусматривающей административную ответственность за неисполнение организатором распространения информации в сети “Интернет” обязанности предоставлять в федеральный орган исполнительной власти в области обеспечения безопасности информацию, необходимую для декодирования принимаемых, передаваемых, доставляемых и (или) обрабатываемых электронных сообщений, и ему назначено административное наказание в виде административного штрафа в размере 800 000 руб. Информации об уплате штрафа нет. 20 марта 2018 года Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций в адрес Telegram Messenger Limited Liability Partnership были направлены уведомления на русском и английском языках о неисполнении установленных обязанностей, в котором последнему был предоставлен срок 15 дней с момента получения уведомления для исполнения обязанности, предусмотренной ч. 4.1 ст. 10.1 Федерального закона от 27 июля 2006 года № 149-ФЗ «Об информации, информационных технологиях и о защите информации». Телеграм дал официальный ответ - отсутствует техническая возможность выполнить требования РКН. Обращение РКН в суд с заявлением об ограничении на территории Российской Федерации доступа к информационным ресурсам, функционирование которых обеспечивается Telegram Messenger Limited Liability Partnership, указывая в обоснование требований, что в нарушение норм действующего законодательства, в частности ч. 4.1 ст. 10.1 Федерального закона от 27 июля 2006 года № 149-ФЗ «Об информации, информационных технологиях и о защите информации» Telegram Messenger Limited Liability Partnership не исполнена обязанность по предоставлению в Федеральную службу безопасности Российской Федерации информации, необходимой для декодирования принимаемых, передаваемых, доставляемых и (или) обрабатываемых электронных сообщений, что является основанием для применения в отношении Telegram Messenger Limited Liability Partnership ч. 2 ст. 15.4 Федерального закона от 27 июля 2006 года № 149-ФЗ «Об информации, информационных технологиях и о защите информации», предусматривающей возможность ограничения доступа к информационным системам и программам для электронных вычислительных машин, которые предназначены и используются для приёма, передачи, доставки и обработки электронных сообщений пользователей сети “Интернет” и функционирование которых обеспечивается данным организатором, до исполнения таких обязанностей. Вынесено решение суда: Установить на территории Российской Федерации ограничение доступа к информационным системам и (или) программам для электронных вычислительных машин, которые предназначены и (или) используются для приёма, передачи, доставки и (или) обработки электронных сообщений пользователей сети «Интернет» и функционирование которых обеспечивается Telegram Messenger Limited Liability Partnership, до исполнения указанным организатором распространения информации в сети «Интернет» обязанности по представлению в федеральный орган исполнительной власти в области обеспечения безопасности информации, необходимой для декодирования принимаемых, передаваемых, доставляемых и (или) обрабатываемых электронных сообщений. Обязать Федеральную службу по надзору в сфере связи, информационных технологий и массовых коммуникаций принять меры по ограничению доступа на территории Российской Федерации к информационным системам и (или) программам для электронных вычислительных машин, которые предназначены и (или) используются для приёма, передачи, доставки и (или) обработки электронных сообщений пользователей сети «Интернет» и функционирование которых обеспечивается Telegram Messenger Limited Liability Partnership, до исполнение указанным организатором распространения информации в сети «Интернет» обязанности по представлению в федеральный орган исполнительной власти в области обеспечения безопасности информации, необходимой для декодирования принимаемых, передаваемых, доставляемых и (или) обрабатываемых электронных сообщений. Обязать Федеральную службу по надзору в сфере связи, информационных технологий и массовых коммуникаций и иных лиц прекратить создание технических условий для приёма, передачи, доставки и (или) обработки электронных сообщений пользователей сети «Интернет», распространяемых посредством информационных систем и (или) программ для электронных вычислительных машин, функционирование которых обеспечивает Telegram Messenger Limited Liability Partnership, в том числе путём ограничения доступа к указанным информационным системам и (или) программам для электронных вычислительных машин, до исполнения указанным организатором распространения информации в сети «Интернет» установленной обязанности по представлению в федеральный орган исполнительной власти в области обеспечения безопасности информации, необходимой для декодирования принимаемых, передаваемых, доставляемых и (или) обрабатываемых электронных сообщений. Ответ пресс-службы суда на запрос СМИ: решение суда в силе и не отменено. Вывод: блокировка осуществлялась по заявлению РКН на основании уведомления ФСБ о неисполнении ОРИ своих обязанностей, установленных 149-ФЗ. Перед этим ОРИ был оштрафован по решению другого суда. РКН обязан блокировать, а не на своё усмотрение это делать. Суд обязал РКН, а не дал право. Условие снятие блокировки - передача информации в ФСБ. Итог: судя по тексту пресс-релиза РКН и суда, речь может идти исключительно о снятии блокировки конкретных ресурсов в телеграмме, заблокированных по требованию Генпрокуратуры ранее. Если же речь идёт о снятии полной блокировки на территории России, то такое решение РКН должен быть согласовано с ФСБ, а не с Генпрокуратурой. Так как такой информации не опубликовано, а вариант согласования Генпрокурором неисполнения РКН судебного решения выглядит сомнительным, то телеграм на территории страны продолжает быть запрещённым! Дополнение:]]></summary></entry><entry><title type="html">How to get into the service menu Acer Nitro VG271P</title><link href="http://dartraiden.github.io/Acer-Nitro-VG271P-service-menu/" rel="alternate" type="text/html" title="How to get into the service menu Acer Nitro VG271P" /><published>2020-07-04T00:00:00+00:00</published><updated>2020-07-04T00:00:00+00:00</updated><id>http://dartraiden.github.io/Acer-Nitro-VG271P-service-menu</id><content type="html" xml:base="http://dartraiden.github.io/Acer-Nitro-VG271P-service-menu/"><![CDATA[<ol>
  <li>turn off the monitor (by pressing button 1)</li>
  <li>press and hold buttons 2 and 3</li>
  <li>press and hold button 1 (do not release buttons 2,3)</li>
  <li>press button 4 once (do not release buttons 1,2,3)</li>
  <li>wait until the screen turns on then release button 1</li>
  <li>after the service menu appears on the screen, release all remaining buttons (2,3)</li>
</ol>

<p>You can use the joystick to navigate the service menu.</p>

<p><img src="/images/posts/2020-7-4/buttons.jpg" alt="Buttons layout" /></p>]]></content><author><name>Alexander Gavrilov</name></author><category term="acer" /><category term="vg271p" /><category term="monitor" /><category term="menu" /><summary type="html"><![CDATA[turn off the monitor (by pressing button 1) press and hold buttons 2 and 3 press and hold button 1 (do not release buttons 2,3) press button 4 once (do not release buttons 1,2,3) wait until the screen turns on then release button 1 after the service menu appears on the screen, release all remaining buttons (2,3) You can use the joystick to navigate the service menu.]]></summary></entry></feed>