BMW 1 series › Бортжурнал › Обновление ПО часть 1 (Начало)
Давно хотел обновить ПО автомобиля, но искать сервис и отдавать фиг знает сколько денег не очень хотелось и решил сам все сделать. Списался с serggrapov спасибо большое ему за помошь, помог проверить настройки программы объяснил некоторые вопросы. И так к делу. Все делал на свой страх и риск. У меня кабель K DCAN.
Запускаем WinKFP
Смотрим что бы
interface был STD:OBD_
Во вкладке «Communication» в строке «HW Interface», можно настроить адаптер, при помощи которого будем подключаться к авто.
Во вкладке «Configuration»
настройки программы настраиваем программу и убираем ненужные галочки.
UIF write after data — запись при программировании данных;UIF write after program — запись при программировании программы;UIF write in expert mode — запись в экспертном режиме;UIF write in comfort mode — запись в комфортном режиме;UIF
это программируемая информация о версии прошивки, дате и пробеге при программировании, в блоке место ограничено и можно записать это всего 13 раз, поэтому каждый сам для себя решит, оставлять галочки в данных пунктах или нет. Я убрал галочку с пункта
How To Use WINKFP To Program And Do Software Updates Full Walkthrough
programming voltage
-подача напряжения при программировании.
Программа WinKFP предлагает нам работать в двух режимах, Комфорт (Comfort mode) и Эксперт (Expert mode). В комфорт режиме, есть 3 способа прошивки ЭБУ: 1) Enter ZUSB
– вводим номер новой прошивки и WinKPF автоматически определяет и прошивает нужный блок;
2) Choose ZUSB
— мы сами выбираем нам нужный блок, потом выбираем прошивку из его списка и программируем;
3) Update ZUSB
— WinKPF сам обновит прошивку в выбранном ЭБУ.
OpenSSH в Windows и автозапуск сервисов
Windows 10, как и Windows Server 2020, комплектуется форком OpenSSH, включающем все знакомые утилиты ssh-keygen, ssh-add, scp и другие, а том числе ssh-agent и сам сервер sshd. И клиент, и сервер поставить можно через Apps > Apps and Features > Manage Optional Features,
но версия клиента ssh будет не последняя. Я столкнулся с багом, не позволяющим коннектиться к хосту через jump-хост с опцией
ProxyJump
и оказалось, что эту проблему пофиксили, но нужно вручную обновить SSH клиента. Установить актуальную версию Win32 OpenSSH можно, скачав zip из раздела Releases на гитхабе, и распаковав, к примеру, в
C:Program FilesOpenSSH
. Сторонним софтом ssh.exe (например, при использовании Remote Development режима в VSCode) вызывается из
$PATH
(
%SYSTEMROOT%System32OpenSSH
), нужно изменить переменную среды. Environment variables изменяются через GUI в
Start > Edit the system environment variables
(
Пуск > Изменение системных переменных среды
), там необходимо новый путь поставить выше старой версии.
Так как в WSL не работает Systemd, есть проблема с автозапуском сервисов со стартом системы. Есть несколько способов настроить автостарт ssh сервера в WSL, самый простой — это создать задачу в Task Scheduler, где прописать команду старта сервера. В интернете можно найти разные инструкцииавтозапуска через скрипты vbs
Как правильно настроить WinKFP для обновления софта BMW Е серии?
,
ps1
или
bat
. Проблема почти всех способов в том, что триггером является запуск основной ОС Windows, то есть, если произойдёт сбой WSL и придётся перезапускать систему (
wsl -t
), то Linux запустится без запущенного сервиса. При старте Windows дистрибутив WSL запускается только в момент первого обращения к нему.
Я использую SSH-сервер на ноутбуке внутри WSL для того, чтобы удалённо можно было ходить с машины на машину. И, благодаря тому, что я использую техники ssh port forwarding и продуманно настроенный централизованный конфиг SSH клиентов, я могу прозрачно ходить по всем своим серверам, вводя хостнейм вместо адресов. То есть, если даже подключить какой-то из ноутбуков к мобильной сети, autossh демон подключится к jump-хосту и я всё равно смогу зайти на компьютер, никакой NAT не будет помехой. Поэтому мне важно, чтобы sshd всё время был в состоянии up.
Единственный рабочий способ попасть по SSH в WSL — это пробросить порт SSH. Это можно сделать с самого WSL с помощью RemoteForward
, либо с другого сервера в домашней сети. Мало лишь кому это надо, да и это уже advanced level, так что просто приведу рабочую команду:
❯❯ ssh -R ‘*:2363:*:22’ -N -f mt.example.com
Теперь при коннекте на адрес mt.example.com:2263
можно попасть прямо в WSL.
Если планируется поднимать SSH-сервер в WSL, нужно не забыть сконфигурировать необходимые параметры запуска сервера в /etc/ssh/sshd_config
. Чтобы не было конфликта при бинде сервиса на порт 22, OpenSSH сервер в Windows следует отключить или вовсе удалить, если он установлен (
Apps > Apps and Features > Manage Optional Features
).
SSH ключи
Чтобы программы из Windows могли использовать SSH ключи (например, редактор при работе с удалённым репозиторием GitHub), и в то же время не было второй копии ключей в WSL, лучше всего сгенерировать ключи в Windows %HOMEPATH%/.ssh
и создать симлинки в домашней директории WSL.
ssh-keygen -f /mnt/c/Users/$/.ssh/id_rsa -b 4096 ln -sf /mnt/c/Users/$/.ssh/id_rsa $/.ssh/id_rsa ln -sf /mnt/c/Users/$/.ssh/id_rsa.pub $/.ssh/id_rsa.pub
Либо, в ~/.ssh/config
можно прописать параметр
IdentityFile
, указав путь к ключам на диске Windows:
Host * IdentityFile /mnt/c/Users/$/.ssh/id_rsa
Если ключи были скопированы откуда-то и права на файлы не выставлены правильно, поправить permissions:
chmod 600 /mnt/c/Users/$/.ssh/id_rsa chmod 644 /mnt/c/Users/$/.ssh/id_rsa.pub chmod 700 /mnt/c/Users/$/.ssh
Таким образом, при дальнейшей настройке доступа по ключам SSH пользователь идентифицируется однозначно одним набором ключей в одном месте, как при использовании приложений Windows, так и Linux. Теперь можно добавить публичный ключ на сервера/сервисы, куда необходимо будет ходить с этого компьютера. Если в домашней сети есть другие устройства, на которые требуется доступ по SSH, то правильно будет скопировать свой публичный ключ на эти сервера (ssh-copy-id
), но не надо копировать ключи одного сервера на другой. Так как при работе через SSH можно (и нужно) использовать ssh-agent, то при коннекте с одного сервера на другой, агент заботится, чтобы авторизация происходила по проброшенному ключу. Чтобы всё работало правильно и ожидаемо, нужно позаботиться о файле
~/.ssh/config
, в котором надо прописать все необходимые опции.
Host * TCPKeepAlive yes ServerAliveInterval 30 ServerAliveCountMax 3 ForwardAgent yes AddKeysToAgent yes ForwardX11 yes ForwardX11Trusted yes
Сначала хочется сделать небольшое ревью существующих терминальных оболочек под Windows, умеющих запускать WSL. Среди пользователей популярен функциональный комбайн MobaXterm, который умеет создавать различные сессии, в том числе графические (WSL, bash/zsh, Mosh, RDP, VNC и т.п.), позволяет делать макросы и запускать скрипты, имеет много настроек и функциональных возможностей, ssh agent, автозапускаемый ssh port forwarding, и даже имеет встроенный сервер ftp/tftp/http, но продукт closed source и, к тому же, платный. Hyper — другой, более современный эмулятор терминала, позволяющий запускать WSL shell, терминал построен на HTML/JS/CSS и расширяется с помощью плагинов в виде node.js модулей (awesome list). Есть и другие терминалы, позволяющие запускать WSL с разной степенью костыльности (ConEmu, его форк Cmder, WSLtty и др.), но их я оставлю без внимания.
Дальше в этой статье речь пойдёт про Windows Terminal
, на который я перешёл с недавних пор, и пока что испытываю только положительные эмоции. Terminal пока что ещё в статусе бета, но работает достаточно стабильно. Из фич на данный момент реализован мультитаб, разделение панелей (splitting), настраиваемые профили терминальных подключений, цветовые схемы, ну и больше нечего перечислить. Но этого функционала вполне хватает, мне даже нравится, что софт не перегружен лишним — как будто бы разработчики придерживаются принципа KISS.
Terminal эволюционировал из проекта Windows Console (ConPTY), научившись поддерживать ANSI/VT последовательности, 24-bit RGB true color и UTF-8. По ссылкам (начало, продолжение) на Хабре замечательный перевод серии постов блога Windows Command-Line: Inside the Windows Console, где рассказывается про историю создания терминалов, связанные с этим стандарты передачи управляющих последовательностей, кодовые страницы, юникод, появление эмуляторов терминалов и в дальнейшем уже эволюцию командной строки Windows.
Техногикам это может быть интересно. Инженерный состав, работающий над этим opensource проектом, ведёт девблог Windows Command Line, который более, чем полностью посвящён WSL и Windows Terminal. Никогда бы до этого момента не поверил бы, что буду с интересом наблюдать за развитием продуктов MS, но что они делают в рамках развития WSL, Terminal и VSCode, действительно заслуживает уважения. Как начиналось развитие WSL, описано в Microsoft Open Source Stories (перевод есть на Хабре). Кстати, Microsoft с 2020 года является платиновым участником Linux Foundation .
Источник: interavto-63.ru
Программирование электронных блоков BMW c помощью программы WinKFP
BMW
Автор БМВклуб На чтение 7 мин. Просмотров 50 Опубликовано 11.05.2021
Кодирование bmw. кодировки по категориям – блог bmwодов
Кодирование BMW — довольно большая и «денежная» тема, поэтому различные автомастерские и сервисы не любят говорить о ней. Всё дело конечно же в деньгах, которые зарабатываются на тех, которые не умеют (не хотят или боятся) самостоятельно искать информацию и кодировать.
Но раз вы тут, и вы искали статью про кодирование BMW, значит вы её нашли. Ранее в статьях мы уже приводили примеры различных кодировок, такие как Видео в движении , отключение старт-стоп и другое.
Ниже мы постарались разбить всё на категории, чтобы было удобнее смотреть информацию.
Если вы знаете о какой-либо опции, которую можно закодировать, и которая отсутствует в этом списке, напишите о ней в комментариях. Статья будет постоянно дополняться.
Некоторые блоки в разных моделях называются по разному. Так же учтите, что кодировки блоков HU_ENTRY, HU_CIC и HU_NBT добавляют какой-либо пункт в бортовой компьютер и не гарантирует автоматическое включение цели кодировки.
FRM → EINSTIEGSH_NG_AKTIV → aktiv
FRM → EINSTIEGSH_LN_AKTIV → aktiv
FRM → EINAUSSTIEGSHILFE → Modus_FA_SLV
FRM → EAH_VERFAHRWEG_SLV_PHYS → werte = 00, 3C (60mm)
FRM → EAH_SCHUTZFREIRAUM_HINTEN_SLV_PHYS → werte = 00, 0F (15mm)
EAH_VERFAHRWEG_SLV_PHYS – на сколько будет отъезжать водительское кресло. Доступные значения (мм — значение):
100 — 00,64
90 — 00,5A
80 -8 00,50
70 — 00,46
60 — 00,3C
50 — 00,32
40 — 00,28
30 — 00,1E
20 — 00,14
10 — 00,0A
Программирование электронных блоков bmw c помощью программы winkfp
В данной статье мы детально разберем программирование электронных блоков BMW с помощью программы WinKFP . Мы отметим советы, предостережения, руководство пользования, а также в полный разбор электронных блоков управления (далее — ЭБУ ) BMW (выбор, поиск и обновление).
В нашем случае, мы будем проводить анализ на BMW в кузове E39. Вы сможете узнать как обновить прошивку DME (ЭБУ двигателя), а также разберемся со всей необходимой нам информацией.
У нашего автомобиля удален катализатор, и мы хотим узнать, какая стоит прошивка у ЭБУ двигателя и есть ли какие-либо обновления.
Первый шаг – нам необходимо узнать номер детали блока ЭБУ двигателя. Нам необходимо использовать программу INPA . Она очень проста в использовании, а также входит в набор BMW Standart Tools . Начинаем наш процесс: сперва подключаемся к нашему автомобилю, заводим его и запускаем INPA на устройстве. Теперь в программе выбираем модель автомобиля и потом его двигатель. Далее переходим к процессу идентификации (кнопка F2 на клавиатуре) и получаем следующие окно с информацией:
Первая строка показывает номер детали необходимого блока – 1429861 . Для того чтобы узнать номер программы ЭБУ двигателя, то в меню INPA нажимаем F1 и вводим MS41:
Чтобы узнать текущую версию прошивки блока, то в меню нажимаем F3 и у нас появляется следующие окно:
На данном снимке мы сможем заметить “настоящую” версию прошивки – 1711648 , а также стоит отметить, что прошивка стоит для авто с катализатором ( у нашего автомобиля он удален).
Далее наполним свежими данными о нашем кузове ПО.
Файлы профилей FZG2MAN.PFL и FZG2CKM.PFL и Expert.PFL копируем в папку C:NCSEXPERPFL старые профили в этой папке при этом стираем.
Файл FSW_PSW.MAN копируем в папку C:NCSEXPERWORK и создаем ярлык этой папки на рабочий стол для будущего удобства при кодировании.
Далее сразу настроим WinKfp для этого запускаем его ярлыком на рабочем столе *
В верхнем меню нажимаем Configuration и видим следующее:
— рrogramming voltage — подача напряжения при программировании, снимаем галочку
— show programming- voltage показывается в окне при подаче, снимаем галочку
— Fast baudrаte — повышенная скорость передачи, снимаем галочку
— test checksum — проверка контрольной суммы
— Force program programming in comfort mode — Программа программируется даже тогда когда нужно только обновить, снимаем галочку
— aktivate bootsectorupdate — Обновление загрузочного сектора.
Если вы не хотите оставлять записи в блоке о прошивке (будет видна дата прошивки вашей в блоке) то убираем все галки с пунктов UIF.
-UIF write after data — запись при программировании данных
-UIF write after program-запись при программировании программы
-UIF write in expert mode запись в экспертном режиме снимаем галочку
-UIF write in comfort mode-запись в комфортном режиме
Остальное не трогаем и нажимаем ОК
Далее наполним свежими данными о нашем кузове ПО.
Идем в папку …ДиагностикадополненияBMW Coding Tool v250
Нажать SP-source и выбрать папку кузова(внимательно тыкайте плюсики, т.к. может быть подпапка кузова)
Нажать Update SP-daten и на вопрос о создании резерва нажимаем Нет
Вы увидите процесс импорта файлов после завершения которого нужно повторить для каждого кузова.
Затем повторить выбор папки кузова(если вдруг другой нужен) и нажать кнопку Нажимаем update winkfp. Аналогично обновим все необходимые кузова с которыми собираемся работать.
Далее идем в папку C:EDIABASBin и находим файлик EDIABAS.INI
Открываем его и находим строку:
Ниже нее пишем все что видим тут:
; Description: server address/name
; Description: IP communication port
Источник: studopedia.ru