Автор Тема: Компилиране на драйвер за мрежова карта  (Прочетена 1222 пъти)

Robert_

  • Напреднали
  • *****
  • Публикации: 52
    • Профил
Инсталирах си една карта и вече 4 дни се мъча да накарам моя Дебиан да я разпознае. Първо опитах с pppoeconf и modconf да инсталирам драйвер, но се оказа, че там няма такъв. Накрая отидох при фирмата, която ми продаде картата и ми дадоха драйвер - файл с разширение .tgz. В него са файловете:

-rwxr-xr-x  1 root root  7668 2004-02-25 05:08 kcompat.h
-rwxr-xr-x  1 root root 11226 2004-02-25 05:08 linux.txt
-rwxr-xr-x  1 root root  5219 2004-02-25 05:08 Makefile
-rwxr-xr-x  1 root root  1996 2004-02-25 05:08 rhine_cfg.h
-rwxr-xr-x  1 root root 42454 2004-02-25 05:08 rhine.h
-rwxr-xr-x  1 root root 78890 2004-02-25 05:08 rhine_main.c
-rwxr-xr-x  1 root root 15163 2004-02-25 05:08 rhine_proc.c
-rwxr-xr-x  1 root root  1852 2004-02-25 05:08 rhine_proc.h
-rwxr-xr-x  1 root root  9348 2004-02-25 05:08 rhine_vmns.c
-rwxr-xr-x  1 root root  1289 2004-02-25 05:08 rhine_vmns.h
-rwxr-xr-x  1 root root  8299 2004-02-25 05:08 rhine_wol.c
-rwxr-xr-x  1 root root  1706 2004-02-25 05:08 rhine_wol.h
-rwxr-xr-x  1 root root  6935 2004-02-25 05:08 vmns_drv.h

Инструкцията е следната:

    Please enter the following commands at the UNIX prompt. Remember, UNIX is
    case sensitive.

    1) Create a temporary directory:
        mkdir /temp

    2) Change to the temporary directory:
        cd /temp

    2) Copy driver (rhinefet.tgz) from DOS disk, (mcopy below is one tool in
       mtools, if you didn't install mtools, you can type
       'mount -t msdos /dev/fd0 /mnt' and use 'cp /mnt/rhinefet.tgz /temp'
       command to copy the driver to the temporary directory):
        mcopy a:rhinefet.tgz .

    3) untar the archive file:

        tar xzvf rhinefet.tgz
        cd rhinefet

    4) Compile the driver source files and it will generate rhinefet.o, and
       copy it to correct driver installation path (The installation directory
       is different in different kernel versions. In 2.4.x kernel, the path is
       /lib/modules/KERNEL_VERSION/kernel/drivers/net/, and in 2.2.x kernel,
       the path is /lib/modules/KERNEL_VERSION/net/, the KERNEL_VERSION (see
       above) means the kernel version of your Linux distribution. If you don't
       know your kernel version , please run 'uname -r' command in command
       line. The kernel version will look like '2.2.16', '2.4.2-2smp' etc.) :
        make install

    5) Check configuration file (/etc/modules.conf or /etc/conf.modules,it
       depend on your Linux distribution) for loading kernel modules. Make sure
       there is the following content in the configuration file, where # is
       interface number (eg: alias eth0 rhinefet):
        alias eth# rhinefet

    6) Reboot now:
        shutdown -r now

    7) Install your driver module (If the driver module is in the wrong place,
       an error message will appear, and say that can't find the driver
       module):
        insmod rhinefet

    8) Use ifconfig command to assign the IP address, where # is network
       interface number:
        ifconfig eth# <IP>

    9) Check the interface works:
        ping <remote_host_IP>

Въпросът ми е защо когато дам командите make, make install, винаги получавам съобщението:

Makefile:29: *** Linux kernel source not found.  Stop.

Същевременно проверих и съм сигурен, че пакетът make е инсталиран.
Моля ако някой има представа защо е така да ми отговори. Съвсем съм нов и нямам никакъв опит.
Активен

Robert_

  • Напреднали
  • *****
  • Публикации: 52
    • Профил
Компилиране на драйвер за мрежова карта
« Отговор #1 -: Jan 25, 2006, 22:52 »
Мисля, че проблемът е някъде в настройките на Дебиан. На едно място прочетох, че трябва да се изпълни командата make в същата директория, където cе намира Makefile без никакви други параметри.  Изпълних го и

Makefile:29: *** Linux kernel source not found.  Stop.

Какво означава това? Някаква идея?
Активен

Йордан

  • Напреднали
  • *****
  • Публикации: 1451
  • Distribution: Ubuntu / Gentoo
  • Window Manager: Gnome
  • не е важно колко ти е голяма пишката, а какво можеш с нея
    • Профил
    • WWW
Компилиране на драйвер за мрежова карта
« Отговор #2 -: Jan 25, 2006, 22:57 »
apt-get install kernel-source-{uname -r}
Активен

Всеки пост - отговор на въпрос !!!

Йордан Георгиев
http://ygeorgiev.net/

ZEN

  • Напреднали
  • *****
  • Публикации: 159
    • Профил
    • WWW
Компилиране на драйвер за мрежова карта
« Отговор #3 -: Jan 25, 2006, 23:03 »
Я да видим сега какво пише тук...
"Linux kernel source not found" демек не намира сорса на ядрото, затова и неще да компилира.

Но!
Каква е тая карта все пак...като гледам имаш драйвери за ядро 2.4.*, ти с какво ядро си? Дай информация за дистрибуцията си, за картата и т.н. за да ти се помогне... не съм пипал Debian, но има хора тук които са наясно с дистрото.
Успех
Активен

ZEN

  • Напреднали
  • *****
  • Публикации: 159
    • Профил
    • WWW
Компилиране на драйвер за мрежова карта
« Отговор #4 -: Jan 25, 2006, 23:04 »
Цитат (GigaVolt @ Ян. 25 2006,23:57)
apt-get install kernel-source-{uname -r}

Брей че бързак, изпревари ме...;)
Активен

Robert_

  • Напреднали
  • *****
  • Публикации: 52
    • Профил
Компилиране на драйвер за мрежова карта
« Отговор #5 -: Jan 26, 2006, 09:36 »
Ами аз съм с Дебиан 2.4.27, а мрежовата карта е VIA Rhine III с чипсет VT6105L.
Активен

Italianeca

  • Напреднали
  • *****
  • Публикации: 386
    • Профил
Компилиране на драйвер за мрежова карта
« Отговор #6 -: Jan 26, 2006, 11:48 »
Който бърза бърка. Не е kernel-source а kernel-headers '<img'>. Много е тъпо но това иска.

А за въпороса кои са тези карти. Разходете се до сайта на ndiswrapper и вижте колко много даже без драйвери. За съжаление '<img'>

apt-get install kernel-headers-{uname -r}

Поздрави

ps за 2.6 ядро e linux-headers както и linux-image
Активен

Robert_

  • Напреднали
  • *****
  • Публикации: 52
    • Профил
Компилиране на драйвер за мрежова карта
« Отговор #7 -: Jan 26, 2006, 21:05 »
Резултат от  uname -r:
2.4.27-2-386

Странно, но по едно време връзката беше много слаба явно затова не тръгнаха инсталациите с apt-get install kernel...
Вместо това стартирах Synaptic и от там маркирах kernel-headers, което от свой ред маркира kernel-source-... И така инсталирах ги и двете и тогава пак опитах:
#make
и отговорът отново е:
#Makefile:29: *** Linux kernel source not found.  Stop.
Моля ако някой може да помогне да ми даде едно рамо.
Четох, че командата make трябва да се даде без никакви допълнителни параметри. След това трябва да се появи файл с разширение .о
Нищо подобно не се получава.
Help, please!
Активен

alabal

  • Напреднали
  • *****
  • Публикации: 2173
  • cat /earth/europe/bg/sofia | grep Nacamura
    • Профил
Компилиране на драйвер за мрежова карта
« Отговор #8 -: Jan 27, 2006, 01:03 »
su
cd /usr/src/
tar xvjpf linux-2.4.xx.tar.bzip2
ln -s linux-2.4.xx linux

С което създаваш линк към сорса на ядрото.
Явно в Makefile е указано да търси /usr/src/linux, а ти го нямаш.
Има още нещо. За да създаде модул, подходящ за настройките на твоето конкретно ядро, му трябват настройките на ядрото ти. При стандартни дебиански ядра конфигурационния файл се копира и в /boot, за това:

cp /boot/config-2.4.xx  /usr/src/linux/.config
(не config, а точно .config с точка отпред)

Успех.
Btw, тая карта няма ли я в ядрото? Тогава ще се мине само с компилация на ядро.
Активен

It makes you awful glad that you were born a man.

Robert_

  • Напреднали
  • *****
  • Публикации: 52
    • Профил
Компилиране на драйвер за мрежова карта
« Отговор #9 -: Jan 31, 2006, 19:44 »
Не знам как стана всичко, но цялата каша като че ли започна да се оправя като ъпдейтнах ядрото,
apt-get install kernell-image-2.6.8-2-686
тогава като стартирах отново modconf и инсталирах via-rhine този път взе че я прие. После отворих /etc/network/interfaces и видях, че там по някакъв непонятен за мен начин е зацапана информацията. Опитвах да я възстановя ръчно, но не стана нищо и накрая стартирах dpkg-reconfigure etherconf и това е. Сега отново имам интернет. '<img'>
Активен