Transfer Files via MTP to Oculus Go using Dolphin on Linux

In order to use Linux to transfer files to the Oculus Go you have to add a udev rule as this device is not yet listed in current udev rule set.

On Opensuse for example you just have to do the following:

echo 'ATTR{idVendor}=="2833", ATTR{idProduct}=="0082", SYMLINK+="libmtp-%k", MODE="660", GROUP="disk", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"' > /etc/udev/rules.d/90-oculusgo.rules

udevadm control --reload-rules && udevadm trigger

Now connect the Oculus, and click on allow device to connect,  you should be able to access the oculus in kde.

Quick Walkthrough For IPSec – DD-WRT

Note: This feature is currently only available using my personal ipq/northstar builds.

1. Enable Freeradius

It will be used to for server and client certificate generation. Later on can be disabled, as we don’t need freeradius daemon in order to connect to the ipsec server.

Make sure the router already has the correct time set, otherwise cert dates will not be correct and certs invalid.

Important: Common Certificate Name will be used for DNS field in the cert.

2.Create a new user with password

Next click Gen Cert, after the client cert is created you will be able to download two certs to your device.

Strongswan Private Key: Clients private cert , either directly click on the cert download button twice (iOS) in order to download and import it or place it on a website where you can download it.

On import you will be asked to supply the password that you specified in freeradius client section.

Strongswan Router CA: Your unique generated Root CA which is used to sign the clients cert. You also need to import this on your device and trust it.

3.Imported certs

Make sure you have trusted the Root CA. Otherwise client cert cannot be validated.

4.Enable IPSec

Choose network access level. WAN and LAN means all connections from your iOS will be sent through the router.

WAN only means, internet traffic goes through router, no lan access to your home network. LAN only, means Internet traffic will not be sent to the router, but you can access your home lan.

5.Create a new IPSec profile

Where server and remote ID equals the common certificate name you used to create the certs. Local ID is the user name you used for client cert creation.

For authentication you can now choose the client cert you imported.


6. Done

You should now be able to connect to your router from your iOS.

P.S. It works the same way if you use a Windows client, only thing different is how to import certs and setup connection details. So far I have tested Win7 + current iOS.

The used dns name is no real dyndns account in was just chosen as an example:-)

Using the integrated webserver

Here comes a short guide that tells you how to use the integrated webserver.

1. Preparing USB Storage Device

While it is possible to use the routers flash to host any websites, we are going to use a USB drive in order to store a larger amount of data. Get your usb device ready and partition it with the tool of your choice.

I recommend sat least 2 partitions. First partition should be a swap with ~512MB.  For the second partition I recommend a drive with a few gigabytes and filesystem Ext3.  When creating the second partition you can label it with the name „Jffs“, thus the integrated automounter will mount it directly to /jffs.

If you are done with partitioning attach the drive to your router.

2. Setting up USB Support


As shown in the above screenshot our second partition is now mounted to /jffs. If you did not set a label you can now use the UUID of this partition and add it to Mount this partition to /jffs field. This will also tell the automounter to mount this partition to /jffs. Swap is automatically mounted.

3.  Setting up Shares


Now we setup a share in order to access the drive via windows explorer or dolphin etc. In my case I’m going to create a share with name JFFS with the path of the previously mounted partition (/jffs).

As it is set  to be public anyone can access it. If you want only certain users to access the drive, remove the public flag and setup a few users and their rights.

4. Setup Webserver


Just enable the integrated webserver and press apply. At this time the webserver is only reachable from the internal network. If you need WAN access you have to forward ports accordingly.

5. Download Pydio and Copy Files to /jffs/www


Download the Manual Installation. Once you have downloaded it extract the zip. Copy it to the routers usb drive e.g. by using windows explorer accessing share \\R7000\JFFS\www.


6. Access the Webserver and Start Configuring Pydio



As the integrated webserver a does not support mysql you have to choose Sqlite 3 for your Storage Type, see screenshot. After you are done with the pydio configuration you are ready to login.


If everything worked out, you are now ready to add files to your personal cloud:-)

Wireless starters guide for first time dd-wrt users


In order to setup your router for maximum speed it is required to properly setup a few parameters.

I’m going to explain a few parameters in detail so you have a basic understanding of these parameters.

This guide is specific to broadcom based routers with AC radio!

Note: Most of the parameters depend on other parameters, e.g. changing
Channel Width will give you a different list of channels you can choose.
Thus whenever you change a setting you have to press Apply and wait a few
seconds until the GUI refreshes displaying updated choices.

It is also necessary to set wireless security to WPA2 AES in order to
reach full speeds as it is part of the specification. Some clients may
not even be able to connect if you don’t use WPA2, e.g. Android devices.

You have to setup parameters in the following order to avoid unnecessary steps.

Before you start choose the correct regulation domain.


5 Ghz Sample Setup


1. Setup Wireless Mode

2. Setup Network Mode

You should choose a Mode that works for all of your clients. If you only
have 802.11n devices you would choose N-Only. If you only have AC devices
and don’t want to allow any N devices choose AC-Only. N-Only 5Ghz
will allow AC as well as standard N clients to connect.

Note:  N/AC standard requires WPA2/AES Encryption

3. Channel Width

To get full AC speed this needs to be set to 80Mhz. If you choose 40 or 20 Mhz
Width you won’t be able to connect at full speed, but depending on channel occupation
it might be of advantage to choose a spectrum that is not covered by other routers.
Thus it may be of advantage to only use 40Mhz to be able to use a spectrum that is not
occupied by other routers in order to avoid interference.

For some detailed explanation about data rates, width etc. you can checkout these

4. Extension Channel

After you have setup Channel Width the UI will update and give you new choices for Extension Channels.
Now choose an Extension channel and press Apply again. If you want to know more about Extension Channels
consult google:-)

5. Wireless Channel

Finally you can choose your prefered channel. Depending on Width and Extension you previously set
you will have a different choice of channels.

It is important to set a fixed channel otherwise your radio might not operate at full width.
General rule for all bands:

-lowest or highest channel may not allow to output full power

General rule for 5Ghz:

-on higher channels regulation limits allow more power output from the radio.
-on higher channels output might be limited in case radar signals are detected

Thus most of times higher channels on 5Ghz will give you more range.

Additional Info:

Advanced Wireless Settings

Most users don’t need this  and can leave it at their defaults.

If you have range/signal problems on long range connections play with txpwr

and measure your throughput.

E.g. value that proved to deliver great speeds on 2.4Ghz in my tests was 160mW .

For 5Ghz you likely want to increase txpwr even further.


Increasing txpwr only boosts sending to the client. If your client devices allows to increase output power, then you should change it as well.  E.g. by default Intel client adapters, built in laptops, do not output with maximum power in order to save energy.

In latest driver build with NEWD it is currently not possible to override power output, still investigating if this is on purpose or if this is a problem with current wl tool.




Beamforming uses algorithms to determine the location of a client and to direct signals
towards the client. As output is directed towards a client it is possible to increase
output power, which will improve range. Regular Beamforming only works with clients
that support Beamforming. Implicit Beamforming also works for clients that have no
Beamforming support.

Short note on performance testing with beamforming. As Beamfomring needs some sort
of localization and therefore calibration you should give the radio a bit of time,
after you changed wireless parameters, before you start doing any performance testing.
Everytime you change parameters the radio will be brought down and up and reinitialized.




Guest Wifi Setup DD-WRT

Here comes a short guide on how to setup a Virtual Guest AP. In build 23020 I added an option to isolate guest wifis from local network. This along with my fix for unbridged vifs allows to setup a guest wifi with only a few clicks. The following image shows the Wireless->Basic Setup page. In order to create a virtual access point, for your guests, click on Add in Virtual Interfaces section. Now fill out the details for this guest wifi.  The labels in red give you a short explanation what these settings are for.



Once you are done go to Wireless->Wireless Security, choose your encryption scheme and password for this guest wifi. Next step is to enable DHCPD for the guest wifi. Go to Setup->Networking and add another dhcp server for the guest network as shown in the following image.


KongMod future

Some may have already noticed, that lots of my features are now included in official dd-wrt releases.  I’m now part of dd-wrt dev team with commit rights and I  added almost every feature/bugfix/ enhancement to regular dd-wrt. This makes it much easier for me now to develop and fix things for dd-wrt since I don’t have to constantly merge my changes with svn updates.  Starting with K3 builds my builds only contain features that you also find in regular dd-wrt builds.  However, you will still find  new builds on my ftp.  These are mostly builds, that I use myself and where basic things are tested by me before I upload them. Sometimes I provide builds for people that want to test certain things before I commit them to dd-wrt.


Simple Opkg Tutorial

In order to show you how to use the new advanced opkg software package manager that is included in my builds. I’m going to explain how to setup and use opkg to extend your routers functionality.

Here are the steps in order to prepare your router for opkg:

  1. Prepare a usb drive with at least one ext2/ext3 partition: You can use any Windows partition software or linux live system to do that e.g.
  2. Attach the usb drive to your router and setup Services->USB.  Once the drive shows up under Disk Info, copy and paste the UUID of the partition into the Mount this Partition to /opt text field
  3. Reboot the router
  4. The drive should be mounted to /opt now , you can verify this by looking at the Disk Info output

Lets work with Opkg now:

Login to the router via telnet or ssh:

  1. Retrieve the list of available packages, by executing command opkg update
  2. List available packages opkg list
  3. Search for some extra editor e.g. opkg list | grep editor
  4. Install editor nano opkg install nano
  5. Run nano by executing nano. Oops you will see Error opening terminal: xterm. Well the reason for this is by default no terminfo is set, so lets do that by entering command export TERMINFO=/opt/usr/share/terminfo into you console window. Now start nano again

Opkg of course can do a few more things. Thus just execute opkg without arguments and look at the options in order to list/remove installed packages etc.

At this time you should have a basic understanding of opkg package management. Opkg will store packages config files etc. under /opt. Some packages come along with config files that you need to edit in order to make them work in the way you want them, just search under /opt/etc for these files.

*Note: The default package url that is included in my build points to the openwrt repository. Since these packages have been compiled with the openwrt sdk not all packages will work under dd-wrt. This comes from the fact, that dd-wrt uses a modified ethernet structure header and packages that were not compiled with the dd-wrt sdk cannot query all ethernet infos and will fail to get details about the existing interfaces e.g. ushare is affected by this.

DD-WRT Kong Mod Opensource Enterprise Class Monitoring – Zabbix

Build >=20500 includes Zabbix (Enterprise Class Monitoring Client)  which allows you  to monitor your wireless router. You will find a new section in dd-wrts router webinterface where you can activate and configure the zabbix client. In order to monitor your wireless router you need to setup a zabbix server.

The following screen shots display actual data and the template setup for a dd-wrt router with included zabbix client.




DD-WRT Kong Mod Update

For more information visit: MyOpenRouter


Supported Models: WNR3500L V1 | RT-N16 | WRT610N V1/V2 | E3000 | E3200 | E4200 | F7D4302 | F7D3302

Komg Mod – DLNA Media Server Setup

I’m going to explain in a few simple steps how to setup a Streaming Media Server using my dd-wrt build with integrated MiniDLNA.

1. Enabling USB Storage Support


click to enlarge

There is not much to say here except. In my case I choose /jffs as mountpoint. JFFS is the prefered moint in case you want to make use of the jffs filesystem which is used to prevent excessive wear from flash cells. The mountpoint /opt is used whenever you want to use optware packages. Optware packages include a install script that usually install „optware“packages in the directory /opt, dd-wrt checks the location /opt for apps, scripts etc, that’s how optware basically works.

With the latest builds usb media will also be automatically mounted to the mointpoint /mnt. So if you leave everything empty you should find the contents of your drives partitions under /mnt/disc<x>_part<y> where x is the disc number and y is the partition number. Thus if you have  a single drives with 2 partitions attached. They will be automatically mounted to:



2. Enable DLNA Server


click to enlarge

No it is time to enable the DLNA Server. Fill in the neccessary information for minidlna by specifying  the Server Identification. This is the string that will later be displayed by your media clients.

Now enter the directories. As noted earlier  I told dd-wrt to moint my partition, that contains the videos, to /jffs. I placed my videos in a directory share/video, since the partition was mounted to /jffs the full path to my videos is /jffs/share/video. If you remove this drive and attach it to windows  you would find the files for example under  D:\share\video. Same applies to pictures etc.

Now you can specify an update intervall. In my case I set it to 240s. So when I copy a new video to the router e.g. via samba share it will take up 240s until this new files is added to minidlnas database, and until the client sees it. Normally you can leave this field empty, since the default value should be fine.

A more important setting is the DB Path . The db path is the place where minidlna stores the index database. The default is to store it in /tmp directory which means it is purely inside the routers ram. Now if you have lots of media files this db can get very big and consume several megabytes, the consequence of that is that you run out of ram on the router and the router will be slowed down. In extreme cases the router will not be able to handle new connections etc. My advice, if you have more then 500 files in those directories store the db somewhere on the external media.

3. Start your client and check it is working. E.g. Windows 7 Media Player


1) How do I know minidlna is running?

Check „Status->Sysinfo“ under Services you will find the status of minidlna

2) How long does it take to index the directories

This depends on the amount of files. A rough guess 1min for 500 files.

3) How can I debug minidlna

Logon to the router e.g ssh and make sure minidlna is stopped, e.g. killall minidlna. Now start minidlna in debug mode:   /usr/sbin/minidlna -R -d -f /tmp/minidlna.conf