2.6커널 에서 WinModem모듈 등록할려고 2.4커널 컴파일 하는 도중에...
MW560LT Agere systems LT WinModem을 리눅스에서 테스트 할 일이 생겼습니다.
그래서 컴파일 해서 올리려고 보니
2.4.18까지만 정상동작 한다고 되어있더라구요. 그래서 2.4.18을 컴파일해서 올려보려고
다운받았습니다.
이제 이걸 컴파일하기 위해
일반적인 커널 컴파일 방법을 사용했을때
ln -s /linux-version/ /usr/src/linux
make mrproper
make menuconfig
까지 완료하고
make dep 를 수행하게 되면
Fedora core 6 에서는 genksyms가 없다고 나와서 2.6.20-1.2952.fc6버전
커널 소스를 받아서 컴파일 한 다음 /sbin 에 넣어주고 다시 실행하면
옵션 메세지가 출력되길래 확인해보니 옵션이 다르더군요.
2.6.20-1.2952.fc6 에 들어있는 건 genksyms version 2.5.60 이었고,
구글신에게 여쭈어보니 나오는 건
genksyms [-wq] [-dD] [-V] [-k version] [-p string] [output directory]
다음과 같은 옵션인 걸로 봐서는 커널 버전이 달라지면서 모듈 유틸로 바뀐 것으로 보고
2.4.18에 들어있는 genksyms를 사용하여 진행하였습니다. 옵션도 위와 같아서 올바른 파일로 봤습니다.
몇몇 파일이 없다고 나오는거 말고는 잘되더군요.ㅡㅡㅋ
이제 이미지를 생성하기 위해 make bzImage를 실행하면 다음과 같은 에러가 뜹니다.
---
/usr/src/kernels/linux-2.4.18/include/linux/smp.h:29: error: conflicting types for ‘smp_send_reschedule’
/usr/src/kernels/linux-2.4.18/include/asm/smp.h:65: error: previous declaration of ‘smp_send_reschedule’ was here
..
make: *** [init/main.o] 오류 1
---
에러 메세지를 보아하니, 헤더 파일을 두번 포함했다는거 같은데...(위 에러는 검색하니 나오는군요:))
커널 소스라 함부로 손을 못 대겠네요...oTL
www.kernel.org에서 다운받았는데, 제가 뭘 손봐야 할까요..
modutils-2.4.18 은 바이너리 패키지를 받아서, genksyms만 지정해놓고 썻습니다.
혹시나 싶어 init/main.c, include/linux/smp.h, include/asm/smp.h를 같이 올려봅니다.
.....파일 첨부가 안되는군요...oTL
해서 해당 부분...
init/main.c line 68-70 #ifdef CONFIG_X86_LOCAL_APIC #include <asm/smp.h> #endif
include/linux/smp.h line 25 /* * sends a 'reschedule' event to another CPU: */ extern void FASTCALL(smp_send_reschedule(int cpu));
include/asm/smp.h line 65
extern void smp_send_reschedule(int cpu);

당연히 안 되죠. 2.6
당연히 안 되죠. 2.6 커널과 2.4 커널은 구조가 다릅니다.
그리고 소프트웨어 모뎀은 대부분 배포판에서 패키지를 제공할 거 같은데요? fedora 6 winmodem 같은 키워드로 검색하세요.
추가: http://www.linmodems.org/ 사이트에 있는 scanModem 도구를 사용하면 도움을 줄 수 있습니다.
---- 절취선 ----
http://blog.peremen.name
답변 감사드립니다.
열심히 찾고 있습니다만, 2.6커널에서 사용가능한 것은 찾지를 못하였습니다.
제가 능력이 부족한 것인지...-0-
그래서 일단 scanmodem, lspci -vv, dmesg | grep tty, lshw결과값 올립니다.
[root@creature ltmodem-8.31a10]# ./scanmodem UPDATE=2004_Nov_26 TMPM=/dev/shm/0tmpfile Providing detail for device at PCI_bus 02:0b.0 with vendor-ID:device-ID ----:---- Class 0780: 11c1:044e Communication controller: Agere Systems LT WinModem (rev 01) SubSystem 155d:1003 Mac System Co Ltd Unknown device 1003 02:0b.0 0780: 11c1:044e (rev 01) Flags: bus master, medium devsel, latency 0, IRQ 11 Memory at f5000400 (32-bit, non-prefetchable) [=256] I/O ports at 2480 [=8] -----PCI_IDs------- --CompilerVer- Feature List: Primary Subsystem Distr KernelVer kernel default CPU ./scanModem test 11c1:044e 155d:1003 redhat 2.6.20-1.2952.fc6 4.1.1 4.1.1 i686 IDENT=AGERE PCIDEV=11c1:044e Vendor=11c1 The modem has a supported Lucent/Agere DSP (digital signal processing) chipset with primary PCI_ID: 11c1:044e DSP=1lspci -vv 02:0b.0 Communication controller: Agere Systems LT WinModem (rev 01) Subsystem: Mac System Co Ltd Unknown device 1003 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 (63000ns min, 3500ns max) Interrupt: pin A routed to IRQ 11 Region 0: Memory at f5000400 (32-bit, non-prefetchable) [=256] Region 1: I/O ports at 2480 [=8] Region 2: I/O ports at 2000 [=256] Capabilities: [f8] Power Management version 2 Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=0mA PME(D0-,D1-,D2+,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME-lshw *-pci:1 description: PCI bridge product: 82801 PCI Bridge vendor: Intel Corporation physical id: 1e bus info: pci@0000:00:1e.0 version: 05 width: 32 bits clock: 33MHz capabilities: pci normal_decode bus_master *-network description: Ethernet interface product: 3c905B 100BaseTX [Cyclone] vendor: 3Com Corporation physical id: a bus info: pci@0000:02:0a.0 logical name: eth0 version: 64 serial: 00:10:5a:84:52:f9 size: 100MB/s capacity: 100MB/s width: 32 bits clock: 33MHz capabilities: pm bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=3c59x duplex=full ip=192.168.0.130 latency=80 link=yes maxlatency=10 mingnt=10 module=3c59x multicast=yes port=MII speed=100MB/s *-communication UNCLAIMED description: Communication controller product: LT WinModem vendor: Agere Systems physical id: b bus info: pci@0000:02:0b.0 version: 01 width: 32 bits clock: 33MHz capabilities: pm bus_master cap_list configuration: latency=0 maxlatency=14 mingnt=252보아하니 인식은 하고 있는거 같습니다.
wvdial 설정을 /dev/tty 하나씩 시도해보고는 있습니다만..
아직 안 보이는군요...oTL
추가: wvdialconf /etc/wvdial.conf 로 모뎀 포트를 찾아주는군요.
근데 결과는...oTL
자답이 되었습니다만..
http://linmodems.technion.ac.il/packages/ltmodem/kernel-2.6/
2.6커널용 드라이버가 있었네요..왜 못 찾았었는지;;
일단 저걸로 시도해봐야겠습니다.
그럼 ㅌㅌ
댓글 달기