diff --git a/target/linux/ar71xx/base-files/lib/preinit/05_set_iface_mac_ar71xx b/target/linux/ar71xx/base-files/lib/preinit/05_set_iface_mac_ar71xx index 7d3e82813..1293ccf6d 100644 --- a/target/linux/ar71xx/base-files/lib/preinit/05_set_iface_mac_ar71xx +++ b/target/linux/ar71xx/base-files/lib/preinit/05_set_iface_mac_ar71xx @@ -22,6 +22,10 @@ preinit_set_mac_address() { . /lib/functions.sh case $(board_name) in + k2t) + mac_wan=$(cat /dev/mtd1 | grep -o wan_mac.* | cut -d\" -f3) + [ -n "$mac_wan" ] && ifconfig eth0 hw ether "$mac_wan" + ;; c-55|\ c-60) mac_lan=$(mtd_get_mac_binary art 0) diff --git a/target/linux/ar71xx/base-files/lib/preinit/82_patch_ath9k b/target/linux/ar71xx/base-files/lib/preinit/82_patch_ath9k new file mode 100644 index 000000000..52c2c4073 --- /dev/null +++ b/target/linux/ar71xx/base-files/lib/preinit/82_patch_ath9k @@ -0,0 +1,26 @@ +#!/bin/sh + +. /lib/functions.sh +. /lib/functions/system.sh + +do_patch_ath9k_firmware_k2t() { + local current_mac="$(hexdump -v -n 6 -s $((0x1000+2)) -e '5/1 "%02x:" 1/1 "%02x"' /dev/mtd6 2>/dev/null)" + [ "00:02:03:04:05:06" = "$current_mac" ] || return + + local mac=$(macaddr_add $(cat /dev/mtd1 | grep -o wan_mac.* | cut -d\" -f3) +3) + + dd if=/dev/mtd6 of=/tmp/mtd6 && \ + macaddr_2bin $mac | dd of=/tmp/mtd6 conv=notrunc bs=1 seek=$((0x1000+2)) count=6 && \ + mtd write /tmp/mtd6 art + rm -f /tmp/mtd6 +} + +check_patch_ath9k_firmware() { + case $(board_name) in + k2t) + do_patch_ath9k_firmware_k2t + ;; + esac +} + +boot_hook_add preinit_main check_patch_ath9k_firmware diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt index e01910242..21e660e69 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt +++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt @@ -2367,4 +2367,4 @@ config ATH79_MACH_K2T select ATH79_DEV_LEDS_GPIO select ATH79_DEV_M25P80 select ATH79_DEV_WMAC - select ATH79_DEV_USB \ No newline at end of file + select ATH79_DEV_USB diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h index 253078eaf..59f9c4959 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h @@ -139,7 +139,7 @@ enum ath79_mach_type { ATH79_MACH_JA76PF2, /* jjPlus JA76PF2 */ ATH79_MACH_JWAP003, /* jjPlus JWAP003 */ ATH79_MACH_JWAP230, /* jjPlus JWAP230 */ - ATH79_MACH_K2T, /* Phicomm K2T */ + ATH79_MACH_K2T, /* Phicomm K2T */ ATH79_MACH_LAN_TURTLE, /* Hak5 LAN Turtle */ ATH79_MACH_LIMA, /* 8devices Lima */ ATH79_MACH_MC_MAC1200R, /* MERCURY MAC1200R */ diff --git a/target/linux/ar71xx/generic/config-default b/target/linux/ar71xx/generic/config-default index 6475d2281..0bac7127c 100644 --- a/target/linux/ar71xx/generic/config-default +++ b/target/linux/ar71xx/generic/config-default @@ -103,6 +103,7 @@ CONFIG_ATH79_MACH_HORNET_UB=y CONFIG_ATH79_MACH_JA76PF=y CONFIG_ATH79_MACH_JWAP003=y CONFIG_ATH79_MACH_JWAP230=y +CONFIG_ATH79_MACH_K2T=y CONFIG_ATH79_MACH_LAN_TURTLE=y CONFIG_ATH79_MACH_LIMA=y CONFIG_ATH79_MACH_MC_MAC1200R=y diff --git a/target/linux/ar71xx/image/generic.mk b/target/linux/ar71xx/image/generic.mk index c399d8112..76ec0f752 100644 --- a/target/linux/ar71xx/image/generic.mk +++ b/target/linux/ar71xx/image/generic.mk @@ -1308,4 +1308,4 @@ define Device/k2t CONSOLE := ttyATH0,115200 MTDPARTS := spi0.0:192k(u-boot)ro,64k(config)ro,320k(permanent),15744k(firmware),64k(art)ro endef -TARGET_DEVICES += k2t +TARGET_DEVICES += k2t \ No newline at end of file