Не удалось собрать ядро 4.9 на Jetson Nano
Я пытаюсь собрать ядро 4.9 на Jetson Nano, но получаю следующие сообщения об ошибках:
В файле, включенном из....../kernel-4.9/include/asm-generic/bug.h:13:0, из....../kernel-4.9/arch/arm64/include/asm/bug.h:67, из....../kernel-4.9/include/linux/bug.h:4, из....../kernel-4.9/arch/arm64/include/asm/cmpxchg.h:21, из....../kernel-4.9/arch/arm64/include/asm/atomic.h:41, из....../kernel-4.9/include/linux/atomic.h:4, из....../nvidia/drivers/media/platform/tegra/camera/vi/channel.c:13: ....../nvidia/drivers/media/platform/tegra/camera/vi/channel.c: В функции 'tegra_channel_s_parm': ....../kernel-4.9/include/linux/kernel.h:838:48: ошибка: инициализация из несовместимого типа указателя [-Werror= несовместимые типы-указателя]
const typeof (((тип *)0)-> член) *__mptr = (ptr); \ ^ ....../nvidia/include/media/mc_common.h:265:2: note: в раскрытии макроса 'container_of' container_of(vdev, struct tegra_channel, video) ^~~~~~~~~~~~ ....../nvidia/drivers/media/platform/tegra/camera/vi/channel.c:2029:37: примечание: в раскрытии макроса 'to_tegra_channel' struct tegra_channel *chan = to_tegra_channel(vfh->vdev); ^~~~~~~~~~~~~~~~ ....../kernel-4.9/include/linux/kernel.h:838:48: примечание: (рядом с инициализацией для 'chan') const typeof( ((тип *)0)-> член) *__mptr = (ptr); \ ^ ....../nvidia/include/media/mc_common.h:265:2: note: при раскрытии макроса 'container_of' container_of(vdev, struct tegra_channel,видео) ^~~~~~~~~~~~ ....../nvidia/drivers/media/platform/tegra/camera/vi/channel.c:2029:37: note: в расширении макроса to_tegra_channel 'struct tegra_channel *chan = to_tegra_channel(vfh->vdev); ^~~~~~~~~~~~~~~~ ....../nvidia/drivers/media/platform/tegra/camera/vi/channel.c: В функции 'tegra_channel_g_parm': ....../kernel-4.9/include/linux/kernel.h:838:48: ошибка: инициализация из несовместимого типа указателя [-Werror= несовместимые типы-указатели]В функции 'tegra_channel_g_parm': ....../kernel-4.9/include/linux/kernel.h:838:48: ошибка: инициализация из несовместимого типа указателя [-Werror= несовместимые типы-указателя]В функции 'tegra_channel_g_parm': ....../kernel-4.9/include/linux/kernel.h:838:48: ошибка: инициализация из несовместимого типа указателя [-Werror= несовместимые типы-указателя]
const typeof (((тип *)0)-> член) *__mptr = (ptr); \ ^ ....../nvidia/include/media/mc_common.h:265:2: note: в раскрытии макроса 'container_of' container_of(vdev, struct tegra_channel, video) ^~~~~~~~~~~~ ....../nvidia/drivers/media/platform/tegra/camera/vi/channel.c:2039:37: примечание: в раскрытии макроса 'to_tegra_channel' struct tegra_channel *chan = to_tegra_channel(vfh->vdev); ^~~~~~~~~~~~~~~~ ....../kernel-4.9/include/linux/kernel.h:838:48: примечание: (рядом с инициализацией для 'chan') const typeof( ((тип *)0)-> член) *__mptr = (ptr); \ ^ ....../nvidia/include/media/mc_common.h:265:2: note: при раскрытии макроса 'container_of' container_of(vdev, struct tegra_channel,видео) ^~~~~~~~~~~~ ....../nvidia/drivers/media/platform/tegra/camera/vi/channel.c:2039:37: note: в расширении макроса ' to_tegra_channel 'struct tegra_channelchan = to_tegra_channel(vfh->vdev); ^ ~~~~~~~~~~~~~~~ LD drivers / media / platform / tegra-vivid / built-in.o
Драйверы CC/media/platform/tegra/camera/camera_gpio.o cc1: все предупреждения обрабатываются как ошибки....../kernel-4.9/scripts/Makefile.build:335: рецепт для целевых драйверов / media / platform / tegra / camera / vi / channel.o не удалось сделать [7]: [драйверы / медиа / платформа /tegra/camera/vi/channel.o] Ошибка 1 ....../kernel-4.9/scripts/Makefile.build:649: рецепт для целевых драйверов / media / platform / tegra / camera / vi 'не удалось сделать [6]: [drivers / media / platform / tegra / camera / vi] Ошибка 2 make[6]: Ожидание незавершенных работ.... CC
drivers / media / platform / tegra / mipical / mipi_cal.o...... / kernel-4.9 / scripts / Makefile.build:649: рецепт для целевых драйверов / носителей / платформы / tegra / camera 'не удалось сделать [5]: [драйверы / медиа / платформа / тегра / камера] Ошибка 2 сделать [5]: Ожидание незавершенных работ....
драйверы CC / media / platform / tegra / mipical / vmipi / vmipi.o
Драйверы LD/media/platform/tegra/mipical/built-in.o ....../kernel-4.9/scripts/Makefile.build:649: рецепт для целевой 'drivers/media/platform/tegra' не удалось сделать [4]: [драйверы / медиа / платформа / тегра] Ошибка 2 ....../kernel-4.9/scripts/Makefile.build:649: рецепт для целевого файла "драйверы / медиа / платформа" не удалось сделать [3]: [драйверы / носитель / платформа] Ошибка 2 ....../kernel-4.9/scripts/Makefile.build:649: рецепт для целевых драйверов / носителей не удалось сделать [2]: [драйверы / носители] Ошибка 2 ....../kernel-4.9/Makefile:1104: рецепт для целевых "драйверов" не удалось сделать [1]: [драйверы] Ошибка 2 make[1]: * Ожидание незавершенных заданий.... make[1]: Выход из каталога '........../kernel_out' Makefile:171: рецепт для целевого суб-make'не удалось сделать: *** [sub-make] Ошибка 2
Строка 838 в файле ...... / kernel-4.9 / include / linux / kernel.h:
837 #define container_of(ptr, type, member) ({ \
838 const typeof( ((type *)0)->member ) *__mptr = (ptr); \
839 (type *)( (char *)__mptr - offsetof(type,member) );})
Мой компилятор - gcc/g++ 7.5.0 .
➜ kernel-4.9 gcc --version
gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
➜ kernel-4.9 g++ --version
g++ (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Кто-нибудь может мне помочь?
Ура Пей