Quickstart guide

Creating a ZRouter build environment. New way.

This should probably be done within a Jail.

  1. At First, this Requires you to have git installed:
    # pkg install git
  2. Create a path set aside for ZRouter build.
    # mkdir -p ZRouter/
  3. Enter directory:
    # cd ZRouter
  4. Clone ZRouter Project
    # git clone
  5. Checkout/clone compatible FreeBSD source tree. See:
  6. Begin ZRouter Build Menu
    # ./ mostly developed using HEAD FreeBSD tree. But /usr/src of some releases close to HEAD can be used also.

Creating a ZRouter build environment. Old way. Have to work, still.

This should probably be done within a Jail.

At First, this Requires you have [[hg]]/mercurial installed:
  • From FreeBSD ports:
    # cd /usr/ports/devel/mercurial
    # make install clean
  • OR From FreeBSD packages:
    # pkg_add -r mercurial (or # pkg install mercurial)
  1. Create a path set aside for ZRouter build.
    # mkdir -p ZRouter/
  2. Enter directory:
    # cd ZRouter
  3. Checkout/clone ZRouter Project
    # hg clone
  4. Checkout/clone Current compatible FreeBSD source:
    # hg clone FreeBSD
  5. Begin ZRouter Build Menu
    # ./

Entering ./

Main menu

  1. Select your target device (example D-Link DIR-632):
    Target device
  2. Select Base Profile. That's two choise:
    - Small - size firmware > 4 MB (if your ROM more than 4 MB)
    - Extra small - size firmware <= 4MB (if your ROM less than 4 MB)
    Firmware size
  3. At "Profiles" select package that included firmware:
    - DEBUG_ - ?
    - ath - ? (atheros driver)
    - dhclient - FreeBSD native DHCP client. Include dhclient, ahclient-script.
    - dhcp - FreeBSD native DHCP server and client. Include dhcpd, dhclient, dhcrelay.
    - dig_spcdns - ?
    - hostap - authentication and encryption for IEEE 802.11 networks. Include hostapd, hostapd_cli, wpa_cli, wpa_passphrase, wpa_supplicant.
    - ipfw - stateful firewall written for FreeBSD. Include ipfw, ipfw_nat, dummynet
    - lagg - ? (interface allows aggregation of multiple network interface)
    - lua_web_ui - Simple Web User Interface based on Lua. Include its own http server.
    - mono - ?
    - mpd - ? netgraph based implementation of the multi-link PPP protocol for FreeBSD
    - mroute - IP multicast routing. Include kernel options MROUTING
    - net_help - ? help network utilities.
    - nfs_client - client for supports the Network File System (NFS)
    - ng_igmp_fwd -
    - ntpdate - for clock synchronization over Network Time Protocol (NTP).
    - openvpn - create a Virtual Private Network. Include OpenVPN, crypto libraries.
    - ppp - utilities for support and configuring Point-to-Point Protocol (PPP). Include ppp.
    - racoon - ? establish security association with other hosts.
    - racoon2 - ?
    - shttpd - lightweight, easy to use web server.
    - ssh - enable SSH service. Include ssh, sshd, SSH PAM service file and /etc/ssh configs.
    - watchdog - if software freeze, then watchdog H/W reset system. Include watchdogd and rc.d script.
    - zhttpd - ?
  4. Last that must to do - select paths of source and build object:
    - Path of FreeBSD/head
    - Path of objects (temporary direcroty where will be compilate your firmware)
    Then go back to main menu:
    Back to main menu
  5. You can save your selection to "Build Profile" for future use (file will be created at "./Zrouter/zrouter/build_profiles/" ):
    Save Build Profile
    Enter Build Profile Name
  6. You can load your Build Profile if you save it early:
    Load Build Profile
    Select Build Profile
  7. Now select to "Build" and you see all your choices:
    Last choice
    Answer "yes" and firmware will begining.

Flash your firmware