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
