我已经从三星开源网站下载了我的三星Galaxy Tab 2018年(SM 590)的核心源代码。
我试图使用存档中内核给出的指令编译未修改的源代码,但是得到的内核文件是~28 is,而可以从存储ROM的boot.img中提取的内核文件是~13 is。
当然,28‘t的大型编译内核不会启动系统,当我在恢复中选择reboot to system时,它会返回下载模式。
我遵循的步骤:
1. How to Build
- get Toolchain
From android git serveru, codesourcery and etc ..
因此,我正在开发一个嵌入式Linux系统,我们遇到了一些问题,外部看门狗芯片,需要在启动过程中很早就提供。
更具体地说,从我们所能得出的结果来看,当内核在预引导环境中解压缩其映像时,这个外部监督狗会导致重置。没有足够的停机时间,它开始需要喂食,这很可能是按硬件排序,因为它是外部的,但内部软件解决方案是需要的。
我们的一个开发人员的解决方案是把一些额外的代码放入..。
int zlib_inflate(z_streamp strm, int flush)内核代码中的lib/zlib_inflate/inflate.c
此新代码在解压缩过程中周期性地切换看门针。
现在,除了我觉得这有点肮脏的事实。
我在基于ARM V7架构的嵌入式主板上工作,只有128MB的闪存,我想在里面安装Bootloader Image,Linux Kernel Image以及根文件系统,为此我的主要目标是减少引导加载程序和Linux Kernel image的大小。
为了减小内核大小,我做了以下优化:
1. Deleted all the printk messages from displaying which reduced some memory,
2. Turning off Sysfs Support decreased the size of the kernel substant
我正在从事linux内核开发,并试图制作自己的模块用于测试目的。但是,对于最新的内核源代码,linux-headers并不存在。它只存在于4.9.0-7。
我在谷歌上找到了一种方法,我们可以根据我们想要的内核源代码树对模块进行make (例如:4.18)为我的模块生成.ko的make -C /home/prasad/linux-4.18/ M=$(PWD)。然而,当我加载我的内核并insmod它时,它会说
insmod: ERROR: could not insert module test.ko: Unknown symbol in module
那么,如何从我的主机生成可以插入到4.18内
我有一个需求,我想使用GDB调试我的Linux内核映像,但不确定有什么选项可用,
当我运行以下命令时
Gdb./vmlinux
users/amit/vmlinuz-2.6.32-33-generic": not in executable format: File format not recognized
我一直试图让内核在QEMU中执行,使用GDB对其进行远程调试,但我无法通过或设置断点。以下是GDB会话:
linux (master *) $ gdb vmlinux
GNU gdb (Debian 7.12-6) 7.12.0.20161007-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
[LICENSE TEXT]
The target architecture