Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to bring Linux to a WindowsCE device

There is a navi-like device that has very interesting specs at an interesting price. The problem is that it only runs Windows CE while we absolutely need the Linux operating system for a project.

We find it pretty hard to find a comparable device (all-in-one touchscreen PC with GPS and GPRS and extended temperature range at a reasonable price) so I'm currently investigating the possibility to port Linux to this device.

While I have some experience with various embedded Linux devices (AXIS ETRAX/CRIS, Trimble Nomad, FOX G20, MOXA, PC/104 devices, ...) I've never brought Linux to a device that never had it running before. However, cross compiling a whole Linux system isn't new to me.

I guess the biggest problem would be replacing Windows CE at all.

The device has a 400 MHz ARM 926EJ processor with 2 GB flash, 64 MB RAM, SD slot and USB/RS232 ports. The full specs can be found here.

  • how hard could it be to convert this to a Linux device / what are the hardest parts or eventually problems I couldn't solve at all?
  • or are there companies / people that are specialized to such tasks? Note we don't even know who is the original manufacturer. The vendor however said that there is no Linux support.
  • or alternatively, do you know any similar devices that already come with Linux (I would prefer this instead of hacking a device)?
like image 275
Udo G Avatar asked Jan 29 '26 05:01

Udo G


1 Answers

Ideally you will need access to the processor's JTAG pins for both programming and debugging, then you will need a JTAG debugger that supports the device and programming the Flash memory used.

Once you have all that you have complete access to the processor and memory and can re-program it with any firmware you choose. The usefulness of that however will depend on your having enough technical information to develop or acquire suitable drivers for the display, and any other application specific hardware, as well as the on-chip peripherals.

Knowing that it is an ARM926EJ only tells you about the core. It tells you nothing about the on-chip peripherals including hardware such as the SDRAM controller and PLL clock generator, and interrupt controller, all of which will need to be initialised before you can get the system running - these are device specific and you Linux will need to be specifically adapted to the hardware. You cannot just load Linux as you would on a PC which is a known and standardised hardware platform.

The documentation reveals it to be a Samsung S3C2416X processor. Get the user manual and data sheet for that from Samsung Semiconductor's website. You may find a Linux port already available for the processor at least, but you will still need to adapt for the off-chip peripherals and I/O. The documentation also shows JTAG in the block diagram, so that may have left the connector on the board for you.

like image 72
Clifford Avatar answered Jan 31 '26 19:01

Clifford