Tag Info

Hot answers tagged

10

SQLite's small size and levels of completeness, stability & speed make it a popular choice for low-resource environments, which embedded systems usually are. It is used by parts of the current iPhone, Android and Symbian phone operating systems for this reason. You might want to add some details to your question to get more specific answers: do you know ...


8

BDB (libdb) has historically been the embedded database of choice for many applications, shipping with most UNIXes and used by lots of software. If you're accustomed to SQL relational databases, though, BDB is not one - it is simply a (really good) key-value store. SQLite is a different popular embedded database. As the name implies, it is a SQL database ...


8

As with all things pertaining to security, there aren't any guarantees, but you also need to balance risk (and cost) against probability. From experience (and I've been running dozens of *nix boxen since the dark ages), I've never really had significant power-caused filesystem corruption. Some of these machines were even running on non-journalled ...


7

Let's check a few figures for mainstream distributions (i386 binaries): Debian lenny: cdebootstrap -f minimal lenny lenny-minimal produces 77MB. Add ~30MB for the package lists. About 9MB is documentation (/usr/share/doc, /usr/share/man), and about 25MB is locale data; you can remove these (but upgrades will bring the files back). This includes a minimal ...


7

You can easily extract the encrypted password with awk. You then need to extract the prefix $algorithm$salt$ (assuming that this system isn't using the traditional DES, which is strongly deprecated because can be brute-forced these days). correct=$(</etc/shadow awk -v user=bob -F : 'user == $1 {print $2}') prefix=${correct%"${correct#\$*\$*\$}"} For ...


6

Is not so powerfull as a normal PC, but you should try arduino platform. You can buy a great and cheap unit here: http://www.libelium.com/ Google a little bit about arduino and you will find a lot of references and a big community


5

On Debian, there are apt-cross and dpkg-cross from Emdebian, which let you set up cross-compilation for many architectures (you get cross-compilers and libraries). On Ubuntu, there's a crosschain for ARM, and a project to improve on this. You can also create toolchain using crosstool-ng which is not link to a distribution.


5

Not knowing your price range, I suggest Gumstix. The boards are quite expensive, but very powerfull, especially with the ATmel Robostix expansion board. I suggest the Robostix Starter Pack, this should get you going programming with Gumstix.


5

Use the sysfs control files in /sys/class/gpio. The following links will hopefully be useful to helping you get started: http://www.avrfreaks.net/wiki/index.php/Documentation:Linux/GPIO Have seen reports of this article on the Beagle Board also working with the mini2440: http://blog.makezine.com/archive/2009/02/blinking_leds_with_the_beagle_board.html In ...


5

If you have a watchdog on your system and a driver that uses /dev/watchdog, all you have to do is kill the process that is feeding it; if there is no such process, then you can touch /dev/watchdog once to turn it on, and if you don't touch it again, it will reset. You also might be interested in resetting the device using the "magic sysrq" way. If you have ...


5

Jason Huggins gave a fantastic talk at PyCon 2012 that described, in great detail, a robot that could play "Angry Birds" on the phone: Worth watching the talk, it was very entertaining. Most importantly, the plans for the hardware and software of the core toolkit, BitBeam, are online in a github repo. I'm sure it would give you a great start.


4

A relatively popular boot loader for embedded devices is Uboot: http://www.denx.de/wiki/view/DULG/Introduction http://sourceforge.net/projects/u-boot/ The Uboot project originated from Germany; Uboot sounds like submarine in German, so the name sounds somewhat funny for German ears. I hope I didn't tell you something obvious.


4

The only NAT that an IPIP tunnel might work with is one-to-one NAT, which is clearly not what you have in the cellular case. This "150 bytes/second for an open SSH connection" business is very strange and you should investigate. No such thing happens for me with OpenSSH -> OpenSSH sessions (there's the unavoidable keepalives, but you actually WANT those ...


4

Damn Small Linux is the only off-the-shelf 50MB distribution that I know of. It is vaguely debian-ish so one can use apt and friends if needed.


4

OpenWrt is a powerful distribution for open source routers. It supports for a lot of devices. A 2.6er kernel, an 2.4 is available, too. The web-interface is surprisingly useful, e.g. it supports switching between normal and advanced mode, in the advanced mode it supports more options and transactions for a set of configuration changes. It can be easily ...


4

I managed to solve my problem using two steps: The first was to get rid of the null at the start of the line in inittab which just allows errors to be seen on the console. This revealed that the error was to do with /proc/mounts. I changed inittab so that the ::sysinit:/bin/mount -t proc /proc came above the remount,rw / stuff and it's now ok. The mystery ...


4

Actually google did more writing an app platform / virtual machine system to run on top of linux than they did modifying linux. They basically just used it as a base to build off of, they hardly had to touch it. As for your question, just start doing things. Get yourself some linux distros, install them on your computers or in VM's, learn your way around ...


4

It could be a missing dependency. Notably you'll get that type of message if the runtime linker ("program interpreter") set in the ELF header does not exist on your system. To check for that, run: readelf -l your_executable|grep "program interpreter" If what it gives you does not exist on your system, or has missing dependencies (check with ldd), you'll ...


4

Well, the way you can fix this is to fix the "power can be cut at any time" problem. Is it impossible to add even a minute of battery power? Alternatively, maybe you could use two SD cards. Write the data to one card, sync, write to the other. Each block of your data would need a checksum and block number, but then even with some pretty unlucky power ...


4

Those customer devices run custom operating systems, or a highly-customized embedded Linux or other UNIX-type OS; sometimes not even Bash and ncurses are included. It's unlikely that you will be able to run your custom scripts (specially after the PlayStation 3/Linux situation), unless you can get more documentation about them - which might be quite ...


4

Perhaps the easiest way is to use your netbook - just because you don't have to filter out unrelated traffic later. You can use tcpdump to dump all traffic on your ethernet device. After starting up tcpdump you connect your equipment. After nothing flashes any more you disconnect it and you can look at the dump with wireshark. The dump should contain ...


4

System Management Mode is not the only thing that makes x86 bad at hard real time. The unpredictability of the execution speed due to caches, pipelines and so on makes x86, and any other high-end processor, bad at real time. All these features that make a processor fast on average also make the worst case difficult to manage. The current generation of ARM ...


4

A Linux distribution consists of many pieces. All the pieces that are based on software licensed under the GNU GPL and other copyleft licenses must have the code source released. For example, if you ship something built on a Linux kernel, you must provide the Linux kernel source as well as any patch that you have made to the kernel source (however, for the ...


4

Yes, it is a strong solution, but powerfull! Making r/o useable You have to mount some directories in rw, like /var, /etc and maybe /home. This could by done using aufs or unionfs. I like this another way, using /dev/shm and mount --bind: cp -a /var /dev/shm/ mount --bind /dev/shm/var /var You could before, move all directories who have not to change in ...


4

That is distribution specific, but a few things I can think of: /etc/mtab, /etc/adjtime and /etc/resolv.conf are typical files that may need modified. /etc/motd and /etc/issue might be as well. cups updates some of its configuration files by itself as well. Some things might want to create a nologin file in /etc as well. In most instances, you should be ...


3

After quite some research I settled in the end for slitaz. I can really recommend it, as I haven't found any distribution which is so flexible. There is a minimum system (well under 20 mb), basically giving you just a shell and ssh access. However, there is a huge package repository so you can extend to graphical interface or server daemons etc.


3

There are of course a lot of possibilities. For example if it is an USB device you could monitor the USB traffic between the device/compute on a system with driver support (analogous to tcpdump for network). For example for Windows there are several USB monitor tools available (IIRC usbsnoop for example). In the case of a USB scanner you could e.g. ...


3

I worked on a system using uboot which had custom hardware and was ported to arm and powerpc. There were two things that needed to be set up. First there is a place in u-boot where you can add board support to set registers and create handler functions for accessing RAM or FLASH on your device. You then have to write similar support in the /arch part of the ...


3

OpenWRT and DDWRT are the two main distros in this category. I would encourage you to help find and fix the issue. If it's affecting both distros, it's likely to be a kernel problem that you would run into even if you built your own system from sources only. It is unfortunate that the developer community is so small compared to the user base on these ...


3

Having a watchdog on an embedded system will dramatically improve the availability of the device. Instead of waiting for the user to see that the device is frozen or broken, it will reset if the software fails to update at some interval. Some examples: Linux System http://linux.die.net/man/8/watchdog VxWorks (RTOS) ...



Only top voted, non community-wiki answers of a minimum length are eligible