<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>DOOM on William Floyd (high-quality images)</title>
    <link>https://w-floyd.com/tags/doom/</link>
    <description>Recent content in DOOM on William Floyd</description>
    <generator>Hugo</generator><language>en</language><managingEditor>William Floyd</managingEditor><webMaster>William Floyd</webMaster><lastBuildDate>Sat, 17 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://w-floyd.com/tags/doom/index.hi.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Notes on LLMs - Part 1</title>
      <link>https://w-floyd.com/2026/10/notes-on-llms-part-01/</link>
      <pubDate>Sat, 17 Oct 2026 00:00:00 +0000</pubDate><author>William Floyd</author>
      <guid>https://w-floyd.com/2026/10/notes-on-llms-part-01/</guid><description>&lt;p&gt;I had written a draft of an anti-LLM post some months ago, and ended up not posting it.&#xA;Since then, I&amp;rsquo;ve used these tools much more during my day job, as well as hobby projects.&#xA;I&amp;rsquo;ve had many thoughts about LLMs, and their impact on my mental health and ability to learn (or the stunting of said growth).&#xA;I&amp;rsquo;ve also experienced many cases where it is undoubtedly an amazing tool that has enabled me to learn new things by reducing the barrier to entry for new fields.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;In all, it&amp;rsquo;s been a mixed bag, and I wish LLMs never existed.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;But the technology is here now, so I thought I&amp;rsquo;d show &lt;em&gt;some&lt;/em&gt; of the things I have managed to do aided by these tools.&#xA;In line with not letting perfect get in the way of good/done, I&amp;rsquo;ll probably post updates in Part 2 and so on.&lt;/p&gt;&#xA;&lt;h1 id=&#34;linux-hacking&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#linux-hacking&#34;&gt;Linux Hacking&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;The Linux kernel is huge, complicated, amazing, and &lt;em&gt;not&lt;/em&gt; something I have experience in modifying.&#xA;I am however quite comfortable compiling software and figuring out how the pieces fit together (eg &lt;a href=&#34;https://github.com/W-Floyd/solus-deepin&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt; and &lt;a href=&#34;https://github.com/W-Floyd/solus-lxqt&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;).&#xA;That being the case, I&amp;rsquo;ve gone ahead and tried a couple projects with kernel related hacking.&lt;/p&gt;&#xA;&lt;h2 id=&#34;samsung-galaxy-s9---starqltechn&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#samsung-galaxy-s9---starqltechn&#34;&gt;Samsung Galaxy S9 - &lt;code&gt;starqltechn&lt;/code&gt;&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;My old phone collecting dust, so why not try to get it running Nura?&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&#xA;There&amp;rsquo;s already a &lt;a href=&#34;https://wiki.nura.eco/wiki/Samsung_Galaxy_S9_%28samsung-starqltechn%29&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;working port&lt;/a&gt;, but lots of peripherals don&amp;rsquo;t yet work, so I figured I&amp;rsquo;d start there.&lt;/p&gt;&#xA;&lt;p&gt;Long story short, using LLMs I was able to get:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Working camera+flash&lt;/li&gt;&#xA;&lt;li&gt;Aperture control&lt;/li&gt;&#xA;&lt;li&gt;Manual focus&lt;/li&gt;&#xA;&lt;li&gt;WiFi+BT (tracked down an existing patch)&lt;/li&gt;&#xA;&lt;li&gt;DisplayPort output&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;figure-row&#34;&gt;&lt;div style=&#34;flex: 0.7529 1 0%; min-width: 0;&#34;&gt;&lt;a href=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-3072.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-1280.avif 1280w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-1296.avif 1296w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-1728.avif 1728w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-1920.avif 1920w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-2160.avif 2160w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-2560.avif 2560w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-2592.avif 2592w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-3072.avif 3072w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-400.avif 400w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-432.avif 432w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-640.avif 640w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-864.avif 864w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260908_152254681-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) %!d(float64=27)vw, %!d(float64=228)px&#34; alt=&#34;Samsung Galaxy S9 running a camera app, showing a color-bar test pattern from its working rear camera.&#34; title=&#34;Samsung Galaxy S9 running a camera app, showing a color-bar test pattern from its working rear camera.&#34; width=&#34;3072&#34; height=&#34;4080&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&#34;flex: 0.7529 1 0%; min-width: 0;&#34;&gt;&lt;a href=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-3072.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-1280.avif 1280w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-1296.avif 1296w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-1728.avif 1728w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-1920.avif 1920w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-2160.avif 2160w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-2560.avif 2560w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-2592.avif 2592w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-3072.avif 3072w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-400.avif 400w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-432.avif 432w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-640.avif 640w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-864.avif 864w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_140412637-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) %!d(float64=27)vw, %!d(float64=228)px&#34; alt=&#34;Galaxy S9 camera app with the aperture selector open, offering f/1.5 and f/2.4.&#34; title=&#34;Galaxy S9 camera app with the aperture selector open, offering f/1.5 and f/2.4.&#34; width=&#34;3072&#34; height=&#34;4080&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&#34;flex: 1.3281 1 0%; min-width: 0;&#34;&gt;&lt;a href=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-4080.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-1280.avif 1280w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-1296.avif 1296w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-1728.avif 1728w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-1920.avif 1920w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-2160.avif 2160w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-2560.avif 2560w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-2592.avif 2592w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-3840.avif 3840w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-400.avif 400w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-4080.avif 4080w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-432.avif 432w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-640.avif 640w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-864.avif 864w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260911_133003469.MP-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) %!d(float64=47)vw, %!d(float64=403)px&#34; alt=&#34;Galaxy S9 connected over USB-C to a monitor, which shows the GNOME About screen: postmarketOS edge, Linux 7.1.0-rc1-sdm845, FD630 graphics.&#34; title=&#34;Galaxy S9 connected over USB-C to a monitor, which shows the GNOME About screen: postmarketOS edge, Linux 7.1.0-rc1-sdm845, FD630 graphics.&#34; width=&#34;4080&#34; height=&#34;3072&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;h3 id=&#34;my-code&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#my-code&#34;&gt;My Code&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/W-Floyd/linux/tree/dev&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Kernel tree&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/W-Floyd/pmaports&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;aports&lt;/a&gt; (spread across branches)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;details&gt;&#xA;&#x9;&lt;summary&gt;Vendor Resources&lt;/summary&gt;&#xA;&#x9;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://elektrotanya.com/samsung_galaxy_s9_g9600_service_manual.pdf/download.html&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Level 3 service manual (SM-G9600)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/droidian-devices/linux-android-samsung-starqlte&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Samsung 4.9 kernel source&lt;/a&gt; (Droidian&amp;rsquo;s tree)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://dumps.tadiphone.dev/dumps/samsung/starqltechn&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Stock firmware dump&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;h2 id=&#34;motorola-moto-g-play-2024---fogona&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#motorola-moto-g-play-2024---fogona&#34;&gt;Motorola Moto G Play (2024) - &lt;code&gt;fogona&lt;/code&gt;&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Fresh on the success of getting progress on an &lt;em&gt;older&lt;/em&gt; phone, I decided to find the cheapest phone that a US resident can just go out and potentially install Linux on.&#xA;At this time, it&amp;rsquo;s the Motorola Moto G Play (2024), which can be had for $100 USD new in box, carrier unlocked and bootloader unlockable.&#xA;There&amp;rsquo;s &lt;a href=&#34;https://wiki.nura.eco/wiki/Qualcomm_Snapdragon_680_%28SM6225%29&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;already SoC support&lt;/a&gt;, but it&amp;rsquo;s somewhat early.&lt;/p&gt;&#xA;&lt;p&gt;After much back and forth, I was able to get:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;GPU support&lt;/li&gt;&#xA;&lt;li&gt;Video decoder acceleration&lt;/li&gt;&#xA;&lt;li&gt;Cameras with PDAF and stock tunings&lt;/li&gt;&#xA;&lt;li&gt;WiFi, BT&lt;/li&gt;&#xA;&lt;li&gt;Modem (data, calls, texts/mms)&lt;/li&gt;&#xA;&lt;li&gt;GPS, accelerometer, compass, rotation, lux, proximity&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;my-code-1&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#my-code-1&#34;&gt;My Code&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/W-Floyd/linux/tree/fogona-mainline&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Kernel tree&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/W-Floyd/linux/tree/exp-pdaf&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Kernel tree with Linuxboot + camera changes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/W-Floyd/pmaports/tree/fogona&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;pmaports&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;details&gt;&#xA;&#x9;&lt;summary&gt;Vendor Resources&lt;/summary&gt;&#xA;&#x9;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ifixit.com/Document/ohXytuihYMtgUiFU/Moto-G-Play-XT2413-Level-3-Service-Manual.pdf&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Level 3 service manual (XT2413)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Kernel: &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-msm/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older, more complete&lt;/a&gt;, &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-msm/tree/android-14-release-u1tf34.100-35-5-3-1&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Latest&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Device tree: &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-devicetree/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older&lt;/a&gt;, &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-devicetree/tree/android-14-release-u1tf34.100-35-5-3-1&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Latest&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Subsystem device trees&#xA;&lt;ul&gt;&#xA;&lt;li&gt;display: &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-display-devicetree/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older&lt;/a&gt;, &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-display-devicetree/tree/android-14-release-u1tf34.100-35-5-3-1&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Latest&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;camera: &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-camera-devicetree/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;audio: &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-audio-devicetree/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older&lt;/a&gt;, &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-audio-devicetree/tree/android-14-release-u1tf34.100-35-5-3-1&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Latest&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;nfc: &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-nfc-devicetree/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older&lt;/a&gt;, &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-nfc-devicetree/tree/android-14-release-u1tf34.100-35-5-3-1&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Latest&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;bt: &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-bt-devicetree/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older&lt;/a&gt;, &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-bt-devicetree/tree/android-14-release-u1tf34.100-35-5-3-1&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Latest&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;graphics: &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-graphics-devicetree/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;video: &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-video-devicetree/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;wlan: &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-wlan-devicetree/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older&lt;/a&gt;, &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/kernel-wlan-devicetree/tree/android-14-release-u1tf34.100-35-5-3-1&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Latest&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Drivers&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Motorola modules: &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/motorola-kernel-modules/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Camera: &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/vendor-qcom-opensource-camera-kernel/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Graphics (KGSL): &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/vendor-qcom-opensource-graphics-kernel/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older&lt;/a&gt;, &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/vendor-qcom-opensource-graphics-kernel/tree/android-14-release-u1tf34.100-35-5-3-1&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Latest&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Video: &lt;a href=&#34;https://github.com/MotorolaMobilityLLC/vendor-qcom-opensource-video-driver/tree/android-13-release-t3tfs33.66-37-3&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Older&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;h3 id=&#34;prs-that-resulted&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#prs-that-resulted&#34;&gt;PRs that resulted:&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Merged (as of writing):&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/merge_requests/477&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;mobile-broadband/libqmi | voice: add the pre-alerting call state&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/3505&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GNOME/gnome-control-center | wwan: Restore the APN dialog header bar&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://gitlab.postmarketos.org/postmarketOS/boot-deploy/-/merge_requests/116&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;postmarketOS/boot-deploy | flash vendor_boot: look up the partition before checking its size&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Unmerged:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1503&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;mobile-broadband/ModemManager | qmi: handle the pre-alerting call state&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://gitlab.gnome.org/GNOME/mobile-broadband-provider-info/-/merge_requests/165&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GNOME/mobile-broadband-provider-info | us: AT&amp;amp;T: add ERESELLER as MVNO APN&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://gitlab.com/kop316/mmsd/-/merge_requests/132&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;kop316/mmsd | service-providers: match the APN case-insensitively&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;projects-that-resulted&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#projects-that-resulted&#34;&gt;Projects that resulted:&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;h4 id=&#34;bootmanager&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#bootmanager&#34;&gt;&lt;a href=&#34;https://github.com/W-Floyd/bootmanager&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;bootmanager&lt;/a&gt;&lt;/a&gt;&#xA;&lt;/h4&gt;&#xA;&lt;p&gt;Such an inventive name, I know&amp;hellip;&#xA;A Slint GUI + Go backend tailored for Linuxboot+u-root setups, meant to be a beautiful alternative to uboot.&#xA;Supports touchscreen, SSH, fastboot, LUKS decryption, usage in place of &lt;a href=&#34;https://github.com/droidian/unl0kr&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;unl0kr&lt;/a&gt;, and a web GUI built in WASM from same Slint.&lt;/p&gt;&#xA;&lt;div class=&#34;figure-row&#34;&gt;&lt;div style=&#34;flex: 0.7529 1 0%; min-width: 0;&#34;&gt;&lt;a href=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-3072.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-1280.avif 1280w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-1296.avif 1296w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-1728.avif 1728w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-1920.avif 1920w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-2160.avif 2160w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-2560.avif 2560w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-2592.avif 2592w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-3072.avif 3072w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-400.avif 400w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-432.avif 432w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-640.avif 640w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-864.avif 864w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195654058-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) %!d(float64=36)vw, %!d(float64=313)px&#34; alt=&#34;Moto G Play (2024) in hand, showing the bootmanager Unlock screen with a password field and on-screen keyboard for the UFS userdata partition.&#34; title=&#34;Moto G Play (2024) in hand, showing the bootmanager Unlock screen with a password field and on-screen keyboard for the UFS userdata partition.&#34; width=&#34;3072&#34; height=&#34;4080&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&#34;flex: 0.7529 1 0%; min-width: 0;&#34;&gt;&lt;a href=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-3072.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-1280.avif 1280w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-1296.avif 1296w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-1728.avif 1728w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-1920.avif 1920w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-2160.avif 2160w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-2560.avif 2560w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-2592.avif 2592w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-3072.avif 3072w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-400.avif 400w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-432.avif 432w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-640.avif 640w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-864.avif 864w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_195700115-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) %!d(float64=36)vw, %!d(float64=313)px&#34; alt=&#34;Moto G Play (2024) in hand, showing the bootmanager Choose a system screen with a postmarketOS card marked default, on encrypted UFS userdata.&#34; title=&#34;Moto G Play (2024) in hand, showing the bootmanager Choose a system screen with a postmarketOS card marked default, on encrypted UFS userdata.&#34; width=&#34;3072&#34; height=&#34;4080&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&#34;flex: 0.5625 1 0%; min-width: 0;&#34;&gt;&lt;div data-figure-item&gt;&lt;p&gt;&lt;video controls preload=&#34;none&#34; style=&#34;aspect-ratio:9/16;width:100%&#34; poster=&#34;https://immich.notmy.space/api/assets/ebf60442-44d2-4a6d-a578-b7f413fc37e8/thumbnail?size=preview&amp;slug=bootmanager-fogona&#34; src=&#34;https://immich.notmy.space/api/assets/ebf60442-44d2-4a6d-a578-b7f413fc37e8/video/playback?slug=bootmanager-fogona&#34;&gt;&lt;/video&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://immich.notmy.space/s/bootmanager-fogona/photos/ebf60442-44d2-4a6d-a578-b7f413fc37e8&#34;&gt;▶ Watch the video&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!--/figure-item--&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;h4 id=&#34;godot-maps&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#godot-maps&#34;&gt;&lt;a href=&#34;https://github.com/W-Floyd/godot-maps&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;godot-maps&lt;/a&gt;&lt;/a&gt;&#xA;&lt;/h4&gt;&#xA;&lt;p&gt;Comaps doesn&amp;rsquo;t look great on Linux, and I couldn&amp;rsquo;t find anything else that did what I wanted, so I made a quick and dirty navigation app built on Comaps backend using Godot.&#xA;It compiles to many platforms too, including MacOS and Android.&lt;/p&gt;&#xA;&lt;a href=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-3072.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-1280.avif 1280w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-1296.avif 1296w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-1728.avif 1728w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-1920.avif 1920w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-2160.avif 2160w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-2560.avif 2560w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-2592.avif 2592w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-3072.avif 3072w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-400.avif 400w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-432.avif 432w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-640.avif 640w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-864.avif 864w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20260929_223737700-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) 100vw, min(100vw - 40px, 860px)&#34; alt=&#34;godot-maps running turn-by-turn navigation on a phone held in a car: a 3D map with buildings, a blue route line, a 0.4 mi right-turn banner, a 35 mph speed limit sign, and a one-minute ETA bar.&#34; title=&#34;godot-maps running turn-by-turn navigation on a phone held in a car: a 3D map with buildings, a blue route line, a 0.4 mi right-turn banner, a 35 mph speed limit sign, and a one-minute ETA bar.&#34; width=&#34;3072&#34; height=&#34;4080&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&#xA;&lt;h4 id=&#34;go-msm-firmware-loader&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#go-msm-firmware-loader&#34;&gt;&lt;a href=&#34;https://github.com/W-Floyd/go-msm-firmware-loader&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;go-msm-firmware-loader&lt;/a&gt;&lt;/a&gt;&#xA;&lt;/h4&gt;&#xA;&lt;p&gt;Go port of &lt;a href=&#34;https://gitlab.postmarketos.org/postmarketOS/msm-firmware-loader&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;msm-firmware-loader&lt;/code&gt;&lt;/a&gt;, used by &lt;code&gt;bootmanager&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;go-qbootctl&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#go-qbootctl&#34;&gt;&lt;a href=&#34;https://github.com/W-Floyd/go-qbootctl&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;go-qbootctl&lt;/a&gt;&lt;/a&gt;&#xA;&lt;/h4&gt;&#xA;&lt;p&gt;A static Go replacement for the A/B slot subset of &lt;a href=&#34;https://github.com/linux-msm/qbootctl&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;qbootctl&lt;/code&gt;&lt;/a&gt; so it works in an initramfs, used by &lt;code&gt;bootmanager&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;go-chromatix2libcamera&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#go-chromatix2libcamera&#34;&gt;&lt;a href=&#34;https://github.com/W-Floyd/go-chromatix2libcamera&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;go-chromatix2libcamera&lt;/a&gt;&lt;/a&gt;&#xA;&lt;/h4&gt;&#xA;&lt;p&gt;Translates Qualcomm Chromatix tuning files to something libcamera (or a fork thereof) can interpret.&lt;/p&gt;&#xA;&lt;h4 id=&#34;go-unbrick&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#go-unbrick&#34;&gt;&lt;a href=&#34;https://github.com/W-Floyd/go-unbrick&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;go-unbrick&lt;/a&gt;&lt;/a&gt;&#xA;&lt;/h4&gt;&#xA;&lt;p&gt;Swiss army knife that I use to inspect stock firmware images, any files contained therein, and to make some files to help with bricked devices.&lt;/p&gt;&#xA;&lt;h4 id=&#34;go-qshrink4&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#go-qshrink4&#34;&gt;&lt;a href=&#34;https://github.com/W-Floyd/go-qshrink4&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;go-qshrink4&lt;/a&gt;&lt;/a&gt;&#xA;&lt;/h4&gt;&#xA;&lt;p&gt;A reader for Qualcomm QShrink4 hash databases (&lt;code&gt;.qdb&lt;/code&gt; / &lt;code&gt;.qsr4&lt;/code&gt;), mapping the hashes in QShrink&amp;rsquo;d modem diag messages back to their format string, file and line.&lt;/p&gt;&#xA;&lt;h2 id=&#34;2024-kia-ev6-head-unit&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#2024-kia-ev6-head-unit&#34;&gt;2024 Kia EV6 Head Unit&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;New (to me) car, new project!&#xA;Once I got the stock system image (download from Kia, community knows how to decrypt), a root shell on the running unit (others already figured this out), and the vendor source, I was off to the races.&lt;/p&gt;&#xA;&lt;p&gt;Given the ancient (3.18.24, from 2015) vendor kernel (for Android Kitkat!), I used LLMs to do minimal mainline porting for the quad Cortex-A53 Telechips TCC803x SoC, which turned out to almost work first try.&#xA;With a bit of back and forth (and much USB swapping), display out was achieved and I could feed log messages back into the LLM and iterate on fixes.&#xA;Note that stock was never reflashed, this is a &lt;code&gt;kexec&lt;/code&gt; cycle that uses USB data only.&#xA;The old Android version is in some ways a blessing in disguise, because older systems are in some ways much easier to bend to your will.&lt;/p&gt;&#xA;&lt;p&gt;I figured the quickest path to something useful was to get &lt;code&gt;bootmanager&lt;/code&gt; running, which turned out to be trivial.&lt;/p&gt;&#xA;&lt;a href=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-4080.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-1280.avif 1280w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-1296.avif 1296w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-1728.avif 1728w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-1920.avif 1920w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-2160.avif 2160w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-2560.avif 2560w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-2592.avif 2592w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-3840.avif 3840w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-400.avif 400w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-4080.avif 4080w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-432.avif 432w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-640.avif 640w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-864.avif 864w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261016_214811840.MP-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) 100vw, min(100vw - 40px, 860px)&#34; alt=&#34;bootmanager running on the Kia EV6 head unit: a Choose a system screen titled Telechips TCC803x AVN, with a single Tools card (services, partitions, log, power).&#34; title=&#34;bootmanager running on the Kia EV6 head unit: a Choose a system screen titled Telechips TCC803x AVN, with a single Tools card (services, partitions, log, power).&#34; width=&#34;4080&#34; height=&#34;3072&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&#xA;&lt;p&gt;Still, after ~3.5min, it would reboot.&#xA;So using LLMs I logged serial transfers from Android and did some decompilation of the MICOM firmware (seems to be some kind of PowerPC VLE chip) and Android apps to see what signals I needed to respond to, and found a hung SoC check that I can respond to to keep from being reset.&#xA;At the same time I found signals for things like power draw of climate, battery state, etc. (I still need to map this out properly).&lt;/p&gt;&#xA;&lt;p&gt;Working:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Display&lt;/li&gt;&#xA;&lt;li&gt;I2C&lt;/li&gt;&#xA;&lt;li&gt;USB&lt;/li&gt;&#xA;&lt;li&gt;eMMC&lt;/li&gt;&#xA;&lt;li&gt;WiFi (and soon, BT)&lt;/li&gt;&#xA;&lt;li&gt;Touch&lt;/li&gt;&#xA;&lt;li&gt;Serial&lt;/li&gt;&#xA;&lt;li&gt;MICOM keepalive + Vehicle data&lt;/li&gt;&#xA;&lt;li&gt;re-kexecing back to stock Android&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;does-it-run-doom&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#does-it-run-doom&#34;&gt;Does it run DOOM?&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;If you saw the cover image, you&amp;rsquo;ll know. Of course it does!&lt;/p&gt;&#xA;&lt;div class=&#34;figure-row&#34;&gt;&lt;div style=&#34;flex: 0.7529 1 0%; min-width: 0;&#34;&gt;&lt;a href=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-3072.avif&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;image-full&#34;&gt;&lt;img data-rimg src=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-1920.avif&#34; srcset=&#34;https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-1280.avif 1280w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-1296.avif 1296w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-1728.avif 1728w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-1920.avif 1920w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-2160.avif 2160w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-2560.avif 2560w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-2592.avif 2592w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-3072.avif 3072w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-400.avif 400w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-432.avif 432w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-640.avif 640w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-864.avif 864w, https://w-floyd.com/2026/10/notes-on-llms-part-01/media/PXL_20261017_003820837-hq-960.avif 960w&#34; sizes=&#34;(max-width: 768px) %!d(float64=57)vw, %!d(float64=492)px&#34; alt=&#34;DOOM running on the 2024 Kia EV6 head unit at night, a first-person corridor with on-screen touch controls (move, turn, run, fire, use, map) on either side.&#34; title=&#34;DOOM running on the 2024 Kia EV6 head unit at night, a first-person corridor with on-screen touch controls (move, turn, run, fire, use, map) on either side.&#34; width=&#34;3072&#34; height=&#34;4080&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&#34;flex: 0.5625 1 0%; min-width: 0;&#34;&gt;&lt;div data-figure-item&gt;&lt;p&gt;&lt;video controls preload=&#34;none&#34; style=&#34;aspect-ratio:9/16;width:100%&#34; muted poster=&#34;https://immich.notmy.space/api/assets/dd0c904e-5202-4942-9c63-af051766bfa4/thumbnail?size=preview&amp;slug=2024-kia-ev6-doom&#34; src=&#34;https://immich.notmy.space/api/assets/dd0c904e-5202-4942-9c63-af051766bfa4/video/playback?slug=2024-kia-ev6-doom&#34;&gt;&lt;/video&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://immich.notmy.space/s/2024-kia-ev6-doom/photos/dd0c904e-5202-4942-9c63-af051766bfa4&#34;&gt;▶ Watch the video&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!--/figure-item--&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&#xA;&lt;details&gt;&#xA;&#x9;&lt;summary&gt;Vendor Resources&lt;/summary&gt;&#xA;&#x9;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.mobis.com/en/tech/rnd.do#open&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mobis open source&lt;/a&gt;: &amp;ldquo;AVNT STD G50 WIDE R6&amp;rdquo; for &amp;ldquo;EV6 (CV1)&amp;rdquo; (&lt;code&gt;AVNT_STD_G50_WIDE_R6.zip&lt;/code&gt;, 565 MB)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;h3 id=&#34;my-code-2&#34;&gt;&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#my-code-2&#34;&gt;My Code&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/W-Floyd/linux/tree/2024-kia-ev6&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Kernel tree&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;Formerly PostmarketOS&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
  </channel>
</rss>
