Skip to content
This repository was archived by the owner on Feb 27, 2023. It is now read-only.

Commit f0347db

Browse files
committed
Add wifi station support
- Adds wpa_supplicant. - Adds wifi network selection screen, using wpa_supplicant's new DBus API. - Keep /settings mounted rw, so wpa_supplicant can store its config there. - Switch to dhcpcd as DHCP client instead of busybox's udhcpc Handles interface hot-plugging better. - Enable Raspberry Pi wifi dongle in kernel configuration. - Add firmware files for wifi dongle. - Disable user-space hotplug helper in kernel configuration Newer kernels can fetch firmware files from /lib/firmware without help. - Raise "wait until NOOBS initializes" timeout to 8 seconds.
1 parent c41f020 commit f0347db

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+3449
-649
lines changed

buildroot/.config

Lines changed: 83 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#
22
# Automatically generated file; DO NOT EDIT.
3-
# Buildroot 2015.02-git-00009-g86ba8d2-dirty Configuration
3+
# Buildroot 2015.02-git-g661b7ed-dirty Configuration
44
#
55
BR2_HAVE_DOT_CONFIG=y
66

@@ -463,6 +463,7 @@ BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS=y
463463
#
464464
# BR2_PACKAGE_BINUTILS is not set
465465
# BR2_PACKAGE_BSDIFF is not set
466+
# BR2_PACKAGE_BUSTLE is not set
466467
# BR2_PACKAGE_CPPUNIT is not set
467468
# BR2_PACKAGE_CVS is not set
468469
# BR2_PACKAGE_DIFFUTILS is not set
@@ -700,8 +701,9 @@ BR2_PACKAGE_QT_KEYBOARD_TTY=y
700701
# Phonon module needs gstreamer
701702
#
702703
# BR2_PACKAGE_QT_OPENGL_ES is not set
703-
# BR2_PACKAGE_QT_DBUS is not set
704-
# BR2_PACKAGE_QT_XML is not set
704+
BR2_PACKAGE_QT_DBUS=y
705+
BR2_PACKAGE_QT_XML=y
706+
# BR2_PACKAGE_QT_XMLPATTERNS is not set
705707
# BR2_PACKAGE_QT_MULTIMEDIA is not set
706708
# BR2_PACKAGE_QT_SVG is not set
707709
BR2_PACKAGE_QT_NETWORK=y
@@ -758,7 +760,64 @@ BR2_PACKAGE_QJSON=y
758760
#
759761
# BR2_PACKAGE_AM33X_CM3 is not set
760762
# BR2_PACKAGE_B43_FIRMWARE is not set
761-
# BR2_PACKAGE_LINUX_FIRMWARE is not set
763+
BR2_PACKAGE_LINUX_FIRMWARE=y
764+
765+
#
766+
# Audio firmware
767+
#
768+
# BR2_PACKAGE_LINUX_FIRMWARE_INTEL_SST_DSP is not set
769+
770+
#
771+
# Video firmware
772+
#
773+
# BR2_PACKAGE_LINUX_FIRMWARE_RADEON is not set
774+
775+
#
776+
# WiFi firmware
777+
#
778+
# BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6002 is not set
779+
# BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6003 is not set
780+
# BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6004 is not set
781+
# BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010 is not set
782+
# BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170 is not set
783+
# BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271 is not set
784+
# BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX is not set
785+
BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y
786+
# BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160 is not set
787+
# BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000 is not set
788+
# BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A is not set
789+
# BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260 is not set
790+
# BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265 is not set
791+
# BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8 is not set
792+
# BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V9 is not set
793+
# BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8688 is not set
794+
# BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8787 is not set
795+
# BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61 is not set
796+
# BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73 is not set
797+
# BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX is not set
798+
# BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX is not set
799+
# BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX is not set
800+
# BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX is not set
801+
# BR2_PACKAGE_LINUX_FIRMWARE_TI_WL127X is not set
802+
# BR2_PACKAGE_LINUX_FIRMWARE_TI_WL128X is not set
803+
# BR2_PACKAGE_LINUX_FIRMWARE_TI_WL18XX is not set
804+
805+
#
806+
# Ethernet firmware
807+
#
808+
# BR2_PACKAGE_LINUX_FIRMWARE_BNX2X is not set
809+
# BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T4 is not set
810+
# BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T5 is not set
811+
# BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169 is not set
812+
813+
#
814+
# DVB firmware
815+
#
816+
# BR2_PACKAGE_LINUX_FIRMWARE_AS102 is not set
817+
# BR2_PACKAGE_LINUX_FIRMWARE_DIB0700 is not set
818+
# BR2_PACKAGE_LINUX_FIRMWARE_ITETECH_IT9135 is not set
819+
# BR2_PACKAGE_LINUX_FIRMWARE_H5_DRXK is not set
820+
# BR2_PACKAGE_LINUX_FIRMWARE_XCx000 is not set
762821
BR2_PACKAGE_RPI_FIRMWARE=y
763822
# BR2_PACKAGE_RPI_FIRMWARE_DEFAULT is not set
764823
# BR2_PACKAGE_RPI_FIRMWARE_X is not set
@@ -778,7 +837,10 @@ BR2_PACKAGE_RPI_FIRMWARE_BOOT="_cd"
778837
# BR2_PACKAGE_CDRKIT is not set
779838
# BR2_PACKAGE_CRYPTSETUP is not set
780839
# BR2_PACKAGE_CWIID is not set
781-
# BR2_PACKAGE_DBUS is not set
840+
BR2_PACKAGE_DBUS=y
841+
# BR2_PACKAGE_DBUS_CPP is not set
842+
# BR2_PACKAGE_DBUS_GLIB is not set
843+
# BR2_PACKAGE_DBUS_TRIGGERD is not set
782844
# BR2_PACKAGE_DEVMEM2 is not set
783845
# BR2_PACKAGE_DMRAID is not set
784846
# BR2_PACKAGE_DTV_SCAN_TABLES is not set
@@ -1151,7 +1213,7 @@ BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS=y
11511213
#
11521214
# BR2_PACKAGE_BENEJSON is not set
11531215
# BR2_PACKAGE_CJSON is not set
1154-
# BR2_PACKAGE_EXPAT is not set
1216+
BR2_PACKAGE_EXPAT=y
11551217
# BR2_PACKAGE_EZXML is not set
11561218
# BR2_PACKAGE_JANSSON is not set
11571219
# BR2_PACKAGE_JSON_C is not set
@@ -1261,7 +1323,8 @@ BR2_PACKAGE_CANFESTIVAL_ARCH_SUPPORTS=y
12611323
#
12621324
# libnftnl needs a toolchain w/ IPv6, largefile
12631325
#
1264-
# BR2_PACKAGE_LIBNL is not set
1326+
BR2_PACKAGE_LIBNL=y
1327+
# BR2_PACKAGE_LIBNL_TOOLS is not set
12651328
# BR2_PACKAGE_LIBOAUTH is not set
12661329

12671330
#
@@ -1515,7 +1578,7 @@ BR2_PACKAGE_LIBICONV=y
15151578
# BR2_PACKAGE_CTORRENT is not set
15161579
# BR2_PACKAGE_CUPS is not set
15171580
# BR2_PACKAGE_DHCP is not set
1518-
# BR2_PACKAGE_DHCPCD is not set
1581+
BR2_PACKAGE_DHCPCD=y
15191582
# BR2_PACKAGE_DHCPDUMP is not set
15201583
# BR2_PACKAGE_DNSMASQ is not set
15211584
# BR2_PACKAGE_DROPBEAR is not set
@@ -1721,7 +1784,18 @@ BR2_PACKAGE_WGET=y
17211784
# BR2_PACKAGE_WIRELESS_REGDB is not set
17221785
# BR2_PACKAGE_WIRELESS_TOOLS is not set
17231786
# BR2_PACKAGE_WIRESHARK is not set
1724-
# BR2_PACKAGE_WPA_SUPPLICANT is not set
1787+
BR2_PACKAGE_WPA_SUPPLICANT=y
1788+
BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y
1789+
# BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT is not set
1790+
BR2_PACKAGE_WPA_SUPPLICANT_EAP=y
1791+
# BR2_PACKAGE_WPA_SUPPLICANT_HOTSPOT is not set
1792+
BR2_PACKAGE_WPA_SUPPLICANT_DEBUG_SYSLOG=y
1793+
BR2_PACKAGE_WPA_SUPPLICANT_WPS=y
1794+
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
1795+
# BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE is not set
1796+
# BR2_PACKAGE_WPA_SUPPLICANT_DBUS_OLD is not set
1797+
BR2_PACKAGE_WPA_SUPPLICANT_DBUS_NEW=y
1798+
# BR2_PACKAGE_WPA_SUPPLICANT_DBUS_INTROSPECTION is not set
17251799
# BR2_PACKAGE_WVDIAL is not set
17261800
# BR2_PACKAGE_XINETD is not set
17271801
# BR2_PACKAGE_XL2TP is not set

buildroot/kernelconfig-recovery.armv6

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@ CONFIG_SYN_COOKIES=y
4242
# CONFIG_INET_XFRM_MODE_BEET is not set
4343
# CONFIG_INET_DIAG is not set
4444
# CONFIG_IPV6 is not set
45-
# CONFIG_WIRELESS is not set
46-
CONFIG_UEVENT_HELPER_PATH="/sbin/mdev"
45+
CONFIG_CFG80211=y
4746
CONFIG_DEVTMPFS=y
4847
CONFIG_DEVTMPFS_MOUNT=y
4948
CONFIG_DMA_CMA=y
@@ -61,7 +60,9 @@ CONFIG_USB_NET_SMSC95XX=y
6160
# CONFIG_USB_NET_NET1080 is not set
6261
# CONFIG_USB_NET_CDC_SUBSET is not set
6362
# CONFIG_USB_NET_ZAURUS is not set
64-
# CONFIG_WLAN is not set
63+
CONFIG_BRCMFMAC=y
64+
CONFIG_BRCMFMAC_SDIO=y
65+
CONFIG_BRCMFMAC_USB=y
6566
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
6667
CONFIG_INPUT_EVDEV=y
6768
# CONFIG_INPUT_KEYBOARD is not set

buildroot/kernelconfig-recovery.armv7

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,7 @@ CONFIG_SYN_COOKIES=y
4747
# CONFIG_INET_XFRM_MODE_BEET is not set
4848
# CONFIG_INET_DIAG is not set
4949
# CONFIG_IPV6 is not set
50-
# CONFIG_WIRELESS is not set
51-
CONFIG_UEVENT_HELPER_PATH="/sbin/mdev"
50+
CONFIG_CFG80211=y
5251
CONFIG_DEVTMPFS=y
5352
CONFIG_DEVTMPFS_MOUNT=y
5453
CONFIG_DMA_CMA=y
@@ -66,7 +65,9 @@ CONFIG_USB_NET_SMSC95XX=y
6665
# CONFIG_USB_NET_NET1080 is not set
6766
# CONFIG_USB_NET_CDC_SUBSET is not set
6867
# CONFIG_USB_NET_ZAURUS is not set
69-
# CONFIG_WLAN is not set
68+
CONFIG_BRCMFMAC=y
69+
CONFIG_BRCMFMAC_SDIO=y
70+
CONFIG_BRCMFMAC_USB=y
7071
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
7172
CONFIG_INPUT_EVDEV=y
7273
# CONFIG_INPUT_KEYBOARD is not set

buildroot/package/recovery/cleanup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ BUILDROOT_TARGET_DIR="$BUILDROOT_OUTPUT_DIR/target"
1515
#fi
1616

1717
# We do not use busybox's init system
18-
rm -f "$BUILDROOT_TARGET_DIR/etc/init.d/"*
18+
#rm -f "$BUILDROOT_TARGET_DIR/etc/init.d/"*
1919

2020
# We do not use Qt's tga/ico plugins
2121
#rm -rf "$BUILDROOT_TARGET_DIR/usr/lib/qt/plugins"

buildroot/package/recovery/init

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ echo 2 >/sys/module/vt/parameters/cur_default
1919
/sbin/getty -L tty3 0 vt100 &
2020
/sbin/getty -L ttyAMA0 115200 vt100 &
2121

22+
# Enable syslog
23+
/etc/init.d/S01logging start > /dev/null
24+
2225
if grep -q vncinstall /proc/cmdline; then
2326
# VNC server mode. Mainly useful for making screenshots
2427
export QWS_DISPLAY="VNC:size=800x600:depth=32:0"

buildroot/package/recovery/recovery.mk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ define RECOVERY_INSTALL_TARGET_CMDS
3333
$(INSTALL) -m 0644 $(@D)/cmdline.txt $(BINARIES_DIR)/cmdline.txt
3434
mkdir -p $(TARGET_DIR)/keymaps/
3535
$(INSTALL) -m 0755 package/recovery/keymaps/* $(TARGET_DIR)/keymaps/
36+
$(INSTALL) -m 0644 package/recovery/wpa_supplicant.conf $(TARGET_DIR)/etc/wpa_supplicant.conf
37+
# allow wpa_supplicant to be controlled through dbus, and log to syslog
38+
sed -i 's/wpa_supplicant -B/wpa_supplicant -u -s -B/g' $(TARGET_DIR)/libexec/dhcpcd-hooks/10-wpa_supplicant
3639
endef
3740

3841
$(eval $(generic-package))
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
2+
ap_scan=1
3+
update_config=1

recovery/bootselectiondialog.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ BootSelectionDialog::BootSelectionDialog(const QString &defaultPartition, QWidge
3838
QDir dir;
3939
dir.mkdir("/settings");
4040

41-
if (QProcess::execute("mount -t ext4 -o ro " SETTINGS_PARTITION " /settings") != 0)
41+
if (QProcess::execute("mount -o remount,ro /settings") != 0
42+
&& QProcess::execute("mount -t ext4 -o ro " SETTINGS_PARTITION " /settings") != 0)
4243
{
4344
QMessageBox::critical(this, tr("Cannot display boot menu"), tr("Error mounting settings partition"));
4445
return;

recovery/icons.qrc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,12 @@
2626
<file>icons/download.png</file>
2727
<file>icons/hdd.png</file>
2828
<file>icons/keyboard.png</file>
29+
<file>icons/network-wireless.png</file>
30+
<file>icons/network-wireless-connected-00.png</file>
31+
<file>icons/network-wireless-connected-25.png</file>
32+
<file>icons/network-wireless-connected-50.png</file>
33+
<file>icons/network-wireless-connected-75.png</file>
34+
<file>icons/network-wireless-connected-100.png</file>
35+
<file>icons/tick.png</file>
2936
</qresource>
3037
</RCC>
366 Bytes
Loading

0 commit comments

Comments
 (0)