Tl-mr3020 + lede + extroot?

Is uchi a new USB protocoll variant?

Actually, it's old. As I read through the description on wikipedia, maybe so old that it is not relevant anymore since we don't usually care about USB 1.1

Universal Host Controller Interface

Universal Host Controller Interface (UHCI) is a proprietary interface created by Intel for USB 1.x (full and low speeds). It requires a license from Intel. A USB controller using UHCI does little in hardware and requires a software UHCI driver to do much of the work of managing the USB bus.[2] It only supports 32-bit memory addressing,[4] so it requires an IOMMU or a computationally expensive bounce buffer to work with a 64-bit operating system. UHCI is configured with port-mapped I/O and memory-mapped I/O, and also requires memory-mapped I/O for status updates and for data buffers needed to hold data that needs to be sent or data that was received.[4]

You didn't get my hint: compare your writing with the correct one, ie.

You are writing uchi
Correct would be uhci

Read out loud each letter on its own, and you will recognize your mistake :slight_smile:

1 Like

@tmomas -- you got me. I read it and commented before having my coffee :wink:

I think the SoC contains a rate match hub, so the only USB driver you need is usb2. A USB1 device plugged in will be converted by hardware to appear to the kernel at USB2 standards.

In any event you will never need uhci and ohci at the same time. One or the other depending on the hardware you have.

1 Like

So for the purposes of this and the extroot-ready image, I think that the following is a reasonable image recipe. Please comment/correct if there are any thoughts/concerns about it:

make image PROFILE=tl-mr3020-v1 PACKAGES="block-mount kmod-usb-storage kmod-usb-core kmod-usb2 kmod-fs-ext4 kmod-scsi-generic kmod-usb-ohci"

This will create an image with the necessary components for the extroot, but that process must still be done manually. I believe that some people have made images that include scripts that auto-extroot to a 'new' USB stick (or more accurately, post-boot insertion of a usb thumb drive initiates a script that formats the drive and performs the extroot process). I have not bothered to create auto-extroot scripts, but I have created some scripts that streamline my own installation process for use as a portable wifi + VPN router.

The one I use is
PROFILE=tl-mr3020-v1 PACKAGES=“block-mount kmod-fs-ext4 kmod-usb-storage f2fsck kmod-usb-ohci kmod-usb-uhci"

In fact, to not get borring with manual configuration, I first flash an image without extroot and with luci, configure it to suit my needs, save the "opkg list-installed" somewhere.
When I'm done, I flash the minimal extroot image I made and concerve the configuration, then I set up extroot on usb:

# mount /dev/sda1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt
# block detect > /etc/config/fstab; \
   sed -i s/option$'\t'enabled$'\t'\'0\'/option$'\t'enabled$'\t'\'1\'/ /etc/config/fstab; \
   sed -i s#/mnt/sda1#/overlay# /etc/config/fstab; \
   cat /etc/config/fstab; 

Reboot and then opkg install all the packages from opkg list-installed saved before. working wonderfull so far, planty of place on the usb and I also set up a swap partition and storage FAT32 partition (on the begining of the usb to be readable on without).

1 Like

Hi xaviiz,

when i try your version i get the following error message:

[mktplinkfw] *** error: images are too big by 138719 bytes

Even when i try to remove some paketages (including your setup):

-ppp -ppp-mpd-pppoe -ip6tables -ohcp6c -kmod-ipv6 -kmod-ip6tables

Its not realy bedder:

[mktplinkfw] *** error: images are too big by 45687 bytes

Can someone give me a hint?

@peterm - in my experience, f2fsck can be skipped assuming that you usb stick is already partitioned and formatted ext4 before you start the extroot process.

Which version image builder are you using (LEDE version, target)? Can you post the exact command you were using to create the image?

Hello again,

for testing purpuse i set up a new VM with ubuntu 17.10 and now it works fine
with @xaviiz make string!

used lede version:

Sorry for my post :wink:

Hi Xaviiz,
I would like to have an image like that for my mr3020, can you send it to me?
Thank you!

Hello Xaviiz,
can I get your image for tp-link3020 too?
Thanks in advance

Hi xaviiz,
can you send me your MR3020 image with LEDE + EXTROOT image?
best wishes,

Sur, just tell me how to upload them here, don't wana use a thirdpartie upload service.

|              WARNING               |
| knowledge required:                         |
| 1. notion of Linux                            |
| 2. notion of Linux file system                       |
| 3. notion and experience with Openwrt                 |
| 4. notion of SSH and SCP                      |
| 5. Config files of Openwrt                      |
| 6. Sysupgrade and backup                      |
| 7. Do it at your own risk                      |
LEDE 17.01.4 TL-MR3020-V1 extroot

MD5SUM e88d670f57ea36e4d8bd378188cd70ef

MD5SUM 5cce84e7f14be89a2768f20dc3bb8b27

with usb2 storage + fs ext4 + block-mount
without LUCI (WEB)

access to SSH root@ cable rj45

Before doing a backup of your configurations
and insert it into your USB flash drive and then mount and recover settings

after doing the extroot

  1. opkg update
  2. opkg install luci

I test on my TL-MR3020-V1 and is working perfectly
(Google Translator)

help me please, after flashing sysupgrade i cant acces my mr3020 from browsher(chrome)
i can access it from ssh(putty) with username root, but i dont know password for loggin, what do you mean about this "access to SSH root@ cable rj45"

i download sysupgrade from here:

sorry for my bad english, help me:sob:

ok, Keep calm
if you did the sysupgrade, your settings are saved right.

the password for ssh access is the same as the one you use to access the browser (web)
ssh root@ or ssh root@LEDE
or ssh root@(ip route) example , my ip is => my router <-
password : (enter your web password here)
no wonder if it does not appear what you typed is anyway (linux thing)

after doing the extroot (the router does not have enough space to install the web luci, have to do the extroot first)

  1. opkg update
  2. opkg install luci

If you need anything, just let me know
(google translator)

how to exroot? i already have an micro sd card with swap and ext4 partition.
and how to flash to stock openwrt os from ssh? i cant access my mr3020 from telnet.

This is ExtRoot, read.

if you have no idea what this is, then go back to the version of LEDE OS without ExtRoot.
download in your PC :

download the WinSCP to send file to the router
Install and Run

In the login window,

  • protocol -> SCP
  • HOST -> IP router
  • port - > 22
  • User -> root
  • Password -> password (web password)
    and OK

When connecting, you have two windows, left your pc, direct your router
on your pc (left) go where is the image of LEDE 17.01.4 that you downloaded.
on your router (right) back the folders until you find the tmp folder
to go to the root folder of the router, go clicking the folder ".."

inside the /tmp/
in the left window, right click on the LEDE 17.01.4 that you downloaded and button "upload", in the window that opens, press OK button

Firmware is being sent to your router
Warning, do not turn off the router or you will have to do all this again

access your router through ssh, or putty
go to /tmp/ (cd /tmp/ )

sysupgrade lede-17.01.4-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin
sysupgrade /tmp/lede-17.01.4-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin

is replacing the Firmware with the new firmware

WARNING: in no case let the router turn off while you are replacing the firmware, otherwise you will have big PROBLEMS !!!!

Try this one, very simple :slight_smile:
LEDE with Exroot

1 Like