Не отображается журнал компиляции gcc «CC [M]» при сборке внешних модулей с использованием linux rpi-5.10.yLinux

Ответить
Anonymous
 Не отображается журнал компиляции gcc «CC [M]» при сборке внешних модулей с использованием linux rpi-5.10.y

Сообщение Anonymous »

среда
  • ОС: Arch Linux x86_64
  • Хост: Подсистема Windows для Linux — Archlinux (2.6.2.0)
  • Ядро: Linux 6.6.87.2-microsoft-standard-WSL2
  • компилятор: aarch64-linux-gnu-gcc 15.1.0 Использование встроенных спецификаций.
    COLLECT_GCC=aarch64-linux-gnu-gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/15.1.0/lto-wrapper
    Цель: aarch64-linux-gnu
    Настроено с помощью: /build/aarch64-linux-gnu-gcc/src/gcc-15.1.0/configure --prefix=/usr --program-prefix=aarch64-linux-gnu- --with-local-prefix=/usr/aarch64-linux-gnu --with-sysroot=/usr/aarch64-linux-gnu --with-build-sysroot=/usr/aarch64-linux-gnu --with-native-system-header-dir=/include --libdir=/usr/lib --libexecdir=/usr/lib --target=aarch64-linux-gnu --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-nls --enable-default-pie --enable-languages=c,c++,fortran --enable-shared --enable-threads=posix --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-Exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --disable-multilib --disable-werror --enable-checking=release
    Модель потока: posix
    Поддерживаемые алгоритмы сжатия LTO: zlib zstd
    gcc версии 15.1.0 (GCC)
сборка ядра

Код: Выделить всё

git clone --branch rpi-5.10.y --single-branch https://github.com/raspberrypi/linux.git
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules_prepare
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs -j$(nproc)
собрать свой внешний модуль
Это Makefile

Код: Выделить всё

DRIVER_NAME := my_driver
obj-m += $(DRIVER_NAME).o

KERNEL_SRC:=/home/user/repository/linux/linux-5.10.y-raspi

PWD ?=$(shell pwd)
ARCH = arm64
CROSS_COMPILE = aarch64-linux-gnu-

all: build deploy

build:
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNEL_SRC) M=$(PWD) modules

clean:
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNEL_SRC) M=$(PWD) modules clean
rm -rf *.ko *.o *.mod.o *.mod.c *.symvers *.order .tmp*
затем я запускаю make, результат:

Код: Выделить всё

❯ make
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -C /home/user/repository/linux/linux-5.10.y-raspi M=/home/user/repository/linux/linux_driver_learning/my_driver modules
❯ ls
 Makefile         modules.order   my_driver.ko    my_driver.mod.c   my_driver.o
 Module.symvers   my_driver.c     my_driver.mod   my_driver.mod.o
генерируется файл «.ko», но, как показано выше, журнал gcc не печатается, я нахожу какое-то решение, например: добавление «V=1» (он просто печатает больше команд «make») и т. д., но ни одна из них не сработала;
Когда я использую загрузку чистого исходного кода ядра с https://www.kernel.org/, это сработало (изменение аргумента «-C»), появляется журнал сборки gcc, например это:

Код: Выделить всё

❯ make
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -C /home/user/repository/linux/linux-5.10.246 M=/home/user/repository/linux/linux_driver_learning/my_driver modules
CC [M]  /home/user/repository/linux/linux_driver_learning/my_driver/my_driver.o
WARNING: Symbol version dump "Module.symvers" is missing.
Modules may not have dependencies or modversions.
MODPOST /home/user/repository/linux/linux_driver_learning/my_driver/Module.symvers
WARNING: modpost: Symbol info of vmlinux is missing. Unresolved symbol check will be entirely skipped.
CC [M]  /home/user/repository/linux/linux_driver_learning/my_driver/my_driver.mod.o
LD [M]  /home/user/repository/linux/linux_driver_learning/my_driver/my_driver.ko
Что мне следует сделать, чтобы эти «CC [M]» отображались при сборке внешних модулей на основе исходного кода ядра rpi-5.10.y? Потому что он также не будет показывать ошибки, когда я написал что-то не так в своем модуле, и это сводит меня с ума.


Подробнее здесь: https://stackoverflow.com/questions/798 ... using-linu
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»