1
1
mirror of https://github.com/NixOS/mobile-nixos.git synced 2024-12-17 04:51:31 +03:00

Merge pull request #289 from samueldr-wip/device/oneplus-oneplus3/qcacld-2.0

oneplus-oneplus3: Enable Wi-Fi
This commit is contained in:
Samuel Dionne-Riel 2021-01-28 20:04:33 -05:00 committed by GitHub
commit 9fbcf888a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 101 additions and 0 deletions

View File

@ -3,6 +3,8 @@ include::_support/common.inc[]
== Device-specific notes
=== `rootfs` installation
Using `fastboot` to burn system.img to the userdata partition will fail.
It seems like it flashes successfully like other devices do, but the flashed
@ -15,3 +17,26 @@ flash the image.
$ cat .../.system.img | adb shell dd of=/dev/block/by-name/userdata bs=8m
```
=== Firmware for Wi-Fi
This particular phone keeps the firmware files on a partition named
`modem`.
To make use of the Wi-Fi capabilities of this phone you will need to
make them available to the firmware derivation.
The files can be acquired through different methods. You can use an
alternate recovery like TWRP, mount the partition (identified using
`blkid`) and copy the files.
Another way is to do it using an installed Mobile NixOS system, where,
too, you mount the partition and copy them:
```
$ sudo mount -o ro /dev/disk/by-partlabel/modem /mnt
$ cp -r /mnt ./modem
$ sudo umount /mnt
```
The copy of the firmware files will be in the modem directory, in the
current working directory, ready to be referred to.

View File

@ -19,6 +19,8 @@
kernel.package = pkgs.callPackage ./kernel { };
};
mobile.device.firmware = pkgs.callPackage ./firmware {};
mobile.system.android.bootimg = {
flash = {
offset_base = "0x80000000";
@ -50,4 +52,8 @@
mobile.system.type = "android";
mobile.quirks.qualcomm.dwc3-otg_switch.enable = true;
# qcacld-2.0 works the same way as wcnss-wlan
mobile.quirks.qualcomm.wcnss-wlan.enable = true;
mobile.quirks.wifi.disableMacAddressRandomization = true;
}

View File

@ -0,0 +1,42 @@
{ lib
, runCommandNoCC
, fetchFromGitHub
, fetchurl
, modem ? builtins.throw ''
Your attention is required:
---------------------------
You will need to provide the content of the modem partition this way:
hardware.firmware = [
(config.mobile.device.firmware.override {
modem = ./path/to/copy/of/modem;
})
];
Refer to the device's documentation page for more details about enabling use of the firmware files.
''
}:
let
# The following files, though required, are not present in the modem
# partition.
cfg = fetchurl {
url = "https://raw.githubusercontent.com/LineageOS/android_device_oneplus_oneplus3/4d040a97e99032ce1623dca8765aedd6becbb587/wifi/WCNSS_qcom_cfg.ini";
sha256 = "1pcq64r4ag6rcgkbq3j2b43xzia9ccwbdgkgslw6pfqq8bmvcwxy";
};
in
runCommandNoCC "oneplus-oneplus3-firmware" {
inherit modem cfg;
meta.license = [
# We make no claims that it can be redistributed.
lib.licenses.unfree
];
} ''
fwpath="$out/lib/firmware"
mkdir -p $fwpath
cp -vr $modem/image/* $fwpath/
mkdir -p $fwpath/wlan/qca_cld
cp -v $cfg $fwpath/wlan/qca_cld/WCNSS_qcom_cfg.ini
''

View File

@ -3691,6 +3691,26 @@ CONFIG_ION_MSM=y
# CONFIG_DGNC is not set
# CONFIG_DGAP is not set
# CONFIG_GS_FPGABOOT is not set
#
# Qualcomm Atheros CLD WLAN module
#
CONFIG_QCA_CLD_WLAN=y
# CONFIG_QCACLD_WLAN_LFR3 is not set
# CONFIG_PRIMA_WLAN_OKC is not set
# CONFIG_PRIMA_WLAN_11AC_HIGH_TP is not set
# CONFIG_WLAN_FEATURE_11W is not set
# CONFIG_WLAN_FEATURE_LPSS is not set
# CONFIG_QCOM_VOWIFI_11R is not set
# CONFIG_WLAN_FEATURE_NAN is not set
# CONFIG_QCOM_TDLS is not set
# CONFIG_QCOM_LTE_COEX is not set
# CONFIG_WLAN_SYNC_TSF is not set
# CONFIG_WLAN_OFFLOAD_PACKETS is not set
# CONFIG_QCA_WIFI_AUTOMOTIVE_CONC is not set
# CONFIG_WLAN_UDP_RESPONSE_OFFLOAD is not set
# CONFIG_WLAN_WOW_PULSE is not set
# CONFIG_DPTRACE_ENABLE is not set
# CONFIG_GOLDFISH is not set
#

View File

@ -1,6 +1,7 @@
{
mobile-nixos
, fetchFromGitHub
, fetchpatch
}:
mobile-nixos.kernel-builder-gcc6 {
@ -19,8 +20,15 @@ mobile-nixos.kernel-builder-gcc6 {
./0001-Imports-drivers-input-changes-from-lineage-16.0.patch
./0001-s3320-Workaround-libinput-claiming-kernel-bug.patch
./0001-oneplus3-Configure-LEDs-using-kernel-triggers.patch
# qcacld-2.0 driver from LineageOS
(fetchpatch {
url = "https://github.com/mobile-nixos/linux/commit/4ebb0b70c19b7cc6d5a713cfdcdded7e07af4bf6.patch";
sha256 = "0szibn4ym6557138y8qham8zjzn3zfswwk2g2qnwvl4h0732sr9p";
})
];
enableRemovingWerror = true;
isImageGzDtb = true;
isModular = false;
}