14.04 Ubuntu 操作系统可以与 3.10.3 内核兼容吗?

14.04 Ubuntu 操作系统可以与 3.10.3 内核兼容吗?

由于文件系统和内核是嵌入式系统的独立组件,我想知道是否可以在不修改内核映像的情况下更换文件系统?当然,我最想做的就是升级内核,但不幸的是,我没有内核源代码,如果我可以用新文件系统刷新设备,那就简单多了。我有一个 14.04 文件系统,我可以用它来刷新设备并启动,但需要修改一些文件以适应我们的用例,每次我尝试更改文件系统中的某些内容时,我都会出现内核恐慌。我怀疑这可能是文件系统解压和压缩时出现的问题(权限或所有权正在更改),我尝试以 root 身份执行此操作,并使用保留权限标志 (-p),如其他几篇帖子中所建议的那样。我想知道我尝试做的事情是否是可行的继续方法?3.10.3 内核是否与 14.04.5_LTS OS 兼容?

答案1

文件系统将包含使设备工作所需的库和配置。在嵌入式系统中,由于资源和性能要求有限,文件系统通常受到严格限制。这意味着它们通常拥有有限的工具,并且需要非常具体的设备和存储布局,并且没有自动检测功能。

有时嵌入式系统会包含仅为特定内核构建的非自由驱动程序和代码,因为它们仅以二进制形式分发或以其他方式受到限制性许可。

我的工作部分涉及测试嵌入式 Linux 设备,但我还没有找到一个可以在无需访问开发环境的情况下处理切换内核的设备,而且还费了不少脑筋。

这当然是一个重大的安全问题,许多制造商逃避了不断更新的责任,因此尝试寻找具有开放开发工具链的设备,你会发现这是为你完成的。

答案2

这不是升级操作系统的推荐方法,但有时我们会受到某些限制的约束,不得不这样做。在这种情况下,升级文件系统而不升级内核是可行的。不过,Ubuntu 的后续版本可能并不总是与旧版本的内核兼容。要验证内核和操作系统版本的兼容性,请查看Ubuntu 支持计划

由于我没有使用原始文件系统,而且我们的硬件是定制的,因此从头开始创建文件系统肯定不是阻力最小的途径。相反,我执行了设备的 apt-get update 升级,并在那里进行了自定义文件更改(一些安全相关的补丁)。这种方法保留了所有特定于我们的主板和组件的自定义驱动程序。

然后将功能文件系统打包并用于闪存服务器上。正如@Amias 提到的,有些设备特定的配置在这样做时可能会让您陷入混乱,因此您必须意识到这一点。就我而言,升级后会生成一个与网络相关的文件,该文件存储了一些网络接口的硬件特定地址。此文件是 /etc/udev/rules.d/70-persistent-net 。在文件系统中存在此文件的情况下闪存设备的结果是,由于“找不到设备”错误,网络接口不会启动。配置文件中的硬件地址不正确。我能够完全删除此文件并解决该问题。

我还发现,在整个 tar 和文件传输过程中保留原始文件的权限和所有权至关重要。务必以 sudo 身份运行 tar 命令以保留所有权,并使用 -p 标志保留权限。此外,如果您在主机上操作文件系统,则主机还必须具有与目标计算机相同的用户,才能保留文件的所有权。

这个解决方案有点奇怪,但确实有效。

相关内容