我有远程嵌入式 Linux 设备,我正在尝试更新到新内核,而无需物理访问。然而,它们启动时使用的命令行选项使 MTD 之一成为只读 - 我无法修改内核,并且 U-Boot 只能通过物理串行连接访问。
未安装 kexec 支持。
我正在尝试自己构建 kexec,但没有取得任何成功。我已经从 kexec-tools 构建了 kexec,但是当我尝试加载内核时,我得到:
kexec_load 失败:功能未实现
我有什么办法可以挽救这种情况吗? kexec 可以制作为单个二进制可执行文件吗?我在论坛上看到人们建议他们以这种方式使用它,但我似乎无法这样构建它。
编辑: 如果无法让 kexec 工作,有什么方法可以访问 MTD0?我这一秒无法访问其中一个设备,但是有类似 /proc/something/devices/virtual/mtd0/ro 的东西,它是 1,如果我 chmod 777 它我可以回显 0 > 到它而不需要任何错误,但它不坚持。
答案1
kexec
是一种机制,通过该机制运行内核将自身替换为另一个。这样做的外部程序必须有一个极其对所涉及的内核的深入了解,以及对机器上所有内容的内核级访问。也许可行,但我认为没有人疯狂到去尝试。