Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GL-MT3600BE Firmware Guide

Configuration availability

This 4.9.0 source release provides Clean, baseline and CCS validation configuration files. The baseline was captured from the matching internal shipping build at ~/test/mt3600be_4.9.0/mt7987a. It may reference GL.iNet proprietary packages and feeds that are not included in this public source release.

The available open-source configuration builds the Clean image: it includes OpenWrt and other publicly redistributable components, but excludes GL.iNet proprietary modules and applications. Do not create a baseline configuration by guessing package selections from another firmware version. A matching baseline configuration must come from the corresponding 4.9.0 shipping build.

Build Configuration Files

This source release defines three configuration purposes. All three files are available for 4.9.0, but they are not interchangeable:

configs/gl-mt3600be-baseline.config

Configuration captured from the matching internal shipping firmware build for audit and comparison purposes. It contains package selections for GL.iNet proprietary modules and applications, and is not a customer-buildable public configuration by itself.

configs/gl-mt3600be-open-source.config

Configuration for building the public open-source firmware image. GL.iNet proprietary applications and Web UI components are excluded.

configs/gl-mt3600be-ccs-validation.config

Configuration for CCS verification. It enables public GPL/copyleft GL kernel components corresponding to the distributed firmware that can be built from this source release. The modules are selected as optional modules for source verification and are not enabled in the normal public firmware image.

GL.iNet proprietary applications and Web UI components are excluded.

Build environment

Use a 64-bit, case-sensitive GNU/Linux environment. The reference environment verified for this source tree is:

Operating system: Ubuntu 22.04.5 LTS
Architecture:     x86_64
GCC:              9.5.0
GNU Make:         4.3
Python:           3.10.12
Git:              2.34.1

Build as a regular user, not as root, and use a build path without spaces. Do not build on a case-insensitive filesystem. When using WSL2, keep the source tree in the Linux filesystem rather than under /mnt/c.

Recommended resources:

CPU:       4 cores minimum, 8 or more recommended
Memory:    8 GiB minimum, 16 GiB or more recommended
Disk:      30 GiB free minimum, 50 GiB or more recommended
Network:   Internet access for feeds and source downloads

Two build methods are supported. Docker is recommended because it provides the same compiler and dependencies for every build. A native Ubuntu 22.04 build is also supported.

Build with Docker

Install Docker Engine, then build the build-environment image from the repository root. Passing the current UID and GID allows the container to write build output without changing ownership of the source tree:

docker build \
  --build-arg BUILD_UID="$(id -u)" \
  --build-arg BUILD_GID="$(id -g)" \
  -t gl-mt3600be-builder .

Start the container with the repository mounted at /workspace:

docker run --rm -it \
  -v "$PWD:/workspace" \
  gl-mt3600be-builder

Run the commands in Build the firmware inside the container. Build output remains in the repository on the host. This Docker workflow has been verified with a clean source tree to produce the GL-MT3600BE factory and sysupgrade images.

Build on Ubuntu 22.04

Install the native build dependencies:

sudo apt update
sudo apt install -y \
  bash ca-certificates build-essential clang flex bison g++ gawk \
  gcc-multilib g++-multilib \
  gcc-9 g++-9 gcc-9-multilib g++-9-multilib \
  gettext git ccache \
  libncurses-dev libssl-dev libelf-dev \
  python3 python3-distutils python3-setuptools \
  rsync subversion swig unzip zlib1g-dev \
  file wget perl quilt xz-utils zstd time xsltproc

Select GCC and G++ 9:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90
sudo update-alternatives --set gcc /usr/bin/gcc-9
sudo update-alternatives --set g++ /usr/bin/g++-9

The package names follow the OpenWrt build system setup for Ubuntu 22.04. If the prerequisite check reports a missing package, install that package before continuing.

Build the firmware

Run from the repository root:

cd versions/4.9.0
./scripts/feeds update -a
./scripts/feeds install -a

For the public open-source firmware:

cp configs/gl-mt3600be-open-source.config .config
make defconfig
make prereq
make -j"$(nproc)"

The configs/gl-mt3600be-baseline.config file records the configuration captured from the internal shipping build. It is provided for audit and comparison only. Because this public source tree intentionally omits GL.iNet proprietary packages referenced by that configuration, it is not a standalone build configuration and must not be used with the build commands below.

For CCS validation of public GL GPL components:

cp configs/gl-mt3600be-ccs-validation.config .config
make defconfig
make prereq
make -j"$(nproc)"

No GL.iNet-specific feed preparation script is required. The release-specific configs/feed-package-sources.json records the source feed for each audited source package. Standard feeds install -a selects these definitions and updates old feed links automatically. An explicit feeds install -p selection takes precedence. Keep this mapping and the pinned feed revisions together.

The default configuration selects public components from the shipped package inventory, including VPN tools, Samba, nginx, storage support and network utilities. Library package names with ABI suffixes are matched through their provided names. The proprietary GL applications and UI are omitted; retained GL kernel-module enablement and vendor runtime packaging remain separate.

OpenVPN, WireGuard, AmneziaWG and their userspace tools are selected. VPN connections and file shares still require configuration. The wifidog-ng kernel module is selected without its userspace portal. Restoring package selections does not restore the proprietary GL management interface.

The vendor runtime contains prebuilt drivers. Verify module loading, wireless, network access and application services on the device before deployment.

After a successful build, use this firmware image:

bin/targets/mediatek/mt7987/openwrt-mediatek-mt7987-glinet_gl-mt3600be-squashfs-sysupgrade.bin

Installation

Connect the computer to the GL-MT3600BE LAN. The router uses 192.168.8.1 by default.

GL.iNet web interface

When the router is running standard GL.iNet firmware, the locally built image can be uploaded from the GL.iNet web interface:

  1. Open http://192.168.8.1 and sign in.
  2. Open System > Upgrade and select Local Upgrade.
  3. Select the generated sysupgrade.bin image.
  4. Do not retain settings when moving from standard GL.iNet firmware to the open-source firmware.
  5. Start the upgrade and wait for the router to reboot. Do not interrupt power.

SSH

Upload the firmware to the router:

scp -O \
  bin/targets/mediatek/mt7987/openwrt-mediatek-mt7987-glinet_gl-mt3600be-squashfs-sysupgrade.bin \
  root@192.168.8.1:/tmp/firmware.bin

The -O option uses the legacy SCP protocol supported by Dropbear.

Log in to the router and start the upgrade:

ssh root@192.168.8.1
sysupgrade -n /tmp/firmware.bin

The SSH connection closes while the router writes the image and reboots. Do not interrupt power during this process. After the reboot, the open-source firmware provides LAN and SSH access at 192.168.8.1.

The current default configuration does not include LuCI or the proprietary GL.iNet web interface. The GL.iNet web upgrade method is therefore available only while the device is still running standard GL.iNet firmware.

NTFS mounting

This tree preserves the vendor UFSD mount attempt. If it fails with ENODEV (filesystem driver unavailable), block retries the detected filesystem type. If that type is also unavailable in the kernel, the existing helper flow uses /sbin/mount.ntfs, a compatibility link to the included ntfs-3g executable. Other UFSD errors, including permission and I/O errors, do not trigger this fallback. No UFSD binary is added by this change.

Compilation and simulated mount/error tests validate this fallback, but actual disk mounting and read/write behavior still require device testing.

About

No description, website, or topics provided.

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages