Nufront 2GHz ARM Cortex-A9 for Desktop, Laptop and Netbook – NuSmart 2816

Nufront (新岸线) is a high tech company based in Beijing, dedicated to wireless broadband communication and broadcast, IC design, video search and digital imaging technologies. Nufront showed off their “low-power high performance” mini-PC based on their new NuSmart 2816 chipset at ARM Techcon 2010. NuSmart 2816 is based on a dual-core Cortex-A9 @ 2GHz with Mali-400 GPU. They plan to sell the chip for around 30 USD and expect ARM-based mini-PC to sell for around 200 USD retail. You can download NuSmart 2816 Product Brief for further details. As you can see from the diagram below, NS2816 can support all features (Ethernet, Wifi, GPS, USB, I2S Audio, SATA II, MMC/SD support, VGA, HDMI or LCD video output) that are now expected in modern desktops or laptops. Video playback currently uses around 2 Watts (chip samples) and they target 1.5 Watt for video playback in the final release of their chipset […]

ARM Based Embedded Server – Marvell ARMADA XP

A few years ago, nobody would have considered using an embedded system to run a server. But now, with the advance of technology, more and more servers are running embedded systems from the lower end such as home-based NAS (Network Access Storage) to higher-end for data-centers, cloud computing, web 2.0… This is the higher-end that Marvell targets with its Quad Core ARM ARMADA XP MV78460 running at 1.6GHz with “16,600 DMIPS performance at less than 10 watts”. Please checkout Marvell ARMADA XP Product Brief for further details. The main selling point of such solution is the power consumption compared to traditional Intel x86 based servers. According to Marvell, 50% of the cost of running a data-center is the electricity bill to run the server and especially to cool the room with air-conditioners. So let’s do a little exercise. Let’s take the estimated power consumption of Google data-center in Oregon that […]

Linaro: Embedded Linux for ARM

Linaro is a Not For Profit (NFP) engineering organisation that works on Linux based open source software and tools. The organisation focuses on the ARM platform, mainly ARM v7A architecture, for example ARM Cortex-A8 or dual-core Cortex-A9 processors and is sponsored by ARM, Freescale, IBM, Samsung, ST-Ericsson, and Texas Instruments. The purpose of Linaro is to reduce the number of different Linux kernel for the ARM platform. They plan on releasing tools and Linux kernel every 6 months. And after about 6 months of existence, with around  80 engineering staff, they managed to release their first public version:  Linaro-10.11 on the 10th of November for TI OMAP4 Panda Board, IGEPv2, Freescale iMX51 and ST-E U8500 platforms. This release is based on Linux 2.6.35 kernel, GCC 4.4 toolchain and uBoot 2010.09. They released Linux 10.11 source code and tools, the hardware packs and the build instructions. Linaro also planned several technical […]

USB Hotplug Parameters and A Simple Linux USB Hotplug Script

USB Hotplug allows your system to detect a USB device has been inserted or removed and perform certain actions upon the USB device detection. The article below is largely inspired by http://linux-hotplug.sourceforge.net/?selected=hotplug which does not seem to work anymore. USB hotplugging involves: MODULE_DEVICE_TABLE support in the USB Device Driver API, so that a driver’s probe() routine is called only when it’s very likely to want to bind to a particular interface. USB always uses this. Support for invoking the hotplug helper (/sbin/hotplug by default) when devices are added or removed. This functionality is enabled only by CONFIG_HOTPLUG. That hotplug helper usually contacts a policy agent which handles the USB-level configuration or activation tasks appropriate to this device and the current system configuration. Boot-time configuration (“cold-plugging”) can be managed by the /etc/rc.d/init.d/hotplug startup script, if the “usbmodules” command line utility is available. (There is also a “diet hotplug” tool for use […]

Default root password for sigma designs smp86xx boards

I have seen some people google for the default root password for sigma designs boards and they ended up in this blog without any answer. So I’ll provide some kind of answer. In the serial port console, once you get to the username/password prompt, the root password is… there is none, just press “Enter”. This is the default behavior in Sigma Designs SDK, it’s quite possible the root password has been changed for the device you are trying to access. In case telnet or ssh is enabled, you may try one of the default users in /etc/password, that may not have been disabled by the development team e.g. ftp, man, nobody,default, etc… and try to login without password, by just pressing “Enter” at the password prompt. Once you are logged-in as a normal user, type “su” to become super user, press “Enter” if you are being asked for a password. […]

Socket Programming: Client crashes when exiting server

One of our digital signage applications was crashing when the control server was shutdown at the same time a command was sent with no apparent reason. It would always crash inside the write function (see code below) and no error message were returned. sent = write(fd, buf, n); After a while, we found that in case the connection with the server is lost, and write tries to access the server, it will generate a SIGPIPE signal and in most systems, the application would just exit by default. A simple way to handle this case was to ignore the pipe signal by adding the following line during initialization: signal(SIGPIPE, SIG_IGN); In case the server is down at the time the write function is called, the signal SIGPIPE would be ignored, write would return -1 and errno should return 32 (Broken pipe). Alternatively, if needs be you could also handle the SIGPIPE […]

Finding a device IP Address

If you are developing software for an Ethernet (or Wifi) device, you’ll need to access the board for debugging and/or testing purpose. If your board does not have user interface or the serial port is not available, you’ll have to find the IP address (assuming it is using DHCP) before accessing the board thru telnet or ssh. A simple way to do that is to ping the broadcast address and check the arp table. > ping -b 192.168.0.255 WARNING: pinging broadcast address PING 192.168.0.255 (192.168.0.255) 56(84) bytes of data. 64 bytes from 192.168.0.246: icmp_seq=0 ttl=64 time=0.018 ms 64 bytes from 192.168.0.101: icmp_seq=0 ttl=64 time=0.217 ms (DUP!) 64 bytes from 192.168.0.246: icmp_seq=1 ttl=64 time=0.023 ms > arp -i eth0 arp -i eth1 Address                  HWtype  HWaddress           Flags Mask            Iface 192.168.0.103            ether   00:50:FC:00:00:01   C                     eth1 192.168.0.109            ether   00:13:20:01:01:01   C                     eth1 If you cannot find your device, it may be configured to […]

How to check open files for a process

While debugging your program, you may encounter the message “Too many open files”. One way to fix the issue could be to review your code and check open, fopen, socket and pipe calls are matched with close and fclose calls, but with large projects this may be cumbersome. A better way is to list the open files using the proc filesystem. I’ll use VirtualBox program as an example since this is running in our server. First, locate the process ID (PID): pgrep VirtualBox 3901 3950 Then list the file descriptor opened for process 3901 sudo ls -l /proc/3901/fd total 0 lrwx—— 1 root root 64 2010-10-05 14:52 0 -> /dev/pts/1 lrwx—— 1 root root 64 2010-10-05 14:52 1 -> /dev/pts/1 lr-x—— 1 root root 64 2010-10-05 14:52 10 -> pipe:[15825] l-wx—— 1 root root 64 2010-10-05 14:52 11 -> pipe:[15825] lr-x—— 1 root root 64 2010-10-05 14:52 12 -> pipe:[15829] […]

Exit mobile version