summaryrefslogtreecommitdiffstats
path: root/_ont
diff options
context:
space:
mode:
authorErnesto Castellotti <mail@ernestocastellotti.it>2023-01-12 00:41:15 +0100
committerSimone <26844016+simonebortolin@users.noreply.github.com>2023-01-12 01:03:22 +0100
commite6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747 (patch)
tree36ef026c388ce9bdddcda6b5bd9948e63efff954 /_ont
parentRemove outputErrorCallback from openPortLineBreak (diff)
downloadhack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.tar
hack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.tar.gz
hack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.tar.bz2
hack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.tar.lz
hack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.tar.xz
hack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.tar.zst
hack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.zip
Diffstat (limited to '_ont')
-rw-r--r--_ont/ont-huawei-ma5671a-root-web.md149
1 files changed, 1 insertions, 148 deletions
diff --git a/_ont/ont-huawei-ma5671a-root-web.md b/_ont/ont-huawei-ma5671a-root-web.md
index 18652d7..a6110fa 100644
--- a/_ont/ont-huawei-ma5671a-root-web.md
+++ b/_ont/ont-huawei-ma5671a-root-web.md
@@ -28,6 +28,7 @@ Connect the TTL adapter to the computer, once done press the following button. A
{: .text-center .fs-6 }
<button id="start-button" class="btn btn-blue" data-jtd-toogle="modal" data-jtd-target="#root-modal" disabled>Start root!</button>
+{% include root_lantiq.html unlockHuaweiShell=true %}
<div id="browser-error" style="display:none">{% include alert.html content="This browser is not compatible with the web-root procedure. See the <a href='https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API#browser_compatibility'>Browser compatibility</a>" alert="Note" icon="svg-warning" color="red" %}</div>
<noscript>
@@ -69,153 +70,5 @@ FALCON => setenv asc0 0
FALCON => saveenv
```
-<div class="modal" data-jtd-modal="root-modal" data-jtd-modal-backdrop="static" id="root-modal">
- <div class="modal-content">
- <div class="modal-header">
- <span class="close">&times;</span>
- <h2>Root status</h2>
- </div>
- <div class="modal-body" style="display:flex">
- <div class="animated" id="root-step-1" style="width:50%" >
- <p>Step 1</p>
- <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 130.2 130.2">
- <circle class="path circle" fill="none" stroke="currentColor" stroke-width="6" stroke-miterlimit="10" cx="65.1" cy="65.1" r="62.1"/>
- <polyline class="path check success" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" points="100.2,40.2 51.5,88.8 29.8,67.5 "/>
- <line class="path line error" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="34.4" y1="37.9" x2="95.8" y2="92.3"/>
- <line class="path line error" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="95.8" y1="38" x2="34.4" y2="92.2"/>
- <line class="path line pause" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="34.4" y1="37.9" x2="95.8" y2="92.3"/>
- <line class="path line pause" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="95.8" y1="38" x2="34.4" y2="92.2"/>
- </svg>
- <p id="root-text-step-1"></p>
- </div>
- <div class="animated" id="root-step-2" style="width:50%" >
- <p>Step 2</p>
- <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 130.2 130.2">
- <circle class="path circle" fill="none" stroke="currentColor" stroke-width="6" stroke-miterlimit="10" cx="65.1" cy="65.1" r="62.1"/>
- <polyline class="path check success" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" points="100.2,40.2 51.5,88.8 29.8,67.5 "/>
- <line class="path line error" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="34.4" y1="37.9" x2="95.8" y2="92.3"/>
- <line class="path line error" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="95.8" y1="38" x2="34.4" y2="92.2"/>
- <line class="path line pause" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="49.4" y1="37.9" x2="49.4" y2="92.3"/>
- <line class="path line pause" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="80.8" y1="38" x2="80.8" y2="92.2"/>
- </svg>
- <p id="root-text-step-2"></p>
- </div>
- </div>
- </div>
-</div>
-<script type="text/javascript" src="/assets/js/serialUtil.js"></script>
-<script type="text/javascript" src="/assets/js/rootLantiq.js"></script>
-<script>
- if ('serial' in navigator) {
- document.getElementById('start-button').disabled = false;
- } else {
- document.getElementById('browser-error').style.display = 'block';
- }
- const acontroller = new AbortController();
- const cs = acontroller.signal;
- class LineBreakTransformer {
- constructor() {
- this.chunks = "";
- }
- transform(chunk, controller) {
- this.chunks += chunk;
- const lines = this.chunks.split("\n");
- this.chunks = lines.pop();
- lines.forEach((line) => controller.enqueue(line));
- }
- flush(controller) {
- controller.enqueue(this.chunks);
- }
- }
- let rootModal = document.getElementById("root-modal");
- let rootStep = [document.getElementById('root-step-1'),document.getElementById('root-step-2')];
- let rootStepText = [document.getElementById('root-text-step-1'), document.getElementById('root-text-step-2')];
- rootModal.addEventListener('modal-jtd-close', async function(event) {
- acontroller.abort();
- });
- rootModal.addEventListener('modal-jtd-open', async function(event) {
- root({signal: cs});
- });
- function pause(message, i) {
- rootStep[i].classList.add('pause');
- rootStep[i].classList.remove('complete');
- rootStep[i].classList.remove('loading');
- rootStep[i].classList.remove('error');
- rootStep[i].classList.remove('success');
- rootStepText[i].textContent = message;
- }
- function loading(message, i) {
- rootStep[i].classList.remove('pause');
- rootStep[i].classList.remove('complete');
- rootStep[i].classList.add('loading');
- rootStep[i].classList.remove('error');
- rootStep[i].classList.remove('success');
- rootStepText[i].textContent = message;
- }
- function showError(message, i) {
- rootStep[i].classList.remove('pause');
- rootStep[i].classList.remove('complete');
- rootStep[i].classList.remove('success');
- rootStep[i].classList.remove('loading');
- rootStep[i].classList.add('error');
- rootStepText[i].textContent = message;
- }
- function showSuccess(message, i) {
- rootStep[i].classList.remove('pause');
- rootStep[i].classList.remove('error');
- rootStep[i].classList.remove('loading');
- rootStep[i].classList.remove('complete');
- rootStep[i].classList.add('success');
- rootStepText[i].textContent = message;
- }
- async function root({ signal } = {}) {
- loading("Waiting for the user to choose the port",0);
- pause("",1);
- let port;
- try {
- port = await navigator.serial.requestPort();
- } catch (err) {
- showError(`Error: ${err.message}`,0);
- console.log(`Error: ${err.message}\n`);
- return;
- }
- if (!port) {
- showError('Error: port not open',0);
- console.log('Error: port not open\n');
- return;
- }
-
- let result = await lantiqRootUboot(port, "Huawei MA5671A",
- (msg) => {
- loading(msg, 0);
- },
- (err) => {
- showError(err, 0);
- console.log(err);
- }
- );
-
- if (result) {
- showSuccess("Congratulations! Step completed.", 0);
- } else {
- return;
- }
-
- result = await unlockHuaweiShell(port,
- (msg) => {
- loading(msg, 1);
- },
- (err) => {
- showError(err, 1);
- console.log(err);
- }
- );
-
- if (result) {
- showSuccess("Congratulations! Step completed.", 1);
- }
- }
-</script>
-
# Miscellaneous Links
- [List of root procedure for Huawei MA5671A](/ont-huawei-ma5671a-root)