情景
我正在编写一个演示模块,将其插入内核中,然后写入系统,我已经在头文件和表文件中为其添加了条目。
到目前为止已执行的程序
我使用编译内核
/linux-4.12.9$ sudo make -j4
其中我收到一些警告并且没有错误。无论如何都无法获取这些警告,因为终端已溢出。
没有错误后,我解雇了
/linux-4.12.9$ sudo make modules_install install
问题
返回
INSTALL arch/x86/crypto/aes-x86_64.ko cp: cannot stat 'arch/x86/crypto/aes-x86_64.ko': No such file or directory At main.c:291:
- SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:178
sign-file: /lib/modules/4.12.9/kernel/arch/x86/crypto/aes-x86_64.ko: No such file or directory
scripts/Makefile.modinst:35: recipe for target 'arch/x86/crypto/aes- x86_64.ko' failed
make[2]: *** [arch/x86/crypto/aes-x86_64.ko] Error 1
Makefile:1237: recipe for target '_modinst_' failed
make[1]: *** [_modinst_] Error 2
Makefile:527: recipe for target '__build_one_by_one' failed make: *** [__build_one_by_one] Error 2
我还在上面的命令中发布了工作目录,以防我在错误的目录中执行此操作。
答案1
问题出在我正在使用的受支持的库和包上。要在撰写本文时编译最新内核,您必须安装以下 4 个软件包/库:
- libssl 开发
- libncurses5-dev
- qt4-默认
- qt4-开发工具
虽然我对qt4有点怀疑开发工具和默认,因为我是一起下载的。
另请注意,我使用的是 Ubuntu 16.04 LTS,并且根据您的发行版命令和软件包要求可能会发生变化
汇编
所以上面提到的编译命令(有问题)是正确的,只是注意它需要相当多的时间才能完成。为了验证一切是否顺利,你到达一个可以找到这个的点 -
Setup is 17564 bytes (padded to 17920 bytes).
System is 7215 kB
CRC 3b136d62
Kernel: arch/x86/boot/bzImage is ready (#1)
它会在那里暂停几分钟,然后再次开始创建目标文件。是的,我第一次用qt5包做的时候没有收到。
安装
同样,上述命令(有问题)是正确的,并且在触发相同命令时,您将看到系统中安装了多个内核对象,如下所示:
...
INSTALL /lib/firmware/emi62/spdif.fw
INSTALL /lib/firmware/emi62/midi.fw
INSTALL /lib/firmware/kaweth/new_code.bin
INSTALL /lib/firmware/kaweth/trigger_code.bin
INSTALL /lib/firmware/kaweth/new_code_fix.bin
INSTALL /lib/firmware/kaweth/trigger_code_fix.bin
INSTALL /lib/firmware/ti_3410.fw
...
它必须以
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.12.9
Found initrd image: /boot/initrd.img-4.12.9
Found linux image: /boot/vmlinuz-4.4.0-93-generic
Found initrd image: /boot/initrd.img-4.4.0-93-generic
Found linux image: /boot/vmlinuz-4.4.0-92-generic
Found initrd image: /boot/initrd.img-4.4.0-92-generic
Found linux image: /boot/vmlinuz-4.4.0-91-generic
Found initrd image: /boot/initrd.img-4.4.0-91-generic
Found linux image: /boot/vmlinuz-4.4.0-83-generic
Found initrd image: /boot/initrd.img-4.4.0-83-generic
Found Windows Boot Manager on /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
done
菜鸟警报
另请注意,根据系统上安装的操作系统(和内核)的数量,成立声明可能会改变!我有 2 个操作系统,因此我还有一个额外的操作系统成立Windows 声明