Tag Info

Hot answers tagged

14

That entirely depends on what services you want to have on your device. Programs You can make Linux boot directly into a shell. It isn't very useful in production — who'd just want to have a shell sitting there — but it's useful as an intervention mechanism when you have an interactive bootloader: pass init=/bin/sh to the kernel command line. All Linux ...


12

Devices most likely get a file in /dev/input/ named eventN where N is the various devices like mouse, keyboard, jack, power-buttons etc. ls -l /dev/input/by-{path,id}/ should give you a hint. Also look at: cat /proc/bus/input/devices Where Sysfs value is path under /sys. You can test by e.g. cat /dev/input/event2 # if 2 is kbd. To implement use ...


11

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 ...


11

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 ...


10

Cross-compiling may be the solution for you It allows you to compile executables for one architecture on a system of a different architecture. Here's an introduction


10

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 ...


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

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 ...


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

New answer (2015-03-22) (Note: This answer is simpler than previous, but not more secure. My first answer is stronger because you could keep files read-only by fs mount options before permission flags. So forcing to write a files without permission to write won't work at all.) Yes, under Debian, there is a package: fsprotect (homepage). It use aufs (by ...


7

If I understand your question this articled sounds like what you're looking for. The article is titled: Device drivers in user space. excerpt UIO drivers Linux provides a standard UIO (User I/O) framework for developing user-space-based device drivers. The UIO framework defines a small kernel-space component that performs two key tasks: a. ...


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


6

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 ...


6

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) ...


6

You will have to check what is the governor you are using. This guy will pretty much influence your clock change depending on the demand the processor is having. Probably the governor you need is: Performance: scaling_min_freq and scaling_max_freq will be set to the max. To change your processor frequency governor: cpupower frequency-set -g performance. ...


6

Wow, that has to be the first time this century that I've heard rx referred to as a "great little utility"! :-) Yet we can still dust the cobwebs off those old commands. XMODEM: rx for receiving, sx for sending. YMODEM: rb for receiving, sb for sending. ZMODEM: rz for reveiving, sz for sending.


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

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 ...


5

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 ...


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.


5

mkimage -l uImage Will dump the information in the header. tail -c+65 < uImage > out Will get the content. tail -c+65 < uImage | gunzip > out will get it uncompressed if it was gzip-compressed. If that was an initramfs, you can do cpio -t < out or pax < out to list the content. If it's a ramdisk image, you can try and mount it ...


5

The information that df produces comes from the statvfs() system call. If your embedded system does not have the df command installed, perhaps it has one of the common scripting languages, using which you can write a one-liner to access the same system call? python -c 'import os; print os.statvfs("/")' If it doesn't have anything like that installed ...


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

Maybe your platform is included in http://gcc.gnu.org/install/binaries.html


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

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.


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 ...



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