Commit graph

73 commits

Author SHA1 Message Date
Christian Lamparter
5f8f8a3661 base-files, mac80211, broadcom-wl: wifi detection and configuration
Currently, the wifi detection script is executed as part of
the (early) boot process. Pluggable wifi USB devices, which
are inserted at a later time are not automatically
detected and therefore they don't show up in LuCI.

A user has to deal with wifi detection manually, or restart
the router.

However, the current "sleep 1" window - which the boot
process waits for wifi devices to "settle down" - is too
short to detect wifi devices for some routers anyway.

For example, this can happen with USB WLAN devices on the
WNDR4700. This is because the usb controller needs to load
its firmware from UBI and initialize, before it can operate.

The issue can be seen on a BT HomeHub 5A as well as soon as
the caldata are on an ubi volume. This is because the ath9k
card has to be initialized by owl-loader first. Which has to
wait for the firmware extraction script to retrieve the pci
initialization values inside the caldata.

This patch moves the wifi configuration to hotplug scripts.
For mac80211, the wifi configuration will now automatically
run any time a "ieee80211" device is added. Likewise
broadcom-wl's script checks for new "net" devices which
have the "wl$NUMBER" moniker.

Issues with spawning multiple interface configuration - in
case the detection script is run concurrently - have been
resolved by using a named section for the initial
configuration. Concurrent configuration scripts will now
simply overwrite the same existing configuration.

A workaround which preserves the "sleep 1" window for just
the first boot has been added. This allows the existing
brcm47xx boot and mvebu uci-default scripts to correctly
setup the initial mac addresses and regulatory domain.

And finally, the patch renames the "wifi detect" into
"wifi config". As the script no longer produces any output
that has to be redirected or appended to the configuration
file.

Thanks to Martin Blumenstingl for helping with the implementation
and testing of the patch.

Acked-by: Jo-Philipp Wich <jo@mein.io>
Signed-off-by: Mathias Kresin <dev@kresin.me>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-03 11:08:01 +01:00
Christian Lamparter
5e35b4562f base-files, mac80211, broadcom-wl: use uci to populate wireless config
Previously, wifi detect simply dumped its generated wireless
configuration to STDOUT. A second step was needed to append
the configuration to /etc/config/wireless (or create it, if
it didn't exist).

With this patch, The wifi detection script will now use uci
to update the wireless configuration directly.

This patch also makes the initially created wifi-iface a
named section ('default_radio$X' for mac80211 and
'default_wl$X' for broadcom). With this change, uci will
not print the cfgHASH to STDOUT (which would now corrupt
the wireless configuration). It will also prevent adding
duplicated wifi interface configurations, if the wifi
configuration is run concurrently.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-11-03 11:08:01 +01:00
Jonas Gorski
e934a129f0 base-files: let config_generate call board_detect
Instead of board_detect generating the config as a side effect, let
config_generate call board_detect as needed.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
2016-08-13 15:49:46 +02:00
Daniel Golle
877168993a base-files: remove dead code
/etc/init.d/boot tried to create /dev/root based on the kernel's
cmdline which won't work on any recent targets. Remove that code now
that fstools can detect the mounted rootfs based on
/proc/self/mountinfo and /dev/root was long gone anyway.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2016-08-04 18:19:46 +02:00
John Crispin
2f42d9e27d base-file: remove /tmp/.jail (now useless)
Signed-off-by: Etienne CHAMPETIER <champetier.etienne@gmail.com>

SVN-Revision: 47855
2015-12-11 15:06:31 +00:00
John Crispin
1c74d046ed base-files: create /var/tmp on boot
FHS mandates presence of /var/tmp on compliant systems.

The lack of /var/tmp was discovered when using MIT Kerberos libraries
which default to that location for storing credentials cache.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>

SVN-Revision: 47219
2015-10-19 10:09:46 +00:00
John Crispin
cf4a0d430b base-files: fix /tmp/.jail permissions
We need a+x rights on the path to the root of the jails
so we can use users other than root (like nobody)

This partly fixes jailed dnsmasq

Signed-off-by: Etienne CHAMPETIER <champetier.etienne@gmail.com>

SVN-Revision: 46466
2015-07-24 09:11:00 +00:00
John Crispin
5b23cfab73 base-files: create jail folder on boot
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 45008
2015-03-26 10:58:11 +00:00
John Crispin
562d9f9582 base-files: add a hardware detection layer
this allows targets to use the new uci-default helper which will generate
a file called /etc/board.json. a tool called /bin/config_generate can then
be used to generate the default uci settings.

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 42185
2014-08-18 13:09:17 +00:00
John Crispin
3c9cfbeebd base-files: Remove stale calls to start() in initscripts.
based on http://patchwork.openwrt.org/patch/5969/

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 41840
2014-07-26 20:36:15 +00:00
Felix Fietkau
4a9ea80ef0 /lib/functions.sh: move rarely used mtd and macaddr related functions to /lib/functions/system.sh
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 40411
2014-04-07 10:29:47 +00:00
Felix Fietkau
3d275a8deb base-files: move uci_apply_defaults() to /etc/init.d/boot
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 40408
2014-04-07 10:01:54 +00:00
John Crispin
7917a87d12 base-files: split /etc/init.d/boot into 2 files
this allows us to bind a procd trigger to system.@system[-1]

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 39615
2014-02-18 13:33:40 +00:00
John Crispin
834204bda6 base-files: fix mount-utils incompatibility
Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>

SVN-Revision: 39169
2013-12-27 21:15:09 +00:00
John Crispin
76506e7fa4 base-files: Make /etc/init.d/boot restartable
Only reload hostname and timezone config on /etc/init.d/boot restart.
Module loading and basic boot setup is only done during boot.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>

SVN-Revision: 38670
2013-11-07 12:45:57 +00:00
John Crispin
8eb56a88a4 procd: add a small script that handles config reloads until configd is ready
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 37248
2013-07-11 17:00:54 +00:00
John Crispin
9e36e10cf7 base-files: add 2 missing variable defines
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 37204
2013-07-08 16:35:02 +00:00
John Crispin
4c43cacce0 base-files: module loading is now handled by ubox/kmodloader
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 37003
2013-06-21 16:53:59 +00:00
Steven Barth
33c620773d base-files: remove unnecessary early sysctl-hack
SVN-Revision: 36920
2013-06-11 14:10:45 +00:00
John Crispin
39469dea7f boot: make use of kmodloader if it is available
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 36428
2013-04-25 19:02:28 +00:00
John Crispin
f43b7934d2 make basefiles aware of procd
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 36003
2013-03-13 18:11:19 +00:00
Steven Barth
92ad26d1b6 base-files: Fix IPv6 early sysctls again * Kernel IPv6 /proc interface inconsistency caused races
SVN-Revision: 35417
2013-02-01 12:28:24 +00:00
Steven Barth
ea7c9c85a8 base-files: Fix race-conditions with IPv6 sysctls
SVN-Revision: 35368
2013-01-29 10:13:33 +00:00
Mirko Vogt
439a869090 Do not overload mount-call - trying to reduce confusion
The behaviour of calling 'mount' differed depending on whether it called
the busybox-mount, the mount of util-linux, the mount defined in
/lib/functions.sh and /lib/functions/boot.sh

/etc/preinit even included /lib/functions.sh and /lib/functions/boot.sh,
both re-defining 'mount'.

SVN-Revision: 34792
2012-12-19 16:07:46 +00:00
Jo-Philipp Wich
9ae901445b /etc/functions.sh => /lib/functions.sh
SVN-Revision: 32062
2012-06-05 16:04:23 +00:00
Jonas Gorski
80650c9475 base-files: wait for wifi modules to settle
On slower devices wifi drivers might take too long for detecting
devices, resulting in the wifi detect call not seeing them.

This was observed on a bcm6348 with bcm4318 wifi. Adding a one second
pause was enough for b43 to expose the device.

SVN-Revision: 31639
2012-05-06 21:25:42 +00:00
Felix Fietkau
5744d736f2 base-files: remove old coldplugging hacks that are no longer necessary since the new main hotplug2 instance calls udevtrigger as well
SVN-Revision: 30916
2012-03-13 09:18:30 +00:00
Felix Fietkau
a963a80a38 base-files: the initial hotplug2 instance sometimes misses a few relevant events, e.g. during module load. rerun udevtrigger for the final hotplug2 instance to fix this
SVN-Revision: 29862
2012-01-22 21:14:22 +00:00
Jo-Philipp Wich
9fd3886365 base-files: do not pass --set-worker /lib/hotplug2/worker_fork.so to hotplug2 anymore, its statically linked - patch by Viktar Palstsiuk <viktar.palstsiuk@promwad.com>
SVN-Revision: 29806
2012-01-19 15:37:47 +00:00
Jo-Philipp Wich
33443d2a8c base-files: now that we have date -k, adjust the kernel timezone after setting up TZ and localtime
SVN-Revision: 29204
2011-11-17 01:18:22 +00:00
Nicolas Thill
93886bc776 package/base-files: use new service wrapper
SVN-Revision: 28835
2011-11-07 22:58:34 +00:00
Felix Fietkau
44ba13b578 base-files: load modules early, run wifi detect afterwards and only then process uci defaults
this allows uci-defaults scripts to override wifi settings

SVN-Revision: 28733
2011-11-03 20:02:25 +00:00
Jo-Philipp Wich
bfbbe5893f base-files: use "zonename" system option to symlink /etc/localtime via /tmp/localtime to /usr/share/zoneinfo for glibc and eglibc
SVN-Revision: 28306
2011-09-26 02:28:04 +00:00
Jo-Philipp Wich
32731a72c2 base-files: pass conloglevel to syslogd (#9463, #9647)
SVN-Revision: 27400
2011-07-03 15:11:58 +00:00
Jo-Philipp Wich
ba1c1e9016 base-files: retrigger usb coldplug after module loading, solves usb_modeswitch on boot and possibly others (#9352)
SVN-Revision: 26848
2011-05-08 10:25:58 +00:00
Vasilis Tsiligiannis
980190367c base-files: Use -h instead of deprecated -L for symlink check
SVN-Revision: 26485
2011-04-05 15:09:43 +00:00
Vasilis Tsiligiannis
48465d3d63 base-files: fix minor problem in init.d/boot
The script tests for the existance of /dev/root with test -e which fails if
/dev/root is a dangling symlink making the call to ln fail.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>

SVN-Revision: 26483
2011-04-05 15:09:32 +00:00
Felix Fietkau
541725ce18 stop syslogd before rebooting, otherwise umount might not work properly when logging to a file (thx, puchu)
SVN-Revision: 19428
2010-01-30 18:17:52 +00:00
Felix Fietkau
889532d1fd do not start multiple subshells for applying /etc/uci-defaults. use sh -x for hush compatibility
SVN-Revision: 18717
2009-12-09 15:15:25 +00:00
Felix Fietkau
e39038f688 mount debugfs by default
SVN-Revision: 18502
2009-11-23 20:35:05 +00:00
Travis Kemen
4c47562a37 extend logging functions
SVN-Revision: 17514
2009-09-04 21:09:13 +00:00
Felix Fietkau
2892e2f1d5 base-files: port init.d/boot to new config_get
... and localize some variables.

Signed-off-by: Malte S. Stretz <mss@apache.org>

SVN-Revision: 17157
2009-08-07 00:07:51 +00:00
Gabor Juhos
9b5e65f101 base-files: set rules file for hotplug2 in the boot script (closes #5235)
SVN-Revision: 16215
2009-05-30 17:09:41 +00:00
Gabor Juhos
463a6f4bda base-files: update command line for the new hotplug2
SVN-Revision: 16154
2009-05-28 18:48:54 +00:00
Felix Fietkau
cbd52550bd rcS: wait for init scripts to complete before initiating the shutdown (patch from #5032)
SVN-Revision: 15530
2009-04-30 22:59:18 +00:00
Michael Büsch
088ea2fb6e Support configurations without syslogd/klogd.
SVN-Revision: 14937
2009-03-18 12:20:21 +00:00
Florian Fainelli
1716050f0c allow specifying port where to log (#2019)
SVN-Revision: 14396
2009-02-03 20:26:00 +00:00
Jo-Philipp Wich
341c1dbdf5 package/base-files: fix chmod of /tmp/.uci, bump package revision
SVN-Revision: 13903
2009-01-06 21:53:45 +00:00
Felix Fietkau
2176ae1a6f fix a race condition which would leave dnsmasq in infinite resolving recursion nirvana
SVN-Revision: 12424
2008-08-28 14:10:55 +00:00
Felix Fietkau
37c7e13a5f move the hotplug2 kill command from preinit to /etc/init.d/boot, so that it works for initramfs as well
SVN-Revision: 12058
2008-08-01 03:01:42 +00:00