Commit Graph

1523 Commits

Author SHA1 Message Date
Tianling Shen
93ab8506e1
ImmortalWrt v21.02.0: revert to branch defaults
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-22 07:11:48 +08:00
Tianling Shen
57dfa297a2
ImmortalWrt v21.02.0: adjust config defaults
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-04-22 07:11:47 +08:00
Tianling Shen
8561c26155
base-files: tweak banner
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit be0ac56b63)
2022-03-15 20:36:25 +08:00
Tianling Shen
c6c26010c2
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-15 18:50:25 +08:00
Tianling Shen
2c16ee6a6d
include/version: use ImmortalWrt's release repo
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-03-14 21:45:05 +08:00
Rafał Miłecki
f44f8b07b0 base-files: call "sync" after initial setup
OpenWrt uses a lot of (b)ash scripts for initial setup. This isn't the
best solution as they almost never consider syncing files / data. Still
this is what we have and we need to try living with it.

Without proper syncing OpenWrt can easily get into an inconsistent state
on power cut. It's because:
1. Actual (flash) inode and data writes are not synchronized
2. Data writeback can take up to 30 seconds (dirty_expire_centisecs)
3. ubifs adds extra 5 seconds (dirty_writeback_centisecs) "delay"

Some possible cases (examples) for new files:
1. Power cut during 5 seconds after write() can result in all data loss
2. Power cut happening between 5 and 35 seconds after write() can result
   in empty file (inode flushed after 5 seconds, data flush queued)

Above affects e.g. uci-defaults. After executing some migration script
it may get deleted (whited out) without generated data getting actually
written. Power cut will result in missing data and deleted file.

There are three ways of dealing with that:
1. Rewriting all user-space init to proper C with syncs
2. Trying bash hacks (like creating tmp files & moving them)
3. Adding sync and hoping for no power cut during critical section

This change introduces the last solution that is the simplest. It
reduces time during which things may go wrong from ~35 seconds to
probably less than a second. Of course it applies only to IO operations
performed before /etc/init.d/boot . It's probably the stage when the
most new files get created.

All later changes are usually done using smarter C apps (e.g. busybox or
uci) that creates tmp files and uses rename() that is expected to be
atomic.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
(cherry picked from commit 9851d4b6ce)
2022-03-14 08:51:02 +01:00
Tianling Shen
0910bd64ff
base-files: update default banner
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 29c5695d92)
2022-03-13 16:56:25 +08:00
Hauke Mehrtens
d1c15c41d9 OpenWrt v21.02.2: revert to branch defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-02-17 19:00:44 +01:00
Hauke Mehrtens
30e2782e06 OpenWrt v21.02.2: adjust config defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-02-17 19:00:30 +01:00
Tianling Shen
7d409270a9
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2022-01-10 20:26:41 +08:00
Florian Eckert
dbe2a6343f base-files: fix service_running check
The following command checks if a instance of a service is running.
/etc/init.d/<service> running <instance>

 In the variable `$@`, which is passed to the function
`service_running`, the first argument is always the `instance` which
should be checked. Because all other variables where removed from `$@`
with `shift`.

Before this change the first argument of `$@` was set to the `$service`
Variable. So the function does not work as expected. The `$service`
variable was always the instance which should be checked. This is not
what we want.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Reviewed-by: Sungbo Eo <mans0n@gorani.run>
(cherry picked from commit dd681838d3)
2021-12-29 21:40:40 +01:00
Javier Marcet
e81dd8a10a base-files: upgrade: fix efi partitions size calculation
We were missing (not using) the last sector of each partition,
compared with the output of gparted.

Signed-off-by: Javier Marcet <javier@marcet.info>
[moved the dot]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit 018ada5403)
2021-12-29 21:38:58 +01:00
Tianling Shen
62b3715e6c
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-11-09 21:25:21 +08:00
Deomid Ryabkov
2f04012b20 base-files: chmod 1777 /var/lock
Per FHS 3.0, /var/lock is the location for lock files [1].
However its current permissions (755) are too restrictive
for use by unprivileged processes.
Debian and Ubuntu set them to 1777, and now so do we.

[1] <https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html#varlockLockFiles>

Signed-off-by: Deomid Ryabkov <rojer@rojer.me>
[fixed typo in commit message, had to remove "rojer" due to git hooks]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit 430f691943)
2021-11-05 21:24:04 +01:00
Hauke Mehrtens
a77ea2f05f OpenWrt v21.02.1: revert to branch defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-10-25 21:45:09 +02:00
Hauke Mehrtens
b4d7885af7 OpenWrt v21.02.1: adjust config defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-10-25 21:44:54 +02:00
Hauke Mehrtens
6f8143fa4a OpenWrt v21.02.0: revert to branch defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-09-01 21:53:58 +02:00
Hauke Mehrtens
b2ae423314 OpenWrt v21.02.0: adjust config defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-09-01 21:53:53 +02:00
Hauke Mehrtens
9531e70708 OpenWrt v21.02.0-rc4: revert to branch defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-08-01 19:39:03 +02:00
Hauke Mehrtens
134ac824c5 OpenWrt v21.02.0-rc4: adjust config defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-08-01 19:38:53 +02:00
AmadeusGhost
50fc7cd2da
base-files: adjust default ntp server again
(cherry picked from commit 54c4d55c6a)
2021-07-23 02:00:32 +08:00
Tianling Shen
84221380ca
base-files: tweak default ntp servers
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 63138ba431)
2021-07-16 15:55:52 +08:00
Tianling Shen
fb6939456c
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-07-09 00:54:15 +08:00
Bob Cantor
a9100f2196 base-files: wifi: tidy up the reconf code
commit 5edbd390d321532d9a697d6895a1a7c71c40bd5d rearranged the
"wifi up" code.

This commit tidies up the "wifi reconf" code so as to
keep it aligned with the "wifi up" code.

branches affected: trunk, 21.02

Signed-off-by: Bob Cantor <coxede6557@w3boats.com>
(cherry-picked from commit e8b5429609)
2021-06-30 19:24:55 +02:00
Bob Cantor
b27b63b082 base-files: wifi: swap the order of some ubus calls
"/sbin/wifi up" makes three ubus calls:
1. ubus call network reload
2. ubus call network.wireless down
3. ubus call network.wireless up

The first and third ubus calls call drv_mac80211_setup,
while the second ubus call triggers wireless_device_setup_cancel,
so the call sequence becomes,

1. drv_mac80211_setup
2. wireless_device_setup_cancel
3. drv_mac80211_setup

This commit swaps the order of the first two ubus calls,
1. ubus call network.wireless down
2. ubus call network reload
3. ubus call network.wireless up

Consequently drv_mac80211_setup is only called once,
and two related bugs (#FS3784 and #FS3902) are no longer triggered
by /sbin/wifi.

branches affected: trunk, 21.02

Signed-off-by: Bob Cantor <coxede6557@w3boats.com>
(cherry-picked from commit b82cc80713)
2021-06-30 19:24:55 +02:00
Tianling Shen
c960e51b62
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-27 22:36:47 +08:00
Paul Spooren
3d62b5d5c6 base-files: fix /tmp/TZ when zoneinfo not installed
The zoneinfo packages are not installed per default so neither
/tmp/localtime nor /tmp/TZ is generated.

This patch mostly reverts the previous fix and instead incooperates a
solution suggested by Jo.

Fixes "base-files: fix zoneinfo support " 8af62ed

Signed-off-by: Paul Spooren <mail@aparcar.org>
(cherry picked from commit 56bdb6bb97)
2021-06-25 14:53:52 -10:00
Tianling Shen
8738b3f602
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-26 02:46:05 +08:00
Rosen Penev
3047df2317 base-files: fix zoneinfo support
The system init script currently sets /tmp/localinfo when zoneinfo is
populated. However, zoneinfo has spaces in it whereas the actual files
have _ instead of spaces. This made the if condition never return true.

Example failure when removing the if condition:

/tmp/localtime -> /usr/share/zoneinfo/America/Los Angeles

This file does not exist. America/Los_Angeles does.

Ran through shfmt -w -ci -bn -sr -s

Signed-off-by: Rosen Penev <rosenp@gmail.com>
(cherry picked from commit 8af62ede18)
2021-06-23 15:44:04 -10:00
Hauke Mehrtens
7a5a247c1f base-files: failsafe: Remove the VLAN modifier from interface name
Some interfaces have a VLAN modifier like :t in lan1:t, this modifier
should be removed from the interface before calling preinit_ip_config().

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 790561d510)
2021-06-22 23:52:09 +02:00
Hauke Mehrtens
c0fdfd15fc base-files: failsafe: Fix IP configuration
Adapt the preinit_config_board() to the board.json network changes. It
now looks for the device and the ports variables to configure the LAN
network.

This works with swconfig configurations.

Fixes: FS#3866
Fixes: d42640e389 ("base-files: use "ports" array in board.json network for bridges")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Reviewed-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 467cd378db)
2021-06-22 23:52:09 +02:00
Tianling Shen
e8492b9f83
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-06-22 15:25:54 +08:00
Rafał Miłecki
74dbf3412b base-files: fix typo in config_generate MAC check
Fixes: 125deb4d78 ("base-files: set MAC for bridge ports (devices) instead of bridge itself")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 946019637e)
2021-06-22 08:10:49 +02:00
Rafał Miłecki
125deb4d78 base-files: set MAC for bridge ports (devices) instead of bridge itself
This restores the original config_generate behaviour. With MAC set for
bridged devices the bridge automatically gets its MAC adjusted (it picks
the lowest MAC of bridged devices).

This fixes confusing interfaces setup (bridge ports not having custom
MAC assigned).

Reported-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
Fixes: c2139eef27 ("base-files: simplify setting device MAC")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit c8d8eb9d13)
2021-06-22 08:10:05 +02:00
Hauke Mehrtens
aeb7b57798 OpenWrt v21.02.0-rc3: revert to branch defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-06-14 20:33:17 +02:00
Hauke Mehrtens
2bc192c3f4 OpenWrt v21.02.0-rc3: adjust config defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-06-14 20:33:04 +02:00
Hauke Mehrtens
d484366a9e OpenWrt v21.02.0-rc2: revert to branch defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-05-29 20:02:03 +02:00
Hauke Mehrtens
3e09cc4969 OpenWrt v21.02.0-rc2: adjust config defaults
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-05-29 20:01:58 +02:00
Tianling Shen
f11baf552c
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-28 22:42:36 +08:00
Rafał Miłecki
c2139eef27 base-files: simplify setting device MAC
1. Move code above interface generation
   It results in more logical order. Device gets its config section
   above interface section.
2. Drop the loop
   We have separated code handling bridges now so $device should be
   guaranteed to contain a single device name.
3. Drop section name
   It's not required by netifd or LuCI & it's not needed by this script
   as $device contains a single device name now.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit e002179a6d)
2021-05-28 16:04:04 +02:00
Tianling Shen
48aec13d77
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-28 15:24:22 +08:00
Rafał Miłecki
16ccf888ee base-files: generate network config with "device" options
Replace "ifname" with "device" as netifd has been recently patches to
used the later one. It's more clear and accurate.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 4b9a67362d)
2021-05-27 11:39:15 +02:00
INAGAKI Hiroshi
77d96e925f base-files: fix configuration generation of network if "bridge" exists
After the commit 43fc720657
("base-files: generate "device UCI type section for bridge"), the wrong
network configuration is generated for the devices that already have the
bridge device section for VLAN, such as the devices in realtek target.

As a result, the bridge device by additional "device" section is
specified to the "ports" option in the "bridge-vlan" section and netifd
shuts down the switch and the ethernet when the network service started.

Fixes: 43fc720657 ("base-files: generate "device" UCI type section for bridge")
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
[rmilecki: use $ports for generate_bridge_vlan argument]
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 8cc4e87a2f)
2021-05-27 11:39:15 +02:00
Rafał Miłecki
fc605c01f6 base-files: support setting bridge MAC address
Fixes: 43fc720657 ("base-files: generate "device" UCI type section for bridge")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 7a90ad3c43)
2021-05-27 11:39:15 +02:00
Rafał Miłecki
0d90023633 base-files: generate bridge device sections with br- name prefix
Missing br- prefix could result in name conflict between DSA port
interface and bridge interface. Some devices with just one LAN port use
"lan" interface name for DSA port. Trying to create bridge with the same
"lan" name was failing.

Reported-by: David Bauer <mail@david-bauer.net>
Fixes: 43fc720657 ("base-files: generate "device" UCI type section for bridge")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 0e459668c5)
2021-05-27 11:39:15 +02:00
Rafał Miłecki
892fc7caa9 base-files: generate "device" UCI type section for bridge
This switches from the old way of defining bridges in an "interface" UCI
section type (that should be used for layer 3 only). From now a defualt
board switch will have its own "device" UCI section type. It's a new &
preferred way of defining L2 devices.

Before:

config interface 'lan'
        option type 'bridge'
        option ifname 'lan1 lan2 lan3 lan4'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'

After:

config device
        option name 'lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'

config interface 'lan'
        option ifname 'lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 43fc720657)
2021-05-27 11:39:15 +02:00
Tianling Shen
60710e8cc3
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-24 22:02:39 +08:00
Rafał Miłecki
d9603bbd3e base-files: use "ports" array in board.json network for bridges
Bridge aggregates multiple ports so use a more accurate name ("ports")
and format (array) for storing them in board.json.

Example:

"network": {
	"lan": {
		"ports": [
			"lan1",
			"lan2",
			"lan3",
			"lan4"
		],
		"protocol": "static"
	},
	"wan": {
		"ifname": "wan",
		"protocol": "dhcp"
	}
}

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit d42640e389)
2021-05-24 10:36:28 +02:00
Tianling Shen
2450b3571e
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-13 22:40:30 +08:00
Jo-Philipp Wich
faf9528a23 base-files: shinit: properly handle dashes in service names
Fixes: FS#3801
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 75ea878d1b)
2021-05-12 12:45:38 +02:00