我有一个 Windows 嵌入式 CE 6.0 设备(带有触摸屏和 OTG、SDHC、RS232、USB、网络端口)。他的处理器类型是:飞思卡尔,ARM1136_Mx31。如果可以安装 linux 以获得 Linux 设备,有人吗?有什么教程可以做到这一点吗?市场上是否有类似的 Linux 设备?谢谢
2 回答
这不是那么简单。您处于“桌面”思维模式,其中 BIOS、所有硬件和总线都是非常标准的,因此您可以使用一个操作系统并轻松地与另一个操作系统进行交换。
嵌入式设备,尤其是 ARM 设备并不是那么简单。首先,没有 BIOS,而是一个引导加载程序,它是在处理器通电时开始执行的代码。引导加载程序的工作是设置 RAM、处理器和类似的东西,然后跳转到操作系统的起始地址。您当前的引导加载程序不太可能跳转到 Linux 操作系统的正确位置。它可能是可配置的,但您没有给出任何指示引导加载程序是什么。
嵌入式硬件通常具有内存映射外设、CPLD 等。这些设备的地址不是标准化的,因此您必须知道它们在内存映射中的物理位置,以便您可以配置操作系统以正确使用它们。它们也可能有需要服务的中断,您必须知道要屏蔽什么以及何时屏蔽这些外围设备。该知识通常需要非常详细的规格。
典型的方法是询问设备 OEM 是否为相同的硬件提供 Linux。许多人都这样做。如果他们不这样做,而您仍然想要 Linux,请转移到支持它的其他一些硬件。市场上有许多运行 Linux 并支持您列出的外围设备的板和设备。您需要确定您想要的合身度和外形尺寸。搜索引擎应该很容易找到至少十几个。
正如ctake 所指出的,可能存在外部硬件和引导加载程序问题。此外,某些iMX处理器使用安全启动,很难/不可能添加未经授权的代码;根据iMX31 手册第 7 章,它支持 HAB/RTIC,如果供应商已正确熔断保险丝,则可能难以/不可能在此设备上加载未经授权的软件;我猜是这种情况,即使付出了很多努力,您仍然无法加载另一个操作系统,除非您可以越狱破坏设备。
对于这个处理器 ( iMX31 ),有一个 Linux 配置。此外,提到的外围设备,OTG、SDHC、RS232、USB 和网络端口,都在 SOC 芯片中。即,它们直接内置在iMX31芯片中。所以这些驱动程序在 Linux 中是标准的。
可能有一些 GPIO 引脚可以设置外部 UART 收发器(3V 至 +/- 12V)等,这是为该板/机器定制的;该板的IOMUX配置也可能很困难。这将是问题所在。此外,像让 SDRAM 运行这样的基本事情可能很复杂,并且不由 Linux 处理(它们由引导加载程序处理)。SDRAM 也可能由熔断器自动设置。
如果设备有一个标准的引导加载程序,如uboot等。那么获得一个功能正常的 Linux 将非常容易,但可能不是所有外围设备都可以正常工作。这种特殊的 iMX没有安全功能,因此您应该能够打开设备并探测/观察电气连接。但是,由于安全启动功能,它一点也不简单,甚至可能是不可能的。