OpenWrt Forum Archive

Topic: Dlink DGS-1210 switch series

The content of this topic has been archived between 29 Mar 2018 and 28 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Dear all,

I would like to hack the D-Link DGS-1210-10P series. I bought this hardware because it provides 8 nice Gigs ports and a Web GUI. And the vendor announced that it relies on GNU/Linux. So as a normal person, I thought "Nice it is going to be supporte a LONG time".

http://www.dlink.com/-/media/Images/Products/DGS/1210/C1/DGS121010C1Image%20LFront.png?h=353&w=628&crop=1

Also, all firmware source code is available on : http://tsd.dlink.com.tw. Souce code can be compiled using scipts and is provided by D-Link. It includes the Linux kernel and all configuration files. There is even a makefile provided (but no .config).

The source code for my model is DGS-1210-10P here :
https://dlink-gpl.s3.amazonaws.com/GPL1 … ode.tar.gz

Unfortunately, hardware revisions A1, A2, B1, C1 and D1 are not compatible. D-Link no longer releases firmware for hardware revision A1. I am using the oldest revision A1 which was compiled in Oct 02, 2012 WITHOUT ipv6 support. IPv6 Launch began on 6 June 2012.

Now I am stuck with 3 of those nice switches without IPV6.

I am very interested in debricking those firewalls and compiling OpenWRT.
Any idea if OpenWrt can run on those switches?

I wonder what stops D-Link from providing IPv6 switches with updated firmwares. These are REALLY nice switches and I need bending edge software running on it. The first step would be to locate the console to unbrick it.

Kind regards,
Gnultella

(Last edited by gnutella on 13 Mar 2015, 18:42)

I found some building information:

Install & Build
===============
    1. Build Environment: 
        1.1 Red Hat 9, Fedora core 3, fully install.
        1.2 you can open Terminal for using command line.

    2. Put "DGS-1210-10P-GPLSourceCode.tar.gz" under /home and using command "tar -zxvf DGS-1210-10P-GPLSourceCode.tar.gz" to untar it.
    
    3. Prepare for toolchain:
        Copy /home/DGS-1210-10P/toolchain/devtools_0824.tar.gz to /opt folder and using command "tar -zxvf devtools_0824.tar.gz" to untar it.
       
    4. Prepare for SourceCode:
       In os folder and using command "tar -zxvf linux-2.6.22.18.tar.gz" to untar it.
    
    5. Add yourself to the sudo list
        Edit "/etc/sudoers" to add your account to the sudoers.
        For example :
        user    ALL=(ALL)    NOPASSWD: ALL 
        
        This action is only allowed by super user, and the file "sudoers" is read-only.
        You must login in super user and change the file permission.
        Remember to change file permission back to 440 by command "chmod 440 /etc/sudoers".

    
    6. In /home/DGS-1210-10P/ Then type "make GPLos"
    
    7. After building finished, you can find /home/DGS-1210-10P/image folder and firmware("DGS-1210-10P-OS.hex").       

the .config file, which is provided by D-Link.
It is available from the os/linux-2.6.22.18.tar.gz file inside GPL source code provided by D-Link.

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.22.18
# Mon Aug 31 14:40:02 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
# CONFIG_GENERIC_GPIO is not set
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_MMU=y
# CONFIG_NO_IOPORT is not set
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ZONE_DMA=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32

#
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_KMOD is not set

#
# Block layer
#
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"

#
# System Type
#
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_FEROCEON_ORION is not set
CONFIG_ARCH_FEROCEON_KW=y
# CONFIG_ARCH_FEROCEON_MV78XX0 is not set
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_CLPS7500 is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CO285 is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_IMX is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP23XX is not set
# CONFIG_ARCH_IXP2000 is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_L7200 is not set
# CONFIG_ARCH_KS8695 is not set
# CONFIG_ARCH_NS9XXX is not set
# CONFIG_ARCH_PNX4008 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_DAVINCI is not set
# CONFIG_ARCH_OMAP is not set

#
# Feroceon SoC options
#
# CONFIG_MV88F6281 is not set
# CONFIG_MV98DX3121 is not set
CONFIG_MV98DX4122=y
# CONFIG_OVERRIDE_ETH_CMDLINE is not set
# CONFIG_JTAG_DEBUG is not set

#
# Feroceon SoC Included Features
#
CONFIG_MV_INCLUDE_PEX=y
# CONFIG_MV_INCLUDE_USB is not set
CONFIG_MV_INCLUDE_XOR=y
# CONFIG_MV_INCLUDE_CESA is not set
CONFIG_MV_INCLUDE_NAND=y
# CONFIG_MV_INCLUDE_INTEG_SATA is not set
# CONFIG_MV_INCLUDE_TDM is not set
CONFIG_MV_INCLUDE_GIG_ETH=y
CONFIG_MV_INCLUDE_SPI=y
CONFIG_MV_INCLUDE_SDIO=y
# CONFIG_MV_INCLUDE_AUDIO is not set
# CONFIG_MV_INCLUDE_TS is not set
CONFIG_MV_PRESTERA_SWITCH=y
# CONFIG_MV_PRESTERA_SWITCH_ACTIVATE is not set
CONFIG_MV_GPP_MAX_PINS=64
CONFIG_MV_DCACHE_SIZE=0x4000
CONFIG_MV_ICACHE_SIZE=0x4000

#
# Feroceon SoC MTD support
#
CONFIG_MV_FLASH_CTRL=y
CONFIG_MV_INCLUDE_SFLASH_MTD=y
# CONFIG_MV_SPI_BOOT is not set
# CONFIG_MV_NAND is not set
CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
# CONFIG_USE_DSP is not set
CONFIG_L2_CACHE_ENABLE=y
# CONFIG_CPU_L2_DCACHE_WRITETHROUGH is not set
CONFIG_FEROCEON_PROC=y
# CONFIG_MV_GENERIC_NAS_FS is not set
CONFIG_UBOOT_STRUCT=y
# CONFIG_MV_DBG_TRACE is not set
# CONFIG_MV_REAL_TIME is not set
# CONFIG_MV_CPU_PERF_CNTRS is not set

#
# Soc DMA accelerations
#
CONFIG_MV_USE_XOR_ENGINE=y
CONFIG_MV_RAID5_XOR_OFFLOAD=y
CONFIG_MV_XORMEMCOPY=y
CONFIG_MV_XOR_MEMCOPY_THRESHOLD=128
CONFIG_MV_XORMEMZERO=y
CONFIG_MV_XOR_MEMZERO_THRESHOLD=192
# CONFIG_MV_USE_XOR_FOR_COPY_USER_BUFFERS is not set
# CONFIG_USE_TWO_ENGINES is not set
CONFIG_USE_FOUR_ENGINES=y

#
# SoC Networking support
#
CONFIG_MV_ETHERNET=y
CONFIG_MV_ETH_PORTS_NUM=2

#
# Network Interface Configuration
#
CONFIG_MV_ETH_0_MTU=1500
CONFIG_MV_ETH_0_MACADDR="00:00:00:00:00:80"
CONFIG_MV_ETH_1_MTU=1500
CONFIG_MV_ETH_1_MACADDR="00:00:00:00:00:81"

#
# Rx/Tx Queue Configuration
#
CONFIG_MV_ETH_RX_Q_NUM=1
CONFIG_MV_ETH_TX_Q_NUM=1
CONFIG_MV_ETH_NUM_OF_RX_DESCR=128
CONFIG_MV_ETH_NUM_OF_TX_DESCR=532

#
# TCP/UDP Offloading
#
CONFIG_MV_ETH_TSO=y
# CONFIG_MV_ETH_UFO is not set

#
# Control and Statistics
#
CONFIG_MV_ETH_PROC=y
CONFIG_MV_ETH_STATS_ERROR=y
CONFIG_MV_ETH_STATS_INFO=y
# CONFIG_MV_ETH_STATS_DEBUG is not set
CONFIG_MV_LINUX_COUNTERS_DISABLE=y

#
# Advanced Features
#
CONFIG_MV_ETH_TIMER_PERIOD=10
CONFIG_MV_SKB_HEADROOM=96
CONFIG_MV_SKB_REUSE=y
CONFIG_MV_ETH_NFP=y
CONFIG_MV_ETH_NFP_AGING_TIMER=15
# CONFIG_MV_NFP_STATS is not set
# CONFIG_MV_GATEWAY is not set

#
# Marvell SDIOMMC driver
#
CONFIG_ARCH_FEROCEON=y

#
# Processor Type
#
CONFIG_CPU_32=y
CONFIG_CPU_ARM926T=y
CONFIG_CPU_32v5=y
CONFIG_CPU_ABRT_EV5TJ=y
CONFIG_CPU_CACHE_VIVT=y
CONFIG_CPU_COPY_V4WB=y
CONFIG_CPU_TLB_V4WBI=y
CONFIG_CPU_CP15=y
CONFIG_CPU_CP15_MMU=y

#
# Processor Features
#
CONFIG_ARM_THUMB=y
# CONFIG_CPU_BIG_ENDIAN is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
# CONFIG_OUTER_CACHE is not set

#
# Bus support
#
CONFIG_PCI=y
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCI_DEBUG is not set

#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set

#
# Kernel Features
#
# CONFIG_TICK_ONESHOT is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
# CONFIG_PREEMPT is not set
CONFIG_HZ=100
CONFIG_AEABI=y
CONFIG_OABI_COMPAT=y
CONFIG_REORDER=y
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_LEDS=y
# CONFIG_LEDS_CPU is not set
CONFIG_ALIGNMENT_TRAP=y

#
# Boot options
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="console=ttyAM0 root=/dev/nfs rw nfsroot=10.4.50.31:/home/rshitrit/cramfs-1.1/cramfs-1.1/shoko2 mem=32M ip=10.4.50.99:10.4.50.31:::ARM:eth0:none"
# CONFIG_XIP_KERNEL is not set
# CONFIG_KEXEC is not set

#
# Floating point emulation
#

#
# At least one emulation must be selected
#
# CONFIG_FPE_NWFPE is not set
# CONFIG_FPE_FASTFPE is not set
# CONFIG_VFP is not set

#
# Userspace binary formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set

#
# Power management options
#
# CONFIG_PM is not set

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set

#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set

#
# Wireless
#
# CONFIG_CFG80211 is not set
# CONFIG_WIRELESS_EXT is not set
# CONFIG_MAC80211 is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set

#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_AFS_PARTS is not set

#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
CONFIG_NFTL=y
CONFIG_NFTL_RW=y
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set

#
# RAM/ROM/Flash chip drivers
#
# CONFIG_MTD_CFI is not set
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set

#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PLATRAM is not set

#
# Self-contained MTD device drivers
#
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLOCK2MTD is not set

#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_VERIFY_WRITE=y
# CONFIG_MTD_NAND_ECC_SMC is not set
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_CAFE is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ONENAND is not set

#
# UBI - Unsorted block images
#
# CONFIG_MTD_UBI is not set

#
# Parallel port support
#
# CONFIG_PARPORT is not set

#
# Plug and Play support
#
# CONFIG_PNPACPI is not set

#
# Block devices
#
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set

#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
# CONFIG_SCSI is not set
# CONFIG_SCSI_DMA is not set
# CONFIG_SCSI_NETLINK is not set
# CONFIG_ATA is not set

#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set

#
# Fusion MPT device support
#
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_IEEE1394 is not set

#
# I2O device support
#
# CONFIG_I2O is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_ARCNET is not set
# CONFIG_PHYLIB is not set

#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_SMC91X is not set
# CONFIG_DM9000 is not set

#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_SC92031 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set

#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# Telephony Support
#
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

#
# Hardware I/O ports
#
# CONFIG_SERIO is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set

#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=16

#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_DRM is not set
# CONFIG_RAW_DRIVER is not set

#
# TPM devices
#
# CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=y

#
# I2C Algorithms
#
# CONFIG_I2C_ALGOBIT is not set
# CONFIG_I2C_ALGOPCF is not set
# CONFIG_I2C_ALGOPCA is not set

#
# I2C Hardware Bus support
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set

#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_DS1337 is not set
# CONFIG_SENSORS_DS1374 is not set
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set

#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set

#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set
# CONFIG_HWMON is not set

#
# Misc devices
#
# CONFIG_PHANTOM is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set

#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set

#
# LED devices
#
# CONFIG_NEW_LEDS is not set

#
# LED drivers
#

#
# LED Triggers
#

#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set
# CONFIG_DAB is not set

#
# Graphics support
#
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set
# CONFIG_FB is not set

#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y

#
# Sound
#
# CONFIG_SOUND is not set

#
# HID Devices
#
# CONFIG_HID is not set

#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
# CONFIG_USB is not set

#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#

#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set

#
# Real Time Clock
#
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set

#
# File systems
#
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
# CONFIG_EXT4DEV_FS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set

#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set

#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set

#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_SUMMARY is not set
# CONFIG_JFFS2_FS_XATTR is not set
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_CRAMFS is not set
CONFIG_SQUASHFS=y
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set

#
# Network File Systems
#
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
# CONFIG_NFSD is not set
CONFIG_ROOT_NFS=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_BIND34 is not set
# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y

#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=y
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set

#
# Distributed Lock Manager
#
# CONFIG_DLM is not set

#
# Profiling support
#
# CONFIG_PROFILING is not set

#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_MUST_CHECK=y
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
CONFIG_FRAME_POINTER=y
CONFIG_FORCED_INLINING=y
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_FAULT_INJECTION is not set
CONFIG_DEBUG_USER=y
# CONFIG_DEBUG_ERRORS is not set
CONFIG_DEBUG_LL=y
# CONFIG_DEBUG_ICEDCC is not set

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set

#
# Cryptographic options
#
# CONFIG_CRYPTO is not set

#
# Library routines
#
CONFIG_BITREVERSE=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
CONFIG_LIBCRC32C=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y

(Last edited by gnutella on 14 Mar 2015, 12:10)

Apparently, the firmware can build and all source code is provided.

I made a photo of the motherboard.
I don't know how to upload photos here.

There are 8 pins available (should be /dev/ttyS0).

The switch has a nice COM2 port available inside (unsoldered, only visible on the board).
I probably need to dig holes and solder a connector.

I will try to log on the console and will report back.

(Last edited by gnutella on 14 Mar 2015, 12:28)

I read the wiki with more attention and managed to locate the ground, VCC and what seems to be TX and RX. Unfortunately, this was the LED panel display.

Also, I remember that this unit was damaged BEFORE I started hacking it. A few months ago, when I came back from holidays, it did not work (???). This was one reason why I switched to OpenWRT. D-Link offers 5-year warranty, so I am going to return this unit to the vendor. it will take me a few days before I can test the other DGS-1210-10P, as it is live and running at the office.

I also have another DGS-1224T.
the DGS-1224-T is not open-source.

On the converse, all DGS-1210 switches are opensource.

Source code for all DGS-1210 is available at:
http://tsd.dlink.com.tw/downloads2008detail.asp

I strongly encourage hackers to have a deep look at this, as it could open new opportunities for OpenWRT.
IMHO, very few switches have been open-sourced, in my knowledge this is the first time.

(Last edited by gnutella on 15 Mar 2015, 12:40)

Greetings and thank you for your enthusiasm. I can't speak in the name of the OpenWrt core team, but you will definitely need to complete the following steps to get meaningful response.

First create a new page at the OpenWrt wiki.
https://wiki.openwrt.org/toh/d-link/start

Upload all your photos and other information you have gathered about the device. Don't be afraid that the information looks too basic - every bit of information is valuable for others. Especially try to reverse engineer the internals. Gather exact chip case markings, memory sizes, chipsets, integrated peripherals. Possibly provide links to data sheets as well. Try to cross-link other OpenWrt pages based on chip and architecture similarity. Serial logs and executing some commands after logging in would also come in handy.

Based on that knowledge, a developer who recognizes the platform would be in the position to update the wiki page with support status or reason for ignorance. Do note that a negative result is a valuable result as well for the record, and devices could be revisited in the future by others.

Here's the standard procedure for reference:
http://wiki.openwrt.org/doc/devel/add.new.platform

I recommend using the forum and mailing list for discussion and linking only. Information here is disorganized and quickly gets lost.

Thank you so much for this warm welcome, this is quite encouraging.
I create a page on the WIKI: https://wiki.openwrt.org/toh/d-link/dgs-1210

Could you allow my user gnutella to upload images?

(Last edited by gnutella on 16 Mar 2015, 11:17)

If you are registered at the wiki then you already are allowed to upload images. Use the media/ subdirectories, i.e media/toh/dlink/

Thanks, I was able to upload photos from the motherboard. Any idea to locate the console is welcome.

(Last edited by gnutella on 16 Mar 2015, 13:45)

gnutella wrote:

Thanks, I was able to upload photos from the motherboard. Any idea to locate the console is welcome.

The wiki page is nicely starting to fill up with information. Good work, it already stands out from the crowd of stubs!

I've reviewed your photos, and tried to identify some of the chips. I've listed the ones I could read out to the wiki. The markings are mostly overexposed or blurred, so you will either need to take another set of photos, or get a magnifying glass and type in as much model numbers as possible. It's also unfortunate that the most interesting components are under heat sinks, though the boot logs could tell us more.

CON2 is a good candidate for a serial console. I don't understand your wiki comments about it. Did you try to measure voltage levels? I would expect it to be 3.3V and a simple common USB-TTL would interface it. Also include JP3 in your search, as they sometimes break serial connections, though mostly with resistor pads and not jumpers. Just for laughs: http://bkil.blogspot.com/2015/02/841n-s … edles.html

I found a relevant, though not very helpful thread that you may still find interesting:
https://forum.openwrt.org/viewtopic.php?id=49051

Thanks for identifying some components.

The A2 model is gone back to D-Link, I can make no more pictures.

I will remove the A1 model from the network tonight and disconnect to make high resolution pictures.  Then I will try to look for serial console JP3 and COM2. We are surely going to make it! Talk to you soon!

(Last edited by gnutella on 16 Mar 2015, 17:10)

I've extended the wiki a bit further.

It would require some manual labor to validate, however I have a feeling that all DGS-1210-* A1 (B1?) devices will have mostly the same architecture, while all C1 devices will have a separate core, etc. Anyhow, if this is a case, it would be a good idea to keep only a very short introduction and a table of links at the main DGS-1210 wiki page, and create separate pages as per the findings. I'm not sure about the allowed character set in a page name, but a naming scheme like dgs-1210_rev_a1_b1 and dgs-1210_rev_c1 could be an option. If the general architecture remains the same between given models, while only some slight parameters differ (like GPIO layout or RAM size), then a combined page does make sense.

Such revision differentiation has happened many times in the past, and the later it is done, the more messy the resulting wiki pages become, see for example [toh:d-link:dir-300], [toh:d-link:dir-300revb], [toh:d-link:dir-300revb5], ... People usually try to grow a page organically as in the beast at [toh:tp-link:tl-wr740n]. However, if you think about it, there ain't anything common between the similarly named revisions which would warrant a combined summary of information. Internal pictures, serial pinout, pull-ups, chip markings, quirks and features all differ tremendously. It instead creates confusion for newcomers.

Don't get me wrong: there's nothing wrong with your actions and it's great that you upload everything as soon as you grab an extra piece of the puzzle. I'm just considering taking up the mega-project of refactoring the whole OpenWrt wiki sooner or later, and I just want to spare you from doing extra work later on. smile

Keep up the good work, best regards!

P.S.: By the way, don't forget to experiment with pull-up, pull-down and current limiting resistors while probing for the serial port.

(Last edited by bkil on 16 Mar 2015, 21:29)

Good idea, I will modify the wiki, but keep in mind this is only a first phase.
How to rename a page?

I made some progress with better photos (coming) and some serial output, but only gargage:
http://wiki.openwrt.org/toh/d-link/dgs- … al_console

Is there any USB to serial cable or adapter that would adapt automatically to voltage?

Any idea?

(Last edited by gnutella on 17 Mar 2015, 13:02)

Did you already have a go with this?
https://wiki.openwrt.org/doc/hardware/p … zer_method

You could look around how other similar Kirkwood boards hook up serial. From that it seems common to include a 2x5 pin pad for this purpose. However, 1x4, 1x5 or 1x6 pin header is also not unheard of. 115200 seems to be a common baud rate. Note that baud rate of the boot loader and the kernel sometimes differ.
https://wiki.openwrt.org/toh/seagate/do … ial#serial
https://wiki.openwrt.org/_detail/toh/se … 3Adockstar
https://wiki.openwrt.org/toh/linksys/ea … ial#serial

6.55V seems too much, and I hope you've also measured around with a voltage meter. Though most ports do have latch up protection diodes, so experimentation should be relatively safe with series resistance.

I'm not sure why port.serial misses the advice to try with 10k pull up (sometimes pull down) resistors. This has been mentioned several times at various sub pages. Some boards include some more tiny unsoldered components besides the connector which is needed for serial access. That's why you sometimes need the additional components.

Garbage can be caused by:
  * no 3.3V pull up (or down) resistor on TX (most common)
  * swapping GND and TX
  * need a filtering capacitor
  * not the right pins at all

After you've inspected all (unsoldered) header candidates on both sides of the board, there's a remote possibility that no serial header exists at all. As a last resort, you need to start probing all possible pins of the processor via exposed pads and component leads. A pinout, though not mandatory, would really help here. Note that you could easily mess up the whole board in this process both directly and indirectly.

(Last edited by bkil on 17 Mar 2015, 13:26)

By the way, I only connected cable RX <=> board TX and GND, NO cable TX <=> board RX.
Could it be the reason?

I did not connect VCC as I am using a USB cable and I might frigh the board.

I have been using a digital voltmeter and ohmeter to find GND which was easy.
As I was not able to find RX, I plugged it wherever there was some current (around 3V) without success.
Then I finally found this 6,6v PIN which returns garbage.

> remote possibility that no serial header exists
But isn't there an onboard chip managing ttl?

(Last edited by gnutella on 17 Mar 2015, 13:20)

As outlined in my linked post, it's completely normal and desirable to start with a read-only test. Have you verified your cable pinout? Did you test it with anything else? It sometimes happen that they mistakenly exchange RX and TX. It's very good that you did not connect the board VCC to the USB power.

The weak pull-up resistance is sometimes optionally needed between the board TX and the board 3.3V Vcc, however never connect the board Vcc or USB power to anywhere else!

I still feel that 6.6V is too much for a serial port.

Sorry for the bad link, I'll try to ask again whether you have tried the piezzo detection method:
https://wiki.openwrt.org/doc/hardware/p … zer_method

(Last edited by bkil on 17 Mar 2015, 13:27)

> Have you verified your cable pinout?
Yes, I used a Raspberry Pie to make sure to locate cable RX (white) and cable TX (green). Then on the switch, I seach for TX which should connect to RX.

> Buzzer
No I don't have a Piezoelectric buzzer.
Which one should I buy ?

> Existence of console
I think that this router HAS a serial console. One reason is that on revision C1 they implement an RSA serial console. It means Dlink engenneers are used to having a console. I guess there should be a chip somewhere on the board and we only need to follow the PCB lines.

I will try again with the 8 pin connector, as I only used minicom and enabled hardware flow control, which is bad. Then I understood the process and started over with screen utility. I am not sure I did all testing well on the 8 PIN connector.

(Last edited by gnutella on 17 Mar 2015, 13:50)

Don't get me wrong: if a board would not have serial pins, it could still very much be configured to use the CPU's pins for that. It's just that they would be inaccessible (or "unfriendly" as OpenWrt calls it). Then again, I have yet to see a capable board which misses such a simple and effective debugging aid.

I'm not sure about the selection of piezzo buzzer, I just grabbed some for a few cents at a local store when I needed some. They are very tiny, imagine less than 1cm. They are sometimes soldered to computer motherboards and modems as PC speakers and other such places. You can also find them in wrist watches and some, but not all alarm clocks because they are low power. Are you sure you have none of these lying around at home?

I guess the wiki recommends such a speaker because it is relatively safe due to its high impedance and it is very loud for the minuscule amount of power a GPIO pin can supply. Such an element will make a sound if it gets enough bit transitions as per my musical experience with them. I have not tested a piezzo buzzer myself for serial ports, but I think no extra/built-in driver is necessary for such a use case.

edit: They do offer ones which have built-in frequency generation, but that variant would be less suitable in my opinion.

(Last edited by bkil on 18 Mar 2015, 00:35)

The 6V pin is not a ttl, you were right. If I remove LED display, there is no longer  a signal. So it is not a TTL. I will do further testing removing the LED display cables.

(Last edited by gnutella on 17 Mar 2015, 14:21)

I spent nearly all day looking for serial console, nothing found. I am beginning to think that my cable may be at stake.

(Last edited by gnutella on 17 Mar 2015, 19:32)

There's an old saying being attributed to Abraham Lincoln which goes “If I had six hours to chop down a tree, I’d spend the first four hours sharpening the axe.”

So I take that you did not find a buzzer? If you were nearby, I could give you a dozen from the junk... Then perhaps you have access to a digital scope, pulse counter, frequency estimator or signal analyzer of some sort? I made one from a microcontroller back in the days when debugging keyboard protocols. You might even find some software for a parallel port of you had a thorough look.

(Last edited by bkil on 18 Mar 2015, 10:31)

You are right.

I recently purchased Embedded artist LabTool for 99 EUR, which is a 11 channel logic analyser and 2 channel oscilloscope. I need to install everything and will get back shortly. Thanks for your help, I really appreciate it. Unfortunately, I don't have the correct oscilloscope probes (not the right plug).

Here is the manual for those interested:
https://www.embeddedartists.com/sites/d … revPA5.pdf

I really want to debrick those D-Link switches.

(Last edited by gnutella on 18 Mar 2015, 11:28)

By the way, if the boot loader is damaged, no serial output will be available. if all your serial efforts seem fruitless, you will need to consider moving to JTAG.
https://wiki.openwrt.org/doc/howto/generic.debrick#jtag
https://wiki.openwrt.org/doc/hardware/port.jtag
https://wiki.openwrt.org/doc/hardware/p … tilization

If JTAG can not be found or reverse engineered, or if it does not let you write to the flash, you will probably need to desolder the chips and flash them externally. A socket could come handy, though you still did not identify the used flash chip for example.

And of course this is all assuming that the boards are 100% healthy electronically. Faulty boards naturally sell for less. Possible defects in electronics and causes can be placed on a wide spectrum.

It would insure you against wasted effort to start from a 100% functioning board, observe the pin layouts, needed software and tricks, and then apply that knowledge to the non-functioning ones.

I am waiting for D-Link to ship back a switch and I will re-try in a few days.

Any success on this one? I'm really interested in this! smile

Also very interested in this. Would be a cost-effective box for permanent home workers if we could pre-configure it to VPN 'back to base', then providing a few PoE ports to run office desk phones and a simple access point.