Титла: Realtek8139d Публикувано от: rover65 в Nov 18, 2006, 16:23 Здравейте!
Инсталирах SuSE 10.1, но не мога да инсталирам Лан картата - Realtek 8139D. В дискетата, която върви с картата има драйвери за Линукс, изпълнявам инструкциите за инсталиране - tar xvzf ........; make и ми изписва следната грешка: Makefile:37: ***Linux kernel source not configured - missing config.h. Stop. След команда lspci : 02:05.0 Ethernrt controller: Unknown device 1904:8139 (rev 01) Титла: Realtek8139d Публикувано от: neonic в Nov 18, 2006, 16:33 Това ознава, че не ти е инсталиран kernel-soruce - a. Инсталирай го, след което не би трябвало да ти дава тези проблеми.
По - добре е да пуснеш 8139too, вместо 8139cp, тъй като първият работи по - стабилно, ако може така да се каже. П.п. В самото ядро би трябвало да има компилирани тези драйвери, така, че мисля дискетата няма да ти е нужна. Титла: Realtek8139d Публикувано от: rover65 в Nov 18, 2006, 17:22 Първоначално като стартирах "маке" ми изписа, че нямам инсталиран кернел-сорс, след което го инсталирах и тогава ми даде тази грешка - "Makefile:37: ***Linux kernel source not configured - missing config.h. Stop." Освен ако освен кернел-сорс трябва да инсталрам още нещо.
![]() Титла: Realtek8139d Публикувано от: senser в Nov 18, 2006, 17:53 Освен да инсталираш сорса на ядрото трябва и да го конфигурираш:
влизаш в директорията, където си го инсталирал (най вероятно /usr/src/linux) и изпълняваш "make menuconfig" Титла: Realtek8139d Публикувано от: rover65 в Nov 18, 2006, 18:30 А можете ли по-точно какво трябва да настройвам в кернела - последния път слеd опит за компилиране стигнах до "kernel panic..."
![]() P.S. Пропуснах да кажа, че се опитах да инсталирам Debian 3.1 и също не можа да ми опознае картата, но там е обяснимо (според мен де) - кернела е 2.4.27.... Титла: Realtek8139d Публикувано от: senser в Nov 18, 2006, 18:49 ако си решил да инсталираш драйвера от дискетата (което не е много добре според мен при положение че си има такъв в кернела) не е нужно да компилираш кернела а само да го конфигурираш - какво точно би трябвало да пише в инструкциите идващи с драйвера
я виж дали имаш файла /proc/confi.gz за да помогнем евентуално с инсталирането на нов кернел Титла: Realtek8139d Публикувано от: gat3way в Nov 18, 2006, 19:15 Това нещо и аз наскоро го установих - с ядра >= 2.6.18
Дължи се на фактът че при тях вече не съществува такъв include файл. (include/linux/config.h) Какво може да се направи по въпроса? Ако не те е страх да бърникаш в сорса на неща които се изпълняват в kernelspace (промяната е абсолютно нищожна, лесна и безболезнена) правиш следното: отваряш сорс-а на модула, който ще се компилира (предполагам се казва нещо от сорта на rtl8139.c или 8139too.c или нещо от сорта). Заменяш #include <linux/config.h> c #include <linux/autoconf.h> Копираш Makefile като Makefile.backup и си правиш собствен такъв от сорта на:
Викаш make, ако не се разпищи за грешки копираш rtl8139.ko в /lib/modules/`uname -r`/kernel/drivers/net . Викаш depmod после modprobe rtl8139 и си готов. Титла: Realtek8139d Публикувано от: rover65 в Nov 18, 2006, 20:27
Файла се казва "sc92031.c" и в него замених #include <linux/config.h> c #include <linux/autoconf.h> Но това с Makefile ми дойде множко....Нищо не разбирам от С ! Ако може стъпка по стъпка... ![]() А ето част от config.gz: # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y CONFIG_MII=m CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m CONFIG_CASSINI=m CONFIG_NET_VENDOR_3COM=y CONFIG_EL1=m CONFIG_EL2=m CONFIG_ELPLUS=m CONFIG_EL16=m CONFIG_EL3=m CONFIG_3C515=m CONFIG_VORTEX=m CONFIG_TYPHOON=m CONFIG_LANCE=m CONFIG_NET_VENDOR_SMC=y CONFIG_WD80x3=m CONFIG_ULTRA=m CONFIG_SMC9194=m CONFIG_NET_VENDOR_RACAL=y CONFIG_NI52=m CONFIG_NI65=m # # Tulip family network device support # CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_TULIP=m # CONFIG_TULIP_MWI is not set # CONFIG_TULIP_MMIO is not set CONFIG_TULIP_NAPI=y CONFIG_TULIP_NAPI_HW_MITIGATION=y CONFIG_DE4X5=m CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m CONFIG_AT1700=m CONFIG_DEPCA=m CONFIG_HP100=m CONFIG_NET_ISA=y CONFIG_E2100=m CONFIG_EWRK3=m CONFIG_EEXPRESS=m CONFIG_EEXPRESS_PRO=m CONFIG_HPLAN_PLUS=m CONFIG_HPLAN=m CONFIG_LP486E=m CONFIG_ETH16I=m CONFIG_NE2000=m CONFIG_ZNET=m CONFIG_SEEQ8005=m CONFIG_NET_PCI=y CONFIG_PCNET32=m CONFIG_AMD8111_ETH=m # CONFIG_AMD8111E_NAPI is not set CONFIG_ADAPTEC_STARFIRE=m CONFIG_ADAPTEC_STARFIRE_NAPI=y CONFIG_AC3200=m CONFIG_APRICOT=m CONFIG_B44=m CONFIG_FORCEDETH=m CONFIG_CS89x0=m CONFIG_DGRS=m CONFIG_EEPRO100=m CONFIG_E100=m CONFIG_FEALNX=m CONFIG_NATSEMI=m CONFIG_NE2K_PCI=m CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set # CONFIG_8139TOO_TUNE_TWISTER is not set CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_SIS900=m CONFIG_EPIC100=m CONFIG_SUNDANCE=m # CONFIG_SUNDANCE_MMIO is not set CONFIG_TLAN=m CONFIG_VIA_RHINE=m # CONFIG_VIA_RHINE_MMIO is not set CONFIG_NET_POCKET=y CONFIG_ATP=m CONFIG_DE600=m CONFIG_DE620=m Ако не върши работа, после ще поставя целия... Титла: Realtek8139d Публикувано от: gat3way в Nov 19, 2006, 01:22 А...това 2.4 ядро...
Хм, значи предполагам нямаш пакета kernel-headers за твоята версия на ядрото. Титла: Realtek8139d Публикувано от: gat3way в Nov 19, 2006, 01:27 apt-get install kernel-heafers ?
Титла: Realtek8139d Публикувано от: kamos в Nov 19, 2006, 07:43 Защо не опиташ пъро през YAST да конфигурираш мрежовата карта?
Титла: Realtek8139d Публикувано от: rover65 в Nov 19, 2006, 17:10 През Яста не става нищо, пробвал съм.
gat3way - Сорса на модула е sc92031.c и в него замених #include <linux/config.h> c #include <linux/autoconf.h>. Заместих оргиналния файл с променения. И до тук. Има един Makefile, но не разбрах какво трябва да направя с него(нищо не разбирам от програмиране на С). Ето и съдържанието на Makefile: # Driver files SRC = sc92031.c TARGET = sc92031.o # Kernel Search Path KSP := /lib/modules/$(shell uname -r)/build \ /usr/src/linux-$(shell uname -r) \ /usr/src/linux-$(shell uname -r | sed 's/-.*//' ![]() /usr/src/kernel-headers-$(shell uname -r) \ /usr/src/kernel-source-$(shell uname -r) \ /usr/src/linux-$(shell uname -r | sed 's/\([0-9]*\.[0-9]*\ ![]() ![]() /usr/src/linux # prune the list down to only values that exist # and have an include/linux sub-directory test_dir = $(shell [ -e $(dir)/include/linux ] && echo $(dir)) KSP := $(foreach dir, $(KSP), $(test_dir)) # use this first valid entry in the search path KSRC := $(firstword $(KSP)) # if Linux kernel source is set up? ifeq (,$(KSRC)) $(error Linux kernel source not found) endif SRCDIR := $(KSRC)/drivers/net VERSION_FILE := $(KSRC)/include/linux/version.h CONFIG_FILE := $(KSRC)/include/linux/config.h ifeq (,$(wildcard $(VERSION_FILE))) $(error Linux kernel source not configured - missing version.h) endif ifeq (,$(wildcard $(CONFIG_FILE))) $(error Linux kernel source not configured - missing config.h) endif # pick a compiler ifneq (,$(findstring egcs-2.91.66, $(shell cat /proc/version))) CC := kgcc gcc cc else CC := gcc cc endif test_cc = $(shell which $(cc) > /dev/null 2>&1 && echo $(cc)) CC := $(foreach cc, $(CC), $(test_cc)) CC := $(firstword $(CC)) # standard flags for module builds CFLAGS += -Wall -DLINUX -D -DMODULE -DEXPORT_SYMTAB -D -O2 -pipe CFLAGS += -I$(KSRC)/include -I. -Wstrict-prototypes -fomit-frame-pointer CFLAGS += $(shell [ -f $(KSRC)/include/linux/modversions.h ] && \ echo "-DMODVERSIONS -include $(KSRC)/include/linux/modversions.h") # get the kernel version KVER := $(shell $(CC) $(CFLAGS) -E -dM $(VERSION_FILE) | grep UTS_RELEASE | \ awk '{ print $$3 }' | sed 's/\"//g' ![]() ifneq ($(KVER),$(shell uname -r)) $(warning ***) $(warning *** Warning: kernel source version ($(KVER))) $(warning *** does not match running kernel ($(shell uname -r))) $(warning *** Continuing with build,) $(warning *** resulting driver may not be what you want) $(warning ***) endif # pick an appropriate install path ifneq (,$(wildcard /lib/modules/$(KVER)/kernel)) INSTDIR := /lib/modules/$(KVER)/kernel/drivers/net else INSTDIR := /lib/modules/$(KVER)/net endif # look for SMP in config.h SMP := $(shell $(CC) $(CFLAGS) -E -dM $(CONFIG_FILE) | \ grep CONFIG_SMP | awk '{ print $$3 }' ![]() ifneq ($(SMP),1) SMP := 0 endif ifneq ($(SMP),$(shell uname -a | grep SMP > /dev/null 2>&1 && echo 1 || echo 0)) $(warning ***) ifeq ($(SMP),1) $(warning *** Warning: kernel source configuration (SMP)) $(warning *** does not match running kernel (UP)) else $(warning *** Warning: kernel source configuration (UP)) $(warning *** does not match running kernel (SMP)) endif $(warning *** Continuing with build,) $(warning *** resulting driver may not be what you want) $(warning ***) endif ifeq ($(SMP), 1) CFLAGS += -D endif #enable or disable debug DEBUG = n ifeq ($(DEBUG),y) CFLAGS += -g -DSILAN_DEBUG -DSILAN_NDEBUG endif .SILENT: $(TARGET) clean $(TARGET): echo echo "*****************************" echo " $(TARGET) built for $(KVER)" echo -n " SMP " if [ "$(SMP)" = "1" ];\ then echo "Enabled ";\ else echo "Disabled";\ fi echo "*****************************" echo $(CC) $(CFLAGS) -c $(SRC) install: $(SRC) $(TARGET) mkdir -p $(MOD_ROOT)$(SRCDIR) install -m 644 -o root $(SRC) $(MOD_ROOT)$(SRCDIR) mkdir -p $(MOD_ROOT)$(INSTDIR) install -m 644 -o root $(TARGET) $(MOD_ROOT)$(INSTDIR) ifeq (,$(MOD_ROOT)) /sbin/depmod -a || true else /sbin/depmod -b $(MOD_ROOT) -a || true endif uninstall: if [ -e $(INSTDIR)/$(TARGET) ]; then \ rm -f $(INSTDIR)/$(TARGET);\ fi if [ -e $(SRCDIR)/$(SRC) ]; then \ rm -f $(SRCDIR)/$(SRC);\ fi /sbin/depmod -a clean: rm -f $(TARGET) *~ Титла: Realtek8139d Публикувано от: senser в Nov 19, 2006, 18:44 изпълни "make" в директорията на Makefile-a
Титла: Realtek8139d Публикувано от: rover65 в Nov 19, 2006, 19:09 В директорията в която съм разархивирал драйвера за картата (sl_linux.tgz) при изпълнение на "make" ми дава следната грешка:
Makefile:37: ***Linux kernel source not configured - missing config.h. Stop. Титла: Realtek8139d Публикувано от: plamen_f в Nov 19, 2006, 22:45 Освен ако не се бориш за спорта - мислйа че ще тие по-лесно да смениш това 8139D
![]() За моя радост като гледам аз съм 8139С и такива проблеми просто нямам... Титла: Realtek8139d Публикувано от: Agent_SMITH в Nov 20, 2006, 00:02 От време оно в ядрото има драйвер 8139too с който 99,9% от картите на realtek бачкат като слънце. Защо са тези еквилибристики при положение, че с просто прекомпилиране или зареждане на модула ще имаш перфектно работеща машина?
Внимавай с 8139С в 2.6.18 ядро - бъгав е и се троши. Ползвай 8139too ![]() Титла: Realtek8139d Публикувано от: rover65 в Nov 20, 2006, 08:00 за plamen_f - на другия комп съм с 8139С и нямам проблем с нея (Debian 3.1), но тази я купих за компа на децата. Те са с windows, a съм инсталирал SuSE 10.1 като втора ОС и някак си не върви да се излагам пред тях - да не мога да си пусна Нет на Линукса!!!! Така, че си е заради спорта...
А за Agent_SMITH - да, има в ядрото драйвери за 8139 и доколкото си спомням сa инсталирани като модули. От YaST-a избирам ръчно модула Realtek RTL8129/8139, конфигурирам си мрежата и нищо! Пак ifconfig-a ми дава само интерфейса "lo". Колкото до компилирането - ще опитам, но досега съм успял само един път да ми тръгне прекомпилирано ядро, обикновено стигам до "kernel panic" ![]() cd /usr/src/linux make menuconfig намирам Realtek8139too и маркирам "*" make modules make install reboot Нали това трябва да направя? ![]() Машината е 800Mhz Celeron, I815 chipset, 256SDRAM, 80GB HDD, GForce2 32Mb Титла: Realtek8139d Публикувано от: plamen_f в Nov 20, 2006, 08:07 Моите уважения!
За такава кауза си струва наистина и аз бих се поизпотил. Като преборисх проблема моля, сподели решението с нас! Успех! Титла: Realtek8139d Публикувано от: gat3way в Nov 20, 2006, 10:38 Хм, ще го оправим бе
![]() На първо време предполагам знаеш къде ти е сорса на ядрото. Можеш ли да пратиш листинг с поддиректорията include/linux ? Също така ти май спомена ама пак да питам: какво вади uname -r Сигурен ли си че се опитваш да компилираш модула срещу kernel source със правилната версия? Премахването на config.h е от 2.6.18 нататък, това е далеч след 2.4.нещо си... Иначе за конкретният драйвер (никога не съм го ползвал) четох преди малко...доколкото разбирам става въпрос за реалтек карта използваща различен чипсет - Силан (втф са тия) и съответно драйверът 8139too не работи с тях (други IOCTLs, друг I/O adress range). Само не разбрах дали тези хора от Силан/реалтек са пускали въобще версия за ядро 2.6. Makefile-a който си пейстнал прилича на такъв за 2.4 модул (няма obj-m, указват includes, има -DMODULE). Имам една теория по въпроса...според мен се опитваш да билд-неш този модул срещу kernelsource за версия 2.6.18. Теглил ли си някога тази версия на ядрото и случайно да ти се намира някъде из /usr/src ![]() Титла: Realtek8139d Публикувано от: rover65 в Nov 20, 2006, 20:12 Резултат от uname -r
2.6.16.21-0.25-default, колкото до /usr/src/linux/include/linux там е пълно с директории и файлове, а аз не знам как да и изкарам лист-а ![]() Тук намерих нещо ...Цък Изпълних следното: 1. ndiswrapper -i netslnt.inf 2. ndiswrapper -d 1904:8139 netslnt 3. ndiswrapper -m ...като файла "netslnt.inf" го взех от драйверите за ХР от дискетата, която имам с картата. Всичко протече нормално, рестартирах и до там! Очаквах, че в YaST-a при избор на модул ще се появи примерно sc92031, но нищо такова не се случи. Няма допълнителен модул, който да избера за ethernet интерфейса. Пробвах някакви безумия с избор на безжичен интерфейс....Пак нищо.... Продължавам с мъките.... ![]() Титла: Realtek8139d Публикувано от: rover65 в Nov 25, 2006, 18:33 Даааа, след ровене в Нета и експерименти картата тръгна... Ето стъпките:
Използвах ndiswrapper и инсталирах драйвера за ХР: I. В конзолата като root: 1. ndiswrapper -i netslnt.inf 2. ndiswrapper -l -- ако драйвера е инсталиран нормално се изписва: netslnt driver installed 3. modprobe ndiswrapper II. В YaST-a - мрежови устройства/мрежова карта /добавяне Избирам "Тип на устройството" да е "безжично" Избирам от списъка "Безжични LAN карти, използващи директен PCI # интерфейс (Защо точно този тип, не знам! Просто с него тръгна!!!!! ![]() След това зададох статичен IP,DNS, GW... И вече имам мрежа, нет и т.н. Написах едно скриптче за стартиране: #!/bin/bash modprobe ndiswrapper ifconfig wlan0 192.168.1.3 /sbin/route add default gw 192.168.1.1 И вече всичко е ок! |