Iwl3945 모듈에 버그가 있다고 해서 ipw3945 드라이버를 설치중인데

우선 제 환경은 우분투 9.10 버전입니다.

iwl3945 모듈에 버그가 있다고 하네요
인터넷 접속이 끊기고,네트워크가 먹통이 되고 하는게 자주 발생한다고
또 throughput rx에서 100킬로 제한이있다고

그래서 ipw3945 드라이버를 설치중인데 아래 주소는 제가 설치했던 방법입니다.
(아직 불완전해서 비공개였는데 질문하려고 공개로 바꿨어요)

http://blog.foxb.kr/92

그런대 결정적으로 재부팅후 무선랜이 잡히질 않습니다
무엇이 잘못된걸까요?

참고로 9.10에서 컴파일이 안되어 나름대로 패치했는데 이게 문제일까요?

우선 ieee80211_module.c 파일을 열어 다음과 같이 수정합니다.
134 Line: add –
static struct net_device_ops interceptor_netdev_ops = {
.ndo_start_xmit = ieee80211_xmit,
.ndo_change_mtu = ieee80211_change_mtu,
.ndo_get_stats = ieee80211_generic_get_stats,
};

157 Line: delete –
// dev->hard_start_xmit = ieee80211_xmit;
// dev->change_mtu = ieee80211_change_mtu;
// dev->get_stats = ieee80211_generic_get_stats;

157 Line: add –
dev->netdev_ops = &interceptor_netdev_ops;

다음은 ipw3945.c 파일을 열어 다음과 같이 수정합니다.
16397 Line: add –
static struct net_device_ops interceptor_netdev_ops = {
.ndo_open = ipw_net_open,
.ndo_stop = ipw_net_stop,
.ndo_do_ioctl = ipw_ioctl,
.ndo_get_stats = ipw_net_get_stats,
.ndo_set_mac_address = ipw_net_set_mac_address,
};

16621 Line: delete –
// net_dev->open = ipw_net_open;
// net_dev->stop = ipw_net_stop;
// net_dev->do_ioctl = ipw_ioctl;
// net_dev->get_stats = ipw_net_get_stats;
// net_dev->set_mac_address = ipw_net_set_mac_address;

16621 Line: add –
net_dev->netdev_ops = &interceptor_netdev_ops;

마지막으로 ipw3945.h 파일을 열어 다음과 같이 수정합니다.
59 Line: delete –
// typedef void irqreturn_t;

위 패치가 일년도 넘은 것인데 위 패치를 커널또는 우분투 펌웨어 드라이버에서 받아 들였는지 알아 보시고
우선은 우분투가 제공 하는 커널과 펌웨어 드라이버로 잡아 보시기 바랍니다.

2007년 봄에 HDTV 보려고 커널 패치하여 컴파일 해서 성공 했습니다.
7.10 나오니 커널이 그냥 잡아 주더군요 ;)

해결했어요^^
같은 문제로 고생하시는분을 위해…

http://blog.foxb.kr/189