|OpenWrt on the DG834Gv4 modem router||
|2018-04-19 18:00||Installing OpenWrt on the DG834Gv4 modem router|
The DG834Gv4 is an old Netgear WiFi modem/router and has been my first wireless access point. Years have passed and this hardware shows signs of its age. It is compliant to 802.11 b/g only and has 100 Mbps ethernet ports . Also, when using it as a DSL modem, it sometimes disconnects because of the heat it generates. It was time to decommission it.
After the router collected some dust, I evaluated some options such as installing OpenWrt or the DGTeam firmwares. I went with the DGTeam firmware at first because it had modem support. This meant I could use it as a spare modem.
A few weeks ago, however, I tried installing OpenWrt and it wasn't so straight forward as I thought.
The reason to select such an old image is because of the insufficient free RAM available once the important services start up. Even with Attitude Adjustment you'll run out of memory easily. I also tried using older versions of OpenWrt without success.
Go to http://192.168.1.1 and change the root password via the LuCI web interface. This will also enable the SSH daemon.
Login via SSH (
ssh firstname.lastname@example.org) and run the following to remove the web interface.
/etc/init.d/uhttpd stop /etc/init.d/uhttpd disable # repeat the following until no more packages are removed. opkg remove --autoremove luci*
Network and device configuration
- Time configure the network interfaces with
root@OpenWrt:~# cat /etc/config/wireless config wifi-device radio0 option type 'mac80211' option macaddr '<router_s MAC address here>' option hwmode '11g' option channel '<channel>' option country '<region>' option txpower '20' # REMOVE THIS LINE TO ENABLE WIFI: option disabled '0' config wifi-iface option device 'radio0' option network 'lan' option mode 'ap' option encryption 'psk2+aes' option key '<your key here>' option ssid '<your SSID here>' root@OpenWrt:~# cat /etc/config/network config interface 'loopback' option ifname 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config interface 'lan' option ifname 'eth0' option type 'bridge' option proto 'static' option ipaddr '<router_s address>' option netmask '<router_s netmask>'
- If you want to use the router as a switch/repeater, this will disable the DHCP server:
/etc/init.d/dnsmasq stop /etc/init.d/dnsmasq disable
There is not enough memory to install anything even after killing several processes.
route add default gateway 192.168.1.1 netmask 0.0.0.0 metric 0 echo "nameserver 188.8.131.52" > /etc/resolv.conf root@OpenWrt:~# opkg install sshfs Installing sshfs (2.2-1) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/brcm63xx/generic/packages/sshfs_2.2-1_brcm63xx.ipk. Collected errors: * gz_open: fork: Cannot allocate memory. * opkg_install_pkg: Failed to unpack control files from /tmp/opkg-Ry3bvT/sshfs_2.2-1_brcm63xx.ipk. * opkg_install_cmd: Cannot install package sshfs.
For some reason, WiFi seems less powerful (as in range) than it should be. This is quite disappointing.
It would be interesting to patch the original Netgear/SerComm firmware by
scfgmgr file and a line in a shell script that is launched at boot.
You need a 32 bit GNU/Linux distribution with the appropriate development libraries and only then you'll be able to run the software that rebuilds the image. Unfortunately there is only a text file describing generic instructions so it takes quite some time to track down all the necessary libraries and to have a working environment. Maybe another time...
Applications using OpenWrt
I ended up using it for this: openwrt-leds-as-notification