4.20-rc1が出たので.config
がどう変更されるのか見てみた.以下 -
は削除されたもの,+
は追加されたもの.汎用指向の環境.Linux 5.0 になるのは来年らしい.
+CONFIG_ARCH_CLOCKSOURCE_INIT=y
x86/time: Implement clocksource_arch_init()
X86
でselectされる.-CONFIG_NO_BOOTMEM=y
すべてのアーキテクチャで NO_BOOTMEM がselectされるので,削除したとのこと.
-CONFIG_HAVE_MEMBLOCK=y
mm: remove CONFIG_HAVE_MEMBLOCK
すべてのアーキテクチャで HAVE_MEMBLOCK がselectされるので,削除したとのこと.
+CONFIG_CPU_SUP_HYGON=y
x86/cpu: Create Hygon Dhyana architecture support file
CONFIG_PROCESSOR_SELECT=y
にして CONFIG_CPU_SUP_HYGON=n ついでに CONFIG_CPU_SUP_CENTAUR=n する(IntelとAMDのみサポート,の設定になる).+CONFIG_ACPI_ADXL=y
EDAC, skx_edac: Add address translation for non-volatile DIMMs
ACPI/ADXL: Add address translation interface using an ACPI DSMCONFIG_EDAC_SKX=m
で select されてた.このままで.+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
x86: ptrace: Add function argument access API
X86
でselectされる.+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
jump_label: Implement generic support for relative references
x86/jump_table: Use relative referencesX86
でselectされる.+CONFIG_HAVE_ARCH_STACKLEAK=y
x86/entry: Add STACKLEAK erasing the kernel stack at the end of syscalls
X86
でselectされる.+CONFIG_BLK_PM=y
block: Move power management code into a new source file
config BLK_PM def_bool BLOCK && PM
-CONFIG_MAC80211_RC_MINSTREL_HT=y
mac80211: minstrel: merge with minstrel_ht, always enable VHT support
+CONFIG_DRM_AMD_DC_DCN1_01=y
drm/amd/display: Add DC config flag for Raven2 (v2)
CONFIG_DRM_AMD_DC_DCN1_0 同様 CONFIG_DRM_AMD_DC で select される.
-CONFIG_CRYPTO_MCRYPTD=m
-CONFIG_CRYPTO_SHA1_MB=m
crypto: x86 - remove SHA multibuffer routines and mcryptd
壊れていてメンテナンス困難ということで一旦削除とのこと.
-CONFIG_RADIX_TREE_MULTIORDER=y
+CONFIG_XARRAY_MULTI=y
radix tree: Remove multiorder support
xarray: Add documentationXarray に移行.
DKMS
broadcom-sta-dkms (6.30.223.271-9.1)は以下で compile できない.
Assembler messages:
Error: can't open arch/x86/kernel/macros.s for reading: No such file or directory
arch/x86/kernel/macros.s
を /usr/src/linux-headers-4.20.0-hoge-01/arch/x86/kernel/
に配置してあげると compile できる.
nvidia-kernel-dkms (390.87-2) は conftest の段階で以下の error.これ以上はひとまず追わず.
#error INIT_WORK() conftest failed!
#error kmem_cache_create() conftest failed!
#error on_each_cpu() conftest failed!
#error smp_call_function() conftest failed!
#error acpi_walk_namespace() conftest failed!
#error pci_dma_mapping_error() conftest failed!
#error wait_on_bit_lock() conftest failed!
#error radix_tree_replace_slot() conftest failed!
追記 (2018/12/14)
まず上記 conftest の失敗は arch/x86/kernel/macros.s
を見に行くことが原因.nvidia-legacy についても同様.以下で解決.Version は nvidia-kernel-dkms (390.87-3) と nvidia-legacy-340xx-kernel-dkms 340.107-3.
# cd /usr/src/nvidia-current-390.87
# ln -s /usr/src/linux-headers-4.20.0-rcX-hogege-01/arch .
# cd /usr/src/nvidia-legacy-340xx-340.107
# ln -s /usr/src/linux-headers-4.20.0-rcX-hogege-01/arch .
# cd /usr/src/nvidia-legacy-340xx-340.107/uvm
# ln -s /usr/src/linux-headers-4.20.0-rcX-hogege-01/arch .
nvidia-current (390.87-3) は以下で compile に失敗する.Kernel の mm: change return type to vm_fault_tによる変更に由来する.
/var/lib/dkms/nvidia/current-390.87/build/nvidia-drm/nvidia-drm-gem-nvkms-memory.c: In function ‘__nv_drm_vma_fault’:
/var/lib/dkms/nvidia/current-390.87/build/nvidia-drm/nvidia-drm-gem-nvkms-memory.c:240:11: error: implicit declaration of function ‘vm_insert_pfn’; did you mean ‘vmf_insert_pfn’? [-Werror=implicit-function-declaration]
ret = vm_insert_pfn(vma, address, pfn + page_offset);
^~~~~~~~~~~~~
vmf_insert_pfn
以下の patch で解決.
--- a/nvidia-drm/nvidia-drm-gem-nvkms-memory.c
+++ b/nvidia-drm/nvidia-drm-gem-nvkms-memory.c
@@ -230,31 +230,15 @@ static int __nv_drm_vma_fault(struct vm_area_struct *vma,
struct nv_drm_gem_nvkms_memory *nv_nvkms_memory = to_nv_nvkms_memory(
to_nv_gem_object(gem));
unsigned long page_offset, pfn;
- int ret = -EINVAL;
+ vm_fault_t ret;
pfn = (unsigned long)(uintptr_t)nv_nvkms_memory->pPhysicalAddress;
pfn >>= PAGE_SHIFT;
page_offset = vmf->pgoff - drm_vma_node_start(&gem->vma_node);
- ret = vm_insert_pfn(vma, address, pfn + page_offset);
-
- switch (ret) {
- case 0:
- case -EBUSY:
- /*
- * EBUSY indicates that another thread already handled
- * the faulted range.
- */
- return VM_FAULT_NOPAGE;
- case -ENOMEM:
- return VM_FAULT_OOM;
- default:
- WARN_ONCE(1, "Unhandled error in %s: %d\n", __FUNCTION__, ret);
- break;
- }
-
- return VM_FAULT_SIGBUS;
+ ret = vmf_insert_pfn(vma, address, pfn + page_offset);
+ return ret;
}
/*
Related articles
- 2021/01/13 21:27 / brtfs 上に swap ファイルを置く
- 2020/09/11 20:24 / Linux 5.9-rc4
- 2020/07/12 16:42 / Linux 5.8-rc4
- 2020/05/01 21:21 / Linux 5.7-rc1
- 2020/04/03 22:18 / Linux 5.6.x fs/cachefiles/rdwr.c bug
- 2020/02/22 19:33 / Linux 5.6-rc2
- 2020/01/11 20:50 / Linux 5.5-rc5
- 2019/11/25 14:45 / nvidia-kernel-dkms 418.74-1 with Linux 5.4
- 2019/10/02 00:03 / Linux 5.3.1 -> 5.4-rc1
- 2019/09/20 14:45 / nvidia-kernel-dkms 418.74-1 with Linux 5.3
- 2019/07/22 19:13 / Linux 5.2.2 -> 5.3-rc1
- 2019/06/28 20:38 / GeForce GT 430 with nvidia-legacy-390xx-kernel-dkms 390.116-1~bpo9+1
- 2019/06/12 16:10 / Linux 5.1.8 -> 5.2-rc4
- 2019/05/07 19:43 / Linux 5.0.9 -> 5.1.0
- 2019/03/07 22:16 / Linux 4.20.13 -> 5.0.0
- 2018/08/29 11:06 / Linux 4.18.5 -> 4.19-rc1
- 2018/06/20 17:06 / Linux 4.17.2 -> 4.18-rc1
- 2018/04/19 15:25 / Linux 4.16.2 -> 4.17-rc1
- 2018/02/12 17:23 / Linux 4.15.3 -> 4.16-rc1
- 2018/01/29 11:08 / Linux 4.14.15 -> 4.15
- 2017/11/28 12:42 / Linux 4.14.2 -> 4.15-rc1
- 2017/11/15 15:56 / Linux ORC unwinder と objtool (CONFIG_STACK_VALIDATION needs tools/objtool/objtool along headers)
- 2017/11/15 15:41 / Linux 4.13.12 -> 4.14.0
- 2017/09/18 07:04 / Linux 4.13.1 -> 4.14-rc1
- 2017/09/05 04:14 / Linux 4.12.10 -> 4.13
- 2017/07/16 23:56 / Linux 4.12.0 -> 4.13-rc1
- 2017/05/15 14:04 / Linux 4.11.0 -> 4.12-rc1
- 2017/05/03 00:24 / Linux 4.10.13 -> 4.11.0
- 2017/03/06 09:51 / Linux 4.10.1 -> 4.11-rc1
- 2017/02/20 10:31 / Linux 4.9.X -> 4.10
- 2016/12/30 21:28 / Linux 4.9 -> 4.10-rc1
- 2016/12/14 23:00 / Linux 4.8 -> 4.9