﻿{"id":6503,"date":"2026-10-15T18:08:51","date_gmt":"2026-10-15T18:08:51","guid":{"rendered":"https:\/\/uni.hi.is\/helmut\/?p=6503"},"modified":"2026-10-15T20:27:17","modified_gmt":"2026-10-15T20:27:17","slug":"hmg-huyndai-kia-genesis-firmware-updates-on-linux-using-nudl-tool","status":"publish","type":"post","link":"https:\/\/uni.hi.is\/helmut\/2026\/10\/15\/hmg-huyndai-kia-genesis-firmware-updates-on-linux-using-nudl-tool\/","title":{"rendered":"Hyundai Motor Group (Huyndai, Kia, Genesis) firmware updates on Linux using the nudl tool"},"content":{"rendered":"<p>The <em>nudl<\/em> tool runs on Linux, Windows, macOS and can download firmware updates for cars from Huyndai, Kia, Genesis: <a href=\"https:\/\/github.com\/chenxiaolong\/nudl\">https:\/\/github.com\/chenxiaolong\/nudl<\/a>. As the HMG server does some GeoIP, you will get automatically the correct firmware image for your region from the HMG update server.<\/p>\n<p>For my EU Kia EV6, I used:<br \/>\n<code class=\"\" data-line=\"\"><br \/>\n.\/nudl list -b kia | grep EV6<br \/>\n<\/code><br \/>\nAs of 10\/2026, this printed:<\/p>\n<pre><code class=\"\" data-line=\"\">2025_26_EV6_GT_EUR               &quot;2025-26 EV6 GT&quot;          CV1GT26.EUR.ccNC.001.002.260312\n2025_26_EV6_GT_EUR               &quot;2025-26 EV6 GT&quot;          CV1GT.ERT.ccNC_Lite.001.002.260312\n2025_26_EV6_GT_EUR               &quot;2025-26 EV6 GT&quot;          CV1GT26.ERT.ccNC_Lite.001.002.260312\n2025_26_EV6_GT_EUR               &quot;2025-26 EV6 GT&quot;          CV1GT.EUR.ccNC.001.002.260312\nEV6_MY_22_EU                     &quot;2022-24 EV6&quot;             CV_E.EUR.S5W_L.001.001.260128\n2025_26_EV6_EUR                  &quot;2025-26 EV6 PE&quot;          CV1MY26.EUR.ccNC.001.002.260312\n2025_26_EV6_EUR                  &quot;2025-26 EV6 PE&quot;          CV1.EUR.ccNC.001.002.260312\n2025_26_EV6_EUR                  &quot;2025-26 EV6 PE&quot;          CV1.ERT.ccNC_Lite.001.002.260312\n2025_26_EV6_EUR                  &quot;2025-26 EV6 PE&quot;          CV1MY26.ERT.ccNC_Lite.001.002.260312<\/code><\/pre>\n<p>As I have model year 2022, i.e. <code class=\"\" data-line=\"\">MY22<\/code> with the old Standard Gen5W Navigation, the entry <code class=\"\" data-line=\"\">EV6_MY_22_EU<\/code> is relevant for me. The extra thorough can double-check via:<br \/>\n<code class=\"\" data-line=\"\">.\/nudl list -b kia -m EV6_MY_22_EU<\/code><br \/>\nwhich correctly printed<br \/>\n<code class=\"\" data-line=\"\">MODEL        NAME          VERSION<br \/>\nEV6_MY_22_EU &quot;2022-24 EV6&quot; CV_E.EUR.S5W_L.001.001.260128<\/code><\/p>\n<p>(In addition, you can also double-check by comparing to the latest update available on the <a href=\"https:\/\/update.kia.com\/EU\/EN\/home\">European KIA update server<\/a>.)<\/p>\n<p>I created then a directory with that version name and did let <em>nudl<\/em> download into that directory using the <code class=\"\" data-line=\"\">-o<\/code> parameter:<br \/>\n<code class=\"\" data-line=\"\"><br \/>\n.\/nudl download -b kia -m EV6_MY_22_EU -o &quot;CV_E.EUR.S5W_L.001.001.260128&quot;<br \/>\n<\/code><\/p>\n<p>If your download was aborted and you can resume (by just re-running the above command). If you want then to verify the checksums, point <em>nudl<\/em> to the directory that was used for that version:<\/p>\n<p><code class=\"\" data-line=\"\">.\/nudl verify -d &quot;CV_E.EUR.S5W_L.001.001.260128&quot;<\/code><br \/>\nTypically, that verification step is not really needed as the car itself also checks file integrity before installation.<\/p>\n<p>Finally, copy the downloaded files directly from the directory (but without the directory itself) to the root of the USB key:<\/p>\n<pre><code class=\"\" data-line=\"\">USB Drive\/\n\u251c\u2500\u2500 AppUpgrade\n\u251c\u2500\u2500 EV6_MY_22_EU.ver\n\u2514\u2500\u2500 HU\/<\/code><\/pre>\n<p>Copying will take some time as this is 25 GB of data (so have at least a 32 GB USB key). If you use <code class=\"\" data-line=\"\">cp -a<\/code>, use in addition the <code class=\"\" data-line=\"\">-v<\/code> flag to see some sort of progress, i.e.: <code class=\"\" data-line=\"\">cp -av<\/code><\/p>\n<p>I had some <a href=\"https:\/\/uni.hi.is\/helmut\/2022\/12\/11\/updating-hyundai-kia-genesis-head-unit-navigation-infotainment-system-firmware-using-linux\/\">older instruction, running Microsoft Windows in a VM<\/a>, but thanks to <em>nudl<\/em>, there is no need for a Windows WM anymore, as this got really easy now!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The nudl tool runs on Linux, Windows, macOS and can download firmware updates for cars from Huyndai, Kia, Genesis: https:\/\/github.com\/chenxiaolong\/nudl. As the HMG server does some GeoIP, you will get automatically the correct firmware image for your region from the HMG update server. For my EU Kia EV6, I used: .\/nudl list -b kia | [&hellip;]<\/p>\n","protected":false},"author":512,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[177207],"tags":[],"class_list":["post-6503","post","type-post","status-publish","format-standard","hentry","category-electric-mobility"],"_links":{"self":[{"href":"https:\/\/uni.hi.is\/helmut\/wp-json\/wp\/v2\/posts\/6503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/uni.hi.is\/helmut\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/uni.hi.is\/helmut\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/uni.hi.is\/helmut\/wp-json\/wp\/v2\/users\/512"}],"replies":[{"embeddable":true,"href":"https:\/\/uni.hi.is\/helmut\/wp-json\/wp\/v2\/comments?post=6503"}],"version-history":[{"count":16,"href":"https:\/\/uni.hi.is\/helmut\/wp-json\/wp\/v2\/posts\/6503\/revisions"}],"predecessor-version":[{"id":6521,"href":"https:\/\/uni.hi.is\/helmut\/wp-json\/wp\/v2\/posts\/6503\/revisions\/6521"}],"wp:attachment":[{"href":"https:\/\/uni.hi.is\/helmut\/wp-json\/wp\/v2\/media?parent=6503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/uni.hi.is\/helmut\/wp-json\/wp\/v2\/categories?post=6503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/uni.hi.is\/helmut\/wp-json\/wp\/v2\/tags?post=6503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}