mirror of
https://github.com/openwrt/openwrt.git
synced 2026-07-20 16:11:59 +04:00
base-files: move config_generate to preinit
The mutex file via '/tmp/.config_pending' should prevent the command
'/sbin/wifi config' from being called in the ieee80211 hotplug when loading
the kernel modules [1]. Since the file '/etc/board.json' does not yet exist
and could be incomplete.
The '/etc/board.json' file is modified in the '/sbin/wifi config' script.
This is only generated during the first boot when '/bin/config_generate' is
called.
This whole handling is unclean. Therefore the creation of the default
configuration '/etc/config/network', '/etc/config/system' and
'/etc/board.json' via '/sbin/config_generate' is moved to the preinint
after the rootfile system has been mounted
The advantage now is that on an ieee80211 hotplug event, the
'/etc/board.json' is already present which simplifies the whole thing.
[1] https://github.com/openwrt/openwrt/blob/main/package/network/config/wifi-scripts/files/etc/hotplug.d/ieee80211/10-wifi-detect
Fixes: b993a00b82 ("base-files: fix duplicate wifi radio sections when using phy renaming")
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
This commit is contained in:
committed by
Robert Marko
parent
2aa1185fb0
commit
ca54521988
@@ -43,22 +43,15 @@ boot() {
|
||||
grep -q pstore /proc/filesystems && /bin/mount -o nosuid,nodev,noexec,noatime -t pstore pstore /sys/fs/pstore
|
||||
[ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe
|
||||
|
||||
touch /tmp/.config_pending
|
||||
# update wifi config before additional ieee80211 hotplug events
|
||||
# get executed because of '/sbin/kmodloader' kmod loading.
|
||||
[ -f /etc/board.json ] && /sbin/wifi config
|
||||
|
||||
/sbin/kmodloader
|
||||
|
||||
[ ! -f /etc/config/wireless ] && {
|
||||
# compat for bcm47xx and mvebu
|
||||
sleep 1
|
||||
}
|
||||
|
||||
mkdir -p /tmp/.uci
|
||||
[ -f /etc/uci-defaults/30_uboot-envtools ] && (. /etc/uci-defaults/30_uboot-envtools)
|
||||
/bin/config_generate
|
||||
rm -f /tmp/.config_pending
|
||||
/sbin/wifi config
|
||||
uci_apply_defaults
|
||||
sync
|
||||
|
||||
|
||||
# temporary hack until configd exists
|
||||
/sbin/reload_config
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
do_config_generate() {
|
||||
[ -f /etc/board.json ] || {
|
||||
# This allows /etc/board.d/* scripts to use values from the uboot environment
|
||||
mkdir -p /tmp/.uci
|
||||
[ -f /etc/uci-defaults/30_uboot-envtools ] && (. /etc/uci-defaults/30_uboot-envtools)
|
||||
|
||||
echo "- generating board file -"
|
||||
/bin/board_detect /tmp/board.json
|
||||
mv /tmp/board.json /etc/board.json
|
||||
|
||||
/bin/config_generate > /dev/null
|
||||
}
|
||||
}
|
||||
|
||||
boot_hook_add preinit_main do_config_generate
|
||||
boot_hook_add initramfs do_config_generate
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ "${ACTION}" = "add" ] && {
|
||||
[ "${ACTION}" = "add" ] && [ -f /etc/board.json ] && {
|
||||
/sbin/wifi config
|
||||
ubus call network.wireless retry
|
||||
}
|
||||
|
||||
@@ -62,7 +62,6 @@ wifi_detect_notice() {
|
||||
}
|
||||
|
||||
wifi_config() {
|
||||
[ -e /tmp/.config_pending ] && return
|
||||
ucode /usr/share/hostap/wifi-detect.uc
|
||||
[ ! -f /etc/config/wireless ] && touch /etc/config/wireless
|
||||
ucode /lib/wifi/mac80211.uc | uci -q batch
|
||||
|
||||
Reference in New Issue
Block a user