Managing OpenWRT » History » Revision 19

« Previous | Revision 19/31 (diff) | Next »
Nico Schottelius, 12/10/2020 05:54 PM

Managing OpenWRT

Installing and configuring Jool

  • You can use one of the known NAT64 prefixes from our networks (LINK!)
    • In the example below this is 2a0a:e5c0:2:10::/96
  • You need to have a /96 (or better: /64) routed to the openwrt
    • In the example below this is 2a0a:e5c0:17:1::/96
opkg install kmod-jool
opkg install jool-tools

# Load the kernel module
modprobe jool_siit

# The range which will be the target for the 2nd NAT (if needed to reach a v4 ip)
jool_siit -6 2a0a:e5c0:2:10::/96

# Pick a v6 range to translate TO and a v4 range to translate from
jool_siit -e -a 2a0a:e5c0:17:1::/96

# Accept Router Advertisements to keep the default address
sysctl -w net.ipv6.conf.all.accept_ra=2
sysctl -w net.ipv6.conf.default.accept_ra=2
sysctl -w net.ipv6.conf.eth0.accept_ra=2
sysctl -w

Enabling routing with router advertisements

  • By default ipv6 forwarding is on (good!)
  • By default accept_ra is 0
    • This does not set the route properly into the kernel -> routing is broken
  • Need to modify accept_ra to 2

Enabling SSH access on wan

Enable it in the web interface



Dropbear uci var (not tested):

    option GatewayPorts 'on' 

Resetting to factory default

firstboot -y && reboot now

Installing and configuring an APU as a PIB with OpenWRT

wget ... -O - | gunzip > /dev/sda
  • Configure it using from ungleich-tools
  • Create a network on the VPN server

Installing openwrt (squashfs) on APU details

opkg update
  • Install SSL certifaicates
opkg install libustream-openssl ca-bundle ca-certificates
  • check the time and date if it is not correct, modify the time and date as follows
  • Flashing the squashfs openwrt image into the APUs SSD (adjust to the correct version)
wget -O -
x86/64/openwrt-19.07.3-x86-64-combined-squashfs.img.gz | gunzip > /dev/sda 

Defaults after Openwrt installation

  • eth0 = WAN
  • eth1&2 = LAN

Setting up the GL-INET GL-MT300N-V2

Managing QMI based LTE devices

Debug commands:

uqmi -d /dev/cdc-wdm0 --get-signal-info
uqmi -d /dev/cdc-wdm0 --get-data-status
uqmi -d /dev/cdc-wdm0 --get-current-settings
uqmi -d /dev/cdc-wdm0 --get-capabilities

uqmi -d /dev/cdc-wdm0 --get-imei

# get network cell / status
uqmi -d /dev/cdc-wdm0 --get-serving-system       

# get networks in range
uqmi -d /dev/cdc-wdm0 --network-scan

Reset (might help to clear the NETWORK_REGISTRATION_FAILED error?)

/sbin/uqmi -d /dev/cdc-wdm0 --set-device-operating-mode offline
/sbin/uqmi -d /dev/cdc-wdm0 --set-device-operating-mode reset
/bin/sleep 20
/sbin/uqmi -d /dev/cdc-wdm0 --set-device-operating-mode online
/sbin/uqmi -d /dev/cdc-wdm0 --set-autoconnect enabled
/sbin/uqmi -d /dev/cdc-wdm0 --network-register

Setting the network mode:

  --set-network-modes <modes>:      Set usable network modes (Syntax: <mode1>[,<mode2>,...])
                                    Available modes: all, lte, umts, gsm, cdma, td-scdma

root@vigir2:~# uqmi -d /dev/cdc-wdm0  --get-signal-info
    "type": "wcdma",
    "rssi": -104,
    "ecio": 17
root@vigir2:~# uqmi -d /dev/cdc-wdm0 --set-network-modes lte

(wait some time)
root@vigir2:~# uqmi -d /dev/cdc-wdm0  --get-signal-info
    "type": "lte",
    "rssi": -71,
    "rsrq": -11,
    "rsrp": -99,
    "snr": 72


uqmi -d /dev/cdc-wdm0 --set-network-roaming off

* See also:

h2. Managing static IPv6 addresses

If using a statically routed IPv6 network, the default RA mechanism does not set an outgoing route by default. This is a bit different from "regular" Linux:

* openwrt uses user space odhcp6c
* for openwrt we need to setup a "static default route" 
** do not forget to select the interface in the list
* Default Linux on the other hand needs to use accept_ra=2 if ipv6 forwarding is on
** This also works on openwrt, but it is conflicting/not the correct way to do
* **TL;DR If using openwrt with static IPv6 addresses, add a static IPv6 default route**

Alternative (currently untested) approach:

instead of hardcoding the subnet in lan, add it as "option ip6prefix" to your wan6/dhcpv6 interface
in lan merely add "option ip6assign 64" or however much bits you want to redelegate
that should make odhcp6c/netifd aware of the additional prefix and factor that into the default route coverage
it should work as if the prefix were received via dhcpv6-pd

(Thanks to jow in #openwrt)

h2. Temperature sensor support

We are using "temper" based usb temperature sensors. They are read using "temper-py": 
The default setup is to write to /www/temperature.txt which allows the temperature to be read from the standard webserver.

So if you own a VIIRB/VIWIB/other OpenWRT device using the "openwrt-add-temper": you can see the temperature on http://ip-of-the-device/temperature.txt.

It is refreshed every 5 minutes.

Updated by Nico Schottelius over 3 years ago · 19 revisions