forked from dan/liminix
Compare commits
No commits in common. "cudy-x6" and "main" have entirely different histories.
@ -1,234 +0,0 @@
|
|||||||
{
|
|
||||||
system = {
|
|
||||||
crossSystem = {
|
|
||||||
config = "mipsel-unknown-linux-musl";
|
|
||||||
gcc = {
|
|
||||||
abi = "32";
|
|
||||||
arch = "mips32"; # mips32r2?
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
description = ''
|
|
||||||
Cudy X6
|
|
||||||
********************
|
|
||||||
|
|
||||||
Zyxel NWA50AX is quite close to the GL-MT300N-v2 "Mango" device, but it is based on the MT7621
|
|
||||||
chipset instead of the MT7628.
|
|
||||||
|
|
||||||
Installation
|
|
||||||
============
|
|
||||||
|
|
||||||
'';
|
|
||||||
|
|
||||||
module = { pkgs, config, lib, lim, ...}:
|
|
||||||
let
|
|
||||||
inherit (pkgs.liminix.networking) interface;
|
|
||||||
inherit (pkgs.liminix.services) oneshot;
|
|
||||||
inherit (pkgs.pseudofile) dir symlink;
|
|
||||||
inherit (pkgs) openwrt;
|
|
||||||
|
|
||||||
mac80211 = pkgs.mac80211.override {
|
|
||||||
drivers = [ "mt7915e" ];
|
|
||||||
klibBuild = config.system.outputs.kernel.modulesupport;
|
|
||||||
};
|
|
||||||
# v204520220929
|
|
||||||
wlan_firmware = pkgs.fetchurl {
|
|
||||||
url = "https://github.com/openwrt/mt76/raw/1b88dd07f153b202e57fe29734806744ed006b0e/firmware/mt7915_wa.bin";
|
|
||||||
hash = "sha256-wooyefzb0i8640+lwq3vNhcBXRFCtGuo+jiL7afZaKA=";
|
|
||||||
};
|
|
||||||
wlan_firmware' = pkgs.fetchurl {
|
|
||||||
url = "https://github.com/openwrt/mt76/raw/1b88dd07f153b202e57fe29734806744ed006b0e/firmware/mt7915_wm.bin";
|
|
||||||
hash = "sha256-k62nQewRuKjBLd5R3RxU4F74YKnQx5zr6gqMMImqVQw=";
|
|
||||||
};
|
|
||||||
wlan_firmware'' = pkgs.fetchurl {
|
|
||||||
url = "https://github.com/openwrt/mt76/raw/1b88dd07f153b202e57fe29734806744ed006b0e/firmware/mt7915_rom_patch.bin";
|
|
||||||
hash = "sha256-ifriAjWzFACrxVWCANZpUaEZgB/0pdbhnTVQytx6ddg=";
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
imports = [
|
|
||||||
# We include it to ensure the bridge functionality
|
|
||||||
# is available on the target kernel.
|
|
||||||
../../modules/bridge
|
|
||||||
../../modules/arch/mipsel.nix
|
|
||||||
../../modules/outputs/tftpboot.nix
|
|
||||||
../../modules/outputs/mtdimage.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
filesystem = dir {
|
|
||||||
lib = dir {
|
|
||||||
firmware = dir {
|
|
||||||
mediatek = dir {
|
|
||||||
"mt7915_wa.bin" = symlink wlan_firmware;
|
|
||||||
"mt7915_wm.bin" = symlink wlan_firmware';
|
|
||||||
"mt7915_rom_patch.bin" = symlink wlan_firmware'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
rootDevice = "/dev/mtdblock5";
|
|
||||||
|
|
||||||
defaultOutput = "mtdimage";
|
|
||||||
|
|
||||||
loadAddress = lim.parseInt "0x80001000";
|
|
||||||
entryPoint = lim.parseInt "0x80001000";
|
|
||||||
# Aligned on 2kb.
|
|
||||||
alignment = 2048;
|
|
||||||
|
|
||||||
flash = {
|
|
||||||
address = lim.parseInt "0xbc050000";
|
|
||||||
eraseBlockSize = 65536;
|
|
||||||
size = lim.parseInt "0x1F80000";
|
|
||||||
};
|
|
||||||
|
|
||||||
dts = {
|
|
||||||
src = "${openwrt.src}/target/linux/ramips/dts/mt7621_cudy_x6-v1.dts";
|
|
||||||
includes = [
|
|
||||||
"${openwrt.src}/target/linux/ramips/dts"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
networkInterfaces =
|
|
||||||
let
|
|
||||||
inherit (config.system.service.network) link;
|
|
||||||
in {
|
|
||||||
wan = link.build { ifname = "wan"; };
|
|
||||||
lan1 = link.build { ifname = "lan1"; };
|
|
||||||
lan2 = link.build { ifname = "lan2"; };
|
|
||||||
lan3 = link.build { ifname = "lan3"; };
|
|
||||||
lan4 = link.build { ifname = "lan4"; };
|
|
||||||
wlan0 = link.build {
|
|
||||||
ifname = "wlan0";
|
|
||||||
dependencies = [ mac80211 ];
|
|
||||||
};
|
|
||||||
wlan1 = link.build {
|
|
||||||
ifname = "wlan1";
|
|
||||||
dependencies = [ mac80211 ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
imageFormat = "fit";
|
|
||||||
tftp = {
|
|
||||||
# 5MB is nice.
|
|
||||||
freeSpaceBytes = 5 * 1024 * 1024;
|
|
||||||
loadAddress = lim.parseInt "0x2000000";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
kernel = {
|
|
||||||
src = pkgs.fetchurl {
|
|
||||||
name = "linux.tar.gz";
|
|
||||||
url = "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.137.tar.gz";
|
|
||||||
hash = "sha256-PkdzUKZ0IpBiWe/RS70J76JKnBFzRblWcKlaIFNxnHQ=";
|
|
||||||
};
|
|
||||||
extraPatchPhase = ''
|
|
||||||
${openwrt.applyPatches.ramips}
|
|
||||||
|
|
||||||
'';
|
|
||||||
config = {
|
|
||||||
|
|
||||||
RALINK = "y";
|
|
||||||
PCI = "y";
|
|
||||||
PHY_MT7621_PCI = "y";
|
|
||||||
PCIE_MT7621 = "y";
|
|
||||||
SOC_MT7621 = "y";
|
|
||||||
CLK_MT7621 = "y";
|
|
||||||
CLOCKSOURCE_WATCHDOG = "y";
|
|
||||||
|
|
||||||
SERIAL_8250_CONSOLE = "y";
|
|
||||||
SERIAL_8250 = "y";
|
|
||||||
SERIAL_CORE_CONSOLE = "y";
|
|
||||||
SERIAL_OF_PLATFORM = "y";
|
|
||||||
SERIAL_8250_NR_UARTS = "3";
|
|
||||||
SERIAL_8250_RUNTIME_UARTS = "3";
|
|
||||||
SERIAL_MCTRL_GPIO = "y";
|
|
||||||
|
|
||||||
CONSOLE_LOGLEVEL_DEFAULT = "8";
|
|
||||||
CONSOLE_LOGLEVEL_QUIET = "4";
|
|
||||||
|
|
||||||
# MTD_UBI_BEB_LIMIT = "20";
|
|
||||||
# MTD_UBI_WL_THRESHOLD = "4096";
|
|
||||||
|
|
||||||
MTD = "y";
|
|
||||||
MTD_BLOCK = "y"; # fix undefined ref to register_mtd_blktrans_dev
|
|
||||||
MTD_RAW_NAND = "y";
|
|
||||||
MTD_NAND_MT7621 = "y";
|
|
||||||
MTD_NAND_MTK_BMT = "y"; # Bad-block Management Table
|
|
||||||
MTD_NAND_ECC_SW_HAMMING= "y";
|
|
||||||
MTD_SPI_NAND= "y";
|
|
||||||
MTD_OF_PARTS = "y";
|
|
||||||
MTD_NAND_CORE= "y";
|
|
||||||
MTD_SPLIT_FIRMWARE= "y";
|
|
||||||
MTD_SPLIT_FIT_FW= "y";
|
|
||||||
|
|
||||||
PINCTRL = "y";
|
|
||||||
PINCTRL_MT7621 = "y";
|
|
||||||
|
|
||||||
I2C = "y";
|
|
||||||
I2C_MT7621 = "y";
|
|
||||||
|
|
||||||
SPI = "y";
|
|
||||||
MTD_SPI_NOR = "y";
|
|
||||||
SPI_MT7621 = "y";
|
|
||||||
SPI_MASTER = "y";
|
|
||||||
SPI_MEM = "y";
|
|
||||||
|
|
||||||
REGULATOR = "y";
|
|
||||||
REGULATOR_FIXED_VOLTAGE = "y";
|
|
||||||
RESET_CONTROLLER = "y";
|
|
||||||
POWER_RESET = "y";
|
|
||||||
POWER_RESET_GPIO = "y";
|
|
||||||
POWER_SUPPLY = "y";
|
|
||||||
LED_TRIGGER_PHY = "y";
|
|
||||||
|
|
||||||
PCI_DISABLE_COMMON_QUIRKS = "y";
|
|
||||||
PCI_DOMAINS = "y";
|
|
||||||
PCI_DOMAINS_GENERIC = "y";
|
|
||||||
PCI_DRIVERS_GENERIC = "y";
|
|
||||||
PCS_MTK_LYNXI = "y";
|
|
||||||
|
|
||||||
SOC_BUS = "y";
|
|
||||||
|
|
||||||
NET = "y";
|
|
||||||
ETHERNET = "y";
|
|
||||||
WLAN = "y";
|
|
||||||
|
|
||||||
PHYLIB = "y";
|
|
||||||
AT803X_PHY = "y";
|
|
||||||
FIXED_PHY = "y";
|
|
||||||
GENERIC_PHY = "y";
|
|
||||||
NET_DSA = "y";
|
|
||||||
NET_DSA_MT7530 = "y";
|
|
||||||
NET_DSA_MT7530_MDIO = "y";
|
|
||||||
NET_DSA_TAG_MTK = "y";
|
|
||||||
NET_MEDIATEK_SOC = "y";
|
|
||||||
NET_SWITCHDEV = "y";
|
|
||||||
NET_VENDOR_MEDIATEK = "y";
|
|
||||||
|
|
||||||
SWPHY = "y";
|
|
||||||
|
|
||||||
GPIOLIB = "y";
|
|
||||||
GPIO_MT7621 = "y";
|
|
||||||
OF_GPIO = "y";
|
|
||||||
|
|
||||||
EARLY_PRINTK = "y";
|
|
||||||
|
|
||||||
NEW_LEDS = "y";
|
|
||||||
LEDS_TRIGGERS = "y";
|
|
||||||
LEDS_CLASS = "y"; # required by rt2x00lib
|
|
||||||
LEDS_CLASS_MULTICOLOR = "y";
|
|
||||||
LEDS_BRIGHTNESS_HW_CHANGED = "y";
|
|
||||||
|
|
||||||
PRINTK_TIME = "y";
|
|
||||||
} // lib.optionalAttrs (config.system.service ? vlan) {
|
|
||||||
SWCONFIG = "y";
|
|
||||||
} // lib.optionalAttrs (config.system.service ? watchdog) {
|
|
||||||
RALINK_WDT = "y"; # watchdog
|
|
||||||
MT7621_WDT = "y"; # or it might be this one
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -7,7 +7,7 @@
|
|||||||
{ interface, params} :
|
{ interface, params} :
|
||||||
let
|
let
|
||||||
inherit (liminix.services) longrun;
|
inherit (liminix.services) longrun;
|
||||||
inherit (lib) concatStrings mapAttrsToList;
|
inherit (lib) concatStringsSep mapAttrsToList;
|
||||||
inherit (liminix.lib) typeChecked;
|
inherit (liminix.lib) typeChecked;
|
||||||
inherit (lib) mkOption types;
|
inherit (lib) mkOption types;
|
||||||
|
|
||||||
@ -22,14 +22,15 @@ let
|
|||||||
driver = "nl80211";
|
driver = "nl80211";
|
||||||
logger_syslog = "-1";
|
logger_syslog = "-1";
|
||||||
logger_syslog_level = 1;
|
logger_syslog_level = 1;
|
||||||
ctrl_interface = "/run/hostapd.${name}";
|
ctrl_interface = "/run/hostapd";
|
||||||
ctrl_interface_group = 0;
|
ctrl_interface_group = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
conf = writeText "hostapd.conf"
|
conf = writeText "hostapd.conf"
|
||||||
(concatStrings
|
(concatStringsSep
|
||||||
|
"\n"
|
||||||
(mapAttrsToList
|
(mapAttrsToList
|
||||||
(name: value: "${name}=${toString value}\n")
|
(name: value: "${name}=${toString value}")
|
||||||
(defaults // params)));
|
(defaults // params)));
|
||||||
in longrun {
|
in longrun {
|
||||||
inherit name;
|
inherit name;
|
||||||
|
@ -131,8 +131,6 @@ in {
|
|||||||
# at boot time unless we disable trying to call it.
|
# at boot time unless we disable trying to call it.
|
||||||
# https://lkml.org/lkml/2013/8/5/175
|
# https://lkml.org/lkml/2013/8/5/175
|
||||||
FW_LOADER_USER_HELPER = "n";
|
FW_LOADER_USER_HELPER = "n";
|
||||||
|
|
||||||
MAGIC_SYSRQ = "y";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user