In part1, I explained how to build and install aMule for mips platorm, in part2, we’ll build and install Transmission BitTorrent client for devices based on Sigma Designs SMP8634/SMP8635. Transmission BT is already used in quite a few NAS and media players including Syabas Networked Media Tank, Western Digital WD MyBook, ReadyNAS, D-Link DNS-323 & CH3SNAS… as you can see at the bottom of the transmission download page. Building Transmission 2.13 daemon and client First download Transmission 2.13 source code and required dependencies: OpenSSL 1.0.0c, cURL 7.21.3 and libevent 1.4.14b (do not use libevent 2.0.x). You’ll also need zlib 1.2.5 that we compiled in part1. Extract them: tar xjvf ../Downloads/transmission-2.13.tar.bz2 tar xzvf ../Downloads/openssl-1.0.0c.tar.gz tar xjvf ../Downloads/curl-7.21.3.tar.bz2 tar xzvf ../Downloads/libevent-2.0.9-rc.tar.gz Build OpenSSL 1.0.0c: ./Configure no-asm –prefix=/home/jaufranc/edev/libs linux-generic32 make CC=”mipsel-linux-gcc” AR=”mipsel-linux-ar r” RANLIB=”mipsel-linux-ranlib” make install Build cURL 7.2.13: ./configure –prefix=/home/jaufranc/edev/libs –build=mipsel-linux –target=mipsel-linux -host=i686 –disable-ipv6 –without-random –with-ssl=/home/jaufranc/edev/libs –with-zlib=/home/jaufranc/edev/libs CC=mipsel-linux-gcc LDFLAGS=-ldl make make install […]
P2P for embedded systems: BitTorrent and Emule – Part 1
Whether your device is a Network Access Storage (NAS) or a media player with network capabilities, you may consider adding P2P to allow downloads of files as you would do on your computer. Two of the most used P2P protocols are BitTorrent and eMule, but most of the client have a UI designed for Linux or Windows and may not be easily ported to an embedded system. So what we need to look for here are command line based clients or daemons that can be compiled and run in an embedded platform. After some research, here are the 2 programs we’ll use: aMule 2.2.6 a multiplatform eMule-like client Transmission 2.13 running as a daemon for BT dowloads Today, I’ll show how to use aMule 2.2.6 in Sigma Designs SMP863X target, for example in Popcorn Hour A-100. But a similar method (just a different compiler mips-linux-gnu-gcc and setting Little endian (-EL)) […]
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. […]
Digital Signage: Implementing a smooth scrolling text
Many digital signage hardware feature scroll text. However, in many cases the scrolling text is either not smooth, sometimes teared or very slow. It may depends on the performance of the hardware used but also on the implementation of the software. Once easy way to implemented scrolling text is just to redraw the text again and again at different position. However, this is very slow and yields poor results unless maybe you have a Truetype accelerator or similar hardware font accelerator. The next step is then to convert the text into pixmaps. This can either be done in the digital signage manager software (Windows PC/MAC or Linux based) or the digital signage player. Doing so in the latter makes it much more flexible. So you may create 2 pixmaps whose width and length match the region to be displayed, you write the text on those 2 pixmaps, then simply move […]
Enabling swap in embedded systems
If your embedded system running Linux does not have enough memory, you can enable swap to get more memory. However if your platform does not have MMU (Memory Management Unit) as is the case for Sigma Designs EM8620 series, it won’t support swap, so forget it. If your platform does have MMU, as is the case for many newer platforms such as Sigma Designs SMP8630, SMP8640 and SMP8650 series, you can enable swap support. First you’ll have to make sure swap support is enabled in your kernel:
1 2 |
CONFIG_SWAP=y CONFIG_SWAP_PREFETCH=y |
and swapon/swapoff is enabled in busybox. So for example if you have an IDE harddisk with the second partition configured as swap. (Use fdisk to create a partition and mkswap /dev/hda2 to initialize the partition), you can enable the swap as follows:
1 |
swapon /dev/hda2 |
If you get out-of-memory killer kernel error, you can change the “swapiness” to avoid oom-killer to kick in.
1 |
echo 0 > /proc/sys/vm/mapped |
[…]
How to do a framebuffer screenshot
I’ll explain how to do framebuffer screenshots on 16-bit and 32-bit framebuffer. For 16-bit this is fully based on http://docs.blackfin.uclinux.org/doku.php?id=framebuffer Capturing screenshots Whatever the bit-depth of your framebuffer, the first step is to capture the frambuffer raw data on the board:
1 |
cat /dev/fb0 > screen.raw |
Now the you need to take the raw image, and convert it to a standard image format. This step depends on what type of display is there Converting 16-bit Framebuffer screenshot (RGB565) into png To convert the raw rgb data extracted from /dev/fb0, use iraw2png perl script
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#!/usr/bin/perl -w $w = shift || 240; $h = shift || 320; $pixels = $w * $h; open OUT, "|pnmtopng" or die "Can't pipe pnmtopng: $!\n"; printf OUT "P6%d %d\n255\n", $w, $h; while ((read STDIN, $raw, 2) and $pixels--) { $short = unpack('S', $raw); print OUT pack("C3", ($short & 0xf800) >> 8, ($short & 0x7e0) >> 3, ($short & 0x1f) << 3); } close OUT; |
To do the conversion, type the following command in the host:
1 |
./iraw2png 640 480 < screen.raw > screen.png |
where 640 and 480 are respectively the width and height of your framebuffer. This has been tried on a 16-bit framebuffer on EM8620 series. Converting 32-bit Framebuffer screenshot (ARGB, RGBA, BGRA…) into png The solution proposed here is not as neat as the blackfin’s solution for 16-bit framebuffer, […]
Digital Signage Features – A Quick Guide to Select Your Digital Signage Solution
There are a lot of different digital signage solutions around and it may be difficult to find which one is right for you since there can be quite a few different features and options. So I’ll do my best to explain the main features to guide your choice if you are planning to purchase a digital signage solution (embedded signage player, content management software and server). I’ll focus this post on the digital signage player, but bear in mind the content manager software is equally very important. [ad#Google Adsense – Wide Banner] Hardware features Video outputs: composite, component (YPbPr), VGA, DVI, HDMI, LVDS The capability to output simultaneously to different video outputs maybe an advantage if your plan is to use one player to output to several monitors. Video resolution: Standard Definition (e.g. NTSC) vs. High Definition (e.g. 1080p) This is a simple choice based on costs and whether you […]
Digital Signage Players in Hong Kong and China
I’ll show a few digital signage applications based on Sigma Designs EM8620 and SMP8630 series that are currently used in Hong Kong and China. Bus Digital Signage SinoCDN is a Hong Kong company providing broadband media delivery solutions. SinoCDN currently provides a digital signage solution for Hong Kong – China cross boarder buses called IPAD. Their solution is based on EM8623L Sigma Designs and allows content update thru Wifi at the border between China / Hong Kong. If you’ve ever been at the Hong Kong / China border (Lok Ma Chau) and seen some Wifi access points whose names starts with sinocdn, they are used for this purpose. Digital Signage & POS (Point-of-Sale) Heng Yu Technologies is another Hong Kong company specialized in the manufacturing of “customized input and display technology for the industrial markets” They provide point of sales and advertizing platform based on several Sigma Designs platforms, including […]