Ovo uputstvo se odnosi Mandrake Linux 10.0 i drajvere
intel-536EP-2.56.76.0.tgz i intel-536ep-4.69.tgz (razlika je samo u imenu fajla)
Predpostavljam da imate instaliran kernel 2.6.3 i kernel source za 2.6.3
Ukoliko je vec (neuspesno) instaliran drajver za modem treba ga izbaciti.
1) Raspakovati arhivu od drajvera koji je instaliran
2) Izvrsiti komandu "make uninstall"
ili sve rucno obaviti
1) Otvoriti terminal i logovati se kao superuser komandom "su"
2) Ukoliko je drajver u memoriji ukloniti ga sa komandom "rmmod Intel536"
provera dali je drajver u memoriji se vrsi komandom "lsmod". Ukoliko se
na dobijenom spisku nalazi Intel536 onda je drajver u memoriji
3) Izbrisati drajver /lib/modules/"verzija kernela"/kernel/drivers/char/Intel536.ko
verzija kernela se moze proveriti komandom "uname -r"
4) Izbrisati boot skript /etc/rc.d/init.d/Intel536_boot
5) Izbrisati linkove za boot skript
/etc/rc.d/rc2.d/S99_Intel536
/etc/rc.d/rc3.d/S99_Intel536
/etc/rc.d/rc5.d/S99_Intel536
6) Izbrisati program /usr/sbin/hamregistry
7) Izbrisati konfiguracioni fajl /etc/hamregistry.bin
Ovim je zavrseno izbacivanje drajvera
Opis problema kod drajvera intel-536EP-2.56.76.0:
Problem kod ovog drajvera nastaje zbog konflikta sa demonom devfsd.
Boot skript koji se nalazi u /etc/rc.d/init.d/Intel536_boot predpostavlja da
drajver treba koristi /dev/536ep, dok drajver zbog greske u fajlu softserial.c
zapravo koristi /dev/<null>0
Da bi se resio ovaj problem potrebno je uraditi sledece:
1) Skinuti drajver sa adrese
linmodems.technion.ac.il/packages/Intel/536/intel-536EP-2.56.76.0.tgz
2) Otvoriti terminal i uci u direktorijum gde je skinut drajver
2) Raspakovati arhivu intel-536EP-2.56.76.0.tgz ili intel-536ep-4.69.tgz
3) Uci u direktorijum "intel-536EP-2.56.76.0/coredrv"
4) Izvrsiti izmenu fajla softserial.c u svom omiljenom editoru tako da
od linije 87 izgleda ovako:
static struct termios* softserial_termios[SOFTSERIAL_NUMBER_OF_PORTS];
static struct termios* softserial_termios_locked[SOFTSERIAL_NUMBER_OF_PORTS];
static struct tty_struct* softserial_ptty_table[SOFTSERIAL_NUMBER_OF_PORTS]; // z
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,0) // z
static int softserial_refcount;
#endif
int softserial_register_tty(void)
{
int rc;
memset(&G.softserial_tty_driver, 0, sizeof(struct tty_driver));
G.softserial_tty_driver.driver_name = SOFTSERIAL_DRIVER_NAME;
G.softserial_tty_driver.name = SOFTSERIAL_DEVICE_NAME;
G.softserial_tty_driver.major = SOFTSERIAL_MAJOR_NUMBER;
G.softserial_tty_driver.minor_start = SOFTSERIAL_MINOR_NUMBER_START;
G.softserial_tty_driver.num = SOFTSERIAL_NUMBER_OF_PORTS;
G.softserial_tty_driver.type = TTY_DRIVER_TYPE_SERIAL;
G.softserial_tty_driver.subtype = SERIAL_TYPE_NORMAL;
G.softserial_tty_driver.flags = TTY_DRIVER_REAL_RAW;
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,0)
G.softserial_tty_driver.refcount = &softserial_refcount;
G.softserial_tty_driver.table = softserial_ptty_table;
#else // d
G.softserial_tty_driver.owner = THIS_MODULE; // d
G.softserial_tty_driver.devfs_name = SOFTSERIAL_DEVICE_NAME; // d
G.softserial_tty_driver.ttys = softserial_ptty_table; // d
#endif
G.softserial_tty_driver.termios = softserial_termios;
G.softserial_tty_driver.termios_locked = softserial_termios_locked;
G.softserial_tty_driver.init_termios = tty_std_termios;
...
redovi koji su na kraju oznaceni sa "// z" su zamenjeni, dok su sa "// d"
oznaceni dodati redovi
5) Uci u direktorijum "intel-536EP-2.56.76.0"
6) Logovati se kao superuser komandom "su"
7) Za svaki slucaj uraditi "make clean"
Kompajlirati drajver sa komandom "make 536"
Kompajliranjem se dobija fajl Intel536.ko koji predstavlja drajver.
Ukoliko se kompajliranje zavrsi neuspesno, proveriti dali postoji direktorijum
/usr/src/linux/.tmp_versions i/ili fajl /usr/src/linux/.__modpost.cmd
Ako postoje izbrisati ih i ponoviti kompajliranje
NE koristiti "make install".
Umesto toga izvrsiti komandu "uname -r". Na ekranu ce se pojaviti verzija
kernela (za mdk 10.0 Official je 2.6.3-7mdk)
Kopirati fajl Intel536.ko u direktorijum
/lib/modules/"verzija kernela"/kernel/drivers/char
(za mdk 10.0 Official /lib/modules/2.6.3-7mdk/kernel/drivers/char)
9) Ukoliko postoji fajl /etc/devfs/conf.d/modem.conf treba ga izbrisati
10) Kreirati fajl /etc/devfs/conf.d/Intel536.conf koji treba da sadrzi dva reda:
REGISTER ^536ep0$ CFUNCTION GLOBAL symlink $devname modem
UNREGISTER ^536ep0$ CFUNCTION GLOBAL unlink modem
11) U fajl /etc/modprobe.conf dodati sledeca dva reda
alias /dev/536ep0 Intel536
alias /dev/modem Intel536
12) Izvrsiti sledece komande
killall -HUP devfsd
depmod -a
Ovim je instalacija drajvera zavrsena.
Ukoliko zelite da izbacite ovako instaliran drajver, onda treba uraditi sledece:
1) Ukloniti drajver iz memorije komandom "modprobe -r Intel536"
2) Izbrisati drajver /lib/modules/"verzija kernela"/kernel/drivers/char/Intel536.ko
3) Izbrisati fajl /etc/devfs/init.d/Intel536.conf
4) Izbaciti iz fajla /etc/modprobe.conf sledeca dva reda:
alias /dev/536ep0 Intel536
alias /dev/modem Intel536
5) Izvrsiti sledece komande
killall -HUP devfsd
depmod -a
Ovim je zavrseno izbacivanje drajvera.
Ukoliko modem i dalje ne radi i ukoliko imate instaliranu lan karticu, onda je moguce da postoji konflikt izmedu modema i lan kartice. U mom slucaju ja sam morao da iskljucim lan karticu u biosu da bi mogao da koristim modem.
By Li-Nux, linuxo.org
|