openwrt/target/linux
Coia Prant b2f814fed4
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
ramips: add support for Qding QC202
This is a smart door lock device equipped with OpenWrt 14.07 OEM
modified version Qdwrt

The OEM has closed down, This commit is intended to maximize the
remaining value of these devices. It can flash OpenWrt to become
an AP

Specification:
- SoC: MediaTek MT7628NN
- Flash: 8 MB
- RAM: 64 MB
- Power: DC 5V - 25V
- Ethernet: 1 x RJ45 (10/100 Mbps)
- Wireless radio: 802.11n 2.4g-only
- On-Board LED:
  Status 1: GPIO/43 active-low
  Status 2: GPIO/44 active-low
  Power: AlwaysOn
- Button:
  WPS / RESET: GPIO/14  active-low
- Bluetooth: CC2541 via UART1 (ttyS1) and GPIO/26-29
- RFID: MF RC522 on I2C@28
- RTC: DS1339 on I2C@68
- Shell (via CON1 cable)
  - LED (Swipe card area):
     -  Green  GPIO/3  active-high
     -  Red    GPIO/11 active-high
  - Matrix keypad: (active-low)
                 GPIO/20 GPIO/21 GPIO/19 (Rows)
        GPIO/24        1       2       3
        GPIO/25        4       5       6
        GPIO/22        7       8       9
        GPIO/23     BACK       0   ENTER
        (Cols)
- UART: 1 x UART on PCB - 57600 8N1
- GPIO Relay: GPIO/42 active-high
- GPIO Buzzer: GPIO/15 active-high

Warning:
The original firmware does not use the device tree.
This device tree is written based on the content of /sys/devices/platform
and has been tested

Note:
- On the device, matrix keypad rows actually are columns, and the columns actually are rows
- The key code of the CLEAR key of the matrix keypad is BACK in the original firmware.

Issue:
- No drivers in mainline kernel for RFID and Bluetooth.

Flash Instruction:
Using SSH/Telnet:
1. Connect the board to the computer via RJ45 Ethernet
2. Login 10.10.10.1 with root password "szqdingnet123" (SSH Port 22, Telnet Port 9900)
3. Download openwrt firmware on the computer.
4. Setup a http server on computer. And use wget download openwrt firmware from computer
5. Use command "mtd -r write openwrt-ramips-mt76x8-qding_qc202-squashfs-sysupgrade.bin firmware"
   to flash

Using U-Boot WebUI:
1. Configure PC with a static IP address 10.10.10.2/24.
2. Open http://10.10.10.1
3. Use "mkqdimg -B qc202 -f openwrt-ramips-mt76x8-qding_qc202-squashfs-sysupgrade.bin" to
   make image.
4. Upload factory.bin via U-Boot WebUI.

Original Firmware Dump / More details:
https://blog.gov.cooking/archives/research-qianding-smart-locker-and-flash.html

Original U-Boot firmware image tools:
https://gitlab.com/CoiaPrant/mkqdimg

Signed-off-by: Coia Prant <coiaprant@gmail.com>
Tested-by: Coia Prant <coiaprant@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17471
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-20 00:54:41 +02:00
..
airoha airoha: add missing Kconfig entry on 6.12 2025-09-18 21:52:10 +02:00
apm821xx apm821xx: sata: refresh config 2025-07-27 18:22:31 +02:00
armsr armsr: Make kernel modules depend on target 2025-07-26 01:11:21 +02:00
at91 treewide: strip trailing whitespace 2025-05-20 00:47:37 +02:00
ath79 ath79: whr-g301n: remove custon wifi LED 2025-09-18 11:11:02 +02:00
bcm27xx kernel: bump 6.12 to 6.12.46 2025-09-18 14:01:11 +02:00
bcm47xx treewide: strip trailing whitespace 2025-05-20 00:47:37 +02:00
bcm53xx kernel: bump 6.6 to 6.6.103 2025-09-01 02:05:24 +02:00
bcm4908 bcm63xx-cfe: install into image staging dir 2025-04-13 10:44:19 +02:00
bmips kernel: bump 6.12 to 6.12.39 2025-07-19 11:59:56 +02:00
d1 kernel: remove duplicate PREEMPT settings 2025-06-08 15:59:55 +02:00
econet econet: Add basic USB support with Mass Storage 2025-09-18 22:36:28 +02:00
gemini gemini: Add module for VSC73xx switches 2025-09-15 23:12:56 +02:00
generic kernel: bump 6.12 to 6.12.47 2025-09-18 14:01:11 +02:00
imx kernel: bump 6.6 to 6.6.103 2025-09-01 02:05:24 +02:00
ipq40xx kernel: bump 6.12 to 6.12.46 2025-09-18 14:01:11 +02:00
ipq806x treewide: fix compatible string for ath10k 2025-08-25 10:35:39 +02:00
ixp4xx ixp4xx: Switch to kernel v6.12 2025-06-03 01:45:40 +02:00
kirkwood kirkwood: add kmod-ata-ahci as default to ix4-200d 2025-07-19 17:58:41 +02:00
lantiq lantiq: adapt upstream commit to some dts files 2025-09-07 11:42:46 +02:00
layerscape kernel: bump 6.12 to 6.12.43 2025-08-26 21:35:36 +02:00
loongarch64 loongarch64: switch to Linux 6.12 by default 2025-09-09 00:10:31 +02:00
malta malta: drop 6.6 support 2025-07-20 23:37:37 +02:00
mediatek mediatek: add support for AsiaRF AP7622-WH1 2025-09-18 23:28:59 +02:00
mpc85xx mpc85xx: tl-wdr4900: add back 5ghz LED 2025-08-13 09:57:05 +02:00
mvebu mvebu: switch to kernel 6.12 2025-08-04 22:57:18 +02:00
mxs mxs: drop 6.6 support 2025-05-24 16:15:53 +02:00
octeon octeon: ubnt-*: Add device specific DTS pruning 2025-07-09 10:39:29 +02:00
omap omap: enable 6.12 testing kernel 2025-08-22 20:18:16 +02:00
pistachio kernel: remove duplicate PREEMPT settings 2025-06-08 15:59:55 +02:00
qoriq kernel: Activate CONFIG_NET_SWITCHDEV in generic config 2025-03-15 13:54:59 +01:00
qualcommax qualcommax: ipq50xx: backport upstreamed patch for adding ipq5018 UART2 node 2025-09-19 10:56:49 +02:00
qualcommbe kernel: bump 6.12 to 6.12.45 2025-09-07 11:42:46 +02:00
ramips ramips: add support for Qding QC202 2025-09-20 00:54:41 +02:00
realtek realtek: fix dts warnings. 2025-09-19 13:51:50 +02:00
rockchip rockchip: add Lunzn FastRhino R66S support 2025-09-11 22:17:43 +02:00
sifiveu kernel: remove duplicate PREEMPT settings 2025-06-08 15:59:55 +02:00
siflower generic: backport support for Aeonsemi AS21xxx PHY 2025-09-03 00:58:48 +02:00
starfive kernel: bump 6.12 to 6.12.45 2025-09-07 11:42:46 +02:00
stm32 generic: 6.12: add new config symbols 2025-07-13 15:27:54 +02:00
sunxi sunxi: enable at24 support 2025-09-08 22:35:39 +02:00
tegra tegra: add 6.12 as testing kernel 2025-07-13 00:49:37 +02:00
uml kernel: bump 6.12 to 6.12.33 2025-06-12 12:42:15 +02:00
x86 x86: config: add CONFIG_MITIGATION_VMSCAPE=y 2025-09-18 14:01:11 +02:00
zynq zynq: disable unused Vitesse PHY 2025-09-08 14:21:50 +02:00
Makefile linux: fix missing default packages in profiles.json 2024-11-17 19:29:06 +01:00