Winmodem 모듈 등록시 궁금한 것이 있습니다.

0
points

이전에 http://kldp.org/node/83291 와 같은 글타래를 올린 적 있습니다.

드라이버를 찾아서 컴파일 시도를 하였지만 알 수 없는 버그가 나오더군요:(

그래서 검색을 해 보니 우분투 포럼에서는 이미 사용자 수준의 패치가 나와있었습니다.

동일한 범위의 Device ID를 사용하고, 메인테이너도 같아서

패치가 적용된 파일을 받아 컴파일하여 등록까지 무사히 마쳤습니다.

패치 내용

patchltmodem

diff -Nru ltmodem-2.6-alk-8.orig/lt_modem.c ltmodem-2.6-alk-8/lt_modem.c

--- ltmodem-2.6-alk-8.orig/lt_modem.c 2005-12-12 03:18:55.000000000 +0200

+++ ltmodem-2.6-alk-8/lt_modem.c 2006-04-19 21:43:32.142640500 +0300

@@ -120,14 +120,14 @@

static int vendor_id = 0;

static int device_id = 0;



-MODULE_PARM(vendor_id, "i");

+module_param(vendor_id, int, 0);

MODULE_PARM_DESC(vendor_id, "Vendor ID of the Lucent Modem e.g. vendor_id=0x11c1");

-MODULE_PARM(device_id, "i");

+module_param(device_id, int, 0);

MODULE_PARM_DESC(device_id, "Device ID of the Lucent Modem e.g. device_id=0x0440");



static int Forced[4] = {-1,-1,-1,0};



-MODULE_PARM(Forced, "4i");

+module_param_array(Forced, int, NULL, 0);

MODULE_PARM_DESC(Forced, "Forced Irq,BaseAddress,ComAddress[,NoDetect] of the Lucent Modem e.g. Forced=3,0x130,0x2f8");



static

diff -Nru ltmodem-2.6-alk-8.orig/serial.c ltmodem-2.6-alk-8/serial.c

--- ltmodem-2.6-alk-8.orig/serial.c 2005-12-12 03:07:17.000000000 +0200

+++ ltmodem-2.6-alk-8/serial.c 2006-09-21 21:53:08.055717500 +0300

@@ -732,7 +732,9 @@

.devfs_name = "tts/LT",

.dev_name = "ttyLT",

#else

+# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18))

.devfs_name = "tts/LTM",

+# endif

.dev_name = "ttyLTM",

#endif

.major = 62,

그런데 minicom에서 장치 설정 후 들어가게 되면 시스템이 먹통이 되네요:(

바로 < minicom > 으로 실행해도 그렇고, < minicom -s > 로 설정 후 를 해도 마찬가지입니다.ㅜㅜ

minicom 설정 (다른 부분은 변경하지 않았습니다.)

Serial port setup

A - Serial Device           : /dev/modem
B - Lockfile Location      : /var/lock
C - Callin Program         
D - Callout Program
E - Bps/Par/Bits            : 1200 8N1
F - Hardware Flow Control : Yes
G - Software Flow Control : No

사용한 환경은 다음과 같습니다.
Kernel ver: 2.6.20-1.2952.fc6

모듈 등록 절차

mknod --mode=0660 /dev/ttyLTM0 c 62 64
change owner and group owner to match /dev/ttyS0
ln -s /dev/ttyLTM0 /dev/modem
make
cp *.ko /lib/modules/`uname -r`/serial
depmod -a

modprobe.conf 에 추가한 내용

alias /dev/modem ltserial
alias char-major-62 ltserial
alias /dev/ttyLTM0 ltserial

lsmod 결과

ltserial   15024    0
ltmodem    560720   1    ltserial

자답입니다만...

0
points

커널 2.6.12 이후 버전용 드라이버는

http://linmodems.technion.ac.il/packages/ltmodem/kernel-2.6/martian

여기에 올라와있더군요...:)

그중 최신 버전인 martian-full-20061203.tar.gz 로 하니 잘되었습니다.

참고로,

kmodule디렉토리로 가서

make modules
make install

해주셔야 모듈이 설치됩니다.

부팅시마다 자동으로 모듈을 등록하려면

scripts디렉토리에서 'automate.sh를 실행해 주시면' 됩니다.

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.