diff options
Diffstat (limited to '')
-rw-r--r-- | _ont/ont-huawei-ma5671a-root-web.md | 46 | ||||
-rw-r--r-- | assets/js/rootLantiq.js | 53 |
2 files changed, 57 insertions, 42 deletions
diff --git a/_ont/ont-huawei-ma5671a-root-web.md b/_ont/ont-huawei-ma5671a-root-web.md index 0dab812..9f3eeaf 100644 --- a/_ont/ont-huawei-ma5671a-root-web.md +++ b/_ont/ont-huawei-ma5671a-root-web.md @@ -198,37 +198,11 @@ FALCON => saveenv const writerStreamClosed = textEncoderStream.readable.pipeTo(port.writable); const writer = textEncoderStream.writable.getWriter(); try { - await delay(10000); - loading("Now you need to insert the Huawei MA5671A into the SFP adapter, if the procedure does not go ahead, check the connections and then remove and reconnect the Huawei MA5671A again",0); - while(true) { - await waitUbootStop(writer, reader); - const ubootUnlocked = await checkUbootUnlocked(reader); + await lantiqRootUboot(writer, reader, (msg) => { + loading(msg, 0); + }); - if (ubootUnlocked == true) { - break; - } - - loading("Root in progress: Set U-Boot bootdelay to 5...",0); - writer.write('setenv bootdelay 5\n'); - await delay(1000); - loading("Root in progress: Enable ASC serial...",0); - writer.write('setenv asc0 0\n'); - await delay(1000); - loading("Root in progress: Set GPIO to unlock serial...",0); - writer.write('setenv preboot "gpio set 3;gpio input 2;gpio input 105;gpio input 106;gpio input 107;gpio input 108"\n'); - await delay(1000); - loading("Root in progress: Save changes...",0); - writer.write('saveenv\n'); - await delay(1000); - loading("Root in progress: Rebooting...",0); - writer.write('reset\n'); - await delay(1000); - } - - loading("Root in progress: Rebooting...",0); - writer.write('reset\n'); - await delay(1000); - showSuccess("Congratulations! Step completed.",0); + showSuccess("Congratulations! Step completed.", 0); } catch (err) { showError(`Error: ${err.message}`,0); console.log(`Error: ${err.message}\n`); @@ -240,14 +214,10 @@ FALCON => saveenv return; } try { - loading("Waiting for reboot",1); - await waitFailbackShell(writer, reader); - loading("Root in progress: Enable full Linux shell...",1); - writer.write('mount_root && mkdir -p /overlay/etc && sed "s|/opt/lantiq/bin/minishell|/bin/ash|g" /rom/etc/passwd > /overlay/etc/passwd\n'); - await delay(1000); - loading("Root in progress: Umount rootfs partitions...",1); - writer.write('umount /overlay && umount -a\n'); - await delay(1000); + await unlockHuaweiShell(writer, reader, (msg) => { + loading(msg, 1); + }); + showSuccess("Congratulations! Step completed.",1); } catch (err) { showError(`Error: ${err.message}`,1); diff --git a/assets/js/rootLantiq.js b/assets/js/rootLantiq.js index 24858c1..a25d202 100644 --- a/assets/js/rootLantiq.js +++ b/assets/js/rootLantiq.js @@ -2,7 +2,7 @@ function delay(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } -async function waitUbootStop(writer, reader) { +async function waitUbootStop(writer, reader, outputMsgCallback) { const interval = setInterval(function() { writer.write(String.fromCharCode(3)); }, 10); @@ -11,7 +11,7 @@ async function waitUbootStop(writer, reader) { const { value, done } = await reader.read(); if (value.startsWith('U-Boot')) { - loading("Root in progress: Trigger characters received. DO NOT TOUCH THE HUAWEI MA5671A UNTIL THE PROCEDURE IS COMPLETED!",0); + outputMsgCallback("Root in progress: Trigger characters received. DO NOT TOUCH THE HUAWEI MA5671A UNTIL THE PROCEDURE IS COMPLETED!"); await delay(5000); clearInterval(interval); break; @@ -36,7 +36,7 @@ async function checkUbootUnlocked(reader) { } } -async function waitFailbackShell(writer, reader) { +async function waitFailbackShell(writer, reader, outputMsgCallback) { while (true) { const { value, done } = await reader.read(); @@ -45,7 +45,7 @@ async function waitFailbackShell(writer, reader) { writer.write('f\n'); }, 10); - loading("Root in progress: Trigger characters received. Waiting for boot to end...",1); + outputMsgCallback("Root in progress: Trigger characters received. Waiting for boot to end...",1); await delay(3000); clearInterval(interval); break; @@ -66,3 +66,48 @@ async function waitFailbackShell(writer, reader) { } } } + +async function lantiqRootUboot(writer, reader, outputMsgCallback) { + await delay(10000); + outputMsgCallback("Now you need to insert the Huawei MA5671A into the SFP adapter, if the procedure does not go ahead, check the connections and then remove and reconnect the Huawei MA5671A again",0); + + while(true) { + await waitUbootStop(writer, reader, outputMsgCallback); + const ubootUnlocked = await checkUbootUnlocked(reader); + + if (ubootUnlocked == true) { + break; + } + + outputMsgCallback("Root in progress: Set U-Boot bootdelay to 5..."); + writer.write('setenv bootdelay 5\n'); + await delay(1000); + outputMsgCallback("Root in progress: Enable ASC serial..."); + writer.write('setenv asc0 0\n'); + await delay(1000); + outputMsgCallback("Root in progress: Set GPIO to unlock serial..."); + writer.write('setenv preboot "gpio set 3;gpio input 2;gpio input 105;gpio input 106;gpio input 107;gpio input 108"\n'); + await delay(1000); + outputMsgCallback("Root in progress: Save changes..."); + writer.write('saveenv\n'); + await delay(1000); + outputMsgCallback("Root in progress: Rebooting..."); + writer.write('reset\n'); + await delay(1000); + } + + outputMsgCallback("Root in progress: RebootingYY..."); + writer.write('reset\n'); + await delay(1000); +} + +async function unlockHuaweiShell(writer, reader, outputMsgCallback) { + outputMsgCallback("Waiting for reboot"); + await waitFailbackShell(writer, reader); + outputMsgCallback("Root in progress: Enable full Linux shell..."); + writer.write('mount_root && mkdir -p /overlay/etc && sed "s|/opt/lantiq/bin/minishell|/bin/ash|g" /rom/etc/passwd > /overlay/etc/passwd\n'); + await delay(1000); + outputMsgCallback("Root in progress: Umount rootfs partitions..."); + writer.write('umount /overlay && umount -a\n'); + await delay(1000); +} |