Skip to content

Instantly share code, notes, and snippets.

For my reference in the future I will record here the steps that I had to follow in order to install Openwrt on the tp-link router EX220. This was done using a Windows 11 machine.

Disclaimer: Use this tutorial at your own risk. We are not responsible for any damage/harms done to your device using the information from this tutorial.

Steps to install OpenWRT on EX220 router

OEM installation using the serial + TFTP method

These are the steps provided at the official https://openwrt.org/toh/tp-link/ex220_v1 page:

@ro99
ro99 / windows-ssh-no-password-with-keys-wsl2.md
Created February 6, 2024 21:22 — forked from adamelliotfields/windows-ssh-no-password-with-keys-wsl2.md
Windows SSH Server with Password-less Key Authentication and Default WSL2 Shell

Windows SSH Server with Password-less Key Authentication and Default WSL2 Shell

Disclaimer: I am not a Windows Admin and I'm not even that good with PowerShell.

I wanted to be able to SSH into my Windows laptop directly into Linux. I also wanted to disable password authentication and only allow public key (RSA in my case) authentication.

Scott Hanselman wrote a blog post on how to make your default WSL2 distro your default shell for SSH. Windows OS Hub published an article on using public key

@ro99
ro99 / mmm2.rs
Last active October 21, 2021 16:36
tests with rayon (about 1.3 speedup)
unsafe fn run_with_scratch_space_parallel(
&self,
m: usize,
n: usize,
non_linear: &[FusedSpec],
) -> anyhow::Result<()> {
let mr = K::mr();
let nr = K::nr();
let mut rows: Vec<usize> = (0..n / nr).collect();
@ro99
ro99 / mmm.rs
Created October 18, 2021 18:42
tests with crossbeam (1.5x speedup) (independently from t size...)
unsafe fn run_with_scratch_space_parallel(
&self,
m: usize,
n: usize,
t: usize,
non_linear: &[FusedSpec],
) -> anyhow::Result<()> {
let mr = K::mr();
let nr = K::nr();
let cols: Vec<usize> = (0..m / mr).collect();
@ro99
ro99 / d2s.rs
Last active October 12, 2021 23:29
Tract DephToSpace op
// onnx/src/ops/d2s.rs
use crate::model::{OnnxOpRegister, ParsingContext};
use crate::pb::NodeProto;
use tract_hir::internal::*;
pub fn register_all_ops(reg: &mut OnnxOpRegister) {
reg.insert("DepthToSpace", depth_to_space);
}
pub fn depth_to_space(