윈도우에서 USB 랜카드로 네트워크 공유하여 사용하였었는데
우분투에서 하려니 기존 USB 랜카드가 지원을 안하는거 같네요.
칩셋은 ADM8515인테 아무리 찾아봐도 윈도우 드라이버만 있는거 같네요.
혹시 드라이버 있거나 받을 곳 알려주시면 감사하고요.
아니면 우분투에서 사용할 수 있는 USB 랜카드 좀 알려주세요.
usb 랜카드를 뽑았다가 다시 연결한뒤
tail -20 /var/log/messages
lsusb
한 결과를 올려 주세요
tail -20 /var/log/messages
Nov 18 17:32:00 dynamic-desktop kernel: [ 9.605457] hda_codec: Unknown model for ALC662 rev1, trying auto-probe from BIOS…
Nov 18 17:32:00 dynamic-desktop kernel: [ 9.606806] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input4
Nov 18 17:32:01 dynamic-desktop kernel: [ 10.266098] lp: driver loaded but no devices found
Nov 18 17:32:02 dynamic-desktop kernel: [ 11.137350] parport_pc 00:07: reported by Plug and Play ACPI
Nov 18 17:32:02 dynamic-desktop kernel: [ 11.137415] parport0: PC-style at 0x378 (0x778), irq 7, using FIFO [PCSPP,TRISTATE,COMPAT,ECP]
Nov 18 17:32:02 dynamic-desktop kernel: [ 11.140722] intel_rng: Firmware space is locked read-only. If you can’t or
Nov 18 17:32:02 dynamic-desktop kernel: [ 11.140728] intel_rng: don’t want to disable this in firmware setup, and if
Nov 18 17:32:02 dynamic-desktop kernel: [ 11.140733] intel_rng: you are certain that your system has a functional
Nov 18 17:32:02 dynamic-desktop kernel: [ 11.140737] intel_rng: RNG, try using the ‘no_fwh_detect’ option.
Nov 18 17:32:02 dynamic-desktop kernel: [ 11.149632] ppdev: user-space parallel port driver
Nov 18 17:32:02 dynamic-desktop kernel: [ 11.232371] lp0: using parport0 (interrupt-driven).
Nov 18 17:32:05 dynamic-desktop kernel: [ 14.369766] r8169: eth0: link down
Nov 18 17:32:05 dynamic-desktop kernel: [ 14.370188] ADDRCONF(NETDEV_UP): eth0: link is not ready
Nov 18 17:32:07 dynamic-desktop kernel: [ 16.174460] input: ImPS/2 Generic Wheel Mouse as /devices/platform/i8042/serio1/input/input5
Nov 18 17:33:16 dynamic-desktop kernel: [ 84.772024] usb 3-1: new full speed USB device using uhci_hcd and address 2
Nov 18 17:33:16 dynamic-desktop kernel: [ 84.962198] usb 3-1: configuration #1 chosen from 1 choice
Nov 18 17:33:16 dynamic-desktop kernel: [ 85.123670] eth1: register ‘dm9601’ at usb-0000:00:1d.1-1, Davicom DM9601 USB Ethernet, 00:10:16:48:d7:b4
Nov 18 17:33:16 dynamic-desktop kernel: [ 85.123737] usbcore: registered new interface driver dm9601
Nov 18 17:33:16 dynamic-desktop kernel: [ 85.179019] eth1: link down
Nov 18 17:33:16 dynamic-desktop kernel: [ 85.194499] ADDRCONF(NETDEV_UP): eth1: link is not ready
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 0fe6:8101
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
말씀하신대로 확인한 결과입니다.
님의 상황은 아주 복잡하군요.
올려주신 /var/log/messages 내용으로 볼때는
Davicom DM9601 USB 10/100 Ethernet 칩셋으로 보이니
lsusb 했을때 usb id값이 0x0a46, 0x9601로 나와야합니다.
하지만 윈도우즈에서 잘 썼다고 하시고 usb랜카드를 ADMtek ADM8515 USB NIC 로 알고 계시네요.
만약 ADM8515 라면 lsusb 했을때 usb id값이 0x0a46, 0x8515로 나와야합니다.
그런데 실제는 lsusb 했을때 usb id값이 [b:8m8ytp7x]0x0fe6, 0x8101[/b:8m8ytp7x]로 나왔죠.
정확하게 님의 카드는 알수없는 usb id값을 가진 DM9601 칩셋이라 할수 있습니다.
최신 git 커널에서는 드라이버 dm9601 에 0x0fe6, 0x8101 를 처리할수 있게
코드가 추가되어 있습니다.
drivers/net/usb/dm9601.c
[code:8m8ytp7x]static const struct usb_device_id products[] = {
{
USB_DEVICE(0x07aa, 0x9601), /* Corega FEther USB-TXC /
.driver_info = (unsigned long)&dm9601_info,
},
{
USB_DEVICE(0x0a46, 0x9601), / Davicom USB-100 /
.driver_info = (unsigned long)&dm9601_info,
},
{
USB_DEVICE(0x0a46, 0x6688), / ZT6688 USB NIC /
.driver_info = (unsigned long)&dm9601_info,
},
{
USB_DEVICE(0x0a46, 0x0268), / ShanTou ST268 USB NIC /
.driver_info = (unsigned long)&dm9601_info,
},
{
USB_DEVICE(0x0a46, 0x8515), / ADMtek ADM8515 USB NIC /
.driver_info = (unsigned long)&dm9601_info,
},
{
USB_DEVICE(0x0a47, 0x9601), / Hirose USB-100 /
.driver_info = (unsigned long)&dm9601_info,
},
{
USB_DEVICE(0x0fe6, 0x8101), / DM9601 USB to Fast Ethernet Adapter /
.driver_info = (unsigned long)&dm9601_info,
},
{
USB_DEVICE(0x0a46, 0x9000), / DM9000E */
.driver_info = (unsigned long)&dm9601_info,
},
{}, // END
};[/code:8m8ytp7x]
따라서 가장 좋은 해결책은 git으로 커널 소스를 받아서
직접 커널 컴파일 해주는 겁니다.
그렇지만 랜카드 드라이버 하나 컴파일하자고 전체 커널을 빌드하는것도 귀찮은게
사실이니 드라이버만 컴파일하면 간편합니다.
일단 드라이버 빌드에 필요한 파일은 먼저 설치하세요
[b:8m8ytp7x]sudo apt-get install build-essential linux-headers-$(uname -r)[/b:8m8ytp7x]
그 다음 davicom 홈페이지(http://www.davicom.com.tw/page1.aspx?no=209814)로 가셔서
리눅스용 최신 드라이버(http://www.meworks.net/userfile/24247/d … x2.6_1.tar)를
다운로드해서 압축 풀고
tar xvf dm9601-Linux2.6_1.tar
cd dm9601-Linux2.6_1/dm9601
dm9601.h 파일을 열고 line 208로가서 아래처럼 추가해줍니다.
gedit dm9601.h
[code:8m8ytp7x]DM9601_DEV( "Unknown USB Ethernet", 0x0fe6, 0x8101,
DEFAULT_GPIO_RESET )[/code:8m8ytp7x]
저장한뒤 드라이버를 컴파일합니다.
[b:8m8ytp7x]make[/b:8m8ytp7x]
잘 컴파일됐으면 usb 랜카드를 뺐다가 다시 연결한뒤
[b:8m8ytp7x]sudo insmod dm9601.ko
sudo ifconfig eth1 up
[/b:8m8ytp7x]
해서 넷웍이 되나 테스트한후 잘되면
sudo make install
sudo gedit /etc/modules
해서 dm9601 을 써 넣어줍니다.
리붓해서 되면 정말 끝이죠.
reandr 님 계속 친절한 답변 감사합니다.
알려주신대로 하다 컴파일에서 에러가 나는데 해결 방법을 모르겠네요.
dm9601.h 수정후 make 한 결과입니다.
make
make -C /lib/modules/2.6.31-14-generic/build M=/home/dynamic/dm9601
make[1]: Entering directory /usr/src/linux-headers-2.6.31-14-generic' CC [M] /home/dynamic/dm9601/dm9601.o /home/dynamic/dm9601/dm9601.c: In function ‘ctrl_callback’: /home/dynamic/dm9601/dm9601.c:166: error: implicit declaration of function ‘warn’ /home/dynamic/dm9601/dm9601.c: In function ‘write_bulk_callback’: /home/dynamic/dm9601/dm9601.c:527: error: implicit declaration of function ‘info’ /home/dynamic/dm9601/dm9601.c: In function ‘dm9601_tx_timeout’: /home/dynamic/dm9601/dm9601.c:599: error: ‘struct net_device’ has no member named ‘priv’ /home/dynamic/dm9601/dm9601.c: In function ‘dm9601_start_xmit’: /home/dynamic/dm9601/dm9601.c:615: error: ‘struct net_device’ has no member named ‘priv’ /home/dynamic/dm9601/dm9601.c: In function ‘dm9601_netdev_stats’: /home/dynamic/dm9601/dm9601.c:656: error: ‘struct net_device’ has no member named ‘priv’ /home/dynamic/dm9601/dm9601.c: In function ‘init_dm9601’: /home/dynamic/dm9601/dm9601.c:784: error: ‘struct net_device’ has no member named ‘priv’ /home/dynamic/dm9601/dm9601.c: In function ‘dm9601_open’: /home/dynamic/dm9601/dm9601.c:824: error: ‘struct net_device’ has no member named ‘priv’ /home/dynamic/dm9601/dm9601.c: In function ‘dm9601_close’: /home/dynamic/dm9601/dm9601.c:864: error: ‘struct net_device’ has no member named ‘priv’ /home/dynamic/dm9601/dm9601.c: In function ‘dm9601_ioctl’: /home/dynamic/dm9601/dm9601.c:897: error: ‘struct net_device’ has no member named ‘priv’ /home/dynamic/dm9601/dm9601.c: In function ‘dm9601_set_multicast’: /home/dynamic/dm9601/dm9601.c:933: error: ‘struct net_device’ has no member named ‘priv’ /home/dynamic/dm9601/dm9601.c: In function ‘dm9601_probe’: /home/dynamic/dm9601/dm9601.c:1017: error: ‘struct net_device’ has no member named ‘priv’ /home/dynamic/dm9601/dm9601.c:1018: error: ‘struct net_device’ has no member named ‘open’ /home/dynamic/dm9601/dm9601.c:1019: error: ‘struct net_device’ has no member named ‘stop’ /home/dynamic/dm9601/dm9601.c:1021: error: ‘struct net_device’ has no member named ‘tx_timeout’ /home/dynamic/dm9601/dm9601.c:1022: error: ‘struct net_device’ has no member named ‘do_ioctl’ /home/dynamic/dm9601/dm9601.c:1023: error: ‘struct net_device’ has no member named ‘hard_start_xmit’ /home/dynamic/dm9601/dm9601.c:1024: error: ‘struct net_device’ has no member named ‘set_multicast_list’ /home/dynamic/dm9601/dm9601.c:1025: error: ‘struct net_device’ has no member named ‘get_stats’ make[2]: *** [/home/dynamic/dm9601/dm9601.o] 오류 1 make[1]: *** [_module_/home/dynamic/dm9601] 오류 2 make[1]: Leaving directory
/usr/src/linux-headers-2.6.31-14-generic’
make: *** [default] 오류 2
함수선언이 안되어 있고 구조체에 멤버가 없다는 건 알겠는데 dm9601.c를 열어봐도
잘 모르겠어서 수정 방법을 알려 주셨으면 해서 다시 질문드립니다.
몇날 며칠 그걸로 고생하지 마시고요…
현재 안 되는 USB 랜카드를 중고로 팔고
잘 알아봐서 제대로 되는 놈을 새로 구입하세요.
삽질하는 시간에 알바를 뛰면 USB 랜카드 사고도 돈이 남을 거에요.
회사에서 윈도우로 사용하던건데 이번에 OS를 우분투로 바꾸려고 하거든요
이미 쓰던 USB 랜카드가 30~40개나 있어요…-_-;;
해보다가 안되면 바꿀 생각은 있긴하나 하는데까지 해봐야죠 ㅋ
그리고 혹시 우분투에서 사용할 수 있는 USB 랜카드 알고계심 알려주세요.
리눅스 지원하는건 잘 안보이더라고요.
사용하시고 있는 커널이 2.6.31-14 이었습니까?
2.6.31-14 커널은 이미 0x0fe6, 0x8101에 대한 처리가 되어 있습니다.
sudo ifconfig eth1 down
sudo ifconfig eth1 up
sudo ethtool eth1
해서 되는지 테스트 해보세요.
또 작동하더라도 현재의 dm9601드라이버는
USB1.1 interface 라서
속도는 12Mbit 를 넘지 못합니다.
속도가 중요하다면 USB 2.0을 지원하는 다른 카드를 찾아 보세요.