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] […]
Netgem Set-top-box N5000 – Toshiba Places
Mid-september, Netgem showcased their new set-top box at IBC 2010: the Netbox N5000 Internet/TV Adaptor. A modified version of this Set-top box will be used by Toshiba (Toshiba places) and be available for purchase for 99 Euros starting in October 2010 in France and later in 2011 in some other Europeans countries. [ad#Google Adsense – Wide Banner] First let’s have a look at the casing (Not the one used by Toshiba places). The front panel has the Power LED, a USB port and the remote sensor. They’ll either provide Infrared or RF remotes depending on the end customer requirements. The back of the set-top box features TV In/Out, Digital Audio (S/PDIF) output, HDMI output, an Ethernet port and the power jack (+12V). Their product brief also mentions a USB port on the rear as an option and Wifi support (802.11n). The Netbox N5000 hardware is based on Sigma Designs SMP8655 […]
D-link Boxee Box available for pre-order
D-link Boxee set-top-box is available for pre-order on amazon for 199 USD. It can only be pre-ordered to addresses in the US for now and shipments should start in November. D-Link disclosed that its device is based on an Intel Atom processor CE4100 (Sodaville), not an ARM or MIPS processor as many other STBs do. It is running on embedded Linux. Key features listed by D-Link for the device (beside its weird shape) are basically those of the Boxee media-streaming software on which it’s based: Enjoy thousands of shows available for free from your favorite networks, ready to watch at any time Check-out free movies from the web & watch new releases in stunning HD from premium movie services Play videos, songs, or pictures from your computer or home network Plays any non-DRM video, music, and photos and media from anywhere on the Internet The device features the following input/output and […]
List the dynamic libraries used by a program
In order to know which dynamic libraries a particular binary is using, just type ldd. For example with busybox: sh-3.00# ldd /bin/busybox /bin/busybox: is setuid libcrypt.so.0 => /lib/libcrypt.so.0 (0x2aaed000) libm.so.0 => /lib/libm.so.0 (0x2ab41000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2ab9c000) libc.so.0 => /lib/libc.so.0 (0x2abeb000) ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000) 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