ALFA Network AP121F

Under Construction!
This page is currently under construction. You can edit the article to help completing it.

Write a short, relevant description of the device. Include a technical overview, but avoid marketing buzzwords/useless stuff. Two to four sentences is about right. A picture is good, too. Edit the page to see how to add pictures.

FIXME Any text with a light background (like this one) provides instructions for creating the Details Page. When you have filled in correct/useful information (instead of any template that's there) remove the instructions, as well as the <WRAP> that encloses it.

Generic Router


  1. This is an empty template that suggests the information that should be present on a well-constructed Device Page. This means, that you have to fill it with life and information.
  2. There are several “fixme” tags with text on a light background (like this text) throughout this template. As you fill in the page, remove those tags so that people can judge its completeness.
  3. When there are no more “fixme” tags left, delete this one too, along with the <WRAP> that encloses it.
  • Please include only model specific information, omit bla,bla and put everything generic into separate articles
  • If you have no time to write certain stuff, link to docs
  • base-system should lead the way, do not explain this again
  • DO NOT provide a complete howto here! Instead groom the general documentation.

FIXME Find out flash layout, then add the flash layout table here (copy, paste, modify the example).

Please check out the article Flash layout. It contains examples and explanations that describe how to document the flash layout.

FIXME The instructions below are for Broadcom devices and only serve as an example.
Remove / modify them if they do not apply to this particular device!

This section deals with

  • How you install OpenWrt from a device freshly opened
  • The steps required such as reset to factory defaults if the device has already been configured

Note: Reset router to factory defaults if it has been previously configured.

  • Browse to
  • Upload .bin file to router
  • Wait for it to reboot
  • Telnet to and set a root password, or browse to if LuCI is installed.

When pressing the reset button once the device is booted, the device will reboot and the following will appear on the serial port:

[   24.492067] Removing MTD device #6 (rootfs_data) with use count 1
[   24.513863] reboot: Re�

If we keep pressing it, during boot, we have the following appearing on the serial port:

*     U-Boot 1.1.4-cd95c190-dirty     *
*          Build: 2017-03-17          *

** Warning: bad env CRC, using default,
   use 'saveenv' to save it in FLASH

    SOC: AR9330 rev. 1
    CPU: MIPS 24Kc
    RAM: 64 MB DDR1 16-bit CL3-3-3-8
  FLASH: 16 MB Macronix MX25L128
    MAC: 00:03:7F:09:0B:AD (fixed)
         400/400/200/ 20/ 25 MHz

Keep button pressed for at least:
- 3s for web based recovery
- 5s for U-Boot console
- 7s for network console

If we wait 3 seconds, before releasing the button we have:

. . . . 4 seconds

HTTP server is starting for firmware update...

Ethernet mode (duplex/speed): 1/100 Mbps
HTTP server is starting at IP:
HTTP server is ready!

→ See generic.sysupgrade for more information on that.

Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless, configure USB port, etc.

FIXME Please fill in real values for this device, then remove the EXAMPLEs

The default network configuration is:

Interface Name Description Default configuration
vlan0 (eth0.0) EXAMPLE LAN ports (1 to 4) EXAMPLE None
vlan1 (eth0.1) EXAMPLE WAN port EXAMPLE DHCP

FIXME Please fill in real values for this device, then remove the EXAMPLEs

Numbers 0-3 are Ports 1-4 as labeled on the unit, number 4 is the Internet (WAN) on the unit, 5 is the internal connection to the router itself. Don't be fooled: Port 1 on the unit is number 3 when configuring VLANs. vlan0 = eth0.0, vlan1 = eth0.1 and so on.

Port Switch port
Internet (WAN) EXAMPLE 4

hardware.button on howto use and configure the hardware button(s). Here, we merely name the buttons, so we can use them in the above Howto.

FIXME Please fill in real values for this device, then remove the EXAMPLEs

The ALFA Network AP121F has the following buttons:

EXAMPLE Reset reset
EXAMPLE Secure Easy Setup ses
EXAMPLE No buttons at all. -
Brand ALFA Network
Model AP121F
Device Type WiFi Router
Availability Discontinued
Comments - general
OpenWrt Support
Supported Since Commit;a=commit;h=0c6165d21ad274261bf8176828e122964e25c215
Supported Since Release 17.01.3
Supported Current Release 19.07.7
Bootloader U-Boot
Target ar71xx-ath79
CPU MHz 400
Flash MB 16
Ethernet 100M ports 1
Ethernet Gbit ports -
Switch Atheros AR9331
Modem -
Comments - network ports
WLAN 2.4GHz b/g/n
WLAN 5.0GHz -
WLAN Hardware Atheros AR9331
Detachable Antennas 1
Comments - WLAN
USB ports -
SATA ports -
Serial Yes
Comments - USB & SATA ports
LED count 3
Button count 2
Power supply ¿
Forum Topic URL
WikiDevi URL
OEM device homepage URL
Firmware OEM Stock URL
Firmware OpenWrt Install URL
Firmware OpenWrt Upgrade URL
Edit the underlying data View/Edit data

Insert photo of front of the casing

Insert photo of back of the casing

Backside label:
Insert photo of backside label

Note: This will void your warranty!

FIXME Describe what needs to be done to open the device, e.g. remove rubber feet, adhesive labels, screws, …

  • To remove the cover and open the device, do a/b/c

Main PCB:
Insert photo of PCB

→ See port.serial general information about the serial port, serial port cable, etc.

On the PCB, there is a 4 pad with solder on them on the top-upper-right of the PCB. At least TX is available on it. We have: [GND] [TX] [RX] [VCC?]

To get RX working I had to connect to the other side of R11.

Serial connection parameters
for ALFA Network AP121F
115200, 8N1

port.jtag general information about the JTAG port, JTAG cable, etc.

How to connect to the JTAG Port of this specific device:
Insert photo of PCB with markings for JTAG port

It's possible to add support for USB device by connecting D+ and D- to the USB connector wires as seen on a picture in the pull request to add the ALFA Network AP121F

There is a connector on the middle of the bottom of the top pcb: [VCC?][D+][D-][GND][?][VCC?]

For the serial connector: [GND] [TX] [RX] [VCC?]



*************************************** * U-Boot 1.1.4-cd95c190-dirty * * Build: 2017-03-17 * *************************************** ** Warning: bad env CRC, using default, use 'saveenv' to save it in FLASH BOARD: ALFA NETWORK AP121F SOC: AR9330 rev. 1 CPU: MIPS 24Kc RAM: 64 MB DDR1 16-bit CL3-3-3-8 FLASH: 16 MB Macronix MX25L128 MAC: 00:03:7F:09:0B:AD (fixed) CLOCKS: CPU/RAM/AHB/SPI/REF 400/400/200/ 25/ 25 MHz Keep button pressed for at least: - 3s for web based recovery - 5s for U-Boot console - 7s for network console 0 seconds ## Error: button was not pressed long enough! Continuing normal boot... Hit any key to stop booting: 0 Booting image from 0x9F050000... Image name: MIPS OpenWrt Linux-4.9.184 Build date: 2019-06-27 12:18:52 UTC Architecture: MIPS OS/image type: Linux Kernel Compression: LZMA Data size: 1.3 MB (1378039 bytes) Load address: 0x80060000 Entry point: 0x80060000 Header CRC... OK! Data CRC... skipped Stopping network... OK! Uncompressing Kernel... OK! Starting kernel... [ 0.000000] Linux version 4.9.184 (buildbot@2ccc8102e0c3) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r7808-ef686b7292) ) #0 Thu Jun 27 12:18:52 2019 [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU0 revision is: 00019374 (MIPS 24Kc) [ 0.000000] SoC: Atheros AR9330 rev 1 [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 04000000 @ 00000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes. [ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000000000000-0x0000000003ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x0000000003ffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff] [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 [ 0.000000] Kernel command line: board=AP121F mtdparts=spi0.0:192k(u-boot)ro,64k(u-boot-env),64k(art)ro,-(firmware) console=ttyATH0,115200 rootfstype=squashfs noinitrd [ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes) [ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Writing ErrCtl register=00000000 [ 0.000000] Readback ErrCtl register=00000000 [ 0.000000] Memory: 59964K/65536K available (3393K kernel code, 178K rwdata, 448K rodata, 324K init, 211K bss, 5572K reserved, 0K cma-reserved) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:51 [ 0.000000] Clocks: CPU:400.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:25.000MHz [ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9556302233 ns [ 0.000014] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737418237ns [ 0.007922] Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104) [ 0.089146] pid_max: default: 32768 minimum: 301 [ 0.093930] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.100385] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.111462] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.119861] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.127810] NET: Registered protocol family 16 [ 0.132898] MIPS: machine is ALFA Network AP121F [ 0.437347] clocksource: Switched to clocksource MIPS [ 0.442440] NET: Registered protocol family 2 [ 0.446772] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 0.452361] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 0.458707] TCP: Hash tables configured (established 1024 bind 1024) [ 0.465156] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.470898] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.477477] NET: Registered protocol family 1 [ 0.486930] Crashlog allocated RAM at address 0x3f00000 [ 0.492373] workingset: timestamp_bits=30 max_order=14 bucket_order=0 [ 0.507777] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.512160] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.535185] io scheduler noop registered [ 0.537725] io scheduler deadline registered (default) [ 0.543353] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled [ 0.553123] ar933x-uart: ttyATH0 at MMIO 0x18020000 (irq = 11, base_baud = 1562500) is a AR933X UART [ 0.561292] console [ttyATH0] enabled [ 0.561292] console [ttyATH0] enabled [ 0.568122] bootconsole [early0] disabled [ 0.568122] bootconsole [early0] disabled [ 0.584242] m25p80 spi0.0: found mx25l12805d, expected m25p80 [ 0.589379] m25p80 spi0.0: mx25l12805d (16384 Kbytes) [ 0.593607] 4 cmdlinepart partitions found on MTD device spi0.0 [ 0.599530] Creating 4 MTD partitions on "spi0.0": [ 0.604271] 0x000000000000-0x000000030000 : "u-boot" [ 0.611995] 0x000000030000-0x000000040000 : "u-boot-env" [ 0.618805] 0x000000040000-0x000000050000 : "art" [ 0.624936] 0x000000050000-0x000001000000 : "firmware" [ 0.651403] 2 uimage-fw partitions found on MTD device firmware [ 0.655889] 0x000000050000-0x0000001b0000 : "kernel" [ 0.662887] 0x0000001b0000-0x000001000000 : "rootfs" [ 0.668877] mtd: device 5 (rootfs) set to be root filesystem [ 0.673125] 1 squashfs-split partitions found on MTD device rootfs [ 0.679343] 0x000000410000-0x000001000000 : "rootfs_data" [ 0.689230] libphy: Fixed MDIO Bus: probed [ 0.712106] libphy: ag71xx_mdio: probed [ 1.339066] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.1:04 [uid=004dd041, driver=Generic PHY] [ 1.347804] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:MII [ 1.355184] NET: Registered protocol family 10 [ 1.363471] NET: Registered protocol family 17 [ 1.366531] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this. [ 1.379640] 8021q: 802.1Q VLAN Support v1.8 [ 1.386049] hctosys: unable to open rtc device (rtc0) [ 1.396325] VFS: Mounted root (squashfs filesystem) readonly on device 31:5. [ 1.404501] Freeing unused kernel memory: 324K [ 1.407524] This architecture does not have kernel memory protection. [ 2.318241] init: Console is alive [ 2.320475] init: - watchdog - [ 2.537366] random: fast init done [ 3.727564] kmodloader: loading kernel modules from /etc/modules-boot.d/* [ 3.817657] usbcore: registered new interface driver usbfs [ 3.821806] usbcore: registered new interface driver hub [ 3.827116] usbcore: registered new device driver usb [ 3.839743] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 3.855529] SCSI subsystem initialized [ 3.864417] ehci-platform: EHCI generic platform driver [ 3.868391] ehci-platform ehci-platform: EHCI Host Controller [ 3.873979] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1 [ 3.883973] ehci-platform ehci-platform: irq 3, io mem 0x1b000000 [ 3.917405] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00 [ 3.923543] hub 1-0:1.0: USB hub found [ 3.926381] hub 1-0:1.0: 1 port detected [ 3.935966] usbcore: registered new interface driver usb-storage [ 3.941397] kmodloader: done loading kernel modules from /etc/modules-boot.d/* [ 3.958417] init: - preinit - [ 4.955780] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 4.989149] random: procd: uninitialized urandom read (4 bytes read) Press the [f] key and hit [enter] to enter failsafe mode Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level [ 7.048832] eth0: link up (100Mbps/Full duplex) [ 7.051946] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready - failsafe button reset was pressed - - failsafe - [ 8.355020] random: dropbearkey: uninitialized urandom read (32 bytes read) Generating key, th[ 8.362463] random: dropbearkey: uninitialized urandom read (32 bytes read) is may take a while... [ 9.583749] random: dropbearkey: uninitialized urandom read (32 bytes read) Public key portion is: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQD3YSN2kXRtFCypccpPeg726xoOM+OYW[ 9.602485] random: dropbear: uninitialized urandom read (32 bytes read) +iNtYupNZkjq4M5ULFlyubqGYncf+kkKROQCrm0OoL+1fBnQJBcoFk5W8xfqo9n29gciQneVnjW5Nv2oMNBHmO4CuJDoR478dbOThJmrbShUy7+uGR2/4b0GK3Yf7xDzkyZSfNjtsvL8w== root@(none) Fingerprint: sha1!! 39:67:10:6f:ba:2d:7e:2a:59:a1:ac:77:dd:1e:a0:d8:25:b2:e8:0d BusyBox v1.28.4 () built-in shell (ash) ash: can't access tty; job control turned off _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt 18.06.4, r7808-ef686b7292 ----------------------------------------------------- ================= FAILSAFE MODE active ================ special commands: * firstboot reset settings to factory defaults * mount_root mount root-partition with config files after mount_root: * passwd change root's password * /etc/config directory with config files for more help see: - failsafe_and_factory_reset - root_password_reset ======================================================= root@(none):/# ***************************************

U-boot environment:

u-boot> printenv bootargs=console=ttyS0,115200 root=31:03 rootfstype=squashfs,jffs2 init=/sbin/init mtdparts=ath-nor0:256k(u-boot),64k(ART),1280k(kernel),14720k(rootfs),64k(config) bootcmd=bootm 0x9F050000 || bootm 0x9FE50000 || bootm 0x9F650000 bootdelay=1 baudrate=115200 ipaddr= serverip= autoload=no hostname=u-boot_alfa-ap121f bootfile=firmware.bin loadaddr=0x80800000 ncport=6666 uboot_name=u-boot.bin uboot_addr=0x9F000000 uboot_size=0x40000 uboot_upg=if ping $serverip; then tftp $loadaddr $uboot_name && if itest.l $filesize <= $uboot_size; then erase $uboot_addr +$uboot_size && cp.b $loadaddr $uboot_addr $uboot_size && echo DONE! U-Boot upgraded!; else echo ERROR! File is too big!; fi; else echo ERROR! $serverip is not reachable!; fi fw_addr=0x9F050000 fw_upg=if ping $serverip; then tftp $loadaddr $bootfile && erase $fw_addr +$filesize && cp.b $loadaddr $fw_addr $filesize && echo DONE! Firmware upgraded!; else echo ERROR! $serverip is not reachable!; fi recovery=if button; then sleep 600;setenv cnt 0;echo Keep button pressed for at least:;echo - 3s for web based recovery;echo - 5s for U-Boot console;echo - 7s for network console;echo;while button; do ledon;sleep 300;echo . '\\c';sleep 300;ledoff;sleep 600;setexpr cnt $cnt + 1;done;echo $cnt seconds;echo;if test $cnt -ge 7; then echo Starting network console...;setenv stop_boot 1;echo;startnc;elif test $cnt -ge 5; then echo Starting U-Boot console...;setenv stop_boot 1;echo;elif test $cnt -ge 3; then echo HTTP server is starting for firmware update...;setenv stop_boot 1;echo;httpd;elif test $cnt -lt 3; then echo \#\# Error: button was not pressed long enough!;echo Continuing normal boot...;echo;fi;fi stdin=serial stdout=serial stderr=serial ethaddr=00:03:7F:09:0B:AD ethact=eth0 cnt=5 stop_boot=1 Environment size: 1784/32764 bytes

Space for additional notes, links to forum threads or other resources.

FIXME Add tags below, then remove this fixme.

How to add tags

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2019/10/27 17:51
  • by gnutoo