]> git.proxmox.com Git - pve-kernel.git/blame_incremental - README
update sources to Ubuntu-5.15.0-16.16
[pve-kernel.git] / README
... / ...
CommitLineData
1KERNEL SOURCE:
2==============
3
4We currently use the Ubuntu kernel sources, available from:
5
6 http://kernel.ubuntu.com/git/ubuntu/ubuntu-impish.git/
7
8Ubuntu will maintain those kernels till:
9
10 https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable
11 or
12 https://pve.proxmox.com/pve-docs/chapter-pve-faq.html#faq-support-table
13
14 whatever happens to be earlier.
15
16
17Additional/Updated Modules:
18---------------------------
19
20- include native OpenZFS filesystem kernel modules for Linux
21
22 * https://github.com/zfsonlinux/
23
24 For licensing questions, see: http://open-zfs.org/wiki/Talk:FAQ
25
26
27SUBMODULE
28=========
29
30We track the current upstream repository as submodule. Besides obvious
31advantages over tracking binary tar archives this also has some implications.
32
33For building the submodule directory gets copied into build/ and a few patches
34get applied with the `patch` tool. From a git point-of-view, the copied
35directory remains clean even with extra patches applied since it does not
36contain a .git directory, but a reference to the (still pristine) submodule:
37
38$ cat build/ubuntu-impish/.git
39
40If you mistakenly cloned the upstream repo as "normal" clone (not via the
41submodule mechanics) this means that you have a real .git directory with its
42independent objects and tracking info when copying for building, thus git
43operates on the copied directory - and "sees" that it was dirtied by `patch`,
44and thus the kernel buildsystem sees this too and will add a '+' to the version
45as a result. This changes the output directories for modules and other build
46artefacts and let's then the build fail on packaging.
47
48So always ensure that you really checked it out as submodule, not as full
49"normal" clone. You can also explicitly set the LOCALVERSION variable to
50undefined with: `export LOCALVERSION= but that should only be done for test
51builds.
52
53RELATED PACKAGES:
54=================
55
56proxmox-ve
57----------
58
59top level meta package, depends on current default kernel series meta package.
60
61git clone git://git.proxmox.com/git/proxmox-ve.git
62
63pve-kernel-meta
64---------------
65
66depends on latest kernel and header package within a certain kernel series,
67e.g., pve-kernel-5.11 / pve-headers-5.11
68
69git clone git://git.proxmox.com/git/pve-kernel-meta.git
70
71pve-firmware
72------------
73
74contains the firmware for all released PVE kernels.
75
76git clone git://git.proxmox.com/git/pve-firmware.git
77
78
79NOTES:
80======
81
82ABI versions, package versions and package name:
83------------------------------------------------
84
85We follow debian's versioning w.r.t ABI changes:
86
87https://kernel-team.pages.debian.net/kernel-handbook/ch-versions.html
88https://wiki.debian.org/DebianKernelABIChanges
89
90The debian/rules file has a target comparing the build kernel's ABI against the
91version stored in the repository and indicates when an ABI bump is necessary.
92An ABI bump within one upstream version consists of incrementing the KREL
93variable in the Makefile, rebuilding the packages and running 'make abiupdate'
94(the 'abiupdate' target in 'Makefile' contains the steps for consistently
95updating the repository).
96
97Watchdog blacklist
98------------------
99
100By default, all watchdog modules are black-listed because it is totally undefined
101which device is actually used for /dev/watchdog.
102We ship this list in /lib/modprobe.d/blacklist_pve-kernel-<VERSION>.conf
103The user typically edit /etc/modules to enable a specific watchdog device.
104
105Debug kernel and modules
106------------------------
107
108In order to build a -dbgsym package containing an unstripped copy of the kernel
109image and modules, enable the 'pkg.pve-kernel.debug' build profile (e.g. by
110exporting DEB_BUILD_PROFILES='pkg.pve-kernel.debug'). The resulting package can
111be used together with 'crash'/'kdump-tools' to debug kernel crashes.
112
113Note: the -dbgsym package is only valid for the pve-kernel packages produced by
114the same build. A kernel/module from a different build will likely not match,
115even if both builds are of the same kernel and package version.
116
117Additional information
118----------------------
119
120We use the default configuration provided by Ubuntu, and apply
121the following modifications:
122
123NOTE: For the exact and current list see debian/rules (PVE_CONFIG_OPTS)
124
125- enable INTEL_MEI_WDT=m (to allow disabling via patch)
126
127- disable CONFIG_SND_PCM_OSS (enabled by default in Ubuntu, not needed)
128
129- switch CONFIG_TRANSPARENT_HUGEPAGE to MADVISE from ALWAYS
130
131- enable CONFIG_CEPH_FS=m (request from user)
132
133- enable common CONFIG_BLK_DEV_XXX to avoid hardware detection
134 problems (udev, update-initramfs have serious problems without that)
135
136 CONFIG_BLK_DEV_SD=y
137 CONFIG_BLK_DEV_SR=y
138 CONFIG_BLK_DEV_DM=y
139
140- compile NBD and RBD modules
141 CONFIG_BLK_DEV_NBD=m
142 CONFIG_BLK_DEV_RBD=m
143
144- enable IBM JFS file system as module
145 requested by users (bug #64)
146
147- enable apple HFS and HFSPLUS as module
148 requested by users
149
150- enable CONFIG_BCACHE=m (requested by user)
151
152- enable CONFIG_BRIDGE=y
153 to avoid warnings on boot, e.g. that net.bridge.bridge-nf-call-iptables is an unknown key
154
155- enable CONFIG_DEFAULT_SECURITY_APPARMOR
156 We need this for lxc
157
158- set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
159 because if not set, it can give some dynamic memory or cpu frequencies
160 change, and vms can crash (mainly windows guest).
161 see http://forum.proxmox.com/threads/18238-Windows-7-x64-VMs-crashing-randomly-during-process-termination?p=93273#post93273
162
163- use 'deadline' as default scheduler
164 This is the suggested setting for KVM. We also measure bad fsync performance with ext4 and cfq.
165
166- disable CONFIG_INPUT_EVBUG
167 Module evbug is not blacklisted on debian, so we simply disable it to avoid
168 key-event logs (which is a big security problem)
169
170- enable CONFIG_MODVERSIONS (needed for ABI tracking)
171
172- switch default UNWINDER to FRAME_POINTER
173 the recently introduced ORC_UNWINDER is not 100% stable yet, especially in combination with ZFS
174
175- enable CONFIG_PAGE_TABLE_ISOLATION (Meltdown mitigation)