D-Link DCH-G020 A1
The DCH-G020 was advertised as a “Smart Home” controller for Wi-Fi and Z-Wave based devices.
The stock webinterface has no functionality besides upgrading the firmware (IP address obtained by DHCP). There is also a hidden page /zwave.htm, but it would not allow you to do anything useful with the device without the “mydlink Home” app and cloud service (users report even that will only let you control those few Z-Wave devices that are available from D-Link).
Hardware highlights
CPU | Ram | Flash | Network | WLAN | USB | Serial | JTag |
---|---|---|---|---|---|---|---|
Qualcomm Atheros QCA9531 @ 650 MHz | 64 MiB | 16 MiB | 2x 10/100 | 2×2 bgn | 1x 2.0 | Yes | ? |
OpenWrt support
Supported since version 20.
Supporting activities
- Pull Request: https://github.com/openwrt/openwrt/pull/2998
Installation
The factory image can be flashed using the regular Web UI, the IP address will be obtained by DHCP (default 192.168.0.60
).
Login as admin
with the 6-digit Pin Code from the bottom label as password.
If flashing does not work, try a different browser or flash via uboot httpd:
The Recovery Web UI (pressing reset during power on until led flashes red) has problems with modern browsers; try chromium-based or upload with
curl -F files=@openwrt-ath79-generic-dlink_dch-g020-a1-squashfs-factory.bin http://192.168.0.60/cgi/index
Hardware
SigmaDesigns (now acquired by Silabs) SD3503A-CNE3 USB Z-Wave Plus Controller (enumerates as ttyACM0), including 32KiB EEPROM
Genesys GL850G USB 2.0 Hub, one port accessible from outside, one connected to SD3503A, one internal 2mm connector should allow for adding additional devices, e.g. flashdrive for extroot or some CC1101 RF-dongle etc. (there's plenty of space left within the cylindric case)
Pericom PT7C-43390 I²C Real-Time Clock, CR2032 backup battery
PCA9554A 8-bit I²C I/O Expander, seems to be used for controlling the USB Hub (but there's also space reserved for several additional passive componets and a SOIC-8 IC nearby on the pcb)
Info
Architecture | MIPS |
---|---|
Vendor | Qualcomm Atheros |
Bootloader | U-Boot 1.1.4--LSDK-10.1.432 |
System-On-Chip | QCA9531 (HoneyBee) |
CPU/Speed | 650 MHz |
Flash-Chip | Macronix 25L12835F |
Flash size | 16 MiB |
RAM | 64 MiB |
Wireless | QCA9531 2.4GHz 802.11bgn, SD3503A USB Z-Wave |
Ethernet | 10/100 Mbit/s, 2 ports |
USB | Genesys GL850G USB 2.0 Hub, 1 external port |
Serial | Yes |
JTAG | Not populated |
Stock Flash Layout
0x9f000000 - 0x9fffffff | 16M | full flash |
0x9f000000 - 0x9f00ffff | 64k | uboot |
0x9f010000 - 0x9f01ffff | 64k | ART (wifi calibration data) |
0x9f020000 - 0x9f02ffff | 64k | MP |
0x9f030000 - 0x9f03ffff | 64k | config |
0x9f040000 - 0x9f04ffff | 64k | bootarg |
0x9f050000 - 0x9f24ffff | 2048k | uImage |
0x9f250000 - 0x9febffff | 12736k | rootfs1 |
0x9fec0000 - 0x9fecffff | 64k | log |
0x9fed0000 - 0x9ff4ffff | 512k | mydlink |
0x9ff50000 - 0x9ffcffff | 512k | data1 |
0c9ffd0000 - 0x9ffeffff | 128k | data2 |
0x9fff0000 - 0x9fffffff | 64k | data3 |
QCA9531 GPIO Mapping
0 | i2c sda | bit-banging i2c port |
1 | i2c scl | bit-banging i2c port |
3 | rear button (zwave / wps) | active low |
13 | power led green | active low |
14 | power led amber | active high |
17 | reset button | active low |
root@OpenWrt:/# i2cdetect 0 WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-0. I will probe address range 0x03-0x77. Continue? [Y/n] Y 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: 30 31 32 33 34 35 36 37 38 -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Address range 0x30 - 0x37 occupied by PT7C-43390 (3 bits register address included within i2c address). Address 0x38 is PCA9554A.
I2C PCA9554A GPIO Mapping
Ports IO0 - IO7 mapped to GPIO 504 - 511:
gpio-505 (IO1) | enable zwave dongle | active low |
gpio-507 (IO3) | enable usb hub (/RST) | active low |
root@OpenWrt:/# cat /sys/kernel/debug/gpio gpiochip0: GPIOs 0-31, parent: platform/18040000.gpio, 18040000.gpio: gpio-0 ( |sda ) out hi gpio-1 ( |scl ) out hi gpio-3 ( |wps ) in hi IRQ gpio-13 ( |d-link:green:power ) out lo ACTIVE LOW gpio-14 ( |d-link:red:status ) out hi ACTIVE LOW gpio-17 ( |reset ) in hi IRQ gpiochip1: GPIOs 504-511, parent: i2c/0-0038, 0-0038, can sleep: gpio-505 ( |d-link:power:zwave ) out lo ACTIVE LOW gpio-507 ( |d-link:power:usb ) out lo ACTIVE LOW
Todo: find further pin assignments, maybe also interrupt pin to host?
Photos
FCC Info: https://fccid.io/KA2CHG020A1
Internal Photos: https://fccid.io/document.php?id=2482795
Opening the case
Remove the two larger rubber feet left and right to the bottom label to expose the screws. Squeeze the cylindrical part of the case while pulling it off, and be extra careful with the WPS button cap, especially when reassembling the case.
Serial
→ port.serial general information about the serial port, serial port cable, etc.
UART is on JP1 (near the right of the backup battery), 115200 8N1
Pin1 | GND |
---|---|
Pin2 | TX |
Pin3 | RX |
Backup original flash
stock uboot supports tftpboot and even httpd to upload flash image, but only md to backup the flash.
sending md 9f000000 4194304 to uboot will hexdump the whole flash to the console, this takes about 1h 40min.
capture the output of the terminal to a file and make sure to remove the first line (echo of the md command that was sent),
then use xxd -r to convert it back to a binary file.
there seems to be no crc32 in uboot, so better do this twice and compare the results...
JTAG
→ port.jtag general information about the JTAG port, JTAG cable, etc.
How to connect to the JTAG Port of this specific device:
Insert photo of PCB with markings for JTAG port
OEM BusyBox
Press Enter on the serial console after booting, login as root with password whatsup
OEM U-Boot
Hit any key to stop autoboot: 0 ath> help ? - alias for 'help' boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory cp - memory copy erase - erase FLASH memory help - print online help httpd - simple httpd server md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nm - memory modify (constant address) ping - send ICMP ECHO_REQUEST to network host printenv- print environment variables progmac - Set ethernet MAC addresses progmac2 - Set ethernet MAC addresses reset - Perform RESET of the CPU run - run commands in an environment variable setenv - set environment variables tftpboot- boot image via network using TFTP protocol version - print monitor version ath> printenv bootargs=console=ttyS0,115200 root=31:6 rootfstype=squashfs init=/sbin/init mtdparts=ath-nor0:64k(u-boot),64k(ART),64k(MP),64k(config),64k(bootarg),2048k(uImage),12736k(rootfs1),64k(log),512k(mydlink),512k(data1),128k(data2),64k(data3) bootcmd=bootm 0x9f050000 bootdelay=2 baudrate=115200 ethaddr=0x00:0xaa:0xbb:0xcc:0xdd:0xee ipaddr=192.168.0.60 serverip=192.168.0.100 dir= lu=tftp 0x80060000 ${dir}tuboot.bin&&erase 0x9f000000 +$filesize&&cp.b $fileaddr 0x9f000000 $filesize lf=tftp 0x80060000 ${dir}ap143${bc}-jffs2&&erase 0x9f010000 +$filesize&&cp.b $fileaddr 0x9f010000 $filesize lk=tftp 0x80060000 ${dir}vmlinux${bc}.lzma.uImage&&erase 0x9f300000 +$filesize&&cp.b $fileaddr 0x9f300000 $filesize stdin=serial stdout=serial stderr=serial ethact=eth0 Environment size: 754/65532 bytes
OEM U-Boot Recovery Mode
starting httpd will listen to 192.168.0.60, this might be equivalent to the second recovery method described by dlink:
ftp://ftp.dlink.de/dch/dch-g020/documentation/DCH-G020_howto_reva_Recovery_en.pdf
you're supposed to upload a special recovery firmware there first, and only then upgrade to the latest version.
Controlling Z-Wave devices via Domoticz
To start using this device for home automation via z-wave, we first need to move the overlay filesystem to a USB drive, as the packages Domoticz and openzwave would be too big to fit into 16 MiB flash.
Extroot Configuration
See extroot configuration for detailed installation instructions.
USB Mod (add two more ports)
Instead of wasting the precious external USB port, you can choose one of the unused ports from the internal USB 2.0 Hub:
You will have to add 22 Ohm resitors for the USB lines. For most devices it should work to connect VBUS directly to 5V supply of the router, but keep in mind this way you could not easily reset an attached USB device by power cycling.
One of the USB ports is on J8
:
Pin1 (sqaure pad with arrow) | 5V |
---|---|
Pin2 | GND |
Pin3 | D+ |
Pin4 | D- |
Pin5 | VBUS, n.c. |
You could add yet another USB device on the U21
connector, of course.
Remember, there's no need for this to look sophisticated when everything will remain hidden inside the case :)
Installing Domoticz
Now that we have increased the storage, we can proceed to
opkg update && opkg install domoticz openzwave
Domoticz will run under a new user named domoticz
. To enable access to the Z-Wave controller, we additionally need to add that user to the dialout
group.
This can be done desktop-style by installing the usermod
utility:
opkg install shadow-usermod usermod -a -G dialout domoticz
or by manually editing /etc/group
and just appending the username to the dialout
group, e.g.:
dialout:x:20:domoticz
with 20 being the group id for dialout.
Now you can reboot the router and access your new Domoticz installation on port :8080
.
The portal will greet you with a welcome message suggesting to add your hardware now, thus click Hardware
.
Choose a name for your adapter, e.g. DCH-G020 built-in Z-Wave
, select Type: OpenZWave USB
and the Serial Port: /dev/ttyACM0
After adding the device, it will take a few seconds for the OpenZave manager to startup and configure the device. Click Update to check, and finally the “Setup” button when it has changed from brown to blue.
If you had previously paired any D-Link devices with the hub, it might be a good idea to hit Node Management → Hard reset controller
now, before including your first device. See the manual for the devices for information about the hard-reset procedure (just starting exclusion mode / new inclusion might not work when the devices were previously paired to the D-Link cloud, so it should be a good idea to start from scratch.
Todo: make sure domoticz config will be preserved after reboot
See the Domoticz wiki for further assistance on setting up your devices.
Bootlogs
OEM bootlog
U-Boot 1.1.4--LSDK-10.1.432 (Mar 17 2015 - 19:24:10) ap143 - Honey Bee 1.0 DRAM: 64 MB Top of RAM usable for U-Boot at: 84000000 Reserving 157k for U-Boot at: 83fd8000 Reserving 192k for malloc() at: 83fa8000 Reserving 44 Bytes for Board Info at: 83fa7fd4 Reserving 36 Bytes for Global Data at: 83fa7fb0 Reserving 128k for boot params() at: 83f87fb0 Stack Pointer at: 83f87f98 Now running in RAM - U-Boot at: 83fd8000 ============================================ Date:Mar 17 2015 Time:19:24:10 Loader Version: v1.01 Build:01 Module Name: DCH-G020X ============================================ Flash Manuf Id 0xc2, DeviceId0 0x20, DeviceId1 0x18 flash size 16MB, sector count = 256 Flash: 16 MB * Scan for Linux kernel images ... * Linux kernel found at 9F050000 * Scan completed. Only one Linux kernel image found. Using default environment In: serial Out: serial Err: serial Net: ath_gmac_enet_initialize... ath_gmac_enet_initialize: reset mask:c02200 Scorpion ---->S27 PHY* S27 reg init : cfg1 0x800c0000 cfg2 0x7114 eth0: c4:12:f5:1a:5f:03 athrs27_phy_setup ATHR_PHY_CONTROL 4 :1000 athrs27_phy_setup ATHR_PHY_SPEC_STAUS 4 :10 eth0 up Honey Bee ----> MAC 1 S27 PHY * S27 reg init ATHRS27: resetting s27 ATHRS27: s27 reset done : cfg1 0x800c0000 cfg2 0x7214 eth1: c4:12:f5:1a:5f:03 athrs27_phy_setup ATHR_PHY_CONTROL 0 :1000 athrs27_phy_setup ATHR_PHY_SPEC_STAUS 0 :10 athrs27_phy_setup ATHR_PHY_CONTROL 1 :1000 athrs27_phy_setup ATHR_PHY_SPEC_STAUS 1 :10 athrs27_phy_setup ATHR_PHY_CONTROL 2 :1000 athrs27_phy_setup ATHR_PHY_SPEC_STAUS 2 :10 athrs27_phy_setup ATHR_PHY_CONTROL 3 :1000 athrs27_phy_setup ATHR_PHY_SPEC_STAUS 3 :10 eth1 up eth0, eth1 Setting 0x181162c0 to 0x1021a100 Hit any key to stop autoboot: 0 ## Booting image at 9f050000 ... Image Name: Linux Kernel Image Created: 2016-06-29 9:47:18 UTC Image Type: MIPS Linux Kernel Image (lzma compressed) Data Size: 989864 Bytes = 966.7 kB Load Address: 80002000 Entry Point: 8023dd00 Verifying Checksum at 0x9f050040 ...OK Uncompressing Kernel Image ... OK No initrd ## Transferring control to Linux (at address 8023dd00) ... ## Giving linux memsize in bytes, 67108864 Starting kernel ... Booting QCA953x Linux version 2.6.31 (adminuser@adminuser-VirtualBox) (gcc version 4.3.3 (GCC) ) #1 Wed Jun 29 05:43:21 EDT 2016 flash_size passed from bootloader = 16 arg 1: console=ttyS0,115200 arg 2: root=31:6 arg 3: rootfstype=squashfs arg 4: init=/sbin/init arg 5: mtdparts=ath-nor0:64k(u-boot),64k(ART),64k(MP),64k(config),64k(bootarg),2048k(uImage),12736k(rootfs1),64k(log),512k(mydlink),512k(data1),128k(data2),64k(data3) arg 6: mem=64M CPU revision is: 00019374 (MIPS 24Kc) ath_sys_frequency: cpu apb ddr apb cpu 550 ddr 400 ahb 200 Determined physical RAM map: memory: 02000000 @ 00000000 (usable) User-defined physical RAM map: memory: 04000000 @ 00000000 (usable) Zone PFN ranges: Normal 0x00000000 -> 0x00004000 Movable zone start PFN for each node early_node_map[1] active PFN ranges 0: 0x00000000 -> 0x00004000 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 Kernel command line: console=ttyS0,115200 root=31:6 rootfstype=squashfs init=/sbin/init mtdparts=ath-nor0:64k(u-boot),64k(ART),64k(MP),64k(config),64k(bootarg),2048k(uImage),12736k(rootfs1),64k(log),512k(mydlink),512k(data1),128k(data2),64k(data3) mem=64M PID hash table entries: 256 (order: 8, 1024 bytes) Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes. Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes Writing ErrCtl register=00000000 Readback ErrCtl register=00000000 Memory: 55732k/65536k available (2303k kernel code, 9728k reserved, 478k data, 120k init, 0k highmem) NR_IRQS:128 plat_time_init: plat time init done Calibrating delay loop... 365.56 BogoMIPS (lpj=731136) Mount-cache hash table entries: 512 ****************ALLOC*********************** Packet mem: 802e84a0 (0x600000 bytes) ******************************************** NET: Registered protocol family 16 bio: create slab <bio-0> at 0 usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 2048 (order: 2, 16384 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) TCP reno registered NET: Registered protocol family 1 ATH GPIOC major 0 squashfs: version 4.0 (2009/01/31) Phillip Lougher JFFS2 version 2.2 (NAND) (ZLIB) (RTIME) (c) 2001-2006 Red Hat, Inc. msgmni has been set to 109 alg: No test for stdrng (krng) io scheduler noop registered (default) Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0xb8020000 (irq = 19) is a 16550A console [ttyS0] enabled loop: module loaded 12 cmdlinepart partitions found on MTD device ath-nor0 Creating 12 MTD partitions on "ath-nor0": 0x000000000000-0x000000010000 : "u-boot" 0x000000010000-0x000000020000 : "ART" 0x000000020000-0x000000030000 : "MP" 0x000000030000-0x000000040000 : "config" 0x000000040000-0x000000050000 : "bootarg" 0x000000050000-0x000000250000 : "uImage" 0x000000250000-0x000000ec0000 : "rootfs1" 0x000000ec0000-0x000000ed0000 : "log" 0x000000ed0000-0x000000f50000 : "mydlink" 0x000000f50000-0x000000fd0000 : "data1" 0x000000fd0000-0x000000ff0000 : "data2" 0x000000ff0000-0x000001000000 : "data3" usbmon: debugfs is not available ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver Port Status 1c000004 ath-ehci ath-ehci.0: ATH EHCI ath-ehci ath-ehci.0: new USB bus registered, assigned bus number 1 ehci_reset Intialize USB CONTROLLER in host mode: 13 ehci_reset Port Status 1c000000 ath-ehci ath-ehci.0: irq 3, io mem 0x1b000000 ehci_reset Intialize USB CONTROLLER in host mode: 13 ehci_reset Port Status 1c000000 ath-ehci ath-ehci.0: USB 2.0 started, EHCI 1.00 usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: ATH EHCI usb usb1: Manufacturer: Linux 2.6.31 ehci_hcd usb usb1: SerialNumber: platform usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected usbcore: registered new interface driver cdc_acm cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters usbcore: registered new interface driver usbserial USB Serial support registered for generic usbcore: registered new interface driver usbserial_generic usbserial: USB Serial Driver core USB Serial support registered for cp210x usbcore: registered new interface driver cp210x cp210x: v0.09:Silicon Labs CP210x RS232 serial adaptor driver USB Serial support registered for pl2303 usbcore: registered new interface driver pl2303 pl2303: Prolific PL2303 USB to serial adaptor driver nf_conntrack version 0.5.0 (1024 buckets, 4096 max) TCP cubic registered NET: Registered protocol family 10 IPv6 over IPv4 tunneling driver NET: Registered protocol family 17 Bridge firewalling registered RPC: Registered udp transport module. RPC: Registered tcp transport module. arch/mips/atheros/gpio.c (ath_simple_config_init) MP_GPIO: 15 arch/mips/atheros/gpio.c (ath_simple_config_init) RESET_BTN_GPIO: 17, RESET_BTN_TRIGGER_LEVEL: 0 arch/mips/atheros/gpio.c (ath_simple_config_init) WPS_BTN_GPIO: 3, WPS_BTN_TRIGGER_LEVEL: 0 arch/mips/atheros/gpio.c (ath_simple_config_init) WPS_LED_GPIO: 11, LED_ACTIVE_LEVEL: 0 arch/mips/atheros/gpio.c (ath_simple_config_init) I2C_SDA_GPIO: 0, INT_I2C_LOW: 0 arch/mips/atheros/gpio.c (ath_simple_config_init) I2C_SCL_GPIO: 1, INT_I2C_LOW: 0 arch/mips/atheros/gpio.c (ath_simple_config_init) POWER_LED_GPIO1: 13, LED_ACTIVE_LEVEL: 0 arch/mips/atheros/gpio.c (ath_simple_config_init) POWER_LED_GPIO2: 14 VFS: Mounted root (squashfs filesystem) readonly on device 31:6. Freeing unused kernel memory: 120k freed init started: BusyBox v1.21.1--LSDK-10.2-00082-4 (2016-06-29 05:45:06 EDT) starting pid 177, tty '': '/etc/rc.d/rcS' QCA953x Watchdog Timer enabled (30 seconds, nowayout) <pca9554_config_set|42> i2c_value = 70 <pca9554_config_set|47> i2c_value = 03 <pca9554_config_set|52> i2c_value = 00 <pca9554_output_set|100> i2c_value = 70 <pca9554_output_set|105> i2c_value = 01 <pca9554_output_set|110> i2c_value = ff vm.panic_on_oom = 1 kernel.panic = 2 Please press Enter to activate this console. Wed Jun 29 00:00:00 UTC 2016 128+0 records in 128+0 records out [control_center.c] dch mtd found: mtd8 [control_center.c] kernel jffs2 support detected. [control_center.c] mount /dev/mtdblock8 to /dch. killall: zw_meter_check: no process killed killall: zw_center: no process killed <pca9554_output_set|100> i2c_value = 70 <pca9554_output_set|105> i2c_value = 01 <pca9554_output_set|110> i2c_value = 02 128+0 records in 128+0 records out <pca9554_output_set|100> i2c_value = 70 /dev/watchdog device found. Try to launch watchdog daemon. qca955x_GMAC: Length per segment 1536 953x_GMAC: qca953x_gmac_attach Link Int Enabled qca953x_set_gmac_caps CHECK DMA STATUS mac:0 Registering S27.... qca955x_GMAC: RX TASKLET - Pkts per Intr:18 qca955x_GMAC: unit 0 --> c4:12:f5:1a:5f:03 <pca9554_output_set|105> i2c_value = 01 qca955x_GMAC: Max segments per packet : 1 qca955x_GMAC: Max tx descriptor count : 512 qca955x_GMAC: Max rx descriptor count : 128 qca955x_GMAC: Mac capability flags : 2581 953x_GMAC: qca953x_gmac_attach Link Int Enabled qca953x_set_gmac_caps CHECK DMA STATUS mac:1 Registering S27.... qca955x_GMAC: RX TASKLET - Pkts per Intr:18 qca955x_GMAC: unit 1 --> c4:12:f5:1a:5f:03 usb 1-1: new high speed USB device using ath-ehci and address 2 qca955x_GMAC: Max segments per packet : 1 qca955x_GMAC: Max tx descriptor count : 512 qca955x_GMAC: Max rx descriptor count : 128 qca955x_GMAC: Mac capability flags : 2D81 usb 1-1: New USB device found, idVendor=05e3, idProduct=0608 usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0 usb 1-1: Product: USB2.0 Hub usb 1-1: configuration #1 chosen from 1 choice hub 1-1:1.0: USB hub found hub 1-1:1.0: 4 ports detected <pca9554_output_set|110> i2c_value = 00 asf: module license 'Proprietary' taints kernel. Disabling lock debugging due to kernel taint usb 1-1.1: new full speed USB device using ath-ehci and address 3 usb 1-1.1: New USB device found, idVendor=0658, idProduct=0200 usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 usb 1-1.1: configuration #1 chosen from 1 choice cdc_acm 1-1.1:1.0: This device cannot do calls on its own. It is not a modem. cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device ath_hal: 0.9.17.1 (AR5416, AR9380, REGOPS_FUNC, WRITE_EEPROM, TX_DATA_SWAP, RX_DATA_SWAP, 11D) athr_gmac_ring_alloc Allocated 8192 at 0x82e96000 athr_gmac_ring_alloc Allocated 2048 at 0x82c8d800 HONEYBEE ----> S27 PHY MDIO ATHRS27: resetting s27 ATHRS27: s27 reset done Setting Drop CRC Errors, Pause Frames and Length Error frames Setting PHY... ath_rate_atheros: Copyright (c) 2001-2005 Atheros Communications, Inc, All Rights Reserved ath_dev: Copyright (c) 2001-2007 Atheros Communications, Inc, All Rights Reserved ath_ahb: 10.2-00082-4 (Atheros/multi-bss) __ath_attach: Set global_scn[0] Enterprise mode: 0x03fc0000 Restoring Cal data from Flash Green-AP : Green-AP : Attached ath_get_caps[6148] rx chainmask mismatch actual 3 sc_chainmak 0 ath_get_caps[6123] tx chainmask mismatch actual 3 sc_chainmak 0 ADDRCONF(NETDEV_UP): eth1: link is not ready SC Callback Registration for wifi0 wifi0: Atheros ???: mem=0xb8100000, irq=2 ath_pci: 10.2-00082-4 (Atheros/multi-bss) device eth1 entered promiscuous mode route: resolving dev Control Center(219) : Recive a request(410) from 288 Application Center(247) : Recive a request(410) from 219 Control Center(219) : Recive a response(410) from 247 Control Center(219) : Recive a request(414) from 288 Application Center(247) : Recive a request(414) from 219 Failed to kill daemon: No such file or directory Control Center(219) : Recive a response(414) from 247 VAP device ath0 created ath0 DES SSID SET=DCH-G020-5F03 ieee80211_ioctl_siwmode: imr.ifm_active=131712, new mode=3, valid=1 Interface doesn't accept private ioctl... ForBiasAuto (8BE0): Operation not permitted Set freq vap stop send + 82ef4000 Set freq vap stop send -82ef4000 Set wait done --82ef4000 device ath0 entered promiscuous mode br0: port 2(ath0) entering learning state Configuration fi ieee80211_ioctl_siwmode: imr.ifm_active=393856, new mode=3, valid=1 le: /var/etc/oob_ieee80211_scan_unregister_event_handler: Failed to unregister evhandler=82f4bfc4 arg=82c70000 .ap_bss Scan in progress.. Cancelling it br0: port 2(ath0) entering disabled state DEVICE IS DOWN ifname=ath0 ath0: Could not DEVICE IS DOWN ifname=ath0 connect to kernel driver Using interface ath0 with hwaddr c4:12:f5:1a:5f:03 and ssid 'DCH-G020-5F03' random: Only 18/20 bytes of strong random data available from /dev/random random: Not enough entropy pool available for secure operations WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects br0: port 2(ath0) entering learning state br0: port 2(ath0) entering forwarding state mlme_create_infra_bss : Overriding HT40 channel with HT20 channel [zw_center]:ZWave inital success! Control Center(219) : Recive a request(513) from 366 <led_center:977>: CMD MATCHED cmd = 513 service_event : forward a zwave event to the zwave center(366)!
OpenWrt Bootlog
U-Boot 1.1.4--LSDK-10.1.432 (Mar 17 2015 - 19:24:10) ap143 - Honey Bee 1.0 DRAM: 64 MB Top of RAM usable for U-Boot at: 84000000 Reserving 157k for U-Boot at: 83fd8000 Reserving 192k for malloc() at: 83fa8000 Reserving 44 Bytes for Board Info at: 83fa7fd4 Reserving 36 Bytes for Global Data at: 83fa7fb0 Reserving 128k for boot params() at: 83f87fb0 Stack Pointer at: 83f87f98 Now running in RAM - U-Boot at: 83fd8000 ============================================ Date:Mar 17 2015 Time:19:24:10 Loader Version: v1.01 Build:01 Module Name: DCH-G020X ============================================ Flash Manuf Id 0xc2, DeviceId0 0x20, DeviceId1 0x18 flash size 16MB, sector count = 256 Flash: 16 MB * Scan for Linux kernel images ... * Linux kernel found at 9F050000 * Scan completed. Only one Linux kernel image found. Using default environment In: serial Out: serial Err: serial Net: ath_gmac_enet_initialize... ath_gmac_enet_initialize: reset mask:c02200 Scorpion ---->S27 PHY* S27 reg init : cfg1 0x800c0000 cfg2 0x7114 eth0: c4:12:f5:1a:5f:03 athrs27_phy_setup ATHR_PHY_CONTROL 4 :1000 athrs27_phy_setup ATHR_PHY_SPEC_STAUS 4 :10 eth0 up Honey Bee ----> MAC 1 S27 PHY * S27 reg init ATHRS27: resetting s27 ATHRS27: s27 reset done : cfg1 0x800c0000 cfg2 0x7214 eth1: c4:12:f5:1a:5f:03 athrs27_phy_setup ATHR_PHY_CONTROL 0 :1000 athrs27_phy_setup ATHR_PHY_SPEC_STAUS 0 :10 athrs27_phy_setup ATHR_PHY_CONTROL 1 :1000 athrs27_phy_setup ATHR_PHY_SPEC_STAUS 1 :10 athrs27_phy_setup ATHR_PHY_CONTROL 2 :1000 athrs27_phy_setup ATHR_PHY_SPEC_STAUS 2 :10 athrs27_phy_setup ATHR_PHY_CONTROL 3 :1000 athrs27_phy_setup ATHR_PHY_SPEC_STAUS 3 :10 eth1 up eth0, eth1 Setting 0x181162c0 to 0x1021a100 Hit any key to stop autoboot: 0 ## Booting image at 9f050000 ... Image Name: MIPS OpenWrt Linux-4.9.120 Created: 2018-08-16 7:51:15 UTC Image Type: MIPS Linux Kernel Image (lzma compressed) Data Size: 1390823 Bytes = 1.3 MB Load Address: 80060000 Entry Point: 80060000 Verifying Checksum at 0x9f050040 ...OK Uncompressing Kernel Image ... OK No initrd ## Transferring control to Linux (at address 80060000) ... ## Giving linux memsize in bytes, 67108864 Starting kernel ... [ 0.000000] Linux version 4.9.120 (sebastian@sebastian-msi) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r7258-5eb055306f) ) #0 Thu Aug 16 07:51:15 2018 [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU0 revision is: 00019374 (MIPS 24Kc) [ 0.000000] SoC: Qualcomm Atheros QCA9533 ver 2 rev 0 [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 04000000 @ 00000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes. [ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000000000000-0x0000000003ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x0000000003ffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff] [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 [ 0.000000] Kernel command line: board=DCH-G020-A1 mtdparts=spi0.0:64k(u-boot)ro,64k(art)ro,64k(mp)ro,64k(config)ro,64k(bootarg)ro,14784k(firmware),64k(log)ro,512k(mydlink)ro,512k(data1)ro,128k(data2)ro,64k(data3)ro console=ttyS0,115200 rootfstype=squashfs noinitrd [ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes) [ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Writing ErrCtl register=00000000 [ 0.000000] Readback ErrCtl register=00000000 [ 0.000000] Memory: 59896K/65536K available (3158K kernel code, 169K rwdata, 796K rodata, 284K init, 213K bss, 5640K reserved, 0K cma-reserved) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:51 [ 0.000000] Clocks: CPU:550.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:25.000MHz [ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6950037990 ns [ 0.000011] sched_clock: 32 bits at 275MHz, resolution 3ns, wraps every 7809031678ns [ 0.008275] Calibrating delay loop... 366.18 BogoMIPS (lpj=1830912) [ 0.071081] pid_max: default: 32768 minimum: 301 [ 0.076088] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.083074] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.094139] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.104579] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.111775] NET: Registered protocol family 16 [ 0.118409] MIPS: machine is D-Link DCH-G020 Rev. A1 [ 0.384124] i2c-gpio i2c-gpio.0: using pins 0 (SDA) and 1 (SCL) [ 0.391422] clocksource: Switched to clocksource MIPS [ 0.398066] NET: Registered protocol family 2 [ 0.403754] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 0.411126] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 0.417907] TCP: Hash tables configured (established 1024 bind 1024) [ 0.424763] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.430949] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.437945] NET: Registered protocol family 1 [ 0.448635] Crashlog allocated RAM at address 0x3f00000 [ 0.455740] workingset: timestamp_bits=30 max_order=14 bucket_order=0 [ 0.470803] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.477010] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.499098] io scheduler noop registered [ 0.503310] io scheduler deadline registered (default) [ 0.509105] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled [ 0.516362] console [ttyS0] disabled [ 0.540307] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 1562500) is a 16550A [ 0.549432] console [ttyS0] enabled [ 0.549432] console [ttyS0] enabled [ 0.556992] bootconsole [early0] disabled [ 0.556992] bootconsole [early0] disabled [ 0.570207] m25p80 spi0.0: found mx25l12805d, expected m25p80 [ 0.576940] m25p80 spi0.0: mx25l12805d (16384 Kbytes) [ 0.582289] 11 cmdlinepart partitions found on MTD device spi0.0 [ 0.588489] Creating 11 MTD partitions on "spi0.0": [ 0.593575] 0x000000000000-0x000000010000 : "u-boot" [ 0.601280] 0x000000010000-0x000000020000 : "art" [ 0.608854] 0x000000020000-0x000000030000 : "mp" [ 0.616308] 0x000000030000-0x000000040000 : "config" [ 0.624106] 0x000000040000-0x000000050000 : "bootarg" [ 0.631998] 0x000000050000-0x000000ec0000 : "firmware" [ 0.657821] 2 uimage-fw partitions found on MTD device firmware [ 0.664021] 0x000000050000-0x0000001b0000 : "kernel" [ 0.670961] 0x0000001b0000-0x000000ec0000 : "rootfs" [ 0.678315] mtd: device 7 (rootfs) set to be root filesystem [ 0.684296] 1 squashfs-split partitions found on MTD device rootfs [ 0.690700] 0x000000440000-0x000000ec0000 : "rootfs_data" [ 0.699133] 0x000000ec0000-0x000000ed0000 : "log" [ 0.706777] 0x000000ed0000-0x000000f50000 : "mydlink" [ 0.714756] 0x000000f50000-0x000000fd0000 : "data1" [ 0.722586] 0x000000fd0000-0x000000ff0000 : "data2" [ 0.730218] 0x000000ff0000-0x000001000000 : "data3" [ 0.739241] libphy: Fixed MDIO Bus: probed [ 0.770907] libphy: ag71xx_mdio: probed [ 1.404002] ag71xx-mdio.1: Found an AR934X built-in switch [ 1.457504] eth0: Atheros AG71xx at 0xba000000, irq 5, mode:GMII [ 1.465744] NET: Registered protocol family 10 [ 1.474844] NET: Registered protocol family 17 [ 1.479637] 8021q: 802.1Q VLAN Support v1.8 [ 1.493164] VFS: Mounted root (squashfs filesystem) readonly on device 31:7. [ 1.502878] Freeing unused kernel memory: 284K [ 1.507471] This architecture does not have kernel memory protection. [ 2.224028] init: Console is alive [ 2.227848] init: - watchdog - [ 2.491459] random: fast init done [ 3.263203] kmodloader: loading kernel modules from /etc/modules-boot.d/* [ 3.341637] usbcore: registered new interface driver usbfs [ 3.347404] usbcore: registered new interface driver hub [ 3.353053] usbcore: registered new device driver usb [ 3.366886] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 3.376188] ehci-platform: EHCI generic platform driver [ 3.381794] ehci-platform ehci-platform: EHCI Host Controller [ 3.387776] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1 [ 3.398126] ehci-platform ehci-platform: irq 3, io mem 0x1b000000 [ 3.431471] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00 [ 3.439121] hub 1-0:1.0: USB hub found [ 3.443523] hub 1-0:1.0: 1 port detected [ 3.449675] kmodloader: done loading kernel modules from /etc/modules-boot.d/* [ 3.459790] init: - preinit - [ 4.299938] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready Press the [f] key and hit [enter] to enter failsafe mode Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level [ 5.933223] eth0: link up (1000Mbps/Full duplex) [ 5.938045] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 7.564648] jffs2: notice: (424) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found. [ 7.584035] mount_root: switching to jffs2 overlay [ 7.629525] urandom-seed: Seeding with /etc/urandom.seed [ 7.843800] eth0: link down [ 7.865992] procd: - early - [ 7.869108] procd: - watchdog - [ 8.474223] procd: - watchdog - [ 8.477831] procd: - ubus - [ 8.524758] random: ubusd: uninitialized urandom read (4 bytes read) [ 8.542275] random: ubusd: uninitialized urandom read (4 bytes read) [ 8.549409] random: ubusd: uninitialized urandom read (4 bytes read) [ 8.557180] procd: - init - Please press Enter to activate this console. [ 9.174368] kmodloader: loading kernel modules from /etc/modules.d/* [ 9.187576] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 9.206139] i2c /dev entries driver [ 9.217271] usbcore: registered new interface driver cdc_acm [ 9.223222] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters [ 9.233949] Loading modules backported from Linux version wt-2017-11-01-0-gfe248fc2c180 [ 9.242323] Backport generated by backports.git v4.14-rc2-1-31-g86cf0e5d [ 9.253407] ip_tables: (C) 2000-2006 Netfilter Core Team [ 9.270136] nf_conntrack version 0.5.0 (1024 buckets, 4096 max) [ 9.354722] xt_time: kernel timezone is -0000 [ 9.436367] PPP generic driver version 2.4.2 [ 9.447790] NET: Registered protocol family 24 [ 9.529363] ieee80211 phy0: Atheros AR9531 Rev:2 mem=0xb8100000, irq=47 [ 9.616198] kmodloader: done loading kernel modules from /etc/modules.d/* [ 11.039147] urandom_read: 5 callbacks suppressed [ 11.039158] random: jshn: uninitialized urandom read (4 bytes read) [ 11.132958] random: ubusd: uninitialized urandom read (4 bytes read) [ 21.138241] br-lan: port 1(eth0) entered blocking state [ 21.143741] br-lan: port 1(eth0) entered disabled state [ 21.149594] device eth0 entered promiscuous mode [ 21.241392] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready [ 22.763344] eth0: link up (1000Mbps/Full duplex) [ 22.768190] br-lan: port 1(eth0) entered blocking state [ 22.773636] br-lan: port 1(eth0) entered forwarding state [ 22.811940] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready BusyBox v1.28.3 () built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt 18.06.1, r7258-5eb055306f ----------------------------------------------------- root@OpenWrt:/#
todo
- support i2c rtc
- figure out further GPIO pins to add more peripherals (e.g. unpopulated LEDs, switch on S4, remaining pins of PCA9554 etc.)