MakeLinux.com managed to boot Linux from the bootloader to console within 300ms using a customized (and minimal) version of Linux running on Beagleboard based on TI OMAP 3530 (Cortex A8) as per their Super Fast Boot project. Here’s the analysis of the boot sequence and timings: Logging starts at 70 ms from reset. Boot time from reset is 300 + 70 = 370 ms. Logging starts at 330 ms from power on. Cold boot time is 330 + 300 = 630 ms. Loading of 1.5 MiB Linux image from NAND takes 237 ms with throughput 6 MiB/s. Code execution takes 60 ms or 43M CPU cycles. (For other CPU frequency execution time is different, but the number of processor cycles is the same) The most time-consuming operation is coping firmware from NAND flash. They used a Linux 2.6.32 kernel from DVSDK 3.01, in a minimal configuration (900KB footprint), the boot […]
Mediatek based Low Cost Android Capacitive Smartphone
Here’s a video about an Android 2.2 Capacitive touchscreen phone based on Mediatek MTK6516 processor. By today’s standard, this processor is not very fast (460 MHz), but its price point allows for very low cost smartphones. The Chinese smartphone in the video below only costs 565 RMB (around 87 USD) retail and features a 3.5″ capacitive touchscreen, GPS and a back camera. It seems to work pretty smoothly.However, it does not support 3G, so you’d only be able to use GPRS for data connections. If you wait a little longer, several sub-100 USD smartphones should be available on the market later this year with performance similar to Google Nexus One with processors such as ST-Ericsson U6715.
Android to get 50% of smartphones market share by 2012
A Gartner’s study expects worldwide smartphone sales will reach 468 million units in 2011, a 57.7 percent increase from 2010. By the end of 2011, Android will move to become the most popular operating system (OS) worldwide and will build on its strength to account for 49 percent of the smartphone market by 2012 (Cf. Table 1). Sales of open OS (meaning with SDK, not necessarily open source) devices will account for 26 percent of all mobile handset device sales in 2011, and are expected to surpass the 1 billion mark by 2015, when they will account for 47 percent of the total mobile device market. Gartner also expects the price of Android to dramatically decrease by 2015 with 67 percent of all open OS devices with an average selling price of $300 or below. Here are the projection of smartphones sales by OS until 2015: OS 2010 2011 2012 […]
Video commemorating the 20th Anniversary of Linux
Linux is born in April 1991, with Linus Torvalds making it public with the following post on minix newsgroups: Hello everybody out there using minix – I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. … PS. Yes – it’s free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have :-(. Today, Linux is powering all kind of devices from supercomputer, stock exchange servers to smartphones, smart tv, cars and anything you can think of.
Removing Old Kernels in Ubuntu with Synaptic
If you have used Ubuntu for a while and performed upgrades, you may have quite a few kernels in GNU GRUB as shown below: Those kernels are usually not necessary, they take space on your hard disk and make you scroll down in GRUB to access your other OS (if any). I’ll show how to only keep the last 2 kernels (for safety) in GRUB with Synaptic. First, start synaptic as a superuser: sudo synaptic Select “System Administration“, in type “linux-image” in the Quick search field and show the installed kernel (green tick box). Then select the kernels you want to remove (keep the last 2 versions), right-click and select “Mark for Removal”. Synaptic Package Manager window should look like the screenshot below: After that, simply click on Apply and within a short time (one minute in my case), the selected kernel are removed. Removing 4 kernels, freed 429 MB […]
Phytec Texas Instruments OMAP4430 Computer Module
Phytec announced the first system on module based on Texas Instruments OMAP4430. The phyCORE-OMAP4430 features up to 1GB LPDDR2 DRAM, 1GB NAND Flash, one USB Host, one USB OTG port, Ethernet, I2C Interface, DSI and HDMI video output and consumes a maximum of 3 Watts only. Here are the full specifications of the phyCORE-OMAP4430 computer module: Texas Instruments OMAP4430 @ 1GHz PowerVR SGX540 GPU 56 KB On-chip SRAM and 512 MB (default) or 1 GB LPDDR2 DRAM 128, 256, 512 MB (default) or 1 GB NAND Flash 4 (default) or 32 KB EEPROM 2 SD/SDIO/MMC Expansion slot 4 UARTs, 1 RS232, 3 I2C, 1 I2S and 2 SPI/SSP serial connections. 1 USB Host and 1 USB OTG ports. 10/100 MBit Ethernet 2 x DSI, 1 x HDMI video output ports up to 1080p encode/decode and Touch screen support DVI/HDMI, PWM, Camera, Keypad, JTAG and RTC Dimensions: 41 x 51 mm […]
C Code to get MAC Address and IP Address
Function in C to return the MAC Address:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
/* Returns the MAC Address Params: int iNetType - 0: ethernet, 1: Wifi char chMAC[6] - MAC Address in binary format Returns: 0: success -1: Failure */ int getMACAddress(int iNetType, char chMAC[6]) { struct ifreq ifr; int sock; char *ifname=NULL; if (!iNetType) { ifname="eth0"; /* Ethernet */ } else { ifname="wlan0"; /* Wifi */ } sock=socket(AF_INET,SOCK_DGRAM,0); strcpy( ifr.ifr_name, ifname ); ifr.ifr_addr.sa_family = AF_INET; if (ioctl( sock, SIOCGIFHWADDR, &ifr ) < 0) { return -1; } memcpy(chMAC, ifr.ifr_hwaddr.sa_data, 6) close(sock); return 0; } |
Function in C to return the IP Address:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
/* Returns the interface IP Address Params: int iNetType - 0: ethernet, 1: Wifi char *chIP - IP Address string Return: 0: success / -1: Failure */ int getIpAddress(int iNetType, char chIP[16]) { struct ifreq ifr; int sock = 0; sock = socket(AF_INET, SOCK_DGRAM, 0); if(iNetType == 0) { strcpy(ifr.ifr_name, "eth0"); } else { strcpy(ifr.ifr_name, "wlan0"); } if (ioctl(sock, SIOCGIFADDR, &ifr) < 0) { strcpy(chIP, "0.0.0.0"); return -1; } sprintf(chIP, "%s", inet_ntoa(((struct sockaddr_in *) &(ifr.ifr_addr))->sin_addr)); close(sock); return 0; } |
Setting Up an NFS Server in Ubuntu
You may need to setup an NFS server on Ubuntu to run and debug your program on your target platform or simply to share media files on the network composed of Linux clients. If you are using Windows clients, you would usually use SAMBA/CIFS, although it is possible to setup an NFS server in Windows as well using Windows Services for UNIX 3.5. Quick Guide to to setup an NFS server in Ubuntu without authentication. Install the required packages: # sudo apt-get install nfs-kernel-server nfs-common portmap Reconfigure and restart portmap: # sudo dpkg-reconfigure portmap # sudo /etc/init.d/portmap restart Edit /etc/exports: # sudo vi /etc/exports Add the directories to share with NFS and save the file, for example: /nfs 192.168.1.0/24(rw,no_root_squash,async) will give full read/write permissions to the nfs directory for computer in 192.168.1.0 subnet. Restart the NFS server: # sudo /etc/init.d/nfs-kernel-server restart and reload the configuration: # sudo exportfs -a The […]