Я скачал исходный код ubuntu git-клон git://kernel.ubuntu.com/ubuntu/ubuntu-focal.git
. и поскольку я хотел использовать определенную версию, я сделал git checkout Ubuntu-5.4.0-42.46 (эта версия используется в установке Ubuntu .iso. См. соответствующий вопрос здесь: какую исходную версию ubuntu следует использовать для добавления некоторых отладочных отпечатков? (для отладки загрузки Ubuntu) )
После git-checkout журнал git
показывает этот результат:
коммит 98c4545e2d65ed35c31056f72c4da20f6b5ea0d0 (HEAD, тег: Ubuntu-5.4.0-42.46)
Автор: Халид Элмусли <[email protected]>
Дата: Чт, 9 июля, 19:50:26 2020 -04:00
УБУНТУ: Убунту-5.4.0-42.46
Подписано: Халид Элмусли <[email protected]>
Чтобы собрать ядро, я сделал ARCH=arm64 CROSS_COMPILE=aarch64-none-elf- make defconfig
и ARCH=arm64 CROSS_COMPILE=aarch64-none-elf-make-j24 Image
. Но это дает мне ошибку компиляции ниже. Что может быть не так?
.
.
CC мм/interval_tree.o
Драйверы CC/база/regmap/regcache.o
Ядро CC/время/posix-cpu-timers.o
CC мм/list_lru.o
CC блок/blk-mq.o
AS arch/arm64/lib/memchr.o
CC fs/ext4/migrate.o
security/security.c: В функции 'security_add_hooks':
security/security.c:477:25: ошибка: 'struct security_hook_heads' не имеет члена с именем 'socket_getpeersec_stream'
477 | &security_hook_heads.socket_getpeersec_stream)
| ^
Ядро CC/время/posix-clock.o
AS arch/arm64/lib/memcmp.o
security/security.c: В функции 'security_setprocattr':
CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v2.o
security/security.c:2058:27: ошибка: 'union security_list_options' не имеет члена с именем 'socket_getpeersec_stream'
2058 | socket_getpeersec_stream.socket_getpeersec_stream = NULL;
| ^
В файле, включенном из ./include/linux/timer.h:5,
из ./include/linux/workqueue.h:9,
из ./include/linux/bpf.h:9,
из безопасности/безопасности.c:13:
security/security.c:2060:25: ошибка: 'struct security_hook_heads' не имеет члена с именем 'socket_getpeersec_stream'
2060 | &security_hook_heads.socket_getpeersec_stream,
| ^
./include/linux/list.h:857:12: примечание: в определении макроса 'hlist_entry_safe'
857 | ({ typeof(ptr) ____ptr = (ptr); \
| ^~~
security/security.c:2059:3: примечание: в расширении макроса 'hlist_for_each_entry'
2059 | hlist_for_each_entry(hp,
| ^~~~~~~~~~~~~~~~~~~~~
security/security.c:2060:25: ошибка: 'struct security_hook_heads' не имеет члена с именем 'socket_getpeersec_stream'
2060 | &security_hook_heads.socket_getpeersec_stream,
| ^
./include/linux/list.h:857:28: примечание: в определении макроса 'hlist_entry_safe'
857 | ({ typeof(ptr) ____ptr = (ptr); \
| ^~~
security/security.c:2059:3: примечание: в расширении макроса 'hlist_for_each_entry'
2059 | hlist_for_each_entry(hp,
| ^~~~~~~~~~~~~~~~~~~~~
В файле, включенном из ./include/linux/list.h:9,
из ./include/linux/timer.h:5,
из ./include/linux/workqueue.h:9,
из ./include/linux/bpf.h:9,
из безопасности/безопасности.c:13:
./include/linux/kernel.h:993:17: предупреждение: приведение к указателю из целого числа разного размера [-Wint-to-pointer-cast]
993 | void *__mptr = (void *)(ptr); \
| ^
./include/linux/list.h:847:40: примечание: в расширении макроса 'container_of'
847 | #define hlist_entry (указатель, тип, член) container_of (указатель, тип, член)
| ^~~~~~~~~~~~~
.
.
Когда я делаю то же самое с исходным кодом linux-5.4.21, он компилируется нормально.