I have found a low priced ($47 qty. 1) ARM-A9 Dual Core 1GHz Thin Client board that currently has an Embedded Linux OS along with an RDP 7.1 client. There is an SD slot used to upgrade this board with different firmware. Is the process for jumpstarting this type of board generic based upon ARM chip? The manufacturer says that they are ok with my installing a different Thin Client program than RDP, but due to the small nature of the quantity I would be buying, they aren't particularly interested in helping with the project.
First, does anyone know a different, commercial ARM product in this price range with 3 USB, audio/mike, HDMI, VGA, Ethernet, 512M RAM, 512M Flash, SD slot etc.? If so, is it programmable to allow new programs to be written to its flash memory?
If a different board is not comparable by price and features, is it possible to experiment with different ways to boot the device using uboot or some other tool? I'm a complete beginner with ARM, so if the questions have inconsistencies or exhibit a lack of knowledge, please forgive... The basic goal is to add a different Thin Client (Cendio's ThinLinc) instead of RDP. I'm comfortable as a programmer, but I've never before tackled anything embedded like this. The company that makes these boards is Chinese, and there is a huge communication barrier in speaking with their technicians, so I'm hoping that the ARM development community can shed light on this as to whether I need to give up, or whether jumpstarting these boards and reprogramming them is a reasonable proposition
Thanks,
Bill_VH
Hi Bill.
First of all: I do not have knowledge about thin clients, but I do know that many ARM based boards allow you to install Linux.
The SD card would be used for installing the new software. If you can install Linux, technically it would be possible to install anything, including a thin client. The process (simplified) is basically:
It sounds like this is ARM Cortex-A9 (not ARM9, which is usually only around 400MHz).
Personally I just bought a CubieBoard2 last month, but a few days later I found out that the CS918 with a RK3188 would have been a better purchase.
Personally, I believe the following is the best buy right now (Price: $70):
CS918 RK3188 1.8GHz Quad Core Cortex-A9, HDMI, Ethernet, WiFi, 8GB Flash, 2G DDR3 RAM, MicroSD (not Mini), 2xUSB 2.0 Host, 1 x Micro USB, A/V connector, S/PDIF + Remote Control
Make sure you get the one with RK3188 chipset, not the A31s chipset! RK3188 is Cortex-A9, while A31s is Cortex-A7.
-I've seen some Web-pages about installing Linux on CS918, so it should be possible.
At some point, I might buy one of those and install Linux on it myself.
The hardest part will probably be to get rid of the Android logo.
-But I do believe that the board you mentioned will allow you to install Linux on it.
I think you would also find these interesting:
(I can't confirm that the last one can run Linux, but I do think it's a better candidate than the one you mentioned, since it has more RAM and more Flash memory)
Unfortunately I can't promise you that Linux will install on all of the boards, as I have not tried that myself.
My choice would be to try the CS918. If it did not work out, I would try the RK3066 based device (because it has more RAM and Flash memory than the other mentioned boards).
I can confirm, that CubieBoard and CubieBoard2 runs Linux (a debian variant called Cubian).
Thanks for the reply. The $70 price makes the other computer board you suggest significantly more expensive percentage-wise than the $47 board. But I am very interested in your suggestion for downloading a "ready built SD card image". If you could please point me in the direction I can go to educate myself about how to do this, I would be greatly appreciative. I am wondering if downloading the Raspberry Pi Arch Linux SD image and burning it to a micro SD card is an option? If not, where do I look for more information concerning a ready built SD card that would be compatible with the processor on my board?
Thank you.
You most likely need to have a device name to download the image for.
For instance, if you use CubieBoard2, you could use this search phrase with Google:
CubieBoard2 Linux
...It would give you a lot of results, and among those, you would find "Cubian" (which is the easiest one to get working with CubieBoard).
If you decided on the $47 board, you need the name of that board and use the above search-phrase with the CubieBoard2 name replaced.
Let's say you decided on the $45 CuBox-i. On Google, the phrase...
CuBox-i Linux
gives you a number of results related to installing Linux on this box.
First link I get is this: Linux Distros Ready: Ubuntu, Fedora, Debian | The CuBox i From SolidRun. The page has a few download links.
Clicking the FAQ takes you to this page, which shows a step-by-step guide how to install the downloaded files onto a Micro SD card.
The CuBox-i is also $2 lower than the board you mentioned, and it has an enclosure included, a very interesting little device.
Your message gives me the impression that it doesn't only depend upon which processor is being used? This is not a commercially available development board. It is a no-name board being sold as an embedded Linux RDP 7.0 thin client. The board manufacturer is not interested in helping out with installing the ThinLinc proprietary thin client program in place of RDP, as there is no proven market. However, Cendio, is releasing their ARM compatible ThinLinc thin client this month, and it seems like it would be compatible with this hardware, if I can figure out how to load it. I want to offer schools a really low price solution for connecting students to each other, a Linux server, and to the Internet. If I could use the SD slot and boot the board, then I'm hoping I could install this better client than an RDP client.
But is my interpretation of your answer correct, that there is no "generic" boot SD which works for a particular ARM processor?
I'm going to go check out the CuBox i immediately. If it supports keyboard, mouse, monitor, ethernet, microphone in and audio out then it has all I need. I appreciate your time giving me this advice, thanks!
I just checked out the CuBox i from your link above. When you add the power adapter, the lowest priced model they have is currently $63 ($55 + 8). This seems to only have the cube with a single core, without all the interfaces to connect all necessary peripherals. I bought 3 of the other boards and they really have all needed interfaces (and power adapter) included, plus a dual core. But I have the problem of not knowing how to add the program I want to run to the embedded Flash memory...
Is there some link I'm missing, or did they raise their price since you posted that message? In any event, they say the CuBox i is not yet shipping (until April 24th). Any help will continue to be GREATLY appreciated!
I now understand your background and goal a bit better.
The reason I suggest those boards is not that you can't install a 'generic' Linux on a no-name board.
I've seen a Linux that is compiled for a CubieBoard work on an Olimex board.
But remember: Things on your board might not be configured in the linux-image you're trying to install.
The reason I wanted you to search for the board name, was to reduce the amount of work you will have to do.
If there was a board and a Linux you could use without doing much work, that would probably be #1.
If you already have the $47 boards, you should try and download the SD-card image for "Cubian", modify the settings to match your board and then finally try booting it. If you're lucky, it will boot with just changing the configuration.
If you're totally out of luck, you will probably have to learn building your own Linux; but it's reasonable to believe that the board you want to use is already compatible with an existing Linux distribution.
So since the board has no name, you should find out which processor it's using. We already know it's a Cortex-A9, but which company manufactured the microcontroller and what is the microcontroller's name ?
-Knowing those two things will probably allow us to find the Linux most suitable; eg. if there is a Linux compiled for Freescale i.MX6 and this is exactly the chip on your board, then there's a pretty good chance that it will run with only very little configuration.
But remember: The I/O pins used on your no-name board is most likely different from the pins used on other boards.
-You need to tell the board what I/O-pins to use for which features.
There is another thing that differs between processors. Although there's "Company A" manufacturing an ARM Cortex-A9 based chip, dual core, and "Company B" also manufacturing an ARM Cortex-A9 based chip, dual core; those two chips have different hardware. That means in some cases the configuration could probably solve any compatibility issues, but in other cases, you would need to compile the Linux yourself.
If you're not ready to build a Linux distribution on your own, grab a nerd from some school and tell him to do it for you; he'll probably be happy to do it, but you will need to supply him with Coca Cola for as long as it takes to build the distribution.
I downloaded ArchLinuxARM-2014.01-rpi.img and burned it to a MicroSD with dd. When I look at the MicroSD from another version of Linux, I see what looks like a Linux installation file system. However, when I put the card in the MicroSD slot of the board, and power up the board, the board ignores the MicroSD card and boots its embedded Linux from its Flash. Is there some standard trick for booting a dev board from its MicroSD slot instead of the internal OS on the flash memory?
I thought this would be a low probability first attempt, but am I looking at 100s of potential pitfalls, or just a few? What might be some of the reasons I could experiment with that could be causing the board to not boot from the SD? I didn't see any jumpers on the board. Are keyboard key combinations used to tell dev boards where to try booting from first? Or would the SD card usually be a default boot device if the OS on the card is valid for the hardware?
Thanks for any input you may have!
Bill
It's good to hear your progress; even though you haven't succeeded yet, I am sure you'll get there!
Normally, such devices boot from the SD-card/MicroSD-card by default.
You will need to familiarize yourself with the boot process and how to configure the particular Linux image you've downloaded.
I do not know much about it, but I can say that most of the ready-made images can be modified from a PC (preferrably running Linux already), by editing configuration files in /boot.
-But it's not just editing a text-file, because when the system boots, it often loads binary files only (some of the configuration files are kept as text).
So normally, you would have to ...
On Cubian (debian variant), the binary file I had to work with was called /boot/script.bin
So first thing to do is to back it up...
cp /boot/script.bin /boot/script.bck
Then you need to convert it to a text-file...
bin2fex /boot/script.bin /boot/script.fex
Edit the file...
nano /boot/script.fex
-After saving the file, convert the new .fex file back to binary:
fex2bin /boot/script.fex /boot/script.bin
and then boot on the new conf.
I wish I could give you more details and better help. As I am not a Linux expert, I will recommend a specific ARM-Linux forum for better information, because from here on, I would only be "guessing and hoping".
I've learned a little more since I posted the last reply.
Some devices are shipped with Android (for instance, TV-boxes), and the vendor "locks" the device, so it can not be updated.
An often used "expression" for this is that the device is "bricked". Eg. a cell-phone would be worth the same as a brick, if you can't really do anything with it.
-To unlock or "unbrick" a device, some tools exists. I recommend searching the Web for tools. Also try searching for "Moborobo" and "TPSarky"; these might help unlocking the device if it's locked.
I don't believe the device is locked due to my interaction with the manufacturer. They WANT to sell their boards. Since my last post, I have recently received the files from the device manufacturer which are supposedly the correct ones to burn onto an SD card, to then use to boot the device from the card and not the soldered on Flash. Unfortunately, I have been unsuccessful at booting the device from an SD card which I burned using 'dd' and the boot image file. I also copied the included embedded linux operating system files to the SD card, but still I saw nothing which led me to believe I was booting off of the SD card.
When I power up the device with the SD card in the slot, it boots up like it always does into the UI which allows networking configuration, and then launching an RDP (Remote Desktop Protocol) client. If I were to attach the files they sent to me, do you think you or someone else might be able to give me some advice as to how I need to be burning them onto an SD card to successfully boot the device? My main problem is communication with the company, as the technical people only speak Mandarin. I think this forum may be my best hope for suggestions on what to do with the files they sent me to make a bootable SD card.
Any ideas?
I'm sorry that I've not responded earlier; I've been away for two weeks by now.
Writing the image using the 'dd' utility is correct; I believe you're going forward, even though it (sometimes) might not feel like much. Hang in there; you might be close to getting it running.
I think the people who can help the best, would be Low-level Linux-people. Perhaps imrehg would know.
Hi, sorry for following up this late, thanks for the ping jensbauer!
I read through the notes so far, here are some thoughts:
Let me know if you need more explanation for any of the points. I'm still just learning this myself by doing it. The more specific you can be about the board the more help you are likely to get.
Software support for ARM boards is an interesting topic, and that is one area where vendors can distinguish themselves! Personally I would also recommend looking at this aspect when buying a board, not just the price. A board you choose might be $10 cheaper than another one, but in the end could cost much more because of the developer time you have to spend on it.