diff --git a/device/device-samsung-nevisp/APKBUILD b/device/device-samsung-nevisp/APKBUILD
index 64c4b93e88157fe8e072bc73f30ad4b1e4a80405..51435a68cca1984ca71405c6c0da71aec2d56df5 100644
--- a/device/device-samsung-nevisp/APKBUILD
+++ b/device/device-samsung-nevisp/APKBUILD
@@ -3,7 +3,7 @@
 # Reference: <https://postmarketos.org/devicepkg>
 pkgname="device-samsung-nevisp"
 pkgdesc="Samsung Galaxy Fame GT-S6810P"
-pkgver=0.1
+pkgver=0.2
 pkgrel=0
 url="https://postmarketos.org"
 license="MIT"
@@ -11,7 +11,9 @@ arch="armv7"
 options="!check !archcheck"
 depends="postmarketos-base linux-samsung-nevisp mkbootimg mesa-dri-swrast msm-fb-refresher"
 makedepends="devicepkg-dev"
-source="deviceinfo"
+subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
+source="deviceinfo
+	modules-load.conf"
 
 build() {
 	devicepkg_build $startdir $pkgname
@@ -19,7 +21,14 @@ build() {
 
 package() {
 	devicepkg_package $startdir $pkgname
+	install -Dm644 "$srcdir"/modules-load.conf \
+		"$pkgdir"/etc/modules-load.d/00-$pkgname.conf
 }
 
-
-sha512sums="233d1fca39301b3ba995b6ae9a52aa19d7124efd2f452009f828d1fe0ae88fcde98a46257990adf75281d8cf99b3bf1d24c30ff949393e54f4f0e6a55a35734e  deviceinfo"
+nonfree_firmware() {
+	pkgdesc="Firmware for wifi."
+	depends="firmware-samsung-nevisp"
+	mkdir "$subpkgdir"
+}
+sha512sums="233d1fca39301b3ba995b6ae9a52aa19d7124efd2f452009f828d1fe0ae88fcde98a46257990adf75281d8cf99b3bf1d24c30ff949393e54f4f0e6a55a35734e  deviceinfo
+0aa06f2147be0ce89fb1ae418abff809ffa8de677afce4e3b29926ccea66f776065d2bb95675a8692230e40e57ec2ce657d9b3f79be56f1db35f4a724a3484f9  modules-load.conf"
diff --git a/device/device-samsung-nevisp/bcmdhd_sta.bin_b2 b/device/device-samsung-nevisp/bcmdhd_sta.bin_b2
new file mode 100644
index 0000000000000000000000000000000000000000..232f4f22ce4db3ef5b9726e1039b6ecb11a76a36
Binary files /dev/null and b/device/device-samsung-nevisp/bcmdhd_sta.bin_b2 differ
diff --git a/device/device-samsung-nevisp/modules-load.conf b/device/device-samsung-nevisp/modules-load.conf
new file mode 100644
index 0000000000000000000000000000000000000000..64fb03c13654e8cbbaa1bce3255d7dd6618fdf1d
--- /dev/null
+++ b/device/device-samsung-nevisp/modules-load.conf
@@ -0,0 +1,5 @@
+# This file contains the names of kernel modules that should be loaded
+# at boot time, one per line. Lines beginning with "#" are ignored.
+# wifi module
+
+dhd
diff --git a/device/device-samsung-nevisp/nvram_net.txt b/device/device-samsung-nevisp/nvram_net.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7bc2d2aa0175047bb967d597a6b220baa6e2f019
--- /dev/null
+++ b/device/device-samsung-nevisp/nvram_net.txt
@@ -0,0 +1,87 @@
+# NVRAM file for BCM94334WLAGB Single   2013.15.14
+# 2.4GHz FEM RFMD RFFM8204
+
+manfid=0x2d0
+prodid=0x05de
+vendid=0x14e4
+devid=0x4380
+boardtype=0x05de
+boardrev=0x1204
+boardnum=22
+macaddr=00:90:4c:c5:12:38
+sromrev=3
+#boardflags: 
+#            2.4GHz FEM: has 2.4GHz ePA + SP3T
+#            2.4GHz FEM: SP3T switch share with BT
+#            keep original 0x200
+boardflags=0x80a01
+xtalfreq=26000
+nocrc=1
+ag0=0
+aa2g=1
+ccode=GB
+pa0itssit=0x20
+
+#PA parameters for 2.4GHz
+pa0b0=0x1418
+pa0b1=0xFD6C
+pa0b2=0xFF41
+
+maxp2ga0=76
+ofdm2gpo=0x44444444
+mcs2gpo0=0x6666
+mcs2gpo1=0x6666
+
+
+tssifloor2g=19
+extpagain2g=2
+
+# rssi params for 2.4GHz
+#rssismf2g=0xf
+#rssismc2g=0x8
+#rssisav2g=0x1
+# rssi params(RFMD) for 2.4GHz
+rssismf2g=0x3
+rssismc2g=0xa
+rssisav2g=0x1
+
+cckPwrOffset=-8
+cckdigfilttype=24
+ofdmdigfilttype2g=3
+
+il0macaddr=00:90:4c:c5:12:38
+wl0id=0x431b
+pagc2g=0x10
+
+# Parameters for DAC2x mode and ALPF bypass
+dacrate2xen=1
+txalpfbyp=1
+#txalpfpu=1
+
+#Murata 2G FEM switch control table
+swctrlmap_2g=0x00040004,0x00020002,0x00000000,0x10200,0x1ff
+
+elna_off_gain_idx_2g=32
+triso2g=8
+dacpu.fab.4=1
+
+aci_detect_en_2g=1
+txiqlopapu2g=0
+dlorange_lowlimit=-128
+loflag=1
+
+gain_settle_dly_2g=4
+noise_cal_po_2g=-1
+noise_cal_high_gain_2g=73
+noise_cal_nf_substract_val_2g=346
+
+rssicorrnorm=0
+rssicorratten=0
+
+sd_gpout=4
+sd_gpval=1
+sd_oobonly=1
+
+btc_params80=0
+btc_params6=10
+btc_params95=53
diff --git a/device/linux-samsung-nevisp/APKBUILD b/device/linux-samsung-nevisp/APKBUILD
index 924cc6e81a44e2e4d155cda048c5cffbdea067f1..6cb1894ce41a59da239a813672dddc3b9ac64de5 100644
--- a/device/linux-samsung-nevisp/APKBUILD
+++ b/device/linux-samsung-nevisp/APKBUILD
@@ -5,7 +5,7 @@
 
 pkgname="linux-samsung-nevisp"
 pkgver=3.0.101
-pkgrel=0
+pkgrel=3
 pkgdesc="Samsung Galaxy Fame GT-S6810P kernel fork"
 arch="armv7"
 _carch="arm"
@@ -15,6 +15,7 @@ license="GPL-2.0-only"
 options="!strip !check !tracedeps"
 makedepends="perl sed installkernel bash gmp-dev bc linux-headers elfutils-dev devicepkg-dev gcc4 xz"
 
+# I have not managed to build the kernel with any gcc > 4
 
 if [ "${CC:0:5}" != "gcc4-" ]; then
 	CC="gcc4-$CC"
@@ -45,6 +46,12 @@ build() {
 	unset LDFLAGS
 	make ARCH="$_carch" CC="${CC:-gcc}" \
 		KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
+
+	# the 'no-pic' flag is necessary to avoid the
+	# error 'Unknown symbol _GLOBAL_OFFSET_TABLE_ (err 0)' when loading the module
+	make ARCH="$_carch" CC="${CC:-gcc}" CFLAGS_MODULE="-fno-pic" \
+		KBUILD_BUILD_VERSION="$((pkgrel + 1))-postmarketOS" modules
+
 }
 
 package() {
@@ -65,10 +72,18 @@ package() {
 		error "Could not find zImage in $PWD!"
 		return 1
 	fi
+
+	# Modules
+	cd "$builddir"
+	unset LDFLAGS
+	make ARCH="$_carch" CC="${CC:-gcc}" \
+		KBUILD_BUILD_VERSION="$((pkgrel + 1))-postmarketOS" \
+		INSTALL_MOD_PATH="$pkgdir" INSTALL_MOD_STRIP=1 \
+		modules_install
 }
 
 sha512sums="1c62313451ff2a04ab9259a4b2c954388a360f45f20af90d05e9cfe73d31f49fc4847f24c1742c89a45f1646e1d27999fc6f5bd224baba7046b07ab324e7baae  linux-samsung-nevisp-8224116dca7de79d181c0761468f569e6ac3505e.tar.gz
-18056bc314704d2a6f9f2c14cddd970663297c49296909ebe4d42ec5b4b55d107a86ef1b6b8df82c46f6ac1cd4b09e8aca1383d54a005bc380fa4134c87b4372  config-samsung-nevisp.armv7
+a6c7bff882eb299c11f8fc8e1d3e70119e78493c5ecec7c8607b44bf5930bfe7bf11033005cd1912264d30fba8fda8b39737f5b37a91778110e3a4ff038e421d  config-samsung-nevisp.armv7
 d8cdc1137e6a4ad78a3a31acc40f0c98f4db272eaf5b90ee850abb83b80916c4ff3c18a0a181e94eebead44213f6314e3363d0c4b91d95ee1adafbcad6dc57ab  android_paranoid_network.patch
 77eba606a71eafb36c32e9c5fe5e77f5e4746caac292440d9fb720763d766074a964db1c12bc76fe583c5d1a5c864219c59941f5e53adad182dbc70bf2bc14a7  gcc7-give-up-on-ilog2-const-optimizations.patch
 197d40a214ada87fcb2dfc0ae4911704b9a93354b75179cd6b4aadbb627a37ec262cf516921c84a8b1806809b70a7b440cdc8310a4a55fca5d2c0baa988e3967  gcc8-fix-put-user.patch"
diff --git a/device/linux-samsung-nevisp/config-samsung-nevisp.armv7 b/device/linux-samsung-nevisp/config-samsung-nevisp.armv7
index 605efc769cb3a8076931b097ccce9e2ae3b0e5e3..fe3b383b07b0a79120b0ec6560eaa75eb44106e3 100644
--- a/device/linux-samsung-nevisp/config-samsung-nevisp.armv7
+++ b/device/linux-samsung-nevisp/config-samsung-nevisp.armv7
@@ -1380,8 +1380,8 @@ CONFIG_BROADCOM_WIFI_RESERVED_MEM=y
 # CONFIG_B43 is not set
 # CONFIG_B43LEGACY is not set
 # CONFIG_BCMDHD_4334 is not set
-CONFIG_BCMDHD_FW_PATH="/system/etc/firmware/fw_bcmdhd.bin"
-CONFIG_BCMDHD_NVRAM_PATH="/system/etc/wifi/bcmdhd.cal"
+CONFIG_BCMDHD_FW_PATH="/lib/firmware/postmarketos/fw_bcmdhd.bin"
+CONFIG_BCMDHD_NVRAM_PATH="/lib/firmware/postmarketos/bcmdhd.cal"
 # CONFIG_BCM4330 is not set
 CONFIG_BCM4334=m
 # CONFIG_BCM43241 is not set
diff --git a/firmware/firmware-samsung-nevisp/APKBUILD b/firmware/firmware-samsung-nevisp/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..05c4a77b175c8fddf212fd765b7b32ab54073a68
--- /dev/null
+++ b/firmware/firmware-samsung-nevisp/APKBUILD
@@ -0,0 +1,23 @@
+# Contributor: Théo Friberg <fsmnarmosta@posteo.net>
+# Maintainer: Théo Friberg <fsmnarmosta@posteo.net>
+pkgname="firmware-samsung-nevisp"
+pkgver=1
+pkgrel=114
+pkgdesc="Non-free firmware for the Samsung Galaxy Fame (wifi)"
+url="https://github.com/wulsic/android_vendor_samsung_nevisp"
+arch="armv7"
+license="other:proprietary"
+
+# Sources
+_commit="fbbefae4c3b06978d0e2948211a8138bb6a6a11c"
+source="$pkgname-$_commit.tar.gz::https://github.com/wulsic/android_vendor_samsung_nevisp/archive/$_commit.tar.gz"
+builddir="$srcdir/android_vendor_samsung_nevisp-$_commit"
+
+package() {
+	install -Dm644 "$builddir"/proprietary/etc/wifi/nvram_net.txt \
+		"$pkgdir"/lib/firmware/postmarketos/bcmdhd.cal
+	install -Dm644 "$builddir"/proprietary/etc/wifi/bcmdhd_sta.bin_b2 \
+		"$pkgdir"/lib/firmware/postmarketos/fw_bcmdhd.bin_b2
+}
+
+sha512sums="9e27f2fe1c897d9fcf8d4736a35bab729079842f7f18e29c0d02fe63e7321400af40541b235b7ae80f9ad551489ba14bbe8fea2539106a6394f612e298876033  firmware-samsung-nevisp-fbbefae4c3b06978d0e2948211a8138bb6a6a11c.tar.gz"
diff --git a/main/umockdev/APKBUILD b/main/umockdev/APKBUILD
index f2c564702aea560ba134a41ee048566b13422064..47d656eb68d43c7355bcfc45ceb191f36369b177 100644
--- a/main/umockdev/APKBUILD
+++ b/main/umockdev/APKBUILD
@@ -1,8 +1,8 @@
 # Contributor: Bart Ribbers <bribbers@disroot.org>
 # Maintainer: Luca Weiss <luca@z3ntu.xyz>
 pkgname=umockdev
-pkgver=0.13.2
-pkgrel=1
+pkgver=0.14.1
+pkgrel=0
 pkgdesc="Record/mock hardware devices for bug reports and regression tests"
 arch="all"
 url="https://github.com/martinpitt/umockdev/"
@@ -11,7 +11,7 @@ depends_dev="eudev-dev libgudev-dev"
 makedepends="$depends_dev autoconf automake libtool gtk-doc vala linux-headers bash"
 source="$pkgname-$pkgver.tar.gz::https://github.com/martinpitt/umockdev/archive/$pkgver.tar.gz"
 subpackages="$pkgname-dev $pkgname-doc"
-options="!check" # Testbed.create_node_for_device: openpty() failed: No such file or directory
+options="!check" # needs /dev/pts inside chroot
 
 build() {
 	./autogen.sh \
@@ -29,4 +29,4 @@ check() {
 package() {
 	make DESTDIR="$pkgdir" install
 }
-sha512sums="58a0e2cf9c387a495a39d2094c3f5ea733b28b1dbadb0b8e4fc5bad559359d7f46c968112bc27206d4ecfa03f88562c712b62fa9dae7628181f2ff59e9a143c6  umockdev-0.13.2.tar.gz"
+sha512sums="371dba5f54369709fb19c20b1b999e594d51e10344dc9c3d91379ae3e2018e79e7bdce6ffc48e8d9ee2809d81f9f970a9db6f2ed7385282a943cd9e782e2af5c  umockdev-0.14.1.tar.gz"