Davidc502- wrt1200ac wrt1900acx wrt3200acm wrt32x builds

I was offline for a few days, back today.

nitroshift

Ok, i got the reason why overlay getting out of free space. Well... Years passed, some things never changes.

Being short, you should not update from 4.x to 5.x both keeping you config and even restore settings from backup.

The source of this not a difference in network config or so, but - again - it's a BAD idea to keep/store HARDWARE configuration files. This time it was /etc/config/ubootenv - it's different for 4.x and 5.x

So, i recommend make a backup before update, then NOT use restore function, but unpack it and copy files to router - except /etc/config/ubootenv and /etc/fw_env.config.

I'll post to Openwrt bug tracker about it.

3 Likes

I just installed 2020-05-24 on a WRT1900ACS. I think there should be a way to manage dnscrypt in LuCI if it is enabled by default or at least something in the release notes about how to disable it. How can I do that? The dnscrypt page says it's now part of the build so instructions are no longer needed, and I can't find anything about it in the FAQ. I also searched this thread but it's so big I only get results from 2018. I'm not sure I want some random provider (seems to be chosen based on latency) having all my DNS queries I'd rather just continue using my ISP.

Hi,

I have problems in running DHCPv6 server, but process odhcpd is running:

root@linksys0:~# cat /etc/services | grep dhcp
dhcpv6-client	546/tcp
dhcpv6-client	546/udp
dhcpv6-server	547/tcp
dhcpv6-server	547/udp
root@linksys0:~# netstat -an | grep 547
root@linksys0:~# 
root@linksys0:~# ps -ef | grep odhcp
root     19547     1  0 10:14 ?        00:00:00 /usr/sbin/odhcpd
root     23978 21576  0 11:39 pts/0    00:00:00 grep odhcp
root@linksys0:~# 

In /etc/config/dhcp config file I have (relevant parts):

...
config dhcp 'lan1'
	option interface 'lan1'
	option ignore '0'
	option start '100'
	option limit '254'
	option leasetime '12h'
	option dhcpv6 'server'
	option ra 'server'

config dhcp 'wan'
	option interface 'wan'
	option ignore '1'

config dhcp 'wan6'
	option dhcpv6 'relay'
	option ra 'relay'
	option ndp 'relay'
	option master '1'

config odhcpd 'odhcpd'
	option maindhcp '0'
	option leasefile '/tmp/hosts/odhcpd'
	option leasetrigger '/usr/sbin/odhcpd-update'
	option loglevel '7'
...

I am running the latest Davidc502 build:

root@linksys0:~# cat /etc/openwrt_release 
DISTRIB_ID='OpenWrt'
DISTRIB_RELEASE='SNAPSHOT'
DISTRIB_REVISION='r13342-e35e40ad82'
DISTRIB_TARGET='mvebu/cortexa9'
DISTRIB_ARCH='arm_cortex-a9_vfpv3-d16'
DISTRIB_DESCRIPTION='OpenWrt SNAPSHOT r13342-e35e40ad82'
DISTRIB_TAINTS='busybox'
root@linksys0:~# 

Do you have some similar experiences, or maybe I am missing something in the configuration?
Best regards

  1. Possible bug on Status > Overview page. Total memory is showing 50% available and Used memory is showing 94% used. Shouldn't these two be reversed, how can I be using more than my total avail?

  2. Looks like Advanced Reboot was never fixed on WRT32X, it still says unknown for the Linksys firmware, not on you, but just noticed.

  3. Finally, anyone know if I can just delete WAN6 under Network > Interfaces to get rid of ipv6?

Thanks again for your builds, on the latest with kernel 5.4.42, it's running amazing. Maxing out my 200Mbit cable with A+ bufferbloat & quality ratings using SQM, software offloading enabled, USB 3.0 Network Share running awesome, Adblock works perfect minus youtube ofc, 5Ghz wifi is stable and fast, everything is in a good place right now.

2 Likes

Mine says 78/28 available/used so yeah it's not exact.

Unfortunately it's not that easy to get rid of IPv6. I would be interested in doing this as well, but so far everything I've tried has failed to completely get rid of it.

Network > Interfaces > LAN > DHCP > IPv6 > Disable everything
Network > Interfaces > LAN > Advanced > Uncheck 'Use IPv6-management'
Network > Interfaces > WAN > Advanced > Uncheck 'Use IPv6-management'
Network > Interfaces > WAN6 > Delete

I set all the 'disable_ipv6' settings that I could find using sysctl -a | grep disable_ipv6 (will differ depending on router)

cat << 'EOF' >> /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.bond0.disable_ipv6 = 1
net.ipv6.conf.br-lan.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1
net.ipv6.conf.eth0/1.disable_ipv6 = 1
net.ipv6.conf.eth1.disable_ipv6 = 1
net.ipv6.conf.eth1/2.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.sit0.disable_ipv6 = 1
net.ipv6.conf.teql0.disable_ipv6 = 1
net.ipv6.conf.wlan0.disable_ipv6 = 1
net.ipv6.conf.wlan1.disable_ipv6 = 1
EOF
cat /etc/sysctl.conf

I rebooted and monitored the IPv6 packets being sent by the router on boot and there's still multicast listener and router solicitation. Also I noticed a few settings don't remain IPv6 disabled.

# sysctl -a 2>/dev/null | grep disable_ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.bond0.disable_ipv6 = 1
net.ipv6.conf.br-lan.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.eth0/1.disable_ipv6 = 1
net.ipv6.conf.eth1.disable_ipv6 = 0
net.ipv6.conf.eth1/2.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.sit0.disable_ipv6 = 1
net.ipv6.conf.teql0.disable_ipv6 = 1
net.ipv6.conf.wlan0.disable_ipv6 = 1
net.ipv6.conf.wlan1.disable_ipv6 = 1
1 Like

@phinn & @newshoes

Completely getting rid of IPv6 cand be achieved at build level only.

nitroshift

1 Like

This put DHCPv6 in slave mode. Change to "Server" to use local DHCPv6 server.

EDIT: I check my config, i don't have wan6 in dhcp config at all. But have ra_default and ra_management for lan both set to 1.

what is the difference between Davidc502's builds vs official releases

Some say that Davidc502's builds use new WiFi driver but I can't find what version is being used in official releases so I can compare the change log and see what is the difference

Did you install these packages:
https://downloads.openwrt.org/snapshots/packages/arm_cortex-a9_vfpv3-d16/packages/libminiupnpc_2.1.20191224-1_arm_cortex-a9_vfpv3-d16.ipk
https://downloads.openwrt.org/snapshots/packages/arm_cortex-a9_vfpv3-d16/packages/transmission-daemon-openssl_3.00-2_arm_cortex-a9_vfpv3-d16.ipk

I did and removed those lines from the init.d script and no joy, only way I got it working was by manually starting the daemon from /usr/bin/transmission-daemon -g /xxxxx

Really would like to get the script working for easy starting, stopping and restarting

Would you mind sharing the script? Shouldn't be any different than just deleting the lines myself, but would appreciate it anyway, as it doesn't work for me unfortunately.

I installed:

transmission-cli-openssl - 3.00-2
transmission-daemon-openssl - 3.00-2
transmission-remote-openssl - 3.00-2
transmission-web-control - 2019-07-24-c27e3ba9-1

I also had to fix some permission to allow the transmission user to read/write to the folder that I wanted to use.

Init Script
#!/bin/sh /etc/rc.common
# Copyright (C) 2010-2015 OpenWrt.org

START=99
STOP=10
USE_PROCD=1
PROG="/usr/bin/transmission-daemon"

LIST_SEP="
"
append_params() {
	local p; local v; local s="$1"; shift
	IFS="$LIST_SEP"
	for p in "$@"; do
		config_get v "$s" "$p"
		for v in $v; do
			[ -n "$v" ] && echo "\"$p\": $v," | sed -e 's|_|-|g'
		done
	done
	unset IFS
}

append_params_quotes() {
	local p; local v; local s="$1"; shift
	IFS="$LIST_SEP"
	for p in "$@"; do
		config_get v "$s" "$p"
		for v in $v; do
			[ -n "$v" ] && {
				printf "\"%s" "$p" | sed -e 's|/|\\/|g;s|_|-|g'; \
				echo "\": \"$v\","
			}
		done
	done
	unset IFS
}

transmission() {
	local cfg="$1"

	local enabled
	config_get_bool enabled "$cfg" enabled 0
	[ "$enabled" -gt 0 ] || return 1

	local config_dir
	config_get config_dir "$cfg" 'config_dir' '/var/etc/transmission'
	local user
	config_get user "$cfg" 'user'
	local group
	config_get group "$cfg" 'group'
	local download_dir
	config_get download_dir "$cfg" 'download_dir' '/var/etc/transmission'
	local incomplete_dir
	config_get incomplete_dir "$cfg" 'incomplete_dir' '/var/etc/transmission'
	local incomplete_dir_enabled
	config_get incomplete_dir_enabled "$cfg" 'incomplete_dir_enabled' 0
	local mem_percentage
	config_get mem_percentage "$cfg" 'mem_percentage' '50'
	local config_overwrite
	config_get config_overwrite "$cfg" config_overwrite 1
	local nice
	config_get nice "$cfg" nice 0
	local web_home
	config_get web_home "$cfg" 'web_home'
	local seccomp_path

	local MEM
	MEM=$(sed -ne 's!^MemTotal:[[:space:]]*\([0-9]*\) kB$!\1!p' /proc/meminfo)
	local USE
	[ "$MEM" -gt 1 ] && USE=$((MEM * mem_percentage * 10))

	config_file="$config_dir/settings.json"
	[ -d "$config_dir" ] || {
		mkdir -p "$config_dir"
		chmod 0755 "$config_dir"
		touch "$config_file"
		mkdir -p "$config_dir/resume"
		mkdir -p "$config_dir/torrents"
		mkdir -p "$config_dir/blocklists"
		[ -e "$config_dir/stats.json" ] || touch "$config_dir/stats.json"
		[ -z "$user" ] || chown -R "$user:$group" "$config_dir"
	}

	[ -d "$download_dir" ] || {
		mkdir -p "$download_dir"
		chmod 0755 "$download_dir"
		[ -z "$user" ] || chown -R "$user:$group" "$download_dir"
	}

	[ "$incomplete_dir_enabled" = "0" ] || [ -d "$incomplete_dir" ] || {
		mkdir -p "$incomplete_dir"
		chmod 0755 "$incomplete_dir"
		[ -z "$user" ] || chown -R "$user:$group" "$incomplete_dir"
	}

	[ "$config_overwrite" = 0 ] || {

		echo "{"

		append_params "$cfg" \
			alt_speed_down alt_speed_enabled alt_speed_time_begin alt_speed_time_day \
			alt_speed_time_enabled alt_speed_time_end alt_speed_up blocklist_enabled \
			cache_size_mb download_queue_enabled download_queue_size \
			dht_enabled encryption idle_seeding_limit idle_seeding_limit_enabled \
			incomplete_dir_enabled lazy_bitfield_enabled lpd_enabled message_level \
			peer_id_ttl_hours peer_limit_global peer_limit_per_torrent peer_port \
			peer_port_random_high peer_port_random_low peer_port_random_on_start \
			pex_enabled port_forwarding_enabled preallocation prefetch_enabled \
			ratio_limit ratio_limit_enabled rename_partial_files rpc_authentication_required \
			rpc_enabled rpc_port rpc_whitelist_enabled queue_stalled_enabled \
			queue_stalled_minutes scrape_paused_torrents_enabled script_torrent_done_enabled \
			seed_queue_enabled seed_queue_size \
			speed_limit_down speed_limit_down_enabled speed_limit_up \
			speed_limit_up_enabled start_added_torrents trash_original_torrent_files \
			umask upload_slots_per_torrent utp_enabled \
			watch_dir_enabled rpc_host_whitelist_enabled

		append_params_quotes "$cfg" \
			blocklist_url bind_address_ipv4 bind_address_ipv6 download_dir incomplete_dir \
			peer_congestion_algorithm peer_socket_tos rpc_bind_address rpc_password rpc_url \
			rpc_username rpc_host_whitelist rpc_whitelist script_torrent_done_filename watch_dir

			echo "\"invalid-key\": false"
			echo "}"

	} > "$config_file"

	procd_open_instance
	procd_set_param command "$PROG"
	procd_append_param command -f -g "$config_dir"
	procd_set_param user "$user"
	procd_set_param group "$group"
	procd_set_param nice "$nice"
	procd_set_param stderr 1
	procd_set_param respawn

	seccomp_path="/etc/seccomp/transmission-daemon.json"
	# TODO: IS IT NEEEDED?
	# Disable seccomp_path from: https://forum.openwrt.org/t/issues-with-transmission-after-upgrading-part-2/63483/17
	#if [ -f "$seccomp_path" ]; then
	#	procd_set_param seccomp "$seccomp_path"
	#fi

	if [ -z "$USE" ]; then
		procd_set_param limits core="0 0"
	else
		procd_set_param limits core="0 0" as="$USE $USE"
		logger -t transmission "Starting with $USE virt mem"
	fi

	[ -d "$web_home" ] && procd_set_param env TRANSMISSION_WEB_HOME="$web_home"

	procd_add_jail transmission log
	procd_add_jail_mount "$config_file"
	procd_add_jail_mount_rw "$config_dir/resume"
	procd_add_jail_mount_rw "$config_dir/torrents"
	procd_add_jail_mount_rw "$config_dir/blocklists"
	procd_add_jail_mount_rw "$config_dir/stats.json"
	procd_add_jail_mount_rw "$download_dir"
	procd_close_instance
}

start_service() {
        config_load transmission
	config_foreach transmission 'transmission'
}

reload_service() {
	procd_send_signal "$PROG"
}

service_triggers() {
	procd_add_reload_trigger "transmission"
}
1 Like

Where did you download those files? And thanks btw! Just used your init.d with my links, but nothing. So if you would mind sharing the place to download them, will try that, if that doesn't work, will just use the startup script.

Same as yours (but I don't have any history on the router so can't share the link I had).
I think you should look at user permission, that was also an issue for me.

1 Like

If I manually start Transmission all the permissions are OK since it all works with transmission, but then I have to setup the json file manually. Would you mind sharing what you did? If not, no problem of course.

I installed shadow-su so that I could do su transmission
(changed /etc/passwd to allow shell session for transmission user)

Then I just tried to run the daemon as transmission user.

I think that if you have to set-up json file manually transmission has no write access to the folder.

1 Like

Hi,

I reinstalled my setup yesterday with wireguard client and its working seemlessly with latest David's build, thx for keeping those builds running.

In the process i forgot to accept the certificate at first logon, is there a way to add it back? so i dont have that not trusted certificate.

i done some research but nothing related to our specific build.

thx for helping

hi dear dave
please i seen package named Luci app https-dns-proxy is very good and perfect results and easy for use than DNSCrypt 2

can u add it besides Dnscrypt it has small packages

Thank you

@herik

dnscrypt-proxy2 is loaded by default and I don't believe the original luci-app is compatible with it.

Thanks,

David

i mean another package named [ Luci app https-dns-proxy ] this is DOH over https
not Dnscrypt
if you tested it it's very simple and stable and fast than dnscrypt

Repo already smartdns package, which can provide DoH and DoT (and much more) and quite small.

Hope david adds luci-app-smartdns into repo for next release....