Прошивка устанавливается прямо на флешку, что позволяет безболезненно удалить ее или обновить простой заменой файлов.
Уже был на хабе публикации для этой прошивки, поэтому подробно описывать преимущества и процедуру установки не буду.
Расскажу, как я попался на неявную и несмешную первоапрельскую шутку от разработчиков этой прошивки.
Все описанные действия производились с использованием камеры Canon 650D со стоковой (1.01) прошивкой.
28 марта.
Все началось с того, что жажда исследования чего-то нового накопилась до критической массы и в Интернете случайно обнаружилась информация о возможности автоматической съемки фокус-стека на мою камеру.
Но эти возможности потребовали установки неофициальной прошивки Magic Lantern. Быстрый поиск показал следующее:
- текущая прошивка камеры не поддерживает текущие сборки ML;
- Стабильной сборки для модели 650D нет, есть только ночные сборки;
- некоторые функции ML в 650D не работают/работают криво;
- Авторы предупреждают, что неверными действиями на прошивке можно заблокировать камеру.
Глаза немного расширились от количества настроек.
Сразу были протестированы Dual-iso, фокус-стекинг и некоторые другие функции.
Первые впечатления были сугубо положительные, хотя полученные результаты оставляли желать лучшего.
Общее время первого знакомства было ограничено 4 часами, в течение которых замечаний по работе самого ПО не было.
29 марта.
Более детальное изучение прошивки показало, что снимать RAW-видео тоже можно, а также вышла новая сборка ML. На карту залил новый билд (по неопытности обновился только каталог ML).
Запись проверялась на камере, но время поджимало и оценить качество на ПК в тот день не удалось.
Это конец выходных.
1 апреля.
Возвращаюсь с работы с мыслями «не буду сегодня экспериментировать».
Но любопытство сильнее меня.
Обновляю МЛ до последней сборки (тот же - от 29 марта, но теперь в полной комплектации).
Я включаю его.
Я начинаю настраиваться.
и ловить BSOD на камере.
Шок.
В BSOD написано, что произошла внутренняя ошибка с номером 0x000000aa (ошибки в цифрах нет), много текста (дамп памяти готов, попробуйте перезагрузить компьютер, проверьте настройки и т.д.) и «Ваша камера заблокировалась» ( среди прочего).
Холодными пальцами перезагружал через батарею, как рекомендовал разработчик.
Включаю камеру и через две секунды после загрузки получаю тот же BSOD. Б@#$%! Я нервничаю.
Я удаляю МЛ.
Все работает как обычно.
С мыслью, что во всем виновата кривая сборка, откатываюсь на версию от 28 марта (с которой провел 4+ часа).
Я запускаю.
Все работает. Отлично.
Я снова настраиваю камеру.
Готовлюсь погрузиться в учебу.
БСОД! Что за черт?! Перезагрузить.
BSOD через минуту.
форматирую.
Я переустанавливаю.
Я запускаю.
БСОД.
Шок.
Я спокоен.
Камера без ML работает нормально.
C ML - обычный случайный BSOD (даже в режиме простоя при включенной камере).
Ошибочные поиски не дают результатов.
Вовсе нет. Пустой.
Будто я один с этим столкнулся.
Я захожу на официальный форум.
Я регистрируюсь.
Я описываю проблему.
Я жду.
Я быстро получаю несколько ответов:
- сделайте пожалуйста видео, как это происходит (имхо, в данной ситуации это бессмысленно);
- рекомендации следовать инструкциям на экране и загрузить результаты на форум (результаты? о следующей успешной перезагрузке от батареи?);
- рекомендация откатиться на сборку от 11 марта, как самую стабильную версию на сегодняшний день;
- пару сообщений о подобных ошибках.
Я не один.
Проблема новая, но когда именно она возникла, сказать не могут. Сначала я решил просто откатиться на 11 марта.
Но переспав с этой мыслью, я решил копнуть глубже.
С 11 по 29 марта осталось всего 10 билдов.
Исходники доступны на bitbucket с полными (надеюсь) журнал изменений builds Я читаю журналы изменений.
- 2015-03-12 — варианты дампа видео, мелкий тюнинг
- 2015-03-13 - рефакторинг, настройка, исправления
- .
много других изменений.
- 2015-03-23 — работа с ГРИП
- 2015-03-25 — 80cee7a | Алекс — Похоже, кому-то не понравилась моя неудачная шутка.
Что-то начинает проясняться.
я читаю набор изменений.
В файле «src/tweaks.c» я нахожу:
Иstruct tm now; LoadCalendarFromRTC(&now); joke_mode = (now.tm_mday == 1 && now.tm_mon == 3); + if (joke_mode) + { + msleep(1000); + joke_mode = display_idle(); + }
+ if (joke_mode)
+ {
+ if (rand() % 1000 == 13 && !RECORDING)
+ {
+ extern void bsod();
+ bsod();
+ }
+ }
Что?! Режим шутки? Ты шутишь, что ли? Поясню: первого апреля (now.tm_mday == 1 && now.tm_mon == 3 (третий месяц становится четвертым при счете с нуля)) после загрузки ML прошивка начинает каждый раз генерировать случайное число второй.
Если это число 13 и в данный момент запись не ведется (спасибо хотя бы за это) - получите, подпишите, свой BSOD. А так как мой уровень удачи был критически низок, мне удалось поймать BSOD 5 раз сразу после скачивания прошивки.
Сомнительная шутка, сомнительное содержание.
2 апреля.
До случайного BSOD осталось 364 дня.
PS: Привет разработчику Алексу, который испортил вечер первого апреля мне настроение и нервы.
Это было не смешно.
Теги: #волшебный фонарь #1 апреля #Codebred #Аномальное программирование #Codebred
-
Agile Не Только В Офисе
19 Oct, 24 -
Канобувости, 48-Й Выпуск
19 Oct, 24 -
Давайте Попробуем Qt5
19 Oct, 24 -
Личная Проблема В Личном Блоге
19 Oct, 24 -
Отмечаем Друзей
19 Oct, 24 -
Railsclub`moscow 2013. Конференция Началась!
19 Oct, 24