Marcus Folkesson

Embedded Linux Artist

-ENOENT, but believe me, it's there

-ENOENT, but believe me, it's there Almost every ELF-file in a Linux environment is dynamically linked, and the operating system has to locate all dynamic libraries in order to execute the file. To its help, it has the runtime dynamic linker, whose only job is to interpret the ELF file format, load the shared objects with unresolved references, and, at last, execute and pass over the control to the ELF file.

Terminate a hanging SSH session

Terminate a hanging SSH session It may be very frustrating when SSH sessions just hangs because the target is power cycling or something. Lucky for you there is a "secret" escape sequence that allows you to terminate the session (and a few other things). The escape sequence is <enter>~X where X is a command letter. To see all available key sequences, type <enter>~?. Example output: 1 marcus@Ilos:~$ ~? 2 Supported escape sequences: 3 ~.

Interrupts, and how to divide them between cores

Interrupts, and how to divide them between cores Symetric MultiProcessing (SMP) are becoming increasingly common in embedded systems. Many chip manufacturers such as Texas Instruments and Freescale offers ARM multicores, even FPGA manufacturers like Xilinx and Altera has System-on-Chip with multiple ARM cores. One benefit with SoC is that it's even possible to add soft cores in the programmable logic if it's necessary. The trend is clear, multiple cores is here and it's not likely to be fewer of them.

Linux memory overcommit

Linux memory overcommit Linux is generous in terms of memory, it will almost never fail on requests from malloc(3) with friends. What does this mean in practice and how may it be a potential issue? In short, overcommit memory means that the system will give the application so much memory it's asking for, even if the physical memory is not available. How does this work? Well, the requested memory comes with one small restriction; the application is given as much memory it demands if it not going to use it.

LDD without LDD

LDD without LDD I often meet colleges at work who gets frustrated when they try to see the shared libraries dependencies for an ELF file and the ldd command is simply stripped out from target. (I do often strip targets :-) ) The ldd command is not a binary executable but a script that simple calls the runtime dynamic linker with a few environment variables set, and you may do the same!