Assumptions / Pre-reqs
For this post to be useful, you should:
– know how to build a Linux kernel from source
– know something about Linux kernel programming, writing kernel module code, etc
– have some familiarity with setting up and using KDB and KGDB (a bit of this is covered here, not all); also, see some useful Resources just below..
– have an R Pi (I use the Rev B R Pi) with an SD card
– have a custom Linux kernel running on it (need to be able to modify kernel configuration and rebuild at will)
– the R Pi does not have a dedicated physical serial port; we require one to get (and send) console I/O (so that we can see kernel printk’s and interact via the keyboard). I find a simple and efficient way to do this is to make use of the GPIO pins 14 (TXD) and 15 (RXD) on the board, connecting them to a simple FTDI
USBTTL serial breakout board. I’m using FTDI’s FT232R Breakout board; it works very well indeed.
Above pic: My R Pi (Model B) attached to a FTDI FT232R USB-to-TTL breakout board.
Connections: (see photo)
R Pi FTDI
TXD (GPIO 14) RX-I (RX-I and TX-O pins are at the front of the FTDI
RXD (GPIO 15) TX-O board (directly opp the USB mini connector))
GND (GPIO 6) GND
Yeah, quite a few pre-reqs huh 🙂
Resources
– Using kgdb, kdb and the kernel debugger internals
– A good tutorial on building-from-scratch for the R Pi root filesystem and Linux kernel, using the excellent Buildroot tool,
can be found here.
Hi folks,
Continue reading A KDB / KGDB session on the popular Raspberry Pi embedded Linux board