sd-card-images/docs/_layouts/board.html

239 lines
9.6 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
layout: default
---
<main role="main">
<div class="container">
<h2>{{ page.board_name }}</h2>
<p>Minimal, pure and up-to-date vanilla Debian/Ubuntu Linux SD card image for <i>{{ page.board_name }}</i>.</p>
<hr />
</div>
<div class="container">
<dl class="row">
<dt class="col-6 text-right"><strong>Board name</strong></dt>
<dd class="col-6">{{ page.board_name }}</dd>
<dt class="col-6 text-right"><strong>Board maker</strong></dt>
<dd class="col-6">{{ page.board_maker_name }}</dd>
<dt class="col-6 text-right"><strong>SoC</strong></dt>
<dd class="col-6">{{ page.board_soc_name }}</dd>
<dt class="col-6 text-right"><strong>CPU</strong></dt>
<dd class="col-6">{{ page.board_cpu_name }}</dd>
</dl>
<hr />
</div>
<div class="container" style="display: none;" id="unsupported-warning">
<div class="alert alert-warning" role="alert">This board is not supported by any boot image</div>
<hr />
</div>
<div class="container" id="install-instructions">
<h3>Install instructions</h3>
<div class="row">
<div class="col-3">
<div class="nav flex-column nav-pills" id="install-tab" role="tablist" aria-orientation="vertical">
{% assign x = site.debians | where: "arch", page.board_cpu_arch_debian | sort %}
{% for debian in x %}
{% capture i %}{{ debian.os }}{{ debian.dist }}{{ debian.arch }}{% endcapture %}
<a class="nav-link hidden" id="install-{{ i }}-tab" data-toggle="pill" href="#install-{{ i }}" role="tab" aria-controls="install-{{ i }}" aria-selected="true">{{ debian.os | capitalize }} {{ debian.dist | capitalize }}</a>
{% endfor %}
</div>
</div>
<div class="col-9">
<div class="tab-content" id="install-tabContent">
{% assign x = site.debians | where: "arch", page.board_cpu_arch_debian | sort %}
{% for debian in x %}
{% capture i %}{{ debian.os }}{{ debian.dist }}{{ debian.arch }}{% endcapture %}
<div class="tab-pane fade hidden" id="install-{{ i }}" role="tabpanel" aria-labelledby="install-{{ i }}-tab">
<p class="bg-dark py-2 px-3">
<code class="shell-normal text-light">wget http://ftp.sd-card-images.johang.se<span class="install-boot_path">/PLACEHOLDER1.bin.gz</span></code><br />
<code class="shell-normal text-light">wget http://ftp.sd-card-images.johang.se<span id="install-{{ i }}-debian_path">/PLACEHOLDER2.bin.gz</span></code><br />
<code class="shell-normal text-light">zcat <span class="install-boot_file">boot.bin.gz</span> <span id="install-{{ i }}-debian_file">debian.bin.gz</span> &gt; sd-card.img</code><br />
<code class="shell-root text-light">dd if=sd-card.img of=/dev/sdXXX <span class="text-info"># ...where /dev/sdXXX is your SD card</span></code><br />
</p>
{% if debian.os == "ubuntu" %}
<div class="alert alert-danger" role="alert">Ubuntu images are experimental</div>
{% endif %}
</div>
{% endfor %}
</div>
<p>When the <code>dd</code> command is done, put the SD card in your board and power it on. The board will boot up and assign itself an IP address using DHCP. The last part of the Debian/Ubuntu image filename is the default root password.</p>
</div>
</div>
<hr />
</div>
<div class="container">
{% include digitalocean.html %}
<hr />
</div>
<div class="container" id="downloads">
<h3>Downloads for {{ page.board_name }}</h3>
<table class="table table-sm table-hover">
<caption>Downloads relevant to {{ page.board_name }}.</caption>
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Type</th>
<th scope="col">Build</th>
<th scope="col">Size</th>
</tr>
</thead>
<tbody>
<tr id="downloads-boot" class="show">
<td><i class="bi-download"></i> <a href="" id="downloads-boot-link">PLACEHOLDER</a></td>
<td>Boot image</td>
<td id="downloads-boot-build">PLACEHOLDER</td>
<td id="downloads-boot-size">PLACEHOLDER</td>
</tr>
{% assign x = site.debians | where: "arch", page.board_cpu_arch_debian | sort %}
{% for debian in x %}
{% capture i %}{{ debian.os }}{{ debian.dist }}{{ debian.arch }}{% endcapture %}
<tr id="downloads-{{ i }}" class="hidden">
<td><i class="bi-download"></i>
<a href="" id="downloads-{{ i }}-link">PLACEHOLDER</a> {% if debian.os == "ubuntu" %}<span class="badge badge-danger">Experimental</span>{% endif %}</td>
<td>{{ debian.os | capitalize }} {{ debian.dist | capitalize }} root filesystem image</td>
<td id="downloads-{{ i }}-build">PLACEHOLDER</td>
<td id="downloads-{{ i }}-size">PLACEHOLDER</td>
</tr>
{% endfor %}
</tbody>
</table>
<hr />
</div>
<script>
base_url = "http://ftp.sd-card-images.johang.se";
board = "{{ page.board_id }}";
arch = "{{ page.board_cpu_arch_debian }}";
dtb = "{{ page.board_dtb_name }}";
function basename(path) {
return path.substring(Math.max(0, path.lastIndexOf("/") + 1));
}
function handle_boots(boots) {
supported = 0;
boots.forEach(function(boot) {
if (boot["board"] != board)
return;
supported++;
// Update install instructions
$("span.install-boot_file").text(basename(boot["path"]));
$("span.install-boot_path").text(boot["path"]);
// Update downloads list
$("#downloads-boot-link").text(basename(boot["path"])).attr("href", base_url + boot["path"]);
$("#downloads-boot-build").text(boot["build"]);
$("#downloads-boot-size").text(Math.round(boot["size"] / 1024) + " kB");
});
if (supported <= 0) {
// Board's unsupported
$("#install-instructions").hide();
$("#downloads").hide();
$("#unsupported-warning").show();
}
}
function handle_debians(debians) {
supported = [];
debians.forEach(function(debian) {
if (debian["arch"] != arch)
return;
if (dtb == "N/A") {
supported.push(debian);
} else {
debian["dtbs"].forEach(function(_dtb) {
if (_dtb == dtb)
supported.push(debian);
});
}
});
if (supported.length <= 0) {
// Board's unsupported
$("#install-instructions").hide();
$("#downloads").hide();
$("#unsupported-warning").show();
}
supported.forEach(function(debian) {
i = debian["os"] + debian["dist"] + debian["arch"];
// Update install instructions
$("#install-" + i + "-debian_file").text(basename(debian["path"]));
$("#install-" + i + "-debian_path").text(debian["path"]);
$("#install-" + i + "-tab").removeClass("hidden").addClass("show");
$("#install-" + i).removeClass("hidden").addClass("show");
// Update downloads list
$("#downloads-" + i + "-link").text(basename(debian["path"])).attr("href", base_url + debian["path"]);
$("#downloads-" + i + "-build").text(debian["build"]);
$("#downloads-" + i + "-size").text(Math.round(debian["size"] / (1024 * 1024)) + " MB");
$("#downloads-" + i).removeClass("hidden").addClass("show");
});
// Hide irrelevant stuff
$("#install-instructions .nav a.hidden").hide();
$("#downloads table tbody tr.hidden").hide();
// Set first visible tab to active
$("#install-instructions .nav a.show:first").addClass("active");
$("#install-instructions .tab-content div.show:first").addClass(["active"]);
}
</script>
<script src="https://ftp.sd-card-images.johang.se/index-boots.js" type="text/javascript"></script>
<script src="https://ftp.sd-card-images.johang.se/index-debians-{{ page.board_cpu_arch_debian }}.js" type="text/javascript"></script>
<div class="container">
<h3>Boards by {{ page.board_maker_name }}</h3>
<table class="table table-sm table-hover">
<caption>Boards made by {{ page.board_maker_name }}.</caption>
<thead>
<tr>
<th scope="col">Board</th>
<th scope="col">Board maker</th>
<th scope="col">SoC</th>
<th scope="col">CPU</th>
</tr>
</thead>
<tbody>
<tr data-href="/boards/{{ page.board_id }}.html">
<td><i>{{ page.board_name }}</i></td>
<td><i>{{ page.board_maker_name }}</i></td>
<td><i>{{ page.board_soc_name }}</i></td>
<td><i>{{ page.board_cpu_name }}</i></td>
</tr>
{% assign x = site.boards | where_exp: "item", "item.board_maker_name == page.board_maker_name" | where_exp: "item", "item.board_id != page.board_id" | sort_natural: "board_name" %}
{% for board in x %}
{% capture i %}{{ debian.os }}{{ debian.dist }}{% endcapture %}
<tr data-href="/boards/{{ board.board_id }}.html">
<td><a href="/boards/{{ board.board_id }}.html">{{ board.board_name }}</a></td>
<td>{{ board.board_maker_name }}</td>
<td>{{ board.board_soc_name }}</td>
<td>{{ board.board_cpu_name }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<hr />
</div>
<div class="container">
<h3>Boards with {{ page.board_soc_name }}</h3>
<table class="table table-sm table-hover">
<caption>Boards with {{ page.board_soc_name }} SoC.</caption>
<thead>
<tr>
<th scope="col">Board</th>
<th scope="col">Board maker</th>
<th scope="col">SoC</th>
<th scope="col">CPU</th>
</tr>
</thead>
<tbody>
<tr data-href="/boards/{{ page.board_id }}.html">
<td><i>{{ page.board_name }}</i></td>
<td><i>{{ page.board_maker_name }}</i></td>
<td><i>{{ page.board_soc_name }}</i></td>
<td><i>{{ page.board_cpu_name }}</i></td>
</tr>
{% assign x = site.boards | where_exp: "item", "item.board_soc_name == page.board_soc_name" | where_exp: "item", "item.board_id != page.board_id" | sort_natural: "board_name" %}
{% for board in x %}
{% capture i %}{{ debian.os }}{{ debian.dist }}{% endcapture %}
<tr data-href="/boards/{{ board.board_id }}.html">
<td><a href="/boards/{{ board.board_id }}.html">{{ board.board_name }}</a></td>
<td>{{ board.board_maker_name }}</td>
<td>{{ board.board_soc_name }}</td>
<td>{{ board.board_cpu_name }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<hr />
</div>
</main>