I have long been looking for a cheap single board computer (SBC) which has similar dimensions to the Raspberry Pi but with an x86 processor. Believe it or not, such a machine is rare as most SBCs on the market only have ARM processors. Although a quick Google search reveals many such boards, most are either too expensive ($200 and above), too big (mini-ITX boards) or simply out of production.
A few weeks ago I achieved some success when I came cross the eBox 3350MX which is advertised as a mini-x86 compact PC. It can be found on eBay as well as from other embedded component manufacturers such as RoboSavvy. I spent some time playing around with the box and this article will share some of my findings.
At first glance, the box is indeed small and around the same dimensions as the Raspberry Pi, just a bit thicker. Or perhaps its size can be comparable to a Raspberry Pi placed in its enclosure. The photo below allows you to compare the 3350MX, Mac Mini and my calculator:
The box comes in various configurations, with optional serial ports and SATA connectors. Of note is the auto power on feature (model 3350MX-AP) which allows the box to turn on immediately upon power being applied. Without this feature, you would need to manually press the power button to switch the box on. Mine is the cheapest model without auto power on, serial ports or SATA support which cost me around 150 SGD including of shipping costs.
The box has 512MB RAM (366MHz FSB), 3 USB ports, 1 VGA port, a 100Mbps LAN port and a SD-card slot acting as the hard disk drive. There is a power indicator LED on the board which also doubles as the disk activity indicator.
The processor is a Vortex86 PMX-1000 that runs at 933MHz. This is rougly equivalent to a 80586 processor that has extra support for MMX instructions. 5V DC power is supplied via a micro-USB socket, and the adapter should provide a steady 2A for stable operation. If the adapter does not provide enough current, symptoms such as loss of BIOS settings (system clock reset to 2008) or random system reboot/hang may be experienced
There is no onboard PC speaker on this board, even though one is reported by the BIOS. The PC speaker output is also not mixed with the sound card output, unlike most laptops. As a result, even with a speaker connected to the audio output, you will hear no POST beep, and games that utilizes the PC speaker will not be able to produce any sounds when run in pure DOS mode.
There is no reset button on this box. To reset the PC, you must hold the power button for 10 seconds and release it. Or simply disconnect, reconnect the power supply and press the power button.
Taking apart the box allows us to see the motherboard:
As expected, there is no PC speaker. There are reserved connectors for the serial ports (COM1 and COM3) on both sides of the board. I could not locate the CMOS battery but the date and other CMOS settings seem to be saved properly.
The box uses the standard American Megatrends BIOS, in black-and-white. This is the overall system information page:
Any SD card inserted will be detected as an IDE device on the primary channel. It can support a 32GB SDHC card without issues:
Despite the lack of the PC speaker, this BIOS has a setting called ‘beep function’, meant to disable or enable POST beep:
There is also function to enable or disable the onboard VGA port, even though the board has no PCI slot to connect an external VGA card. If you are adventurous enough, try to disable the setting and see what happens. Don’t blame me if you can’t enter the BIOS again to change back the setting
The BIOS has support for legacy USB emulation, which will report USB hard drives or CD drives as IDE and USB mouse/keyboards as PS2 for older OSes such as DOS. It also support USB hotplug, allowing you to plug in a new USB device and have it detected under legacy mode without the need to reboot the box. There is also an option called ‘USB Beep Message’, which seems to serve no purposes:
The BIOS does not seem to support USB floppy disk drives. And although it supports USB hubs, it does not seem to like to see USB keyboards and mice being plugged to the same hub, which will result in either device not detected. If this is the case for you, try to plug your input devices to separate USB ports instead. And while larger thumb drives will be detected as IDE hard disks and work without issues, thumb drives smaller than 2GB may be detected as floppy drives, and not as IDE hard drives, making it impossible to be used under DOS mode. Sometimes, especially after a few minutes of being idle while in the BIOS screen, USB keyboards suddenly become unusable, forcing me to reset the system before the keyboard can be used again.
During my test with various Linux live CDs, I also experienced weird error messages such as ‘USB device not accepting new address’ when plugging in new USB drives. I guess this is most probably a result of hardware failure rather than a Linux driver or kernel bug. USB has an over-current protection, which gets triggered when power consumption from the port is too high, and perhaps the board sometimes does not provide enough current on its USB ports. The VGA output also does not seem to be very sharp, perhaps due to the limitation of the Vortex86 processor.
My first attempt is to try to run DOS on this board. With no floppy or CD-ROM drives, you will need a tool such as Rufus to make a bootable USB stick. Although Rufus is bundled with FreeDOS images, you can also use MS-DOS/Windows 9x disk images downloadable from here and burn them as DD images.
With a bootable USB drive connected, change the boot order in the BIOS and the board should boot up to the command prompt without issues. The next step is to transfer DOS to the SD-card drive so that you won’t need the USB drive to boot. If you intend to use DOS, it is recommended that an SD card smaller than 2GB is used as DOS only supports FAT file system that has a 2GB capacity limit. If you boot from a Windows 9x boot disk, SD cards up to 32GB can be used with the FAT32 file system. Run FDISK, create a bootable partition on the SD card, mark it as active and run the following command to write the MBR code:
Remove the USB drive and reboot. The board should now boot from the SD card:
From this point installing your favourite DOS software is a breeze. The following is the Norton Commander’s system information screen for this board:
As expected, the processor is recognized as a 80586, albeit at only 733 MHz speed. The board reports no serial ports or parallel ports, so it is likely that even if the connector is soldered, the reserved COM1 and COM3 port will still be unusable without a BIOS update.
My next test is to try to play a MPEG file from DOS on this board using QuickView, my favourite DOS video player. As the onboard sound driver is Realtek-compatible, by using the PCI sound driver provided by QuickView, the box is able to play an MPEG file under pure DOS mode smoothly, using a cheap $2 mini-speaker purchased from eBay connected to the audio output port.
The following video demonstrates MS-DOS and Windows 3.1 running on this board. At 02:00 you can see QuickView playing MP3 and MPEG files:
Unfortunately, the onboard sound card does not have legacy Sound Blaster support so playing vintage DOS games with sound is out of the question. The network card is an RDC PCI Fast Ethernet Adapter which very likely has no support for DOS, so browsing the Internet using Arachne using a DOS packet driver is also not possible.
You can follow this detailed guide by Robosavvy to install Windows XP, the only official supported version of Windows for this board. A few points to take note:
- You should install from a USB CD-ROM drive. Trying to install from a bootable USB thumb drive, or even from the SD card, will just cause problems. The most common error is a STOP:0x0000007B (INACCESSIBLE_BOOT_DEVICE) after the text mode phase of Windows setup. This is because the USB chipset on this board is non-standard and may not be recognized using the default drivers that are bundled with your Windows XP installation, so the setup will fail in graphics mode once Windows takes over BIOS legacy USB support and fails to load the setup files due to the lack of drivers
- Try to use a fast SD card, class 10 if possible. Using an old SD card will just result a system too slow to be used after the installation
- The drivers for the board can be downloaded here
This is System Properties screen after installation, listing a 586 processor running at 933 MHz:
And the Device Manager page, showing the M2010 graphics card, which can support up to 1680×1050 resolution:
In my experiments, Windows XP runs quite fast on this board and many common applications such as Microsoft Office, Visual Studio 6.0 or .NET 4.0 applications run fine without any issues. However, due to the lack of support for advanced instructions other than MMX, many modern browsers and multimedia applications will not work properly. The last version of Firefox that can run is Firefox 3.53 whereas K-Lite Codecs Pack 2.8 is the last version that will still work if you want to play music or videos. Even with the correct version of K-lite, playing certain videos with DivX or Xvid codecs will just crash the player. DOSBox could start but is very slow and consumes almost 100% CPU.
The following video demonstrates Windows XP running on this board. You can see that it plays quite a few videos smoothly, although at 04:20 you could see that the player crashed when attempting to play a video file:
Shutting down Windows XP reveals another limitation of this board:
I must say it has been a while since I last saw this screen. Modern computers support ACPI allowing the OS to turn it off automatically without the need to use the power button. This board does not, however, and you will need to disconnect the power or to press and hold the power button to switch it off.
The lack of ACPI support also means that Windows XP is the last version that can be installed as Windows Vista onwards requires ACPI support. This is the failure screen showing error message ‘Windows failed to load because the firmware (BIOS) is not ACPI compatible’ when installing Windows 7:
Windows 8 is out of the question, as it requires the processor to support PAE/NX, in addition to ACPI. Windows Server 2003 x86 setup could go as far as the license agreement screen, but I did not have time to test further.
Ubuntu 10.04 is the officially supported Linux distribution for this box as Ubuntu versions 11.04 and above requires 1GB of RAM. Refer to this guide by RoboSavvy for a detailed step-by-step instructions. The steps basically include installing Ubuntu from the Live CD and upgrading the kernel for Ethernet support as the default installation only has support for the audio chipset.
In my test, the system fails to boot after the kernel upgrade, showing error message vendor_id ‘Vortex86 SoC’ is unknown:
Without the time to investigate the problem further, I have to stay with the default kernel, which is unfortunately too slow to be used – opening an OpenOffice document takes over a minute! Therefore for the moment, I decided to stay with Windows XP
Installing other Linux distributions is a hassle on this board due to the unusual hardware configuration – 80586 processors with modern USB/audio/LAN chipset. Many recent Linux distributions support only modern processors and perhaps are not tested at all on anything earlier than a Pentium 4 and will fail to boot on this board. In particular, recent versions of GParted and Parted Magic live CDs will hang upon bootup because they do not like the 80586 processor while earlier versions will fail after the kernel image is loaded because the drivers for the USB chipset cannot be found. The following is a failure screen during CentOS setup, complaining ‘unable to find any devices of the type needed for this installation type':
It is certainly possible to custom-build a Linux release that only contains the drivers required for this board. I leave this as an exercise for more adventurous readers to try out.
Having spent almost a week on the 3350MX compact x86 PC, I must say that it certainly has its advantage as a good backup device to run old applications, to troubleshoot systems, or just to play around with older OSes. However, the low configuration and the high demands for system resources of modern applications make it infeasible for this box to be used for daily computing tasks. The lack of Linux support and the high selling price is also pathetic. I would therefore expect the manufacturer to lower the price while at the same time improving the hardware configuration to at least a Pentium processor before the 3350MX can be as popular as the Raspberry Pi in the single board computer market.