正如标题,我有两个 vmlinuz 文件挂在嵌入式系统上。
而且,我没有它的源代码和编译器,这个嵌入式系统的开发人员也不再工作了。
第一个 vmlinuz 支持 4 个串行端口和 2 个 VGA。
第二个 vmlinuz 支持 6 个串行端口和一个 VGA。
我想要一个支持 6 个串行端口和两个 VGA 的 vmlinuz。
是否有方法可以将驱动程序从第二个 vmlinuz 复制到第一个 vmlinuz 并替换第一个 vmlinuz 里面的原始驱动程序?
答案1
是否有方法可以将驱动程序从第二个 vmlinuz 复制到第一个 vmlinuz 并替换第一个 vmlinuz 里面的原始驱动程序?
缺乏广泛的逆向工程和二进制修补,没有。
我想要一个
vmlinuz
支持 6 个串行通信端口和两个 VGA 的。
如果没有资源的话,这很可能是不可能实现的。
即使您有源代码,他们提供两个具有不同能力的内核(即串行与 VGA 之间的权衡)这一事实意味着可能存在硬件限制(FPGA/CPLD 资源?)。
如果不知道该设备是什么,我们只能进行猜测。
如果设备制造商已经发布了 BSP 的源代码(例如:Yocto),那么您可能可以从那里查看它 - 但您可能仍然需要编译某物。
如果设备由主线内核支持(即:所有源都在kernel.org 存储库),那么您可能有能力重新创建配置并重建。
- 启动系统并运行
uname -r
-这是内核版本- 例如
4.15.0-48-generic
指向v4.15发布
- 例如
- 查找名为
/proc/config.gz
- 的文件,在嵌入式或较新的系统上,该文件可能不存在- 可以使用它解压缩
gzip -d < /proc/config.gz > ~/config
,然后在配置内核时使用 - 仅当内核配置正确时才可用
- 发行版越来越多地禁用它“安全问题“
- 在嵌入式系统上,可以禁用它以减小内核映像大小。
- 可以使用它解压缩
查找内核配置的其他地方包括/boot
和相关包(如果您使用的是发行版)。
如果其中一个或两个方法都没有产生结果,那么你可能运气不佳。