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; } |
Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011. www.cnx-software.com
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 […]
Hercules eCAFE ARM Cortex A8 Netbooks running Linux
Hercules, a subsidiary of Guillemot Corporation, announced two new eCAFÉ netbooks based on Freescale i.MX515 @ 800 Mhz (ARM Cortex A8) that run a custom Linux distribution and feature a dipswitch for flipping to other user-loaded Linux or Android operating systems: eCAFÉ Slim HD – 229 USD: LED screen: 10.1 inch, 1024*600, high brightness Storage: 8Gb Flash (iNAND), extensible up to 72Gb ARM CortexTM A8 FreescaleTM i.MX515 @ 800 MHz processor RAM: 512 Mb WiFi N technology Battery: 2400 mAh (7.4V) for 4.5 hours’ battery life Comfortable “chiclet” keyboard with flat, separate keys – 88% of a standard keyboard 0.3MP webcam with built-in microphone Connections: 3x USB, 1x Headset, 1x Microphone, 1x LAN RJ45, 1x DC-in 12V, 1x External card reader: SD/MMC/SDHC, 1x Internal card reader: SD/SDHC DIP Switch Weight: 1.9lbs / 0.86 kg eCAFÉ EX HD – 269 USD: LED screen: 10.1 inch, 1024*600, high brightness Storage: 16Gb extensible […]
New Digital Media Processor: Conexant CX92755
Conexant announced a new single-chip media processor for multimedia display products such as digital signage, home automation/security and user interface control. The CX92755 is based on ARM™ Cortex-A8 processor and NEON™ single instruction, multiple data (SIMD) engine with Linux and Android development support. The highly integrated SoC also includes an advanced HD video codec and graphics processor, integrated L1 and L2 cache, a PCI Express™ interface and DDR3 memory, The CX92755 integrates peripheral functions including a Class-D amplifier with speaker and line-out, a microphone input, back-light regulator, power supply controller and touchscreen controller. The SoC also includes an embedded high-performance graphics processor, which supports display list processing, alpha blending, and color key control for advanced user interface operation and display effects. the CX92755 also support the major network connectivity standards such as Wi-Fi®, 3G, Bluetooth® and integrated Ethernet. The SoC also integrates Conexant’s HSSD/Smart DAA® (Direct Access Arrangement) interface, and […]
Installing Linaro ARM Cross Toolchain on Ubuntu
You can easily install Linaro arm cross-compiler on Ubuntu 10.04 (Lucid), 10.10 (Maverick) and 11.04 (Natty) as follows: sudo apt-get install gcc-arm-linux-gnueabi This will install Linaro cross-toolchain version 4.4 on Ubuntu 10.04 and 10.10, and version 4.5 on Ubuntu 11.04. You can check the installation worked by checking the cross-compiler version jaufranc@CNX-TOWER:~$ arm-linux-gnueabi-gcc -v Using built-in specs. Target: arm-linux-gnueabi Configured with: ../src/configure -v –with-pkgversion=’Ubuntu/Linaro 4.4.4-14ubuntu4′ –with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs –enable-languages=c,c++,fortran,objc,obj-c++ –prefix=/usr –program-suffix=-4.4 –enable-shared –enable-multiarch –enable-linker-build-id –with-system-zlib –libexecdir=/usr/lib –without-included-gettext –enable-threads=posix –with-gxx-include-dir=/usr/arm-linux-gnueabi/include/c++/4.4.5 –libdir=/usr/lib –enable-nls –enable-clocale=gnu –enable-libstdcxx-debug –enable-objc-gc –disable-sjlj-exceptions –with-arch=armv7-a –with-float=softfp –with-fpu=vfpv3-d16 –with-mode=thumb –disable-werror –enable-checking=release –program-prefix=arm-linux-gnueabi- –includedir=/usr/arm-linux-gnueabi/include –build=i686-linux-gnu –host=i686-linux-gnu –target=arm-linux-gnueabi –with-headers=/usr/arm-linux-gnueabi/include –with-libs=/usr/arm-linux-gnueabi/lib Thread model: posix gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu4) You can also install the latest version 4.5 (recommended) on Lucid and Maverick: sudo add-apt-repository ppa:linaro-maintainers/toolchain sudo apt-get update sudo apt-get install gcc-4.5-arm-linux-gnueabi If you are using an ARM platform running Ubuntu 10.10 or higher, you could also use the native GCC compiler. sudo apt-get install […]
Cross compiling Berkeley DB for ARM and MIPS
Following my blog entry about Databases for Linux Embedded Systems, here are the instructions to cross-compile Oracle Berkeley DB. First download the source code of the latest version of Berkeley DB (version 11gR2 – 11.2.5.1.25). You’ll need to register on Oracle website first on the download page http://www.oracle.com/technetwork/database/berkeleydb/downloads/index.html to download http://download.oracle.com/otn/berkeley-db/db-5.1.25.tar.gz (with AES encryption) or http://download.oracle.com/otn/berkeley-db/db-5.1.25.NC.tar.gz (if you don’t need encryption). Extract the source code: tar xzvf ../Downloads/db-5.1.25.tar.gz Configure and build the source code. I’ll use mipsel-linux-gcc, but any other cross-compiler could be used. cd db-5.1.25/build_unix ../dist/configure –host=mipsel-linux CC=mipsel-linux-gcc RANLIB=mipsel-linux-ranlib STRIP=mipsel-linux-strip AR=mipsel-linux-ar –prefix=/home/jaufranc/edev/lib/db-11g make make install The full berkeley DB package is 79MB: jaufranc@CNX-TOWER:~/edev/lib/db-11g$ du –max-depth=1 -h 6.6M ./lib 308K ./bin 72M ./docs 176K ./include 79M . However, you won’t need the include and docs directory in your embedded target. So you do not need to copy those. You may or may need the utilities in the bin file. The […]