diff options
Diffstat (limited to 'libre/linux-libre')
8 files changed, 292 insertions, 17 deletions
diff --git a/libre/linux-libre/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/libre/linux-libre/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch index 4f26945d5..9419d3682 100644 --- a/libre/linux-libre/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch +++ b/libre/linux-libre/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch @@ -1,7 +1,7 @@ -From 0f579ba70a8b9abbfe32a523dacf9d514efb1148 Mon Sep 17 00:00:00 2001 +From 164d2dd36ff81a5a4b4d6440317438cf6009cd59 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> Date: Mon, 16 Sep 2019 04:53:20 +0200 -Subject: [PATCH] ZEN: Add sysctl and CONFIG to disallow unprivileged +Subject: [PATCH 1/4] ZEN: Add sysctl and CONFIG to disallow unprivileged CLONE_NEWUSER Our default behavior continues to match the vanilla kernel. diff --git a/libre/linux-libre/0002-PCI-EDR-Log-only-ACPI_NOTIFY_DISCONNECT_RECOVER-even.patch b/libre/linux-libre/0002-PCI-EDR-Log-only-ACPI_NOTIFY_DISCONNECT_RECOVER-even.patch new file mode 100644 index 000000000..2767f6096 --- /dev/null +++ b/libre/linux-libre/0002-PCI-EDR-Log-only-ACPI_NOTIFY_DISCONNECT_RECOVER-even.patch @@ -0,0 +1,38 @@ +From efc6c7bfa6d28f7720322f1976aa2799a88906dd Mon Sep 17 00:00:00 2001 +From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> +Date: Wed, 15 Apr 2020 17:38:32 -0700 +Subject: [PATCH 2/4] PCI/EDR: Log only ACPI_NOTIFY_DISCONNECT_RECOVER events + +Previously we logged *all* ACPI SYSTEM-level events, which may include lots +of non-EDR events. Move the message so we only log those related to EDR. + +Link: https://lore.kernel.org/r/01afb4e01efbe455de0c445bef6cf3ffc59340d2.1586996350.git.sathyanarayanan.kuppuswamy@linux.intel.com +[bhelgaas: drop the pci_dbg() of all events since ACPI can log those +already] +Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> +Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> +--- + drivers/pci/pcie/edr.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/pci/pcie/edr.c b/drivers/pci/pcie/edr.c +index 594622a6cb16..a6b9b479b97a 100644 +--- a/drivers/pci/pcie/edr.c ++++ b/drivers/pci/pcie/edr.c +@@ -148,11 +148,11 @@ static void edr_handle_event(acpi_handle handle, u32 event, void *data) + pci_ers_result_t estate = PCI_ERS_RESULT_DISCONNECT; + u16 status; + +- pci_info(pdev, "ACPI event %#x received\n", event); +- + if (event != ACPI_NOTIFY_DISCONNECT_RECOVER) + return; + ++ pci_info(pdev, "EDR event received\n"); ++ + /* Locate the port which issued EDR event */ + edev = acpi_dpc_port_get(pdev); + if (!edev) { +-- +2.27.0 + diff --git a/libre/linux-libre/0003-Revert-ath9k-Fix-general-protection-fault-in-ath9k_h.patch b/libre/linux-libre/0003-Revert-ath9k-Fix-general-protection-fault-in-ath9k_h.patch new file mode 100644 index 000000000..c91450e6b --- /dev/null +++ b/libre/linux-libre/0003-Revert-ath9k-Fix-general-protection-fault-in-ath9k_h.patch @@ -0,0 +1,200 @@ +From 1a32e7b57b0b37cab6845093920b4d1ff94d3bf4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Viktor=20J=C3=A4gersk=C3=BCpper?= + <viktor_jaegerskuepper@freenet.de> +Date: Wed, 1 Jul 2020 23:32:28 +0200 +Subject: [PATCH 3/4] Revert "ath9k: Fix general protection fault in + ath9k_hif_usb_rx_cb" +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This reverts commit 2bbcaaee1fcb ("ath9k: Fix general protection fault +in ath9k_hif_usb_rx_cb") because the driver gets stuck like this: + + [ 5.778803] usb 1-5: Manufacturer: ATHEROS + [ 21.697488] usb 1-5: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested + [ 21.701377] usbcore: registered new interface driver ath9k_htc + [ 22.053705] usb 1-5: ath9k_htc: Transferred FW: ath9k_htc/htc_9271-1.4.0.fw, size: 51008 + [ 22.306182] ath9k_htc 1-5:1.0: ath9k_htc: HTC initialized with 33 credits + [ 115.708513] ath9k_htc: Failed to initialize the device + [ 115.708683] usb 1-5: ath9k_htc: USB layer deinitialized + +Reported-by: Roman Mamedov <rm@romanrm.net> +Ref: https://bugzilla.kernel.org/show_bug.cgi?id=208251 +Fixes: 2bbcaaee1fcb ("ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb") +Tested-by: Viktor Jägersküpper <viktor_jaegerskuepper@freenet.de> +Signed-off-by: Viktor Jägersküpper <viktor_jaegerskuepper@freenet.de> +--- + drivers/net/wireless/ath/ath9k/hif_usb.c | 48 ++++++------------------ + drivers/net/wireless/ath/ath9k/hif_usb.h | 5 --- + 2 files changed, 11 insertions(+), 42 deletions(-) + +diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c +index 4ed21dad6a8e..6049d3766c64 100644 +--- a/drivers/net/wireless/ath/ath9k/hif_usb.c ++++ b/drivers/net/wireless/ath/ath9k/hif_usb.c +@@ -643,9 +643,9 @@ static void ath9k_hif_usb_rx_stream(struct hif_device_usb *hif_dev, + + static void ath9k_hif_usb_rx_cb(struct urb *urb) + { +- struct rx_buf *rx_buf = (struct rx_buf *)urb->context; +- struct hif_device_usb *hif_dev = rx_buf->hif_dev; +- struct sk_buff *skb = rx_buf->skb; ++ struct sk_buff *skb = (struct sk_buff *) urb->context; ++ struct hif_device_usb *hif_dev = ++ usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0)); + int ret; + + if (!skb) +@@ -685,15 +685,14 @@ static void ath9k_hif_usb_rx_cb(struct urb *urb) + return; + free: + kfree_skb(skb); +- kfree(rx_buf); + } + + static void ath9k_hif_usb_reg_in_cb(struct urb *urb) + { +- struct rx_buf *rx_buf = (struct rx_buf *)urb->context; +- struct hif_device_usb *hif_dev = rx_buf->hif_dev; +- struct sk_buff *skb = rx_buf->skb; ++ struct sk_buff *skb = (struct sk_buff *) urb->context; + struct sk_buff *nskb; ++ struct hif_device_usb *hif_dev = ++ usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0)); + int ret; + + if (!skb) +@@ -751,7 +750,6 @@ static void ath9k_hif_usb_reg_in_cb(struct urb *urb) + return; + free: + kfree_skb(skb); +- kfree(rx_buf); + urb->context = NULL; + } + +@@ -797,7 +795,7 @@ static int ath9k_hif_usb_alloc_tx_urbs(struct hif_device_usb *hif_dev) + init_usb_anchor(&hif_dev->mgmt_submitted); + + for (i = 0; i < MAX_TX_URB_NUM; i++) { +- tx_buf = kzalloc(sizeof(*tx_buf), GFP_KERNEL); ++ tx_buf = kzalloc(sizeof(struct tx_buf), GFP_KERNEL); + if (!tx_buf) + goto err; + +@@ -834,9 +832,8 @@ static void ath9k_hif_usb_dealloc_rx_urbs(struct hif_device_usb *hif_dev) + + static int ath9k_hif_usb_alloc_rx_urbs(struct hif_device_usb *hif_dev) + { +- struct rx_buf *rx_buf = NULL; +- struct sk_buff *skb = NULL; + struct urb *urb = NULL; ++ struct sk_buff *skb = NULL; + int i, ret; + + init_usb_anchor(&hif_dev->rx_submitted); +@@ -844,12 +841,6 @@ static int ath9k_hif_usb_alloc_rx_urbs(struct hif_device_usb *hif_dev) + + for (i = 0; i < MAX_RX_URB_NUM; i++) { + +- rx_buf = kzalloc(sizeof(*rx_buf), GFP_KERNEL); +- if (!rx_buf) { +- ret = -ENOMEM; +- goto err_rxb; +- } +- + /* Allocate URB */ + urb = usb_alloc_urb(0, GFP_KERNEL); + if (urb == NULL) { +@@ -864,14 +855,11 @@ static int ath9k_hif_usb_alloc_rx_urbs(struct hif_device_usb *hif_dev) + goto err_skb; + } + +- rx_buf->hif_dev = hif_dev; +- rx_buf->skb = skb; +- + usb_fill_bulk_urb(urb, hif_dev->udev, + usb_rcvbulkpipe(hif_dev->udev, + USB_WLAN_RX_PIPE), + skb->data, MAX_RX_BUF_SIZE, +- ath9k_hif_usb_rx_cb, rx_buf); ++ ath9k_hif_usb_rx_cb, skb); + + /* Anchor URB */ + usb_anchor_urb(urb, &hif_dev->rx_submitted); +@@ -897,8 +885,6 @@ static int ath9k_hif_usb_alloc_rx_urbs(struct hif_device_usb *hif_dev) + err_skb: + usb_free_urb(urb); + err_urb: +- kfree(rx_buf); +-err_rxb: + ath9k_hif_usb_dealloc_rx_urbs(hif_dev); + return ret; + } +@@ -910,21 +896,14 @@ static void ath9k_hif_usb_dealloc_reg_in_urbs(struct hif_device_usb *hif_dev) + + static int ath9k_hif_usb_alloc_reg_in_urbs(struct hif_device_usb *hif_dev) + { +- struct rx_buf *rx_buf = NULL; +- struct sk_buff *skb = NULL; + struct urb *urb = NULL; ++ struct sk_buff *skb = NULL; + int i, ret; + + init_usb_anchor(&hif_dev->reg_in_submitted); + + for (i = 0; i < MAX_REG_IN_URB_NUM; i++) { + +- rx_buf = kzalloc(sizeof(*rx_buf), GFP_KERNEL); +- if (!rx_buf) { +- ret = -ENOMEM; +- goto err_rxb; +- } +- + /* Allocate URB */ + urb = usb_alloc_urb(0, GFP_KERNEL); + if (urb == NULL) { +@@ -939,14 +918,11 @@ static int ath9k_hif_usb_alloc_reg_in_urbs(struct hif_device_usb *hif_dev) + goto err_skb; + } + +- rx_buf->hif_dev = hif_dev; +- rx_buf->skb = skb; +- + usb_fill_int_urb(urb, hif_dev->udev, + usb_rcvintpipe(hif_dev->udev, + USB_REG_IN_PIPE), + skb->data, MAX_REG_IN_BUF_SIZE, +- ath9k_hif_usb_reg_in_cb, rx_buf, 1); ++ ath9k_hif_usb_reg_in_cb, skb, 1); + + /* Anchor URB */ + usb_anchor_urb(urb, &hif_dev->reg_in_submitted); +@@ -972,8 +948,6 @@ static int ath9k_hif_usb_alloc_reg_in_urbs(struct hif_device_usb *hif_dev) + err_skb: + usb_free_urb(urb); + err_urb: +- kfree(rx_buf); +-err_rxb: + ath9k_hif_usb_dealloc_reg_in_urbs(hif_dev); + return ret; + } +diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.h b/drivers/net/wireless/ath/ath9k/hif_usb.h +index 5985aa15ca93..a94e7e1c86e9 100644 +--- a/drivers/net/wireless/ath/ath9k/hif_usb.h ++++ b/drivers/net/wireless/ath/ath9k/hif_usb.h +@@ -86,11 +86,6 @@ struct tx_buf { + struct list_head list; + }; + +-struct rx_buf { +- struct sk_buff *skb; +- struct hif_device_usb *hif_dev; +-}; +- + #define HIF_USB_TX_STOP BIT(0) + #define HIF_USB_TX_FLUSH BIT(1) + +-- +2.27.0 + diff --git a/libre/linux-libre/0004-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch b/libre/linux-libre/0004-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch new file mode 100644 index 000000000..6fbda1ca6 --- /dev/null +++ b/libre/linux-libre/0004-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch @@ -0,0 +1,31 @@ +From 2fadccbdd143a95db9ba06110261142c9bb2acbd Mon Sep 17 00:00:00 2001 +From: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it> +Date: Thu, 2 Jul 2020 17:05:52 +0200 +Subject: [PATCH 4/4] iwlwifi: Make some Killer Wireless-AC 1550 cards working + again + +Fix the regression introduced by commit c8685937d07f ("iwlwifi: move pu devices to new table") by add the ids and the configurations of two missing Killer 1550 cards in order to make these cards being configured and working correctly again (following the new table convention). +Resolve bug 208141 ("Wireless ac 9560 not working kernel 5.7.2", https://bugzilla.kernel.org/show_bug.cgi?id=208141). + +Fixes: c8685937d07f ("iwlwifi: move pu devices to new table") +Signed-off-by: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it> +--- + drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +index 29971c25dba4..9ea3e5634672 100644 +--- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c ++++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +@@ -577,6 +577,8 @@ static const struct iwl_dev_info iwl_dev_info_table[] = { + IWL_DEV_INFO(0x30DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name), + IWL_DEV_INFO(0x31DC, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name), + IWL_DEV_INFO(0x31DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name), ++ IWL_DEV_INFO(0xA370, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name), ++ IWL_DEV_INFO(0xA370, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name), + + IWL_DEV_INFO(0x271C, 0x0214, iwl9260_2ac_cfg, iwl9260_1_name), + +-- +2.27.0 + diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD index 48d562eaa..2215be90e 100644 --- a/libre/linux-libre/PKGBUILD +++ b/libre/linux-libre/PKGBUILD @@ -14,11 +14,11 @@ _replacesoldkernels=() # '%' gets replaced with kernel suffix _replacesoldmodules=() # '%' gets replaced with kernel suffix pkgbase=linux-libre -pkgver=5.7.6 -pkgrel=3 +pkgver=5.7.8 +pkgrel=1 pkgdesc='Linux-libre' -rcnver=5.7.6 -rcnrel=armv7-x13 +rcnver=5.7.8 +rcnrel=armv7-x13.1 url='https://linux-libre.fsfla.org/' arch=(i686 x86_64 armv7h) license=(GPL2) @@ -46,6 +46,9 @@ source=( 0002-fix-Atmel-maXTouch-touchscreen-support.patch # extracted patches from Arch Linux kernel sources 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch + 0002-PCI-EDR-Log-only-ACPI_NOTIFY_DISCONNECT_RECOVER-even.patch + 0003-Revert-ath9k-Fix-general-protection-fault-in-ath9k_h.patch + 0004-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch sphinx-workaround.patch ) source_armv7h=( @@ -70,7 +73,7 @@ validpgpkeys=( ) sha512sums=('4805b2956f628c6581e86d67b1996b5b404e7f4b5d29ecfe708ddca45344571d75018364d8f0049835d4286ca1ba591307be263536d1bed0ea006696a8b8ac73' 'SKIP' - '7ae239b1474d6122a05a094ec57a8523b45993197f3426a9dbcc37171b210b90cdcbf93581726da7b0827436b8553f2a1dfa24b023eafe209d042964d56f99b0' + 'e4bb6a8e3342df1d4d87d916aba771c4561f8f27b70f7b8903eedcd96611403b1a168846a9e7658086a6e9d6ede0280459c04cd927765fb03ab4909857ffd9a4' 'SKIP' '13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3' 'SKIP' @@ -78,18 +81,21 @@ sha512sums=('4805b2956f628c6581e86d67b1996b5b404e7f4b5d29ecfe708ddca45344571d750 'SKIP' '267295aa0cea65684968420c68b32f1a66a22d018b9d2b2c1ef14267bcf4cb68aaf7099d073cbfefe6c25c8608bdcbbd45f7ac8893fdcecbf1e621abdfe9ecc1' 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' + 'b6bbd7d5fede041a56e19250842c3d1366a6b494450b70c42dcec8e62d2d4f69ded0903e6a733750dfba9426dfd468f316e59ac5644ccaf48822090fa9f69402' + 'fa3f7465ef5896e3ad390cbb3c94eb52e84ee94ae3cb578cab29191a1f5f5055bd3bb63eaf2347d801ac953f7ef73354789f827162de88f6d6cfe08dd5f8dcd7' + 'f7e47966b8732fa66fa939d174e7bbc677e70bd5f52322f9adbd163ac9532769f6eb65391a9321fbe826cd5533b80bade664c2301bad27955563bddf2b097595' '53103bf55b957b657039510527df0df01279dec59cda115a4d6454e4135025d4546167fa30bdc99107f232561c1e096d8328609ab5a876cf7017176f92ad3e0b' '167bc73c6c1c63931806238905dc44c7d87c5a5c0f6293159f2133dfe717fb44081018d810675716d1605ec7dff5e8333b87b19e09e2de21d0448e447437873b' 'bb6718984a7357c9b00c37e4788480e5b8b75018c172ecc1441bc3fc5d2d42444eb5d8c7f9d2e3a7d6fed6d03acb565e3c0559486e494c40a7fe6bd0570c9ede' '143dea30c6da00e504c99984a98a0eb2411f558fcdd9dfa7f607d6c14e9e7dffff9cb00121d9317044b07e3e210808286598c785ee854084b993ec9cb14d8232' '02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af' 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168' - 'cbb533ae0bd68566e10fbf55fedd81374905ab301fc5d2a34a44a93a5346d9a70157a4a3323406c5baf7410841149dd6e0ef98559368623cc96fc2175b7ca5ed' + '4325085f4cb5d9f3bcfcc2cc98903422a378fe62edbdfe3610e19a4b6180819a9191a023fc969201977695bef80a8a30ca27056e97100b88075ce4e22f6b15b3' + '23b048b48da0297d1ad2397745a065f65910f6a8ac0f8fe4a6e29fb507c016cee696644da178feb0835bd6ebc909d99b9d88ce9733bed21e1efb273c440a31a7' + '1f377c5445e561da723998d92498d304025350789ef3ba8c302938ebb74452cfd22e846fa904311acb52c3143ed31192ff19e9e518eb1a15e82db1e78f8c3869' + 'a4b36ca251d8e44781a43c8aff96a0b2e90bd9539bade47d79012bcec489dee49ab8cb42bf5706a9bd6e600396628adc212bc1376f79061100c87bc272630e1b' '98e97155f86bbe837d43f27ec1018b5b6fdc6c372d6f7f2a0fe29da117d53979d9f9c262f886850d92002898682781029b80d4ee923633fc068f979e6c8254be') -sha512sums_armv7h=('ec4637167065dcaac3db536acf53f0b22cdbf260a9162663fe602bf6d4d55898ddd85ba24b2a7eb34c3fd4ce5e63b291f610eb74625e2170e03ff5ab915034a9' +sha512sums_armv7h=('8eb83d14aba5c43c88e39a72b230233131d898e052b968495e25d3e5d8605ff78da5c6f726f28d3ffd2d48717db0a062660fdd40bdd9b1205d00718814c7068b' 'SKIP' 'a3b23a92a6f9ee4c6200244e99b62e77af1f18cc9f9714f671c7e754502d0341a93b0461a4a5562329dc51822ae06ff713208ec7092d480492163862a455377c' '1919ef4738ce25f405e5c68b13233ce19d821ebb65fcd4f8f55a268a2f25029b8a8c0f7ac1cb2ecb9026fc43a4851eca182001baa2dc32653ec34dbb13106a72' diff --git a/libre/linux-libre/config.armv7h b/libre/linux-libre/config.armv7h index b349ea808..b1a9de2f2 100644 --- a/libre/linux-libre/config.armv7h +++ b/libre/linux-libre/config.armv7h @@ -1,13 +1,13 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 5.7.2-gnu Kernel Configuration +# Linux/arm 5.7.8-gnu Kernel Configuration # # -# Compiler: gcc (GCC) 9.3.0 +# Compiler: gcc (GCC) 10.1.0 # CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=90300 +CONFIG_GCC_VERSION=100100 CONFIG_LD_VERSION=234000000 CONFIG_CLANG_VERSION=0 CONFIG_CC_HAS_ASM_GOTO=y diff --git a/libre/linux-libre/config.i686 b/libre/linux-libre/config.i686 index 5225d0bc8..f484c9909 100644 --- a/libre/linux-libre/config.i686 +++ b/libre/linux-libre/config.i686 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.7.2-gnu Kernel Configuration +# Linux/x86 5.7.8-gnu Kernel Configuration # # diff --git a/libre/linux-libre/config.x86_64 b/libre/linux-libre/config.x86_64 index e109824e2..cc5215200 100644 --- a/libre/linux-libre/config.x86_64 +++ b/libre/linux-libre/config.x86_64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.7.2-gnu Kernel Configuration +# Linux/x86 5.7.8-gnu Kernel Configuration # # |