Bug 196778 - TPLINK WR1043-ND v1 hardware, updates to run with system on external USB disk
Summary: TPLINK WR1043-ND v1 hardware, updates to run with system on external USB disk
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 10.1-STABLE
Hardware: mips Any
: --- Affects Some People
Assignee: freebsd-wireless (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-01-15 18:49 UTC by Wojciech Puchar
Modified: 2015-07-08 12:46 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Wojciech Puchar 2015-01-15 18:49:46 UTC
few updates to this great works.

to run FULL FreeBSD with only kernel in builtin flash things below are useful:

0) add options NBUF=100 or so to kernel config, default buffer allocation scheme are excessive.

1) changes to hints for geom_map:

hint.map.0.at="flash/spi0"
hint.map.0.start=0x00000000
hint.map.0.end=0x000020000
hint.map.0.name="uboot"
hint.map.0.readonly=1

hint.map.1.at="flash/spi0"
hint.map.1.start=0x00020000
hint.map.1.end=0x0007F0000
hint.map.1.name="kernel"
hint.map.1.readonly=0

hint.map.2.at="flash/spi0"
hint.map.2.start=0x007f0000
hint.map.2.end=0x00800000
hint.map.2.name="art"
hint.map.2.readonly=1

now kernel can be loaded and updated to flash from within system, while overwriting uboot and radio calibration data is forbidden.

2) simple script to convert kernel to uboot image without any rootfs (based on Adrian Chadd toolset for building images for many routers):


#!/bin/sh
strip -o /tmp/kernel /boot/kernel/kernel
gzip /tmp/kernel
echo -n ' ' >/tmp/rootfs
mktplinkfw -B TL-WR1043NDv1 -L 0x80050000 -E 0x80050100 -R 0x007EFFFF \
-k /tmp/kernel.gz -N FreeBSD -V FreeBSD-10 -r /tmp/rootfs -o /tmp/kernel.flash
rm /tmp/rootfs /tmp/kernel.gz
echo /tmp/kernel.flash now is ready to be written to /dev/map/kernel

this script can be used both from inside router or when crossbuilding kernel.

3) to write it to flash first time to router use information as on Adrian Chadd webpages.

to update kernel  from within TPLINK do

dd if=/tmp/kernel.flash of=/dev/map/kernel bs=64k

and reboot