wiki/ru/installation.md

109 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# OpenIPC Wiki
[Оглавление](index.md)
Установка OpenIPC. Шаг за шагом.
--------------------------------
### Шаг 1. Определите тип процессора.
![SoC Marking](../images/soc-hisilicon.jpg)
ример маркировки процессора Hisilicon Hi3518EV100. Значимые символы обведены жёлтым._
### Шаг 2. Скачайте прошивку.
Найдите свой тип процессора на странице <https://github.com/OpenIPC/firmware>
и убедитесь, что для него есть готовая прошивка. Если вам повезло, и такая прошивка
существует -- скачайте её на свой компьютер.
### Шаг 3. Установите и настройте сервер TFTP.
TFTP расшифровывается как Trivial File Transer Protocol. Как следует уже из
названия, это очень простой протокол, предназначенный для передачи файлов по
компьютерной сети. TFTP не поддерживает аутентификацию. Его код настолько прост
и компактен, что TFTP клиенты используются в сетевых и встроенных системах для
получения загрузочных образов с сетевых серверов.
#### Если на вашем компьютере Linux
Если на вашем компьютере установлен Linux, то здесь всё просто. Скомилированный
и готовый к использованию пакет сервера TFTP уже лежит в репозитарии, и вам
только надо установить его и настроить:
```
sudo apt install tftpd-hpa
sudo sed -i '/^TFTP_OPTIONS/s/"$/ --create"/' /etc/default/tftpd-hpa
sudo systemctl restart tftpd-hpa.service
```
Теперь у вас есть свой TFTP сервер, который работает с файлами в директории
`/srv/tftp`. Разверните архив с прошивкой, скачаный в п.2 в эту директорию.
```
sudo tar -C /srv/tftp/ -xvf openipc.*.tgz
```
### Шаг 4. Подключение к порту UART.
Для подключения к камере через порт UART вам понадобится [адаптер](https://www.google.com/search?q=ftdi+usb+ttl) для создания подключения с серийного порта вашего компьютера.
__Прежде чем подключать адартер к камере, убедитесь, что переключатель уровня рабочего напряжения на адартере установлен в 3.3 вольта!__ Иногда для этого достаточно выставить соответствующее положение джампера, иногда надо перепаять ключ на контактной площадке. Некоторые адартеры работают только с напряжением 5 вольт. В этом случае вам понадобится дополнительный [конвертер](https://google.com/search?q=logic+level+converter+3.3v+5v) уровня сигналов TTL, включенный между адартером и портом UART камеры.
Один из нужных вам контактов порта UART -- `GND`. Его легко определить, проверив мультиметром неразрывность цепи на любой другой известный контакт `GND`. Нашли? Тогда остаётся найти ещё два контакта -- `RX` и `TX`, они используются для получения и передачи данных, соответственно. Соедините `GND` камеры с контактом `GND` адаптера, подключите USB разъём адаптера к порту USB вашего компьютера, запустите на компьютере программу подключения к серийному порту и установите соединение с адаптером. Используйте скорость подключения 115200 bps. После этого соедините контакт `RX` адаптера с предполагаемым контактом `TX` порта UART. Подайте питание на камеру. Если вы угадали правильно, на экране появится лог загрузки. Если же экран остался чистым -- повторите процедуру с другим свободным контактом UART. После того, как вы определили порт `RX`, подключите порт `TX` адаптера к оставшемуся свободному контакту порта UART. Попробуйте прервать загрузку камеры нажатием комбинации клавиш на клавиатуре компьютера. Если все получилось -- поздравляем, вы получили доступ к камере.
Четвертым контактом порта UART может быть `VCC`. Он используется для подачи напряжения во время прошивки камеры на заводе. Мы настоятельно советуем не подключать питание камеры через `VCC` порт UART, а использовать для этого штатный разъем питания.
### Шаг 5. Загрузчик.
Перегрузите камеру и постарайтесь получить доступ к консоли загрузчика нажав требуемую комбинацию клавиш между моментом начала загрузки и до старта ядра Линукс. В большинстве случаев это комбинация `Ctrl-C`. Реже -- `Esc` или просто любая клавиша. Но некоторые камеры требуют более экзотические комбинации. Читайте надписи на экране во время загрузки. Если это не помогло -- попросите помощи на нашем канале Телеграм. Скорее всего, мы уже имели дело с подобной камерой.
Начиная с этого момента мы настоятельно советуем вам вести записи всего, что вы делаете. Включите сохранение логов сессии в вашем консольном клиенте. Но для еще большей надежности создайте текстовый файл на вашем компьютере и заносите в него все выполняемые команды и ответы системы.
После того, как вы получили доступ в консоль загрузчика, наберите `help` и проверьте список доступных вам команд. Убедитесь, что в списке команд присутствует `tftp`.
Проверьте настройки системного окружения командой `printenv`. Вас интересуют настройки сетевого подключения: `ipaddr`, `netmask` и `serverip`. Первые два параметра задают IP адрес и сетевую маску вашей камеры для подключния в локальную сеть. Третий параметр -- IP адрес сервера TFTP, с которого и на который будут передаваться файлы командой tftp. Установите нужные значения командой `setenv` (используйте IP адреса и сетевую маску соответствующие вашей сети). Сохраните установленные значения командой `saveenv`.
```
setenv ipaddr 192.168.1.253
setenv netmask 255.255.255.0
setenv serverip 192.168.1.254
saveenv
```
### Шаг 6. Сохранение заводской прошивки.
Большинство IP камер сегодня комплектуются чипами Nor или Nand флэш-памяти объемом 8 или 16 мегабайтов. Вы можете увидеть тип и размер установленной на вашей камере микросхемы в выводе лога загрузчика. Там будет что-то вроде этого:
```
U-Boot 2010.06-svn (Oct 21 2016 - 11:21:29)
Check Flash Memory Controller v100 ... Found
SPI Nor(cs 0) ID: 0xс2 0x20 0x18
spi_general_qe_enable(294): Error: Disable Quad failed! reg: 0x2
Block:64KB Chip:16MB Name:"MX25L128XX"
SPI Nor total size: 16MB
```
Чтобы сохранить содержимое флэш-памяти в файл, необходимо сначала загрузить это содержимое в оперативную память.
```
sf probe 0
mw.b 0x82000000 ff 0x1000000
sf read 0x82000000 0x0 0x1000000
```
Первая из приведенных выше команд инициализирует флэш-память, вторая очищает содержимое региона опертивной памяти с адреса 0x82000000 длиной 0x1000000 байт, подготавливая его для загрузки содержимого флэш-памяти, а затем третья считывает содержимое флэш-памяти начиная с адреса 0x0 и помещает его в подготовленный участок оперативной памяти. Остается только выгрузить данные из оперативной памяти в виде файла на сервер TFTP.
```
tftp 0x82000000 firmware-full.bin 0x1000000
```
_...to be continued._
** ПРОВЕРИТЬ ВСЕ КОМАНДЫ НА ЖИВОЙ СИСТЕМЕ!***
[logo]: ../images/logo_openipc.png