Sunday, September 2, 2018

Open source firmware for routers

After investigating further, I have found out that Millions of people like me are looking for custom firmware for routers they got.  There are Three firmware that I have found that are very advanced and can be installed on almost all routers. They are,
1. OpenWrt : Originally for Atheros based chips but also can be used in broadcom.
2. Tomato : This firmware were backed by broadcom and can be used in any router that got broadcom chip/soc/cpu in it.  It's current development is minimal, but it's a full brown os for routers.
3. Dd-wrt : It's similar to above but developed for all SOC's.

Currently there are routers with Boardcom and Atheros, which is bought by Qualcomm and they produce Qualcomm atheros based SOC/cpu's. There is also Mtk based cpu's that just started appearing into the main stream router market. There were some others but nothing new coming from them anymore.

Most widely used software is Openwrt, so decided to go to that path, not knowing a vital info., they lack support for broadcom based wifi driver!!

I have now got my serial interface wired and soldered in....


After Investigating about Serial TTL Adapters, I know how to find the pins.  All you need is a multimeter and a solder iron for the job.  First Find he ground plain, in any circuit is the usually the screw holes and other metal parts that are exposed.  Put your multimeter into Doide or Short detection mode or continuity test mode.  In routers Best ground is the Antenna connection solder point(see image). Ground pin is the pin, when connected to MM(One mm pin to Gnd one to Antenna solder Point) it beeps/lights lit when it finds short or connected directly with the body/ground plain. After power up the router, the Pin that got ful 3.3v, is the vcc pin, Nothing Must be connected to this pin or else your serial adapter or router may get damaged!!. Wait for router to boot if in entire boot process no voltage drop detected on this pin, then that is the Vcc(No change in voltage).  Tx(Transmit) pin is the Pin that gets voltage spikes right after power up while booting or os loading!!.  The rest of the pin is the Rx pin.  No worries though, if u get Tx/Rx wrong u will get garbled text through the serial port, All u have to do switch the tx/rx pins/wires of your serial adapter.  I have found out about this in this document published in the internet,
http://www.devttys0.com/2012/11/reverse-engineering-serial-ports/

You have to use a serial tty software, for windows You can use putty, For linux I use minicom, Serial settings are Bps/Par/Bits       : 115200 8N1.  Hardware or Software flowControl is Off.  For windows U can detect serial interface from device manager, It will show u in what port the TTL Adapter is connected. For linux it's usually /dev/ttyUSB0  or /dev/ttyACM0.  If u do dmesg(Linux) right after connecting the TLL Converter to your computer it will show you in what port it is connected!! For windows You have to install the adapter(cp2102) Driver widely available in internet, just search for "cp 2102 adapter software" in google and the first one will do. For Linux Latest kernels got the driver built-in, at least that is what I hv found with Arch/Manjaro, Debian and Ubuntu.

Anyway, After serial TTL connected to computer, power up the router and Tenda fh305 log shows in the terminal/minicom,

CFE version 5.100.138.3 based on BBP 1.0.37 for BCM947XX (32bit,SP,LE)       
Build Date: 2011-05-26 10:33:50 4 (richard@aeteam.com)                       
Copyright (C) 2000-2008 Broadcom Corporation.                                 
                                                                             
Init Arena                                                                   
Init Devs.                                                                   
Boot partition size = 131072(0x20000)                                         
Found an ST compatible serial flash with 32 64KB blocks; total size 2MB       
et0: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 5.100.138.3       
CPU type 0x19749: 300MHz                                                     
Tot mem: 16384 KBytes                                                         
                                                                             
CFE mem:    0x80700000 - 0x80798550 (623952)                                 
Data:       0x8072E3A0 - 0x807315C0 (12832)                                   
BSS:        0x807315C0 - 0x80732550 (3984)                                   
Heap:       0x80732550 - 0x80796550 (409600)                                 
Stack:      0x80796550 - 0x80798550 (8192)                                   
Text:       0x80700000 - 0x8072E39C (189340)                                 
                                                                             
Device eth0:  hwaddr C8-3A-35-5C-62-D0, ipaddr 192.168.0.1, mask 255.255.255.0
        gateway not set, nameserver not set                                   
Loader:raw Filesys:raw Dev:flash0.os File: Options:(null)                     
Loading: ..... 2839212 bytes read                                             
Entry at 0x80001000                                                           
Closing network.                                                             
Starting program at 0x80001000                                               
IP Filter: v3.4.35 initialized.  Default = pass all, Logging = disabled       
PCI: no core                                                                 
PCI: no core                                                                 
PCI: Fixing up bus 0                                                         
wl_pci_probe: find [14e4:4329] bus 0 slot 1 func 0 irq 1                     
                                                                             
eCos Router/AP V5.110.27.21 (Compiled at 19:53:25 on Sep  2 2013)             
sys_led_test_gpio=6                                                           
Using pin 6 for sys_led output                                               
wps_led_test_gpio=7                                                           
System start                                                                 
vlan1: VLAN interface created                                                 
vlan2: VLAN interface created                                                 
wlconf: PHYTYPE: 4                                                           
COEX: downgraded chanspec 0x2d07 to 0x2b05: channel 3 used by exiting BSSs   
EAPD task started                                                             
initWebs: lanip=[192.168.0.1]                                                 
NAS task started                                                             
CLI> COEX: downgraded chanspec 0x2d04 to 0x2b02: channel 1 used by exiting BSSs
COEX: downgraded chanspec 0x2d07 to 0x2b05: channel 2 used by exiting BSSs   
COEX: downgraded chanspec 0x2d04 to 0x2b02: channel 1 used by exiting BSSs   
CLI> help

Just doing help on the interface shows all commands, it's the Bootleader CFE(Common Firmware Environment) for Broadcom based routers. It is the default for all Broadcom soc based routers, developed by broadcom. It is similar to Linux Boot loader Lilo or Grub.


==================================================================

My Profession : By trade I'm a Software Engineer.  But I Love trading currency or Forex markets and trade mostly eurusd markets.  So I needed a reliable and dependable router system that I think openwrt or tomato can provide with a good ISP.  I trade with reputable International Forex brokers.

To know how to do Forex Trading go here : Forex Trading: My regular source of income

For signals on eurusd go here My Forex Trading Journal

3 comments:

  1. Impressive!! and we are also one of the Cheapest Wireless Mobile Network Signal Booster In India.
    Best Mobile Network Signal Repeater

    ReplyDelete
  2. is there any way to access the filesystem?

    ReplyDelete
    Replies
    1. Yes, you can modify/update via file system. Pls. read other article/posts of mine about how to do that.

      Delete