Linux and Application Packaging

This is more of a critique than a commentary!

Getting an older version of a software source-code to compile, link and run on a new Linux system is excruciating. Those who have dealt, know better!

Any Linux binary should be runnable on all Linux distros of any version. This is “the requirement”! This is not currently possible, and we live with it. But it balks us when a product has system version upgrades, and we end up managing parallel lines of versions of libraries, compilers and linkers — just to make the old stuff run. Continue reading “Linux and Application Packaging”

Debugging Linux Kernel using QEMU

An old lost nifty toolkit for kernel debugging, I used long ago… Of course, the host OS is Linux — some Debian clone (Ubuntu).

Commands to run qemu and debug Linux kernel (either one will do):

qemu -kernel bzImage -append "root=/dev/sda console=ttyS0" -m 2G -hda wheezy.img -serial stdio -nographic -nodefaults -s -S
qemu -kernel bzImage -append "root=/dev/sda console=tty0" -m 2G -hda wheezy.img -s -S

Two important options here are:

# -S  Do not start CPU at startup (you must type 'continue' on the gdb prompt).
# -s  Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port 1234.

On the debugging side:

$ gdb bzImage
(gdb) target remote localhost:1234

Continue reading “Debugging Linux Kernel using QEMU”