[linuks]Wyświetlenie komunikatów "dbg" z modułu

0

Witam,

Potrzebuję "uruchomić" funkcję dbg w pewnym module(pl2303) tak aby wyświetliła tekst np. w dmesg.
Trzeba przekompilować moduł? Może wystarczy załadować go z jakimś parametrem?
Chciałem przekompilować z linijką "#define dbg printk" i go insmod'ować, ale nie wiem jak z tymi makefilami jest w kernelu żeby przekompilować tylko jeden moduł.

0

Mozesz jasniej opisac swoj problem. Chcesz dodac to do jakiegos modulu jadra, czy napisac swoj ? Jak chcesz dodac do jakiegos to w czym problem, przeciez Makefile'e masz juz porobione, wiec jak dodasz printk to nie bedziesz nic musial w nich zmieniac. No moze poza dodaniem #include <linux/module.h>

0

Jest moduł pl2303, gdzie zawarte są linijki np:

		if (cflag & PARODD) {
			if (cflag & CMSPAR) {
				buf[5] = 3;
				dbg("%s - parity = mark", __func__);
			} else {
				buf[5] = 1;
				dbg("%s - parity = odd", __func__);
			}
		} else {
			if (cflag & CMSPAR) {
				buf[5] = 4;
				dbg("%s - parity = space", __func__);
			} else {
				buf[5] = 2;
				dbg("%s - parity = even", __func__);
			}
		}

Chcę odczytać komunikaty. Prawdopodobnie domyślnie funkcja dbg się nie wykonuje.

0

Zamien sobie dbg na printk i dopisz tuz po nawiasie "KERN_INFO, (przecinek)" i bedziesz widzial. Ja na jajku 2.6.27 nie moge znalezc kawalka kodu, ktory zapodales w tym module. Zamiana pomoze, ale zaraz sprawdze jeszcze to dbg, bo nie pamietam, czy to bylo po prostu makro na printk z KERN_DEBUG, czy cos innego.

0

Właśnie tak planuje zmienić. Wiem że wystarczy zdefiniować DEBUG(w kodzie lub przy kompilacji) czy coś takiego, aby ta funkcja "działała". Tylko jak to skompilować?
Ja mam kernel 2.6.34.

0

Wrzuc sobie te pl2303.c i pl2303.h do jakiegos pustego katalogu i taki Makefile mozesz dac:

obj+=pl2303.o
all:
             make -C /lib/modules/`uname -r`/build M=`pwd` modules
clean:
             make -C /lib/modules/`uname -r`/build M=`pwd` clean

Kompilowalem wlasnie i wszystko w porzadku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1