以上就是给各位分享deb错误安装内核映像,其中也会对debugtbs安装本地内核进行解释,同时本文还将给你拓展aarch64内核映像中的text_offset是什么,我如何知道内核入口点在哪里?、bo
以上就是给各位分享deb错误安装内核映像,其中也会对debugtbs安装本地内核进行解释,同时本文还将给你拓展aarch64 内核映像中的 text_offset 是什么,我如何知道内核入口点在哪里?、bootloader(如grub,lilo …)如何find内核映像?、CentOS7 更新最新内核 | RPM直接安装内核、Centos8编译安装内核等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- deb错误安装内核映像(debugtbs安装本地内核)
- aarch64 内核映像中的 text_offset 是什么,我如何知道内核入口点在哪里?
- bootloader(如grub,lilo …)如何find内核映像?
- CentOS7 更新最新内核 | RPM直接安装内核
- Centos8编译安装内核
deb错误安装内核映像(debugtbs安装本地内核)
我只是编译debian 4.6内核的方式,并生成deb和我的图像和头文件包,安装图像我得到以下错误
Preparing to unpack linux-image-4.6.0linux-4.6_1.0.NAS_amd64.deb ... Examining /etc/kernel/preinst.d/ run-parts: executing /etc/kernel/preinst.d/intel-microcode 4.6.0linux-4.6 /boot/vmlinuz-4.6.0linux-4.6 Done. Unpacking linux-image-4.6.0linux-4.6 (1.0.NAS) over (1.0.NAS) ... Examining /etc/kernel/postrm.d . run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.6.0linux-4.6 /boot/vmlinuz-4.6.0linux-4.6 run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.6.0linux-4.6 /boot/vmlinuz-4.6.0linux-4.6 Setting up linux-image-4.6.0linux-4.6 (1.0.NAS) ... Running depmod. Examining /etc/kernel/postinst.d. run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.6.0linux-4.6 /boot/vmlinuz-4.6.0linux-4.6 run-parts: executing /etc/kernel/postinst.d/dkms 4.6.0linux-4.6 /boot/vmlinuz-4.6.0linux-4.6 Error! Bad return status for module build on kernel: 4.6.0linux-4.6 (x86_64) Consult /var/lib/dkms/virtualBox/4.3.28/build/make.log for more information. run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.6.0linux-4.6 /boot/vmlinuz-4.6.0linux-4.6 update-initramfs: Generating /boot/initrd.img-4.6.0linux-4.6 run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.6.0linux-4.6 /boot/vmlinuz-4.6.0linux-4.6 run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.6.0linux-4.6 /boot/vmlinuz-4.6.0linux-4.6 Generating grub configuration file ... Found background image: /usr/share/images/desktop-base/desktop-grub.png Found linux image: /boot/vmlinuz-4.6.0linux-4.6 Found initrd image: /boot/initrd.img-4.6.0linux-4.6 Found linux image: /boot/vmlinuz-4.0.0-kali1-amd64 Found initrd image: /boot/initrd.img-4.0.0-kali1-amd64 Found Ubuntu 15.04 (15.04) on /dev/sda1 Found Fedora release 23 (Twenty Three) on /dev/mapper/fedora-root done
/var/lib/dkms/virtualBox/4.3.28/build/make.log
DKMS make.log for virtualBox-4.3.28 for kernel 4.6.0linux-4.6 (x86_64) Sun May 29 18:56:48 PET 2016 make: Entering directory '/home/kevin/Documents/aca/linux-4.6' LD /var/lib/dkms/virtualBox/4.3.28/build/built-in.o LD /var/lib/dkms/virtualBox/4.3.28/build/vBoxdrv/built-in.o CC [M] /var/lib/dkms/virtualBox/4.3.28/build/vBoxdrv/linux/SUPDrv-linux.o /var/lib/dkms/virtualBox/4.3.28/build/vBoxdrv/linux/SUPDrv-linux.c: In function 'VBoxDrvLinuxUnload': /var/lib/dkms/virtualBox/4.3.28/build/vBoxdrv/linux/SUPDrv-linux.c:455:8: error: void value not ignored as it ought to be rc = misc_deregister(&gMiscDeviceUsr); ^ /var/lib/dkms/virtualBox/4.3.28/build/vBoxdrv/linux/SUPDrv-linux.c:460:8: error: void value not ignored as it ought to be rc = misc_deregister(&gMiscDeviceSys); ^ scripts/Makefile.build:291: recipe for target '/var/lib/dkms/virtualBox/4.3.28/build/vBoxdrv/linux/SUPDrv-linux.o' Failed make[2]: *** [/var/lib/dkms/virtualBox/4.3.28/build/vBoxdrv/linux/SUPDrv-linux.o] Error 1 scripts/Makefile.build:440: recipe for target '/var/lib/dkms/virtualBox/4.3.28/build/vBoxdrv' Failed make[1]: *** [/var/lib/dkms/virtualBox/4.3.28/build/vBoxdrv] Error 2 Makefile:1428: recipe for target '_module_/var/lib/dkms/virtualBox/4.3.28/build' Failed make: *** [_module_/var/lib/dkms/virtualBox/4.3.28/build] Error 2 make: Leaving directory '/home/kevin/Documents/aca/linux-4.6
除了内核版本之外,它似乎没有在启动grub中被选中,然后进行更新
在pbuilder构build期间:运行setup.py –install-layout = deb失败(无权写入/usr/lib/python2.7/dist-packages)
Maven依赖多个平台的软件包
如何将64位.deb文件转换为32位.deb文件
在.deb文件中包含许可协议
Debian打包和版本控制
Debian软件包创buildpostinst作为非根
JavaFX应用程序包版本号
CPack DEB生成器:控制文件具有不良权限mdsums 0644!= 0644
有没有一种机制来升级/创buildubuntu的.deb包数据库?
如何捆绑Linux的应用程序
错误记录在您的日志中:
错误:无效值不被忽略,因为它应该是
rc = misc_deregister(&gMiscDeviceUsr); ^
错误:无效值不被忽略,因为它应该是
rc = misc_deregister(&gMiscDeviceSys); ^
misc_deregister()在内核中被这个提交(在k4.3左右)做成了一个void函数。 现在它不返回任何值,但旧的VirtualBox内核模块正在尝试使用它,就好像它返回的东西(这是提交前提交的情况下)。
您需要使用较新的VirtualBox(已经打补丁的地方)或手动修补您的VirtualBox。 请参阅相应的VirtualBox 提交修复它。
aarch64 内核映像中的 text_offset 是什么,我如何知道内核入口点在哪里?
如何解决aarch64 内核映像中的 text_offset 是什么,我如何知道内核入口点在哪里??
根据Documentation/arm64/booting.rst:
解压后的内核映像包含一个 64 字节的头文件,如下所示:
u32 code0; /* Executable code */
u32 code1; /* Executable code */
u64 text_offset; /* Image load offset,little endian */
u64 image_size; /* Effective Image size,little endian */
u64 flags; /* kernel flags,little endian */
u64 res2 = 0; /* reserved */
u64 res3 = 0; /* reserved */
u64 res4 = 0; /* reserved */
u32 magic = 0x644d5241; /* Magic number,little endian,"ARM\x64" */
u32 res5; /* reserved (used for PE COFF offset) */
图像必须从 2MB 对齐的基数放置 text_offset 字节 在可用系统 RAM 中的任何位置寻址并在那里调用。该区域 在 2 MB 对齐的基地址和图像的开头之间有 对内核没有特殊意义,可用于其他 目的。至少从图像开始的 image_size 字节必须 可供内核免费使用。注意:v4.6 之前的版本不能 利用低于图像物理偏移量的内存,因此它是 建议将图像放置在尽可能靠近开头的位置 系统内存。
这是从应该加载内核的地址开始的地址偏移量。因此,如果我们将内核置于 0x8000_0000
,并且 text_offset 为 0x80000
,那么内核将从 0x8000_0000 + 0x80000
但是我怎么知道内核代码从哪里开始。也就是说,只知道内核 text_offset 怎么跳转到内核入口点?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
bootloader(如grub,lilo …)如何find内核映像?
例如,如果使用grub来引导系统,则可能有诸如
root (hd0,6) kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ initrd /boot/initrd-2.6.11-1.1369_FC4.img
在menu.lst。
我的问题是:
在将内核映像加载到内存之前,我认为没有可用于定位内核映像的文件系统信息(如文件系统types,超级块)存在。
为什么在Linux内核升级后需要重新编译vmware内核模块?
Linux模块:性能计数器不起作用
在Linux系统调用中find用户名
确保唤醒后cpu时间 – Linux调度程序
procfs是如何创build的?
那么bootloader如何知道磁盘镜像的CHS呢?
我猜bootloader可以根据“root(hd0,6)”find超级块; 如果是这样,它必须盲目地检测所有可能的文件系统并find匹配的文件系统。 这太复杂了吗?
什么是内核部分不匹配?
从kprobe获取参数找不到regs-> rdi x86_64
如何在没有SPL的情况下从uboot直接启动saber sd
在内核空间中使用VC内在
如何加快Linux内核编译?
我会给你一个答案使用Lilo像例子:
安装新内核后必须运行/ sbin / lilo的原因是LILO引导加载程序不理解文件系统,只知道磁盘的底层块结构。 / sbin / lilo程序确实理解文件系统,并将内核路径(即“/boot/vmlinuz-2.6.3”)转换为逻辑块地址,即3-4-123),以便LILO引导加载程序可以找到内核图像加载。 实际上,这是一个很大的破解。
资料来源: http : //courses.cs.washington.edu/courses/cse451/02wi/section/bootloaders.txt
GRUB的设置过程包括生成
第2阶段文件的物理地址的完整列表
编码驱动器编号(与BIOS调用一起使用)
编码的分区号(这两个形式的值在你的例子中表示为(hd0,6) )
第一阶段和第二阶段的引导程序可以一起使用这个加载完整的第二阶段到内存中。 从那一刻起,阶段2可以检测FS类型,激活相应的只读FS驱动程序,读取运行时配置( grub.cfg或menu.lst ),并使用FS驱动程序继续读取kernel , initrd等。
注意,这与LILO的主要不同之处在于后者在加载程序安装期间的硬核内核和initrd扇区列表; 当启动时,加载器只知道扇区列表而不知道FS结构。
CentOS7 更新最新内核 | RPM直接安装内核
解决CenOS7 不能直接升级内核的解决方法,
[root@xx ]# yum --enablerepo=elrepo-kernel install kernel-lt -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* elrepo: lon.mirror.rackspace.com
* elrepo-kernel: lon.mirror.rackspace.com
No package kernel-lt available.
Error: Nothing to do
CentOS7 更新最新内核
内核下载地址:https://elrepo.org/linux/kernel/el7/x86_64/RPMS/
内核选择
kernel-lt(lt=long-term)长期有效
kernel-ml(ml=mainline)主流版本
安装过程
1.下载内核
wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-ml-5.2.4-1.el7.elrepo.x86_64.rpm
2.安装内核
rpm -ivh kernel-ml-5.2.4-1.el7.elrepo.x86_64.rpm
3.查看当前默认内核
# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-327.28.3.el7.x86_64) 7 (Core)
4.查看所有内核启动 grub2
# awk -F \'' ''$1=="menuentry " {print i++ " : " $2}'' /etc/grub2.cfg
0 : CentOS Linux (5.2.4-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-327.28.3.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-327.22.2.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-327.13.1.el7.x86_64) 7 (Core)
4 : CentOS Linux, with Linux 0-rescue-cd8c4444947b4b0b818457f51ded6591
5.修改为最新的内核启动
grub2-set-default ''CentOS Linux (5.2.4-1.el7.elrepo.x86_64) 7 (Core)''
6.再次查看内核
# grub2-editenv list
saved_entry=CentOS Linux (5.2.4-1.el7.elrepo.x86_64) 7 (Core)
7.重新启动
reboot
更新kernel-ml-headers
wget http://ftp.osuosl.org/pub/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-headers-5.2.4-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-ml-headers-5.2.4-1.el7.elrepo.x86_64.rpm
更新kernel-ml-devel
http://ftp.osuosl.org/pub/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-5.2.4-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-ml-devel-5.2.4-1.el7.elrepo.x86_64.rpm
Centos8编译安装内核
首先下载kernel,5.x版本的内核,下载地址:
https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/
系统安装相关包:
# yum install -y bc gcc make python3 ncurses-devel flex bison openssl-devel elfutils-libelf-devel
将内核解压
[root@localhost ~]# tar xvf linux-5.10.60.tar.xz [root@localhost linux-5.10.60]# cd linux-5.10.60
使用现有的config文件
[root@localhost linux-5.10.60]# cp -p /boot/config-4.18.0-305.3.1.el8.x86_64 .config
使用老的配置参数
[root@localhost linux-5.10.60]# sh -c ''yes ""| make oldconfig''
Make编译,使用nproc命令表示使用所有cpu线程:
[root@localhost linux-5.10.60]# make -j $(nproc)
Make 报错:
make[1]: *** No rule to make target ''certs/rhel.pem'', needed by ''certs/x509_certificate_list''. Stop.
和这个报错Failed to generate BTF for vmlinux
编辑.config配置文件,将下面两行注释掉
#CONFIG_SYSTEM_TRUSTED_KEYS="certs/rhel.pem" #CONFIG_DEBUG_INFO_BTF=y
然后再次执行make -j $(nproc)
[root@localhost linux-5.10.60]# make -j $(nproc)
模块安装,把编译好的模块拷贝到系统目录下
[root@localhost linux-5.10.60]# make modules_install
安装二进制内核镜像, 生成并安装boot初始化文件系统映像文件
[root@localhost linux-5.10.60]# make install
现在可以查看/lib/modules目录下面多出来一个5.10.60内核的目录了
[root@localhost linux-5.10.60]# ll /lib/modules total 8 drwxr-xr-x. 6 root root 4096 Apr 11 14:38 4.18.0-305.3.1.el8.x86_64 drwxr-xr-x. 3 root root 4096 Apr 11 15:48 5.10.60
更新一下grub启动项
[root@localhost linux-5.10.60]# grub2-mkconfig -o /boot/grub2/grub.cfg
查看默认启动项是否是5.10.60
[root@localhost linux-5.10.60]# grubby --default-kernel [root@localhost linux-5.10.60]# grubby --default-index
查看所有启动项:
[root@localhost linux-5.10.60]# grubby --info=ALL
可使用grubby –set-default 来设置默认启动项。
设置完成之后,可以重启系统,查看是否可以进入系统了。
今天关于deb错误安装内核映像和debugtbs安装本地内核的分享就到这里,希望大家有所收获,若想了解更多关于aarch64 内核映像中的 text_offset 是什么,我如何知道内核入口点在哪里?、bootloader(如grub,lilo …)如何find内核映像?、CentOS7 更新最新内核 | RPM直接安装内核、Centos8编译安装内核等相关知识,可以在本站进行查询。
本文标签: