askiiart-net/blog/elitebook-g1q/the-arm-saga-part-0.html
2025-05-22 23:28:36 -05:00

72 lines
4.1 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta content="width=device-width, initial-scale=1" charset="utf-8" />
<link rel="icon" href="/assets/askiiart.avif" type="image/icon">
<title>The ARM saga: part 0</title>
<link href="/style.css" type="text/css" rel="stylesheet" />
<link href="/prism.css" rel="stylesheet" />
</head>
<body class="line-numbers">
<h1 id="the-arm-saga-part-0">The ARM saga: part 0</h1>
<p>Part 0's gonna be really short, simple, and disorganized,
just going over some things quick. Also, this is as far as I
understand it, which isn't very far; I could be wrong, and if I
have any corrections or anything, then this page will be
updated.</p>
<h2 id="basics">Basics</h2>
<p>ARM laptops are different from x86 ones (duh), rather than
the core system being universal and stuff just requiring
different drivers, Linux on ARM requires device trees like <a
href="https://github.com/aarch64-laptops/build/pull/135/commits/394fae75a113093f9680eb815e683818254e1fa0">this</a>.
These device trees are then added to the kernel and it Just
Works... except currently, the Elitebook G1q device tree isn't
in the kernel, and it's not expected to be until at least
6.16.</p>
<h2 id="ubuntu-concept">Ubuntu Concept</h2>
<p>Ubuntu has a concept image available <a
href="https://discourse.ubuntu.com/t/ubuntu-24-10-concept-snapdragon-x-elite/48800">here</a>
that supports the Elitebook G1q's sister laptop, the Omnibook X
14. When I tried it on my laptop, I had to force it to use the
Omnibook X 14's device tree, which matches up with what was
reported <a
href="https://discourse.ubuntu.com/t/ubuntu-24-10-concept-snapdragon-x-elite/48800/573">here</a>.
Changing the grub argument from <code>$dtb</code> to
<code>devicetree /casper/dtbs/x1e80100-hp-omnibook-x14.dtb</code>[^1]
(which I found by just mounting the iso) worked to get it
booted. However, it would throws a bunch of weird errors and try
to netboot, then after going through that, would drop me into a
busybox session? So that's definitely some improvement over
nothing, and an alternate way to do stuff if needed, but not
ideal.</p>
<p>And I couldn't find a decent way to work this in, but: it
also behaved a bit strangely, both the keyboard and a USB
keyboard wouldn't be recognized in Grub ~50% of the time, not
sure why. I <em>think</em> they would have worked once Ubuntu
was actually started, but given Grub wouldn't auto-boot, I
couldn't test this.</p>
<p>Another side note: I also tested Fedora's ARM image,
unsurprisingly it didn't work at all.</p>
<h2 id="the-plan">The Plan</h2>
<p>Currently, the plan is as follows:</p>
<ol type="1">
<li>Either figure out how to compile the dtbs, or just steal
them from the Ubuntu iso.</li>
<li>Add it to the kernel? Steal Ubuntu's kernel? Not sure how
exactly this goes - and cross-compile it.</li>
<li>Figure out how to package the kernel?</li>
<li>Figure out how to generate custom Fedora isos.</li>
</ol>
<p>These <em>will</em> be done out of order, with Fedora iso
generation coming first, since I've been trying to figure that
out for years anyways (the docs are amazing /s).</p>
<hr />
<p>[^1] Note that this seems to be mislabeled, as AFAIK both
these laptops only have the X1E-78-100, not the X1E-80-100.</p>
<iframe src="https://john.citrons.xyz/embed?ref=askiiart.net" style="margin-left:auto;display:block;margin-right:auto;max-width:732px;width:100%;height:94px;border:none;"></iframe>
<script src="/prism.js"></script>
</body>
<footer>
<p><a href="https://git.askiiart.net/askiiart/askiiart-net">code</a> (<a href="https://github.com/askiiart/askiiart.github.io">mirror</a>)&emsp;<a href="/feed.xml">rss</a>&emsp;<a href="/pubkey.asc">pubkey</a></p>
</footer>
</html>