Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | Next revisionBoth sides next revision | ||
| toh:devolo:dlan-pro-wireless-500-plus [2019/08/14 06:23] – [Tags] cleanup tmomas | toh:devolo:dlan-pro-wireless-500-plus [2019/08/25 08:17] – double content removed tmomas | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| <WRAP center centeralign round box 50%> | <WRAP center centeralign round box 50%> | ||
| - | Please transfer the content of this device | + | Please transfer the content of this page over to [[toh/ |
| </ | </ | ||
| - | |||
| - | **Warning: | ||
| - | |||
| - | **Warning: | ||
| - | |||
| - | |||
| - | The dlan pro wireless 500 plus (also spelled "dlan wireless 500+") is a device with: | ||
| - | * WiFi (compatible with the ath9k driver) | ||
| - | * 3 ethernet ports (They can be configured with " | ||
| - | * A PLC interface | ||
| - | * 128MB of RAM | ||
| - | * About 7.5MB of usable flash space for OpenWrt | ||
| - | |||
| - | Devolo, the device manufacturer, | ||
| - | |||
| - | This page attempts to document the device to help users install and use OpenWrt on it. | ||
| - | |||
| - | ===== Hardware usage ===== | ||
| - | ==== PLC ==== | ||
| - | **Warning: | ||
| - | === Preparing the pib file === | ||
| - | > DAK=$(rkey secret.key -D) | ||
| - | > NMK=$(rkey secret.key -M) | ||
| - | > modpib -v -M ${MAC} -N ${NMK} -D ${DAK} 2555.pib | ||
| - | > setpib 2555.pib 7 byte 0 | ||
| - | |||
| - | ==== Switch ==== | ||
| - | By default, the switch configuration allow devices on the different Ethernet ports to talk to the dlan pro wireless 500 plus, but do not allow such devices to talk to other devices on a different Ethernet port of the switch, this can be very confusing. | ||
| - | |||
| - | To allow devices to talk to other devices on a different Ethernet port, the switch configuration needs to be changed. | ||
| - | |||
| - | |||
| - | To change it temporarily, | ||
| - | > swconfig dev switch0 set enable_vlan 1 | ||
| - | Or to do the change it in a more permanent way, you can add the following to / | ||
| - | > config ' | ||
| - | > option ' | ||
| - | > option ' | ||
| - | It will then be applied at next reboot. | ||
| - | |||
| - | It is probably also possible to do the change trough other ways, like trough the web interface (luci). | ||
| - | ===== Status ===== | ||
| - | TODO: | ||
| - | * Find how to use the PLC/ | ||
| - | Tested: | ||
| - | * WiFi in client mode | ||
| - | * Ethernet | ||
| - | * The LEDS | ||
| - | * The switch | ||
| - | |||
| - | ===== Installation procedure ===== | ||
| - | The devices comes with a bootloader called u-boot. It's the first software that runs on the device. | ||
| - | |||
| - | At boot, if the internal button is pressed, the bootloader will load and flash a file named " | ||
| - | |||
| - | This permits us to easily install OpenWrt, but it will erase the original system while doing it. That means that we cannot backup the original system by using this installation procedure. | ||
| - | |||
| - | ==== Preparation ==== | ||
| - | So to install OpenWrt, you need to do a bit of preparation first. | ||
| - | |||
| - | ++++Setup tftp server| | ||
| - | Start by connecting an Ethernet cable between the device and your computer. | ||
| - | |||
| - | Then assign the " | ||
| - | There are many ways to do that, here are two examples where it is done with the command line on GNU/Linux, it can also be done graphically: | ||
| - | > sudo ifconfig eth0 192.168.0.100 netmask 255.255.255.0 up | ||
| - | or: | ||
| - | > sudo ip addr add 192.168.0.100 dev eth0 | ||
| - | > sudo ip link set dev eth0 up | ||
| - | " | ||
| - | > ls / | ||
| - | Note that on other operating systems the commands might vary. | ||
| - | |||
| - | When this is done you will need to setup a TFTP server on your computer. We will use dnsmasq for that because it can be run just by typing one command and also because as it is extensively used in OpenWrt devices, and because of that OpenWrt users tend to know it better. | ||
| - | |||
| - | The advantage of dnsmasq is also that it's already present by default in many GNU/Linux distributions. To verify if we already have it simply type: | ||
| - | > dnsmasq --version | ||
| - | If we have it, it will print something like that: | ||
| - | > Dnsmasq version 2.76 Copyright (c) 2000-2016 Simon Kelley | ||
| - | > Compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC > loop-detect inotify | ||
| - | > | ||
| - | > This software comes with ABSOLUTELY NO WARRANTY. | ||
| - | > Dnsmasq is free software, and you are welcome to redistribute it | ||
| - | > under the terms of the GNU General Public License, version 2 or 3. | ||
| - | Else it will look like that: | ||
| - | > bash: dnsmasq: command not found | ||
| - | Be sure to type the command correctly (" | ||
| - | > dnsmask --version | ||
| - | I also have something that looks very similar: | ||
| - | > bash: dnsmask: command not found | ||
| - | |||
| - | If we don't have dnsmasq installed, we need to install it. | ||
| - | Again, there are many ways to do it, and it can probably also be done graphically. Here I will again only include command line examples. | ||
| - | On debian based GNU/Linux distributions (such as Debian, Ubuntu, Trisquel and so on) you can install it with: | ||
| - | > sudo apt-get install dnsmasq | ||
| - | |||
| - | Once we have dnsmasq, we then need to create the directory where the files made accessible trough tftp resides. In the context of server programs like tftp servers, this is often called the tftp root directory. We will create this directory with: | ||
| - | > sudo mkdir tftp | ||
| - | |||
| - | We then need to put the OpenWrt sysupgrade file (Also called image) in this directory, so download that file (" | ||
| - | We now need to start the tftp server, we can do that with: | ||
| - | > sudo dnsmasq --no-daemon --interface=eth0 --dhcp-range=192.168.0.101, | ||
| - | Here $(pwd) will indicate to look for the tftp directory inside the current directory (pwd means "print working directory" | ||
| - | ++++ | ||
| - | |||
| - | |||
| - | ++++Knowing what is going on| | ||
| - | It is also a good idea to get some debug logs while doing it. | ||
| - | Since dnsmasq is not that verbose, we will use the command line version of wireshark (Sometimes called tshark or wireshark-cli). It can " | ||
| - | |||
| - | Due to legal constraints, | ||
| - | |||
| - | To get an idea of what is going on, first make sure that your Ethernet interface is activated. To do that you can run: | ||
| - | > sudo ifconfig eth0 up | ||
| - | Or: | ||
| - | > sudo ip link set dev eth0 up | ||
| - | |||
| - | Then to print what is going on run: | ||
| - | > sudo tshark -i eth0 | ||
| - | As usual, " | ||
| - | |||
| - | For instance if the device tries to download the file named " | ||
| - | > 12 19.125597004 192.168.0.249 → 192.168.0.100 TFTP 71 Read Request, File: uploadfile, Transfer type: octet, timeout=1 | ||
| - | Then if everything is fine it will actually download the file: | ||
| - | > 13 19.164418286 192.168.0.100 → 192.168.0.249 TFTP 558 Data Packet, Block: 1 | ||
| - | > 14 19.164585137 192.168.0.249 → 192.168.0.100 TFTP 60 Acknowledgement, | ||
| - | > 15 19.164651556 192.168.0.100 → 192.168.0.249 TFTP 558 Data Packet, Block: 2 | ||
| - | > 16 19.165579327 192.168.0.249 → 192.168.0.100 TFTP 60 Acknowledgement, | ||
| - | > [...] | ||
| - | |||
| - | Dnsmasq also prints some message when it happens: | ||
| - | > dnsmasq-tftp: | ||
| - | > tftp 6356996 192.168.0.249 [...]/ | ||
| - | However it will not print anything if something goes wrong. In the other hand, tshark will have some information that might help understanding why it is not working. | ||
| - | |||
| - | Tshark can also detect if your Ethernet interface is not up/ | ||
| - | > sudo tshark -i eth0 | ||
| - | > Running as user " | ||
| - | > tshark: Lua: Error during loading: | ||
| - | > [string "/ | ||
| - | > Capturing on ' | ||
| - | > tshark: The capture session could not be initiated due to error getting information on pipe/ | ||
| - | > | ||
| - | > 0 packets captured | ||
| - | ++++ | ||
| - | |||
| - | ==== Installation ==== | ||
| - | |||
| - | Then get a power strip with a button and put the power strip on the table where your computer is located and plug the device(The "dlan pro 500 wireless plus") in it, to easily power-on/ | ||
| - | |||
| - | You also need to get a screwdriver that can press the internal button: That button is barely visible from the outside, it is hidden under the black cover, on the bottom-right of the device. It can be pressed by using a screwdriver in the second hole from the bottom-right. | ||
| - | |||
| - | Then to make the device install OpenWrt: | ||
| - | |||
| - | * Power it off (with the power strip button for instance) and start pressing the hidden-button. | ||
| - | * Power on the device (with the power strip button for instance), while keeping pressing the hidden-button. | ||
| - | * The device will then start downloading OpenWrt. This will only be visible on your laptop with tshark, or the dnsmasq logs, as described above. | ||
| - | * At this point you can stop pressing the button, if you are not sure, you should rather wait a bit more and only stop pressing the button when the WiFi led becomes blue and start blinking (this happens when it starts flashing OpenWrt). | ||
| - | * The device won't respond to pings during the flashing, even when it is downloading the file. | ||
| - | * Do not turn off the device during that procedure. At the end it will reboot and the LEDs will then stop being blue. | ||
| - | * [[doc/ | ||
| ===== More advanced information ===== | ===== More advanced information ===== | ||
| - | ==== Sources ==== | ||
| - | As required by the GPL, devolo publish u-boot source code. Most of the information | ||
| - | below is derived from that source code. | ||
| - | |||
| - | The sources can be found on devolo websites as: | ||
| - | * gpl-source-dlan-pro-500-wireless-plus.tar.bz2 FIXME Please provide link | ||
| - | * oss-license-info-dlan-pro-500-wireless-plus.pdf FIXME Please provide link | ||
| - | |||
| ==== Storage and installation procedure ==== | ==== Storage and installation procedure ==== | ||
| The system is stored on an SPI flash which is mapped in memory and starts at 0x9f000000. | The system is stored on an SPI flash which is mapped in memory and starts at 0x9f000000. | ||
| Here is the partitioning: | Here is the partitioning: | ||
| > mtdparts=ath-nor0: | > mtdparts=ath-nor0: | ||
| - | |||
| - | At power up, if the internal button is pressed, u-boot will initiate the TFTP reflash procedure. | ||
| - | TFTP reflash procedure: | ||
| - | * u-boot will save the environment variables that it will override (IP addresses and so on). | ||
| - | * It then override the environment with the following configuration: | ||
| - | * IP address of the dlan: 192.168.0.249 | ||
| - | * IP address of the TFTP server: 192.168.0.100 | ||
| - | * It then loads an image to memory ("tftp 0x8006000 uploadfile" | ||
| - | * After that it restores the original the environment. | ||
| - | * It the download didn't fail, it then erases the kernel and rootfs partitions (" | ||
| - | * If the download didn't fail and if the downloaded image is smaller than the kernel+rootfs partition size, it flashes it to that partition ("cp.b 0x8006000 0x9f070000 0x< | ||
| Related source code: | Related source code: | ||
| Line 197: | Line 17: | ||
| ===== Hardware ===== | ===== Hardware ===== | ||
| - | The device has: | + | The device has 8 MB of flash, provided by a " |
| - | * 128 MB of RAM | + | |
| - | * 8 MB of flash, provided by a " | + | |
| Here is the flash configuration with the " | Here is the flash configuration with the " | ||
| Line 215: | Line 33: | ||
| Note that the RAM size is automatically detected by u-boot (by looking when the address space wraps around). | Note that the RAM size is automatically detected by u-boot (by looking when the address space wraps around). | ||
| - | |||
| - | |||
| - | ==== Pictures ==== | ||
| - | |||
| - | The pictures below are also licensed under the [[https:// | ||
| - | |||
| - | {{media: | ||
| - | {{media: | ||
| - | {{media: | ||
| - | {{media: | ||
| - | {{media: | ||
| - | |||
| - | |||
| - | ==== PCB ==== | ||
| - | |||
| - | The hardware is made of two PCBs stacked together with pin-header-connectors: | ||
| - | * The upper PCB has the "power supply" | ||
| - | * The lower PCB has the " | ||
| - | |||
| - | /!\ WARNING /!\ | ||
| - | Since the power supply is integrated into the unit, you should not open it. | ||
| - | * The voltage and current provided by your house' | ||
| - | * Operating the device while it's opened can kill you. | ||
| - | * Opening the device while it's unplugged, can also kill you, this is because it has capacitors that can hold some electricity for a while. | ||
| - | |||
| - | DO NOT IGNORE THIS WARNING. | ||
| - | If you die, you will not be able to contribute to free and open source software anymore. | ||
| - | |||
| - | In doubt, DO NOT OPEN THE DEVICE. If you open it, YOU MIGHT DIE. | ||
| - | |||
| - | Because of the above I didn't try to find the serial port on this device. | ||
| - | |||
| - | There is an empty SOIC-8 emplacement on the " | ||
| - | but the pins aren't connected to the WSON-8 flash chip pins. | ||
| - | |||
| - | PCB Pictures: | ||
| - | * https:// | ||
| - | * https:// | ||
| - | * https:// | ||
| - | * https:// | ||
| - | * https:// | ||
| - | |||
| - | The details (chip marking names and so on) are inside the pictures EXIF, they can for instance be viewed with okular. | ||
| - | |||
| - | ==== U-boot version ==== | ||
| - | The u-boot has very early init code from atheros (grep for FPGA in the diff). | ||
| - | |||
| - | ===== See also ===== | ||
| - | The following hardware also has some official OpenWrt images but lacks documentation: | ||
| - | * dLAN pro 1200+ WiFi ac | ||
| - | |||
| - | ===== License ===== | ||
| - | This page is licensed under all the following licenses: | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | |||
| - | ===== Tags ===== | ||
| - | [[meta: | ||
| - | {{tag> | ||