This patch enables running OpenWrt on D-Link DNS-323. More info about this
device:

http://www.dlink.com/products/?pid=509
http://wiki.dns323.info/
http://www.cyrius.com/debian/orion/d-link/dns-323/

Currently you need serial cable to flash OpenWrt on DNS-323.

About the patch:
 - add kernel support for DNS-323 - CONFIG_MACH_DNS323
 - patch the kernel so it can recognize flash partitions and use mini_fo
   overlay - file 300-dns323_partition_map.patch
 - creating image, still work in progress (does the job for my
   requirements) - could use some help
 - I have bricked my usb port ?!? that is why the usb support is
   commented out in harddisk/config-default file - be careful so you
   don't make the same mistake and brick you usb port
 - fan - CONFIG_SENSORS_G760A
 - temperature sensor - CONFIG_SENSORS_LM75

I think it be better if you could in menuconfig select Subtarget -> Internal
Hard-Disk, and then Target Profile -> DNS-323. Help?

Signed-off-by: Luka Perkov < openwrt ->-to->- lukaperkov.net >
---
 

Index: target/linux/orion/image/Makefile
===================================================================
--- target/linux/orion/image/Makefile   (revision 22462)
+++ target/linux/orion/image/Makefile   (working copy)
@@ -33,6 +33,13 @@
        -C none -a 0x00008000 -e 0x00008000 -n 'Linux-$(LINUX_VERSION)' \
        -d $(KDIR)/dt2-zImage $(KDIR)/dt2-uImage
        cp $(KDIR)/dt2-uImage $(BIN_DIR)/openwrt-dt2-uImage
+# DNS-323 v2: mach id 1542 (0x606)
+       echo -en "\x06\x1c\xa0\xe3\x06\x10\x81\xe3" > $(KDIR)/dns323-zImage
+       cat $(LINUX_DIR)/arch/arm/boot/zImage >> $(KDIR)/dns323-zImage
+       $(STAGING_DIR_HOST)/bin/mkimage -A arm -O linux -T kernel \
+       -C none -a 0x00008000 -e 0x00008000 -n 'Linux-$(LINUX_VERSION)' \
+       -d $(KDIR)/dns323-zImage $(KDIR)/dns323-uImage
+       cp $(KDIR)/dns323-uImage $(BIN_DIR)/openwrt-dns323-uImage
 endef
 
 define Image/Build/Netgear
@@ -64,15 +71,19 @@
                echo ":u-boot 0 
$(STAGING_DIR_HOST)/share/wrt350nv2-builder/u-boot.bin" 
>>"${TMP_DIR}/$2_webupgrade/$2.par"; )
        echo "#version 0x2020" >>"${TMP_DIR}/$2_webupgrade/$2.par"
 # create bin file for recovery and webupgrade image
-       ( cd "${TMP_DIR}/$2_webupgrade"; \
-               "${STAGING_DIR_HOST}/bin/$2-builder" \
-                       -v -b "${TMP_DIR}/$2_webupgrade/$2.par"; \
-       )
 # copy bin file as recovery image
-       $(CP) "${TMP_DIR}/$2_webupgrade/wrt350n.bin" 
"$(BIN_DIR)/openwrt-$2-$1-recovery.bin"
 # create webupgrade image for stock firmware update mechanism
-       zip "${TMP_DIR}/$2_webupgrade/wrt350n.zip" 
"${TMP_DIR}/$2_webupgrade/wrt350n.bin"
-       "${STAGING_DIR_HOST}/bin/$2-builder" -v -z 
"${TMP_DIR}/$2_webupgrade/wrt350n.zip" "${BIN_DIR}/openwrt-$2-$1-webupgrade.img"
+       ( \
+               cd "${TMP_DIR}/$2_webupgrade" && \
+               "${STAGING_DIR_HOST}/bin/$2-builder" -v -b 
"${TMP_DIR}/$2_webupgrade/$2.par" && \
+               \
+               $(CP) "${TMP_DIR}/$2_webupgrade/wrt350n.bin" 
"$(BIN_DIR)/openwrt-$2-$1-recovery.bin" && \
+               \
+               zip "${TMP_DIR}/$2_webupgrade/wrt350n.zip" 
"${TMP_DIR}/$2_webupgrade/wrt350n.bin" && \
+               "${STAGING_DIR_HOST}/bin/$2-builder" -v -z 
"${TMP_DIR}/$2_webupgrade/wrt350n.zip" 
"${BIN_DIR}/openwrt-$2-$1-webupgrade.img" \
+       ) || false
+       # change false value above to true in order to continue building if 
kernel image is to big
+       # useful when building images for D-Link DNS-323 :-D
        rm -rf "${TMP_DIR}/$2_webupgrade"
 endef
 
@@ -86,10 +97,27 @@
        $(STAGING_DIR_HOST)/bin/encode_crc $(BIN_DIR)/openwrt-$(2)-$(1).img 
$(BIN_DIR)/openwrt-$(2)-$(1)-webupgrade.img $(3)
 endef
 
+define Image/Build/D-Link
+# DNS-323 image
+       # better way to do this?
+       $(CP) ${KDIR}/root.$1 $(BIN_DIR)/openwrt-$(2)-ramdisk
+
+       # arguments for mkimage from debian image builder for DNS-323 ramdisk
+       # -A arm -O linux -T ramdisk -C gzip -e 0x00800000 -a 0x00800000 -n 
"debian-installer ramdisk" -d $(TEMP_INITRD) $(TEMP)/dns-323/initrd.uboot
+
+       # I don't know where to get -d flag ...
+       # $(STAGING_DIR_HOST)/bin/mkimage -A arm -O linux -T ramdisk \
+       # -C gzip -a 0x00008000 -e 0x00008000 -n 'OpenWrt ramdisk' \
+       # -d ??? $(KDIR)/dns323-uImage
+       # cp $(KDIR)/dns323-uImage $(BIN_DIR)/openwrt-dns323-ramdisk2
+endef
+
+
 define Image/Build
        $(call Image/Build/$(1),$(1))
        $(call Image/Build/Netgear,$(1),wnr854t,NG_WNR854T,$(1))
        $(call Image/Build/Freecom,$(1),dt2,DT,$(1))
+       $(call Image/Build/D-Link,$(1),dns323,DNS-323,$(1))
 # Leave WRT350Nv2 at last position due to webimage dependency for zip
 # 5th parameter is kernel mtd size, e.g. 0x00100000 = 1048576 or 0x001A0000 = 
1703936
        $(call Image/Build/Linksys,$(1),wrt350nv2,WNR350Nv2,$(1),1048576)
Index: target/linux/orion/patches/300-dns323_partition_map.patch
===================================================================
--- target/linux/orion/patches/300-dns323_partition_map.patch   (revision 0)
+++ target/linux/orion/patches/300-dns323_partition_map.patch   (revision 0)
@@ -0,0 +1,30 @@
+--- a/arch/arm/mach-orion5x/dns323-setup.c
++++ b/arch/arm/mach-orion5x/dns323-setup.c
+@@ -99,6 +99,13 @@
+  *  0x00020000-0x001a0000 : "Linux Kernel"
+  *  0x001a0000-0x007d0000 : "File System"
+  *  0x007d0000-0x00800000 : "u-boot"
++ *
++ * Layout as used by OpenWrt
++ *  0x00000000-0x00010000 : "MTD1"
++ *  0x00010000-0x00020000 : "MTD2"
++ *  0x00020000-0x001a0000 : "kernel"
++ *  0x001a0000-0x007d0000 : "rootfs"
++ *  0x007d0000-0x00800000 : "u-boot"
+  */
+ 
+ #define DNS323_NOR_BOOT_BASE 0xf4000000
+@@ -114,11 +121,11 @@
+               .size   = 0x00010000,
+               .offset = 0x00010000,
+       }, {
+-              .name   = "Linux Kernel",
++              .name   = "kernel",
+               .size   = 0x00180000,
+               .offset = 0x00020000,
+       }, {
+-              .name   = "File System",
++              .name   = "rootfs",
+               .size   = 0x00630000,
+               .offset = 0x001A0000,
+       }, {
Index: target/linux/orion/config-default
===================================================================
--- target/linux/orion/config-default   (revision 22462)
+++ target/linux/orion/config-default   (working copy)
@@ -135,7 +135,7 @@
 # CONFIG_MACH_BIGDISK is not set
 # CONFIG_MACH_D2NET is not set
 # CONFIG_MACH_DB88F5281 is not set
-# CONFIG_MACH_DNS323 is not set
+CONFIG_MACH_DNS323=y
 CONFIG_MACH_DT2=y
 # CONFIG_MACH_EDMINI_V2 is not set
 # CONFIG_MACH_KUROBOX_PRO is not set
Index: target/linux/orion/harddisk/config-default
===================================================================
--- target/linux/orion/harddisk/config-default  (revision 22462)
+++ target/linux/orion/harddisk/config-default  (working copy)
@@ -2,34 +2,66 @@
 CONFIG_BLK_DEV_DM=y
 CONFIG_BLK_DEV_MD=y
 CONFIG_BLK_DEV_SD=y
-# CONFIG_DM_CRYPT is not set
+CONFIG_CMDLINE="root=/dev/mtdblock3 rootfstype=squashfs,jffs2 noinitrd 
console=ttyS0,115200"
+CONFIG_CPU_TLB_FEROCEON=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_DM_CRYPT=y
 # CONFIG_DM_DEBUG is not set
 # CONFIG_DM_DELAY is not set
 # CONFIG_DM_MIRROR is not set
 # CONFIG_DM_MULTIPATH is not set
-# CONFIG_DM_SNAPSHOT is not set
+CONFIG_DM_SNAPSHOT=y
 # CONFIG_DM_UEVENT is not set
 # CONFIG_DM_ZERO is not set
+CONFIG_EXPORTFS=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT3_FS=y
+CONFIG_EXT4_FS=y
+# CONFIG_EXT4_FS_XATTR is not set
+# CONFIG_FS_POSIX_ACL is not set
+CONFIG_INET_LRO=y
 CONFIG_JBD=y
-CONFIG_LBD=y
+CONFIG_JBD2=y
+CONFIG_MD=y
 CONFIG_MD_AUTODETECT=y
 # CONFIG_MD_FAULTY is not set
 CONFIG_MD_LINEAR=y
 # CONFIG_MD_MULTIPATH is not set
 CONFIG_MD_RAID0=y
+CONFIG_MD_RAID1=y
 # CONFIG_MD_RAID10 is not set
-CONFIG_MD_RAID1=y
 # CONFIG_MD_RAID456 is not set
-CONFIG_MD=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NET_DSA_MV88E6XXX=y
+CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
+CONFIG_NET_DSA_TAG_DSA=y
+# CONFIG_NET_DSA_TAG_EDSA is not set
+# CONFIG_NET_DSA_TAG_TRAILER is not set
+CONFIG_NLS=y
+CONFIG_RTC_DRV_M41T80=y
+CONFIG_RTC_DRV_M41T80_WDT=y
 CONFIG_SATA_MV=y
+CONFIG_SCSI=y
+CONFIG_SCSI_MOD=y
+CONFIG_SENSORS_G760A=y
+CONFIG_SENSORS_LM75=y
 CONFIG_SWAP=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_STORAGE=y
-CONFIG_USB=y
+##CONFIG_USB_ARCH_HAS_EHCI=y
+##CONFIG_USB_ARCH_HAS_HCD=y
+##CONFIG_USB_ARCH_HAS_OHCI=y
+##CONFIG_USB_EHCI_HCD=y
+##CONFIG_USB_EHCI_ROOT_HUB_TT=y
+##CONFIG_USB_EHCI_TT_NEWSCHED=y
+##CONFIG_USB_STORAGE=y
+##CONFIG_USB=y
+CONFIG_XFS_FS=y
Index: target/linux/orion/harddisk/base-files/etc/config/network
===================================================================
--- target/linux/orion/harddisk/base-files/etc/config/network   (revision 0)
+++ target/linux/orion/harddisk/base-files/etc/config/network   (revision 0)
@@ -0,0 +1,13 @@
+# Copyright (C) 2010 OpenWrt.org
+
+config interface loopback
+        option ifname   lo
+        option proto    static
+        option ipaddr   127.0.0.1
+        option netmask  255.0.0.0
+
+config interface eth0
+        option ifname   eth0
+        option proto    dhcp
+        option hostname dns323
+
Index: target/linux/orion/harddisk/target.mk
===================================================================
--- target/linux/orion/harddisk/target.mk       (revision 22462)
+++ target/linux/orion/harddisk/target.mk       (working copy)
@@ -1,6 +1,6 @@
 BOARDNAME:=Internal Hard-Disk
 
 define Target/Description
-       Build firmware images for orion based boards that boot directly from 
internal disk storage
-       (e.g : Freecom DataTank 2, ...)
+       Build firmware images for orion based boards that have kernel support 
for internal disk storage
+       (e.g : D-Link DNS-323, Freecom DataTank 2, ...)
 endef
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to