Longse, Cantonk, S2L33M IMX322

Вопросы по восстановлению, настройке, апгрейду, прошивкам и т.п.
Ответить
demon110
Новичок
Сообщения: 2
Зарегистрирован: 31 июл 2016, 13:23

Longse, Cantonk, S2L33M IMX322

Сообщение demon110 » 31 июл 2016, 13:36

Недавно столкнулся с проблемой обновления прошивки на камерах Longse и Cantonk с прошивкой Herospeed. На моей камере стоял чип S2L33M IMX322, но думаю инструкция подойдет для всех камер с Linux Busybox на борту
Итак, небольшая предыстория, если Вы читаете это, то скорее всего у Вас примерно те-же самые симптомы
Решил обновить прошивку и случайно залил не ту версию, камера пингуется, telnet проходит, но видео нет, пришлось восстанавливать.

Основная проблема в том, что прошивка содержится в формате UBI, это формат специальной файловой системы для Флэш-карт UBIFS. Стандартными средствами из этих файлов нельзя вытащить информацию, но имея небольшой опыт работы с Linux это не составит большого труда. Дальше все будет описано по порядку

Что нам понадобится

Код: Выделить всё

1. Любой клиент telnet, я предпочитаю использовать например http://putty.org
2. Любой NFS сервер например http://freenfs.sourceforge.net/
3. Любой TFTP-сервер (для особо запущенных случаев) http://tftpd32.jounin.net/
4. Любой Linux, например http://ubuntu.ru/
5. Вначале надо все прочитать, а только потом делать. При неумелом использовании ничего не заработает и станет только хуже. Если не прочитаете до конца, то точно ничего не заработает. При восстановлении камеры вводятся ОЧЕНЬ ОПАСНЫЕ КОМАНДЫ, КОТОРЫЕ МОГУТ УНИЧТОЖИТЬ ВСЕ, ЧТО НАХОДИСТЯ В ПРОШИВКЕ КАМЕРЫ, ТОГДА ВАМ ПРИДЕТСЯ ИСПОЛЬЗОВАТЬ ОЧЕНЬ СЛОЖНЫЕ МЕТОДЫ С ИСПОЛЬЗОВАНИЕМ U-BOOT
Первое что необходимо сделать – подключиться к камере

Код: Выделить всё

1. Запускаем клиент telnet и вводим ip-адрес камеры
2. Для Putty указываем тип соединения telnet, и порт 23
3. Вводим имя пользователя: root
4. Вводим пароль, если у вас запущенный случай, то пароль камера не попросит
4.1. hs201407
4.2. h2014071
4.3. root
4.4. admin
5. Перед нами появится командная консоль
6. Вводим команду b_df
6.1. В результате получим что-то похожее
Filesystem                Size      Used Available Use% Mounted on
ubi0:rootfs              42.0M     20.1M     21.9M  48% /
devtmpfs                 51.9M         0     51.9M   0% /dev
tmpfs                    52.0M    120.0K     51.9M   0% /tmp
tmpfs                    52.0M     72.0K     51.9M   0% /dev/shm
tmpfs                    52.0M     88.0K     51.9M   0% /run
ubi1:upgrade             20.3M     10.0M     10.2M  49% /hs/upgrade
ubi1:param                5.7M     56.0K      5.7M   1% /hs/param
ubi2:user                18.8M      9.9M      8.9M  53% /hs/user
7. Если в списке есть раздел ubi2:user , то все не так плохо
8. Также, нам надо проверить какая версия busybox установлена на камере, вводим команду b_ubiformat
8.1. Если в ответ будет надпись b_ubiformat: not found, значит все стало еще сложнее, но поправимо)))
8.2. Вводим команду b_cat /proc/mtd
8.2.1. В результате получим что-то похожее
dev:    size   erasesize  name
mtd0: 00020000 00020000 "bst"
mtd1: 00140000 00020000 "bld"
mtd2: 00140000 00020000 "ptb"
mtd3: 00800000 00020000 "pri"
mtd4: 03400000 00020000 "lnx"
mtd5: 01a00000 00020000 "add"
mtd6: 02400000 00020000 "adc"
8.3. Если у вас есть раздел c именем add, то скорее всего все получится легко, если нет, то придется внимательно изучать то, что здесь будет написано
Итак, у нас есть 3 следующих алгоритма восстановления

Код: Выделить всё

1. Раздел с пользовательской программой присутствует, но на нем неверные данные
2. Раздел с пользовательской информацией уничтожен и у нас стоит нормальная версия busybox
3. Раздел с пользовательской информацией уничтожен и у нас стоит обрезанный busybox
3.1. Busybox обрезается, если в камеру заливали bridge прошивку для перехода с 5 версии на 6, по какой-то причине они удалили из него половину функционала
3.2. Bridge – это обновление корневой файловой системы камеры, фактически полная замена встроенного Linux Busybox. Видимо китайцы перешли на новую версию ядра Linux и новые прошивки не могут работать со старым ядром
Подготовка

Код: Выделить всё

Скачиваем прошивку для Вашей камеры с сайта, для Longse и Cantonk это http://www.herospeed.net/en/
Если у Вас проблема из списка №3, то скачиваем 6 версию (на других камерах версии могут быть иные, но в любом случае есть прошивки до Bridge и после Bridge) прошивки для своей камеры. Расширение файла прошивки должно быть FLS, не bridge, а именно FLS.
Для проблемы №2 скачиваем версию прошивки 5 (на других камерах версии могут быть иные, но в любом случае есть прошивки до Bridge и после Bridge)
Для проблемы №1 – скачиваем необходимую версию прошивки, которая была на камере до обновления, прошивки так-же могут быть до bridge и после bridge
Решение 1

Код: Выделить всё

1. Копируем файл прошивки на наш Linux, который мы указан в само начале статьи
2. Вводим следующие команды
2.1. b_modprobe nandsim first_id_byte=0x2c second_id_byte=0xda third_id_byte=0x90 fourth_id_byte=0x95
2.2. b_flash_erase /dev/mtd0 0 0
2.3. b_ubiformat /dev/mtd0 -s 2048 -O 2048 -f ИМЯ ФАЙЛА ПРОШИВКИ
2.4. b_modprobe ubi
2.5. b_ubiattach -m 0 -d 0 -O 2048
2.6. b_mount /dev/ubi0_0 /mnt/camera_restore
2.7. b_ls –la /mnt/camera_restore
2.7.1. Вы должны увидеть каталоги bin, etc и www
3. Если все получилось, то Вам крупно повезло, если нет, то надо искать способ распаковать прошивку, я сам долго с этим мучился. Прошивка в формате UBIFS, ищем в интернете статьи по запросу mount ubifs
4. Далее запускаем NFS-сервер, не забываем в настройках указать разрешение на доступ к серверу с IP-адреса нашей камеры
5. Копируем все, что мы находится в прошивке в директорию NFS-сервера, к которой предоставлен доступ
6. Заходим на камеру и вводим следующие команду
6.1. b_mkdir /mnt/nfs
6.2. b_mount -t nfs -o nolock IP-NFS-СЕРВЕРА:/ /mnt/nfs
7. Если все получилось то продолжаем 
7.1. b_cd /hs/user
7.2. ДАЛЕЕ ОЧЕНЬ ОПАСНАЯ КОМАНДА, ПРОВЕРЯЕМ ЧТО МЫ НАХОДИМСЯ ИМЕННО В КАТАЛОГЕ /hs/user, ЕСЛИ НЕТ, ТО ВЫ СДЕЛАЛИ ЧТО_ТО НЕ ТАК
7.2.1. ЭТАК КОМАНДА УДАЛИТ ВСЕ В КАТАЛОГЕ В КОТОРОМ ВЫ НАХОДИТЕСЬ
7.2.1.1. b_rm –rf *
8. Копируем все из каталога /mnt/nfs в каталог /hs/user
8.1. Вначале создаем в каталоге /hs/user необходимые директории
8.2. Создавать папки при помощи команды 
8.2.1. b_mkdir ИМЯ ДИРЕКТОРИИ
8.3. Копируем все при помощи команды cp
8.3.1. b_cp /mnt/nfs/ИМЯ ДИРЕКТОРИИ/* /hs/user/ИМЯ ДИРЕКТОРИИ/
8.3.1.1. Директории не копируются, если есть вложенные директории, то надо скопировать и все их содержимое, предварительно создав их 
8.3.1.1.1. b_mkdir /hs/user/ИМЯ ДИРЕКТОРИИ/ИМЯ ПОДДИРЕКТОРИИ
8.3.2. Копируем все рекурсивно b_cp /mnt/nfs/ИМЯ ДИРЕКТОРИИ/ИМЯ ПОДДИРЕКТОРИИ/* /hs/user/ИМЯ ДИРЕКТОРИИ/ИМЯ ПОДДИРЕКТОРИИ/
8.3.3. ВНИМАНИЕ В ПРОШИВКЕ МОГУТ БЫТЬ ФАЙЛЫ СИМВОЛИЧЕСКИХ ССЫЛОК, НАПРИМЕР ФАЙЛ www/snap.jpg
8.3.3.1. Создаем симлинк вручную b_ln –s /tmp/snap.jpg /hs/user/www/snap.jpg
8.3.3.1.1. Таким образом файл /hs/user/www/snap.jpg будет ссылаться на файл /tmp/snap.jpg
9. Далее даем права и перезагружаем камеру
9.1. b_chmod 755 /hs/user/* -R
9.2. b_cd /
9.3. b_umount /mnt/nfs
9.4. b_reboot
10. По идее все должно работать после перезагрузки
Решение 2

Код: Выделить всё

1. Решение аналогично 1, за исключением того, что у нас не размечена NAND память с пользовательским разделом
1.1. Вначале делам все по "Решению 1", начиная с "Решение 1" – п. 1, до "Решение 1" – п. 5 (включительно)
2. На камере вводим команды
2.1. ОПАСНАЯ КОМАНДА, ПРОВЕРЯМ, ЧТО НАШ РАЗДЕЛ ИМЕННО 5 
2.1.1. cat /proc/mdstat
2.1.2. Ищем раздел с надписью add, в моем случае это mtd5
2.1.3. И ВЫПОЛНЯЕМ ОПАСНУЮ КОМАНДУ
2.1.3.1. b_flash_eraseall /dev/mtd5
2.1.4. Перезагружаем камеру
2.1.4.1. b_reboot 
3. И опять заходим на нее
3.1. Вводим команду
3.1.1. b_ubinfo
3.1.1.1. В результате получаем
UBI version:                    1
Count of UBI devices:           3
UBI control device major/minor: 10:60
Present UBI devices:            ubi0, ubi1, ubi2
4. Вводим команду
4.1. b_df
4.1.1. проверяем, что у нас в списке нет надписи ubi2: (на вашей камере может быть другой раздел, но он будет отсутствовать в списке b_df и присутствовать в b_ubinfo)
4.2. Вводим команду
4.2.1. b_ls –la  /dev/ | grep ubi
4.2.2. ubiN – номер NAND-флэш памяти
crw-------    1 root     root      251,   0 Jun 10 12:44 ubi0
crw-------    1 root     root      251,   1 Jun 10 12:44 ubi0_0
crw-------    1 root     root      250,   0 Jun 10 12:44 ubi1
crw-------    1 root     root      250,   1 Jun 10 12:44 ubi1_0
crw-------    1 root     root      250,   2 Jun 10 12:44 ubi1_1
crw-------    1 root     root      249,   0 Jun 10 12:44 ubi2
crw-------    1 root     root      249,   1 Jun 10 12:44 ubi2_0
crw-------    1 root     root       10,  60 Jun 10 12:44 ubi_ctrl
4.3. ubiN_n – это номер раздела
4.3.1. У всех карт кроме ubi_ctrl должен быть раздел, как минимум 1, скорее всего у Вас будет отсутствовать раздел ubi2_0
4.4. ОПАСНАЯ КОМАНДА
4.4.1. КОМАНДА ПО НОВОЙ ДЕЛАЕТ РАЗМЕТКУ ФЛЭШ-ПАМЯТИ
4.4.1.1. b_ubimkvol /dev/ubi2 –N user –m
5. Перезагружаем камеру
5.1. b_reboot
6. Заходим на камеру
7. Вводим команду
7.1. b_df
7.1.1. Должен появиться раздел ubi2:user с точкой монтирования /hs/user
7.2. Если не появился, значит что-то пошло не так и можно попробовать решение №3
8. Далее делаем все по "Решению 1", начиная с "Решение 1" – п.6
Решение 3

Код: Выделить всё

1. Если вы находитесь здесь, значит у вас какие-то проблемы с NAND-флэш, эти проблемы может решить только нормальная прошивка средствами камеры
2. Заходим на камеру
2.1. Выполняем ВСЕ пункты "Решения 1"
2.1.1. Копирование будет происходить на флэш-карту корневой системы, так как по пути /hs/user сейчас нет флэшки и эта директория принадлежит корневому каталогу
2.1.2. Если не будет хватать места, то можно не копировать файлы из www/install
3. Камера уже должна работать, но это не все
4. Так как мы не скопировали файл из www/install
4.1. Запускаем этот exe-файл на своем ПК, он установит ActiveX-компонент для работы через WEB-интерфейс
5. Заходим на WEB-интерфейс и обновляем прошивку, средствами камеры
6. Заходим на камеру
6.1. Выполняем команду
6.1.1. b_df
6.1.2.  У нас должна появиться точка монтирования /hs/user
7. Если все есть, то вводим команду
7.1. b_ps ax | grep /hs/user
7.2. Команда отобразит список работающих процессов
7.3. Нам надо убить все процессы, которые запущены с точки монтирования /hs/user
7.4. Вначале убиваем WatchDog
7.4.1. b_kill ИД ПРОЦЕССА
7.5. Потом убиваем все остальные
8. Вводим команду 
8.1. b_umount /hs/user
8.2. Далее выполняем пункт из Решения 1, 
8.2.1. ОПАСНО 
8.2.1.1. "Решение 1" – п.7
8.3. Таким образом мы удалим файлы, которые были записаны в корневую файловую систему, так как они у нас продублированы
8.3.1. Кто не понял зачем, то читаем Linux, команда mount
8.3.1.1. Хотя вряд-ли, кто не понял зачем мы это делаем дочитал до этого места
9. Перезагружаем камеру
10. Все должно работать
Если вы дочитали до этого места, то или вы прочитали с первого раза, или вы сразу попытались копировать и вставлять команды в консоль, и у вас ничего не вышло. Ничего не вышло потому, что таких команд нет, перед каждой командой стоит префикс «b_». Команды надо вводить без префикса, например вместо «b_umount» вводить «umount»

Goodday
Новичок
Сообщения: 15
Зарегистрирован: 11 июл 2016, 12:55

Re: Longse, Cantonk, S2L33M IMX322

Сообщение Goodday » 30 дек 2016, 07:05

Брр.. Вернулись с "ремонта" из Longse модули. Абареллы вернулись с 6.1.хх.хх_mini на борту. Т.е. с какой то урезкой но 6ой версии.
Пробуешь толкнуть ей прошивку 6.1.44.3 - просто сжирает ее, ребутится и все. Ничего не меняется.

У меня хватило ума скормить ей: бридж 5.1.50.2 ... :pardon:

Теперь оно не хочет брать обновления с утилиты. Телнет работает. Пароль не просит.

По df картина такая:

Код: Выделить всё

Filesystem                Size      Used Available Use% Mounted on
ubi0:rootfs              42.0M     20.1M     21.9M  48% /
devtmpfs                 51.9M         0     51.9M   0% /dev
tmpfs                    52.0M      4.0K     52.0M   0% /tmp
tmpfs                    52.0M     72.0K     51.9M   0% /dev/shm
tmpfs                    52.0M     88.0K     51.9M   0% /run
ubi1:upgrade             20.3M     24.0K     20.2M   0% /hs/upgrade
ubi1:param                5.7M     28.0K      5.7M   0% /hs/param
При выполнении п.2.1 шлет лесом :)

Код: Выделить всё

# modprobe nandsim first_id_byte=0x2c second_id_byte=0xda third_id_byte=0x90 fourth_id_byte=0x95
modprobe: FATAL: Module nandsim not found.
На помойку? :D

AlexKing48
Новичок
Сообщения: 23
Зарегистрирован: 17 фев 2015, 16:10

Re: Longse, Cantonk, S2L33M IMX322

Сообщение AlexKing48 » 30 дек 2016, 08:09

2.1. , надеюсь, не на камере выполняешь ? )

capstano
Новичок
Сообщения: 1
Зарегистрирован: 11 янв 2017, 15:18

Re: Longse, Cantonk, S2L33M IMX322

Сообщение capstano » 11 янв 2017, 18:32

Hi demon110,
I tried with this command
modprobe nandsim first_id_byte=0x2c second_id_byte=0xda third_id_byte=0x90 fourth_id_byte=0x95
but my camera replied:
modprobe: FATAL: Module nandsim not found.

What to do?

Thank you.

bertall
Новичок
Сообщения: 11
Зарегистрирован: 10 авг 2016, 21:55

Re: Longse, Cantonk, S2L33M IMX322

Сообщение bertall » 19 фев 2017, 08:22

А как быть в этом случае?

Код: Выделить всё

Welcome to HiLinux.
None of nfsroot found in cmdline.
# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                 3072      2992        80  97% /
/dev/mtdblock3           10240       388      9852   4% /mnt/mtd
#

Goodday
Новичок
Сообщения: 15
Зарегистрирован: 11 июл 2016, 12:55

Re: Longse, Cantonk, S2L33M IMX322

Сообщение Goodday » 28 фев 2017, 14:57

AlexKing48 писал(а):2.1. , надеюсь, не на камере выполняешь ? )
Привет. Это я затупил. :) Пытался на камере выполнить.

Сейчас надо оживить несколько модулей. Упоротых точно так же.

Поставил Ubuntu как и просили в статье.
С божьей помощью сделал как написано в Решение 1. Т.е. залил в \hs\user все три папки www bin etc. До этого там было пусто.
Перезагрузил. Ничего толком не поменялось. Только начала запрашивать пароль.

Прешел к решению 2.
"cat /proc/mdstat" - вообще выполнять не хочет. Говорит нет такого файла.

Решение 3 не актуально, т.к. не выполняется пункт: "3. Камера уже должна работать, но это не все"

П.С. Как трудно осваивать Linux :o

Goodday
Новичок
Сообщения: 15
Зарегистрирован: 11 июл 2016, 12:55

Re: Longse, Cantonk, S2L33M IMX322

Сообщение Goodday » 01 мар 2017, 16:13

Попробовал как файлы с прошивки 6.х.х.х, так и с 5.х.х.х - не арбайтен.

Да, и команда

Код: Выделить всё

b_ln –s /tmp/snap.jpg /hs/user/www/snap.jpg
не проходит. Говорит:

Код: Выделить всё

ln: –s: No such file or directory
ln: /tmp/snap.jpg: No such file or directory

Goodday
Новичок
Сообщения: 15
Зарегистрирован: 11 июл 2016, 12:55

Re: Longse, Cantonk, S2L33M IMX322

Сообщение Goodday » 03 мар 2017, 05:21

Освоил блин :)

Два чипа уже победил.

Кстати, на новых версиях прошивки, в частности 7.х.х.х - уже другой пароль root.
Напряг на брут хэша видеокарту. Итог: AZXn8UoB0N3QU:44a33284

Да, и после обновления на 7.х.х.х перестаёт работать telnet.
Есть мысли как включить?


Это решение для коряво обновленных камер.
Есть еще пациенты, которые имеют линк, но не пингуются и не ищутся.
Почитал про особенности UBU\UBIFS - она хоть и разрабатывалась как устойчивая к пропаже питания, но проблема переодически всплывает, становится недоступен, как я понял, раздел с rootfs.

Есть мысли?

Advinn
Постоянный посетитель
Сообщения: 60
Зарегистрирован: 27 окт 2014, 06:59

Re: Longse, Cantonk, S2L33M IMX322

Сообщение Advinn » 28 мар 2017, 10:35

Может кому пригодиться.
Пришел значится хороший знакомый, приносит аналогичную камеру, говорит что по ошибке залил не ту прошивку, вместо 6.1.34.5 , залил 5.1.34.1_mini
До этого стояла 6.1.8.6, решил значит посвежее поставить :smile:
Камера в сети , IPCsercher её видит, пинги идут, telnet есть , в браузере не открывается.
Пробуем по алгоритму распаковать 6.1.8.6, получается с 5 раза, в тексте есть неточность. Дошли до пункта 2.7.1.
Приходит стажер, ставит на другой машине с нуля свежий IPCserch, и у него получается обновится с 5.1.х.х на 6.1.34.1. :o
Это все к чему, если вдруг залили не ту прошивку, пробуйте сначала обновиться через штатную свежую утилиту. :smile:
А за выложенную здесь информацию, автору низкий поклон :smile: очень позновательно

Ответить

Вернуться в «Восстановление и настройка»