moby: shift the kernel config into the linux-megous
package
This commit is contained in:
parent
afdf3442b4
commit
6b9bbe278f
|
@ -44,68 +44,6 @@ let
|
||||||
"sha256-6ywm3dQQ5JYl60CLKarxlSUukwi4QzqctCj3tVgzFbo="
|
"sha256-6ywm3dQQ5JYl60CLKarxlSUukwi4QzqctCj3tVgzFbo="
|
||||||
)
|
)
|
||||||
];
|
];
|
||||||
|
|
||||||
# pinephone uses the linux dtb at arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
|
|
||||||
# - this includes sun50i-a64.dtsi
|
|
||||||
# - and sun50i-a64-cpu-opp.dtsi
|
|
||||||
# - no need to touch the allwinner-h6 stuff: that's the SBC pine product
|
|
||||||
# - i think it's safe to ignore sun9i stuff, but i don't know what it is
|
|
||||||
kernelConfig = with lib.kernel; {
|
|
||||||
# NB: nix adds the CONFIG_ prefix to each of these.
|
|
||||||
# if you add the prefix yourself nix will IGNORE YOUR CONFIG.
|
|
||||||
RTL8723CS = module;
|
|
||||||
BT_HCIUART_3WIRE = yes;
|
|
||||||
BT_HCIUART_RTL = yes;
|
|
||||||
RTL8XXXU_UNTESTED = yes;
|
|
||||||
BT_BNEP_MC_FILTER = yes;
|
|
||||||
BT_BNEP_PROTO_FILTER = yes;
|
|
||||||
BT_HS = yes;
|
|
||||||
BT_LE = yes;
|
|
||||||
# relevant configs inherited from nixos defaults (or above additions):
|
|
||||||
# CONFIG_BT=m
|
|
||||||
# CONFIG_BT_BREDR=y
|
|
||||||
# CONFIG_BT_RFCOMM=m
|
|
||||||
# CONFIG_BT_RFCOMM_TTY=y
|
|
||||||
# CONFIG_BT_BNEP=m
|
|
||||||
# CONFIG_BT_HIDP=m
|
|
||||||
# CONFIG_BT_RTL=m
|
|
||||||
# CONFIG_BT_HCIBTUSB=m
|
|
||||||
# CONFIG_BT_HCIBTUSB_BCM=y
|
|
||||||
# CONFIG_BT_HCIBTUSB_RTL=y
|
|
||||||
# CONFIG_BT_HCIUART=m
|
|
||||||
# CONFIG_BT_HCIUART_SERDEV=y
|
|
||||||
# CONFIG_BT_HCIUART_H4=y
|
|
||||||
# CONFIG_BT_HCIUART_LL=y
|
|
||||||
# CONFIG_RTL_CARDS=m
|
|
||||||
# CONFIG_RTLWIFI=m
|
|
||||||
# CONFIG_RTLWIFI_PCI=m
|
|
||||||
# CONFIG_RTLWIFI_USB=m
|
|
||||||
# CONFIG_RTLWIFI_DEBUG=y
|
|
||||||
# CONFIG_RTL8723_COMMON=m
|
|
||||||
# CONFIG_RTLBTCOEXIST=m
|
|
||||||
# CONFIG_RTL8XXXU=m
|
|
||||||
# CONFIG_RTLLIB=m
|
|
||||||
# consider adding (from mobile-nixos):
|
|
||||||
# maybe: CONFIG_BT_HCIUART_3WIRE=y
|
|
||||||
# maybe: CONFIG_BT_HCIUART_RTL=y
|
|
||||||
# maybe: CONFIG_RTL8XXXU_UNTESTED=y
|
|
||||||
# consider adding (from manjaro):
|
|
||||||
# CONFIG_BT_6LOWPAN=m (not listed as option in nixos kernel)
|
|
||||||
# these are referenced in the rtl8723 source, but not known to config (and not in mobile-nixos config
|
|
||||||
# maybe: CONFIG_RTL_ODM_WLAN_DRIVER
|
|
||||||
# maybe: CONFIG_RTL_TRIBAND_SUPPORT
|
|
||||||
# maybe: CONFIG_SDIO_HCI
|
|
||||||
# maybe: CONFIG_USB_HCI
|
|
||||||
};
|
|
||||||
|
|
||||||
# create a kernelPatch which overrides nixos' defconfig with extra options
|
|
||||||
patchDefconfig = config: {
|
|
||||||
# defconfig options. this method comes from here:
|
|
||||||
# - https://discourse.nixos.org/t/the-correct-way-to-override-the-latest-kernel-config/533/9
|
|
||||||
name = "sane-moby-defconfig";
|
|
||||||
patch = null;
|
|
||||||
extraStructuredConfig = config;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# use Megi's kernel:
|
# use Megi's kernel:
|
||||||
|
@ -116,22 +54,6 @@ in
|
||||||
# - phosh greeter may not appear after wake from sleep
|
# - phosh greeter may not appear after wake from sleep
|
||||||
boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux-megous;
|
boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux-megous;
|
||||||
|
|
||||||
boot.kernelPatches = [
|
|
||||||
(patchDefconfig (kernelConfig //
|
|
||||||
(with lib.kernel; {
|
|
||||||
# disabling the sun5i_eink driver avoids this compilation error:
|
|
||||||
# CC [M] drivers/video/fbdev/sun5i-eink-neon.o
|
|
||||||
# aarch64-unknown-linux-gnu-gcc: error: unrecognized command line option '-mfloat-abi=softfp'
|
|
||||||
# aarch64-unknown-linux-gnu-gcc: error: unrecognized command line option '-mfpu=neon'
|
|
||||||
# make[3]: *** [../scripts/Makefile.build:289: drivers/video/fbdev/sun5i-eink-neon.o] Error 1
|
|
||||||
FB_SUN5I_EINK = no;
|
|
||||||
# used by the pinephone pro, but fails to compile with:
|
|
||||||
# ../drivers/media/i2c/ov8858.c:1834:27: error: implicit declaration of function 'compat_ptr'
|
|
||||||
VIDEO_OV8858 = no;
|
|
||||||
})
|
|
||||||
))
|
|
||||||
];
|
|
||||||
|
|
||||||
# alternatively, use nixos' kernel and add the stuff we want:
|
# alternatively, use nixos' kernel and add the stuff we want:
|
||||||
# # cross-compilation optimization:
|
# # cross-compilation optimization:
|
||||||
# boot.kernelPackages =
|
# boot.kernelPackages =
|
||||||
|
|
|
@ -12,16 +12,104 @@
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
# HOW TO UPDATE:
|
||||||
|
# - `git fetch` from megous' repo (https://github.com/megous/linux.git).
|
||||||
|
# - there should be some new tag, like `orange-pi-6.1-blah`. use that.
|
||||||
|
# - megi publishes release notes as the most recent commit on any stable branch, so just `git log`.
|
||||||
|
# - orange-pi is listed as the "main integration branch".
|
||||||
|
# - specific branches like `pp` (pinephone) are dev branches, and probably less stable.
|
||||||
|
rev = "orange-pi-6.2-20230122-1624";
|
||||||
|
hash = "sha256-Yma9LwlMEnP0QkUZpEl+UkTGvOWOMANBoDsmcTrPb1s=";
|
||||||
base = "6.2.0";
|
base = "6.2.0";
|
||||||
# set to empty if not a release candidate
|
# set to empty if not a release candidate
|
||||||
rc = "-rc5";
|
rc = "-rc5";
|
||||||
|
|
||||||
|
# pinephone uses the linux dtb at arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
|
||||||
|
# - this includes sun50i-a64.dtsi
|
||||||
|
# - and sun50i-a64-cpu-opp.dtsi
|
||||||
|
# - no need to touch the allwinner-h6 stuff: that's the SBC pine product
|
||||||
|
# - i think it's safe to ignore sun9i stuff, but i don't know what it is
|
||||||
|
kernelConfig = with lib.kernel; {
|
||||||
|
# NB: nix adds the CONFIG_ prefix to each of these.
|
||||||
|
# if you add the prefix yourself nix will IGNORE YOUR CONFIG.
|
||||||
|
RTL8723CS = module;
|
||||||
|
BT_HCIUART_3WIRE = yes;
|
||||||
|
BT_HCIUART_RTL = yes;
|
||||||
|
RTL8XXXU_UNTESTED = yes;
|
||||||
|
BT_BNEP_MC_FILTER = yes;
|
||||||
|
BT_BNEP_PROTO_FILTER = yes;
|
||||||
|
BT_HS = yes;
|
||||||
|
BT_LE = yes;
|
||||||
|
#
|
||||||
|
### BUILD FIXES, NOT SPECIFIC TO MY PREFERENCES
|
||||||
|
#
|
||||||
|
# disabling the sun5i_eink driver avoids this compilation error:
|
||||||
|
# CC [M] drivers/video/fbdev/sun5i-eink-neon.o
|
||||||
|
# aarch64-unknown-linux-gnu-gcc: error: unrecognized command line option '-mfloat-abi=softfp'
|
||||||
|
# aarch64-unknown-linux-gnu-gcc: error: unrecognized command line option '-mfpu=neon'
|
||||||
|
# make[3]: *** [../scripts/Makefile.build:289: drivers/video/fbdev/sun5i-eink-neon.o] Error 1
|
||||||
|
FB_SUN5I_EINK = no;
|
||||||
|
# used by the pinephone pro, but fails to compile with:
|
||||||
|
# ../drivers/media/i2c/ov8858.c:1834:27: error: implicit declaration of function 'compat_ptr'
|
||||||
|
VIDEO_OV8858 = no;
|
||||||
|
#
|
||||||
|
### RELEVANT CONFIGS INHERITED FROM NIXOS DEFAULTS (OR ABOVE ADDITIONS):
|
||||||
|
#
|
||||||
|
# CONFIG_BT=m
|
||||||
|
# CONFIG_BT_BREDR=y
|
||||||
|
# CONFIG_BT_RFCOMM=m
|
||||||
|
# CONFIG_BT_RFCOMM_TTY=y
|
||||||
|
# CONFIG_BT_BNEP=m
|
||||||
|
# CONFIG_BT_HIDP=m
|
||||||
|
# CONFIG_BT_RTL=m
|
||||||
|
# CONFIG_BT_HCIBTUSB=m
|
||||||
|
# CONFIG_BT_HCIBTUSB_BCM=y
|
||||||
|
# CONFIG_BT_HCIBTUSB_RTL=y
|
||||||
|
# CONFIG_BT_HCIUART=m
|
||||||
|
# CONFIG_BT_HCIUART_SERDEV=y
|
||||||
|
# CONFIG_BT_HCIUART_H4=y
|
||||||
|
# CONFIG_BT_HCIUART_LL=y
|
||||||
|
# CONFIG_RTL_CARDS=m
|
||||||
|
# CONFIG_RTLWIFI=m
|
||||||
|
# CONFIG_RTLWIFI_PCI=m
|
||||||
|
# CONFIG_RTLWIFI_USB=m
|
||||||
|
# CONFIG_RTLWIFI_DEBUG=y
|
||||||
|
# CONFIG_RTL8723_COMMON=m
|
||||||
|
# CONFIG_RTLBTCOEXIST=m
|
||||||
|
# CONFIG_RTL8XXXU=m
|
||||||
|
# CONFIG_RTLLIB=m
|
||||||
|
# consider adding (from mobile-nixos):
|
||||||
|
# maybe: CONFIG_BT_HCIUART_3WIRE=y
|
||||||
|
# maybe: CONFIG_BT_HCIUART_RTL=y
|
||||||
|
# maybe: CONFIG_RTL8XXXU_UNTESTED=y
|
||||||
|
# consider adding (from manjaro):
|
||||||
|
# CONFIG_BT_6LOWPAN=m (not listed as option in nixos kernel)
|
||||||
|
# these are referenced in the rtl8723 source, but not known to config (and not in mobile-nixos config
|
||||||
|
# maybe: CONFIG_RTL_ODM_WLAN_DRIVER
|
||||||
|
# maybe: CONFIG_RTL_TRIBAND_SUPPORT
|
||||||
|
# maybe: CONFIG_SDIO_HCI
|
||||||
|
# maybe: CONFIG_USB_HCI
|
||||||
|
};
|
||||||
|
|
||||||
# `pkgs.kernelPatches` is a set of common patches
|
# `pkgs.kernelPatches` is a set of common patches
|
||||||
# while `kernelPatches` callarg is a list.
|
# while `kernelPatches` callarg is a list.
|
||||||
# weird idiom, means we have to access pkgs.kernelPatches to access the actual patch directory:
|
# weird idiom, means we have to access pkgs.kernelPatches to access the actual patch directory:
|
||||||
extraKernelPatches = [
|
extraKernelPatches = [
|
||||||
pkgs.kernelPatches.bridge_stp_helper
|
pkgs.kernelPatches.bridge_stp_helper
|
||||||
pkgs.kernelPatches.request_key_helper
|
pkgs.kernelPatches.request_key_helper
|
||||||
|
(patchDefconfig kernelConfig)
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
# create a kernelPatch which overrides nixos' defconfig with extra options
|
||||||
|
patchDefconfig = config: {
|
||||||
|
# defconfig options. this method comes from here:
|
||||||
|
# - https://discourse.nixos.org/t/the-correct-way-to-override-the-latest-kernel-config/533/9
|
||||||
|
name = "linux-megous-defconfig";
|
||||||
|
patch = null;
|
||||||
|
extraStructuredConfig = config;
|
||||||
|
};
|
||||||
|
|
||||||
overridenArgs = args // rec {
|
overridenArgs = args // rec {
|
||||||
version = base + rc;
|
version = base + rc;
|
||||||
|
|
||||||
|
@ -32,16 +120,9 @@ let
|
||||||
extraMeta.branch = versions.majorMinor version;
|
extraMeta.branch = versions.majorMinor version;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
# HOW TO UPDATE:
|
|
||||||
# - `git fetch` from megous' github.
|
|
||||||
# - there should be some new tag, like `orange-pi-6.1-blah`. use that.
|
|
||||||
# - megi publishes release notes as the most recent commit on any stable branch, so just `git log`.
|
|
||||||
# - orange-pi is listed as the "main integration branch".
|
|
||||||
# - specific branches like `pp` (pinephone) are dev branches, and probably less stable.
|
|
||||||
owner = "megous";
|
owner = "megous";
|
||||||
repo = "linux";
|
repo = "linux";
|
||||||
rev = "orange-pi-6.2-20230122-1624";
|
inherit rev hash;
|
||||||
hash = "sha256-Yma9LwlMEnP0QkUZpEl+UkTGvOWOMANBoDsmcTrPb1s=";
|
|
||||||
};
|
};
|
||||||
} // (args.argsOverride or { });
|
} // (args.argsOverride or { });
|
||||||
finalArgs = overridenArgs // {
|
finalArgs = overridenArgs // {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user