From charlesreid1

New guide to installing everything from scratch on the Widy.

steps

Get version 2 of firmware here: https://wiki.openwrt.org/toh/tp-link/tl-mr3040#version_2x

Use Chaos Calmer: https://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/openwrt-15.05-ar71xx-generic-tl-mr3040-v2-squashfs-factory.bin

Do not use Barrier Breaker, it has kernel problems with usb /scsi kernel modules.

Flash router with firmware image (if already running OpenWrt, go to web console and pick System > Flash Firmware, if using built-in admin panel then do System Tools > Firmwware Upgrade).

Connect Widy to internet. Either connect ethernet cable, or use web control panel to connect to a wifi network as a client.

And... we can install kmod-usb-storage, but we run out of space before we can install kmod-fs-ext4.

That means we're stuck with Barrier Breaker, and if we can't get Barrier Breaker's kernel modules working, this entire venture is all... worthless.

opkg config

Maybe this is the problem?

/etc/opkg.conf config file seems to be on chaos calmer even though I re-flashed with barrier breaker image.

dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
options check_signature 1

barrier breaker:

src/gz barrier_breaker_packages http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/packages
src/gz barrier_breaker_base http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base
src/gz barrier_breaker_luci http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/luci
src/gz barrier_breaker_management http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/management
src/gz barrier_breaker_routing http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/routing
src/gz barrier_breaker_telephony http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/telephony

chaos calmer:

src/gz chaos_calmer_base http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base
src/gz chaos_calmer_luci http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/luci
src/gz chaos_calmer_packages http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/packages
src/gz chaos_calmer_routing http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/routing
src/gz chaos_calmer_telephony http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/telephony
src/gz chaos_calmer_management http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/management

Nope. That wasn't the problem.

insmod

Via this thread: https://dev.openwrt.org/ticket/19351

Tried the following commands:

root@dropbear:~# insmod scsi_mod
root@dropbear:~# insmod sd_mod

Then removed and installed:

root@dropbear:~# opkg install kmod-usb-storage
Package kmod-usb-storage (3.10.49-1) installed in root is up to date.
root@dropbear:~# opkg remove kmod-usb-storage
Removing package kmod-usb-storage from root...
root@dropbear:~# opkg install kmod-usb-storage
Installing kmod-usb-storage (3.10.49-1) to root...
Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-usb-storage_3.10.49-1_ar71xx.ipk.
Configuring kmod-usb-storage.

That seemed to work okay.

Next came ext4:

root@dropbear:~# opkg install kmod-fs-ext4
Installing kmod-fs-ext4 (3.10.49-1) to root...
Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-fs-ext4_3.10.49-1_ar71xx.ipk.
Installing kmod-lib-crc16 (3.10.49-1) to root...
Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-lib-crc16_3.10.49-1_ar71xx.ipk.
Installing kmod-crypto-hash (3.10.49-1) to root...
Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-crypto-hash_3.10.49-1_ar71xx.ipk.
Configuring kmod-crypto-hash.
Configuring kmod-lib-crc16.
Configuring kmod-fs-ext4.
kmod: failed to insert /lib/modules/3.10.49/ext4.ko
root@dropbear:~# insmod ext4
kmod: failed to insert /lib/modules/3.10.49/ext4.ko

Uh oh. Try removing/re-installing:

root@dropbear:~# opkg remove kmod-fs-ext4
Removing package kmod-fs-ext4 from root...
root@dropbear:~# opkg install kmod-fs-ext4
Installing kmod-fs-ext4 (3.10.49-1) to root...
Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-fs-ext4_3.10.49-1_ar71xx.ipk.
Configuring kmod-fs-ext4.
kmod: module is already loaded - mbcache
kmod: module is already loaded - jbd2
kmod: failed to insert /lib/modules/3.10.49/ext4.ko

No luck. Keep pressing forward...

Install block-mount:

root@dropbear:~# opkg install block-mount
Installing block-mount (2014-06-22-e0430f5c62f367e5a8e02755412977b02c3fc45e) to root...
Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/block-mount_2014-06-22-e0430f5c62f367e5a8e02755412977b02c3fc45e_ar71xx.ipk.
Configuring block-mount.

Note that this post (https://www.loganmarchione.com/2014/10/openwrt-with-openvpn-client-on-tp-link-tl-mr3020/) states that the kernel plugin failures may be solved by plugging in the flash drive and rebooting the router.

Now show the file system corresponding to the USB device with block info:

root@dropbear:~# block info
/dev/mtdblock2: UUID="81bcb73d-04401baf-0018cf4e-6fb32fc7" VERSION="4.0" TYPE="squashfs"
/dev/mtdblock3: TYPE="jffs2"
/dev/sda1: UUID="9dc06de8-7c89-42c8-a6a3-9cba3c9c6add" NAME="EXT_JOURNAL" VERSION="1.0" TYPE="ext3"

You should also see some filesystem activity when you run dmesg:

[    1.190000] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
[    4.090000] usbcore: registered new device driver usb
[    4.160000] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00
[    4.160000] hub 1-0:1.0: USB hub found
[    4.160000] hub 1-0:1.0: 1 port detected
[    4.490000] usb 1-1: new high-speed USB device number 2 using ehci-platform
[    7.160000] eth0: link up (100Mbps/Full duplex)
[    8.020000] jffs2: notice: (329) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (1 unchecked, 0 orphan) and 14 of xref (0 dead, 0 orphan) found.
[    8.730000] SCSI subsystem initialized
[    8.740000] usb-storage 1-1:1.0: USB Mass Storage device detected
[    8.750000] scsi0 : usb-storage 1-1:1.0
[    8.750000] usbcore: registered new interface driver usb-storage
[   10.100000] scsi 0:0:0:0: Direct-Access     Lexar    USB Flash Drive  1100 PQ: 0 ANSI: 6
[   10.120000] sd 0:0:0:0: [sda] 125038592 512-byte logical blocks: (64.0 GB/59.6 GiB)
[   10.150000] sd 0:0:0:0: [sda] Write Protect is off
[   10.150000] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[   10.150000] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   10.180000]  sda: sda1
[   10.190000] sd 0:0:0:0: [sda] Attached SCSI removable disk

copy filesystem to usb

mkdir usb/
mount /dev/sda1 usb/

mkdir -p rootcopy/
mount --bind / rootcopy/
tar -C rootcopy/ -cvf - . | tar -C usb/ -xf -
umount rootcopy/
umount usb/

boot from usb

Edit the fstab file to tell the router to boot from the jump drive.

NOTE: Do not edit /etc/fstab, as this file is automatically generated and is overwritten at boot time. Instead, edit /etc/conf/fstab.

Following instructions to the T from the Widy/Installing page.

config mount
        option target /    
        option device /dev/sda1
        option fstype ext3
        option options rw,sync
        option enabled 1
        option enabled_fsck 0

reboot and check space

Now issue the reboot command, and once that's done, use df to check the disk space:

root@dropbear:~# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                   58.4G     61.4M     55.4G   0% /
/dev/root                 2.3M      2.3M         0 100% /rom
tmpfs                    14.1M    444.0K     13.7M   3% /tmp
/dev/sda1                58.4G     61.4M     55.4G   0% /
tmpfs                   512.0K         0    512.0K   0% /dev

Bingo, from 640 KB to 55 GB in the root filesystem.


flags