реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Загрузка прошивки через интернет
kurtis
сообщение Aug 1 2010, 21:38
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Возник вопрос.
Есть некоторое устройство, на котором установлен Linux, оно подключается к ПК через USB. ПК имеет доступ в интернет. Задача состоит в том, чтоб пользователь мог зайти на сайт и залить новую версию прошивки в устройство, но сделать это нужно без установки дополнительного ПО на компьютер пользователя. Изменять ПО можно на сервере и на самом устройстве.

Существуют ли какие-то способы решения этой проблемы? Желательно с использованием стандартных технологий.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 1 2010, 21:43
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(kurtis @ Aug 2 2010, 01:38) *
оно подключается к ПК через USB.

Что из себя представляет это соединение, что ходит поверх USB?

Цитата(kurtis @ Aug 2 2010, 01:38) *
Изменять ПО можно на сервере и на самом устройстве.

Устройство и ПК упоминались, а кто такой сервер?
Go to the top of the page
 
+Quote Post
rezident
сообщение Aug 1 2010, 21:47
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А почему нельзя использовать для обновления прошивки некий визард в виде исполняемого файла, который исполняется лишь однажды, без установки в системе? Ее (программу для обновления прошивки) точно также можно на сервере выложить. По такой технологии сейчас обновляют BIOS на материнских платах - не нужно загружаться с дискеты, запускается обычное приложение для Windows.
Go to the top of the page
 
+Quote Post
kurtis
сообщение Aug 1 2010, 22:01
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Цитата(aaarrr @ Aug 2 2010, 00:43) *
Что из себя представляет это соединение, что ходит поверх USB?

Возможно я вас не совсем правильно понял, но компьютер видит устройство как mass storage. Теоретически, никаких ограничений нет, но это должно поддерживаться операционной системой "из коробки", т.е. без установки дополнительных драйверов. Замена компютера, не должна влиять на работоспособность этой цепочки.

Цитата(aaarrr @ Aug 2 2010, 00:43) *
Устройство и ПК упоминались, а кто такой сервер?

Набор программного обеспечения, который стоит на стандартном хостинге у провайдера. В худшем случае это выделенный сервер где стоит, например, Linux, Apache, MySQL и PHP. Но любой из этих компонентов можно заменить, например заменить PHP на Java, Linux на Windows, MySQL на что-то еще.

Задача пока из разряда чисто теоретических, по этому никакой конкретики дать не могу. Собираю варианты, изучаю возможности.
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 1 2010, 22:10
Сообщение #5


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(kurtis @ Aug 2 2010, 01:01) *
компьютер видит устройство как mass storage.
..
Собираю варианты, изучаю возможности.

На сервере любом выложить файл прошивки. Пользователь пусть скачает этот файл да запишет на mass storage.
Девайс после ребута пусть подхватит этот файл да и обновится. Не нужно ни java, ни php, ни mysql...
Go to the top of the page
 
+Quote Post
kurtis
сообщение Aug 1 2010, 22:22
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Цитата(rezident @ Aug 2 2010, 00:47) *
А почему нельзя использовать для обновления прошивки некий визард в виде исполняемого файла, который исполняется лишь однажды, без установки в системе? Ее (программу для обновления прошивки) точно также можно на сервере выложить. По такой технологии сейчас обновляют BIOS на материнских платах - не нужно загружаться с дискеты, запускается обычное приложение для Windows.

В данный момент алгоритм перепрошивки выглядит так:
1) Пользователь заходит на сайт по известному ему адресу;
2) Скачивает прошивку;
3) Заливает прошивку на карточку или напрямую на устройство;
4) Карточку вставляет в устройство (если писали на карточку);
5) Устройство при загрузке запускает программу которая по состоянию кнопок и наличию файла в доступной ему памяти решает нужно обновляется или нет.
6) После перезагрузки у нас новая прошивка.

Из этого процесса хочется максимально исключить пользователя. Т.е. должно быть как-то так:
1) Пользователь зашел на сайт;
2) Выбирает нужную прошивку, нажимает кнопку "Прошить" в браузере;
3) Прошивка "как-то" попадает на устройство.
4) После перезагрузки у нас новая прошивка.

При этом компьютер должен быть полностью заменяем на другой, без установки специфического ПО и драйверов. Не должна влиять версия операционной системы (Windows XP, Vista, 7, Linux, теоретически даже MacOS), конфигурация железа (должен быть только минимум 1 порт USB и доступ в интернет).и прочее.

Цитата(defunct @ Aug 2 2010, 01:10) *
На сервере любом выложить файл прошивки. Пользователь пусть скачает этот файл да запишет на mass storage.
Девайс после ребута пусть подхватит этот файл да и обновится. Не нужно ни java, ни php, ни mysql...

Сейчас так и делается.
Но задача возникла скорее из любопытства чем от практической необходимости.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 1 2010, 22:39
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Сейчас у Вас хороший универсальный метод, ИМХО, лучше бы его не менять.

Вот к чему это может привести:
На днях пришлось скачивать драйверы для ноутбука Dell, так вот эти негодяи активно навязывают свой Download Manager, который я сослепу и выбрал. Менеджер, естественно, не запустился, зато мой случайный выбор был надежно сохранен. В результате пришлось вручную вычищать все dell'овские куки и только после этого получилось скачать драйверы нормальным способом.
Хотели как лучше, а создали в результате геморрой для конечного пользователя (и службы поддержки, т.к. куки удалить догадается, увы, не каждый первый).
Go to the top of the page
 
+Quote Post
V_G
сообщение Aug 2 2010, 00:39
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(kurtis @ Aug 2 2010, 09:22) *
В данный момент алгоритм перепрошивки выглядит так:
1) Пользователь зашел на сайт;
2) Выбирает нужную прошивку, нажимает кнопку "Прошить" в браузере;
3) Прошивка "как-то" попадает на устройство.
4) После перезагрузки у нас новая прошивка.


На мой взгляд, реально только в IE. Можно написать ActiveX, получающий прошивку с сервера и копирующий ее в USB mass storage, после чего девайс при перезагрузке зальет ее в себя.
Остальные браузеры большей частью ActiveX не поддерживают принципиально как чрезвычайно небезопасный элемент. Как написать что-то подобное на JavaScript - не знаю. Как на других языках, поддерживаемых браузерами - пусть скажут знатоки этих других языков. Но сильно сомневаюсь, что можно.

Сообщение отредактировал V_G - Aug 2 2010, 00:40
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 2 2010, 01:04
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Вообще, пп.2-3 отражают вирусоподобную активность. Да даже просто вирусную, если добавить к "прошивке" файл autorun.inf smile.gif
Go to the top of the page
 
+Quote Post
V_G
сообщение Aug 4 2010, 05:13
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Да, это очень похоже на вирус, потому и невозможно в большинстве браузеров. Клиентская часть управления счетом в Райффайзенбанке написана на ActiveX, у меня нигде кроме IE не запускается. Да и IE выдал предупреждение о небезопасности. Я позвонил в банк, там меня уверили, что все ОК, и что только через IE, после чего установил этот софт. Но банк - это серьезно, и ему я действительно доверяю. А как отнесутся пользователи к предложению сайта топикстартера загрузить ActiveX, в целом понятно.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 04:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01435 секунд с 7
ELECTRONIX ©2004-2016