Автор Гілка: Ядро, Mandriva 2007 і модем Intel 536 EP  (Прочитано 5111 раз)

Відсутній partizan

  • Новачок
  • *
  • дописів: 4
  • Карма: +0/-0
  • I Love YaBB 2!
Доброго дня!
Поможіть!
В мене був Mandriva 2005 LE. Модем D-Link 562i  на чіпі Intel 536 EP . Драйвер з офіційного сайту  Intel -  Intel-536EP-4.71.tgz  .  Все працювало.
Ставив я  Mandriva 2007 простий і 64 bit. І на них пробував ставити різні версії драйвера. Пише постійно одну і ту ж помилку.
Драйвер не ставиться ні на 32 біт, ні на 64 біт (сорскод ядра я не забув поставити).

Пише наступне:

Цитата
[root@localhost intel-536EP-2.56.76.0-mdk10-SMP]# make 536
   Module precompile check
   Current running kernel is: 2.6.17-5mdv
   /lib/modules...   autoconf.h exists
diff: /boot/vmlinuz.autoconf.h: No such file or directory
   autoconf.h matches running kernel
diff: /boot/vmlinuz.version.h: No such file or directory
   version.h matches running kernel
uname -r|grep "2.6" && \
        cd coredrv && make 536core_26 && \
        cp Intel536.ko .. && cd .. && \
        strip --strip-debug Intel536.ko && \
        exit; \
        ls Intel536.ko >/dev/null 2>&1 ||  uname -r | grep "2.6" && echo "Failed to build driver" && exit; \
        if [  ]; then \
        cd coredrv; make TARGET=TARGET_SELAH KERNEL_SOURCE_PATH= "PSTN_DEF=-DTARGET_SELAH -DTARGET_LINUX -DLINUX" 536core; \
        else \
        cd coredrv; make TARGET=TARGET_SELAH KERNEL_INCLUDES=/lib/modules/`uname -r`/build/include \
       "PSTN_DEF=-DTARGET_SELAH -DTARGET_LINUX -DLINUX" 536core; \
        fi ; \
        cp Intel536.o .. ; \
        if [ -a /boot/vmlinuz.version.h ]; then \
        cp /boot/vmlinuz.version.h /lib/modules/`uname -r`/build/include/linux/version.h;\
        fi
2.6.17-5mdv
make[1]: Вхожу у каталог "/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv"
make -C /lib/modules/2.6.17-5mdv/build SUBDIRS=/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv modules
make[2]: Вхожу у каталог "/usr/src/linux-2.6.17-5mdv"

  WARNING: Symbol version dump /usr/src/linux-2.6.17-5mdv/Module.symvers
           is missing; modules will have no dependencies and modversions.

  CC [M]  /home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.o
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:70: warning: data definition has no type or storage class
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:70: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_NOVERS'
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:70: warning: parameter names (without types) in function declaration
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c: In function 'power_callback':
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:295: error: 'PM_SAVE_STATE' undeclared (first use in this function)
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:295: error: (Each undeclared identifier is reported only once
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:295: error: for each function it appears in.)
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c: In function 'close':
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:418: warning: implicit declaration of function 'pm_unregister'
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c: In function 'send_data_to_user':
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:565: error: 'struct tty_struct' has no member named 'flip'
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:570: error: 'struct tty_struct' has no member named 'flip'
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:571: error: 'struct tty_struct' has no member named 'flip'
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:573: error: 'struct tty_struct' has no member named 'flip'
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:574: error: 'struct tty_struct' has no member named 'flip'
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:575: error: 'struct tty_struct' has no member named 'flip'
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c: At top level:
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:643: error: expected ')' before string constant
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:756: warning: initialization from incompatible pointer type
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:757: warning: initialization from incompatible pointer type
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c: In function 'kScheduleDPC':
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:863: warning: implicit declaration of function 'pm_access'
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c: In function 'dspdrv_CommRamISR':
/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.c:879: warning: function declaration isn't a prototype
make[3]: *** [/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv/coredrv.o] Помилка 1
make[2]: *** [_module_/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv] Помилка 2
make[2]: Залишаю каталог "/usr/src/linux-2.6.17-5mdv"
make[1]: *** [536core_26] Помилка 2
make[1]: Залишаю каталог "/home/partizan/new/intel-536/intel-536ep-4.69-mdk10-smp/intel-536EP-2.56.76.0-mdk10-SMP/coredrv"
Failed to build driver
[root@localhost intel-536EP-2.56.76.0-mdk10-SMP]#

Не знаходить файла сорса ядра, необхідного для компіляції -  /usr/src/linux-2.6.17-5mdv/Module.symvers
           is missing; modules will have no dependencies and modversions.

Якщо поставити на Mandriva 2007 ядро і сорскод від Mandriva 2005 LE (kernel-2.6.11.6), драйвер ставиться, модем конектиться з нетом, але передача даних не йде (ні браузер, ні закачки).
Що зробити, щоб поставити дрйвер? Поганий сорскод ядра?
« Змінено: 2006-11-09 20:51:58 від partizan »

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Ядро, Mandriva 2007 і модем Intel 536 EP
« Відповідей #1 : 2006-11-10 11:12:03 »
Спробуйте зібрати з Intel-536EP-4.71.tgz. Бо те що ви намагаєтесь зібрати старе - воно використовує застаріле визначення PM_SAVE_STATE. У 4.71 його вже нема.
P.S. Стосовно отого попередження - Module.symvers мені вдалося створити лише за допомогою "make modules" в корені сирців ядра. Воно й логічно, бо щоб отримати версії з модулів, треба ті модулі мати. Можливо того ж результату можна добитися чимось на зразок:
make scripts/mod/modpost
scripts/mod/modpost /boot/linux-.... $(find /lib/modules/$(uname -r)/ -type f -name '*.o' -o -name '*.ko' -print)
Але то вже шаманство. :)
P.P.S. Але щоб його таки створити - вам потрібні відповідні права - отже не забудьте стати root-ом.
« Змінено: 2006-11-10 14:28:39 від ISBear »

Відсутній partizan

  • Новачок
  • *
  • дописів: 4
  • Карма: +0/-0
  • I Love YaBB 2!
Re: Ядро, Mandriva 2007 і модем Intel 536 EP
« Відповідей #2 : 2006-11-16 15:28:41 »
Дякую за допомогу!
Module.symvers через "make modules" я створив, попередньої помилки вже не пише.
Пробував збирати з Intel-536EP-4.71.tgz , але не виходить. Пише помилки. Такі, яких я не розумію і які мені ще ніколи не вдавалося вирішити, а саме:



[root@localhost Intel-536-4.71]# make 536
   Module precompile check
   Current running kernel is: 2.6.17-5mdv
   /lib/modules...   autoconf.h exists
diff: /boot/vmlinuz.autoconf.h: No such file or directory
   autoconf.h matches running kernel
diff: /boot/vmlinuz.version.h: No such file or directory
   version.h matches running kernel
uname -r|grep "2.6" && \
        cd coredrv && make 536core_26 && \
        cp Intel536.ko .. && cd .. && \
        strip --strip-debug Intel536.ko && \
        exit; \
        ls Intel536.ko >/dev/null 2>&1 ||  uname -r | grep "2.6" && echo "Failed to build driver" && exit; \
        if [  ]; then \
        cd coredrv; make TARGET=TARGET_SELAH KERNEL_SOURCE_PATH= "PSTN_DEF=-DTARGET_SELAH -DTARGET_LINUX -DLINUX" 536core; \
        else \
        cd coredrv; make TARGET=TARGET_SELAH KERNEL_INCLUDES=/lib/modules/`uname -r`/build/include \
       "PSTN_DEF=-DTARGET_SELAH -DTARGET_LINUX -DLINUX" 536core; \
        fi ; \
        cp Intel536.o .. ; \
        if [ -a /boot/vmlinuz.version.h ]; then \
        cp /boot/vmlinuz.version.h /lib/modules/`uname -r`/build/include/linux/version.h;\
        fi
2.6.17-5mdv
make[1]: Вхожу у каталог "/home/partizan/new/Intel-536-4.71/coredrv"
make -C /lib/modules/2.6.17-5mdv/build SUBDIRS=/home/partizan/new/Intel-536-4.71/coredrv modules
make[2]: Вхожу у каталог "/usr/src/linux-2.6.17-5mdv"
  CC [M]  /home/partizan/new/Intel-536-4.71/coredrv/coredrv.o
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:73: warning: data definition has no type or storage class
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:73: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_NOVERS'
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:73: warning: parameter names (without types) in function declaration
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c: In function 'close':
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:439: warning: implicit declaration of function 'pm_unregister'
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c: In function 'send_data_to_user':
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:587: error: 'struct tty_struct' has no member named 'flip'
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:592: error: 'struct tty_struct' has no member named 'flip'
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:593: error: 'struct tty_struct' has no member named 'flip'
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:595: error: 'struct tty_struct' has no member named 'flip'
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:596: error: 'struct tty_struct' has no member named 'flip'
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:597: error: 'struct tty_struct' has no member named 'flip'
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c: At top level:
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:665: error: expected ')' before string constant
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c: In function 'hamproc_write':
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:684: warning: ignoring return value of 'copy_from_user', declared with attribute warn_unused_result
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c: At top level:
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:880: warning: initialization makes integer from pointer without a cast
make[3]: *** [/home/partizan/new/Intel-536-4.71/coredrv/coredrv.o] Помилка 1
make[2]: *** [_module_/home/partizan/new/Intel-536-4.71/coredrv] Помилка 2
make[2]: Залишаю каталог "/usr/src/linux-2.6.17-5mdv"
make[1]: *** [536core_26] Помилка 2
make[1]: Залишаю каталог "/home/partizan/new/Intel-536-4.71/coredrv"
Failed to build driver
[root@localhost Intel-536-4.71]#


Можливо, в Mandriva 2007 не хоче компілюватися з-за gcc4  (в Mandriva 2005 LE gcc3)? В readme пише: The softmodem binary was compiled with gcc version 3.2

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Ядро, Mandriva 2007 і модем Intel 536 EP
« Відповідей #3 : 2006-11-16 18:09:17 »
Перші попередження спричинені EXPORT_SYMBOL_NOVERS, яке застаріло, і видалене починаючи з ядра 2.6.7. Це виправити легко:
sed -i~ 's/EXPORT_SYMBOL_NOVERS/EXPORT_SYMBOL/g' coredrv/coredrv.c
А от з помилками навколо tty_struct тяжче. Вони - результат переписування tty на використання іншого типу буферів десь коло 2.6.13.
Можете спробувати виправити у coredrv/coredrv.c функцію send_data_to_user() (581-й рядок) до отакого стану:
void send_data_to_user(void)
{
  unsigned char ch;
  unsigned long flags;

  while(UART_dte_to_num() > 0)
  {
    ch = UART_dte_from_char();
    spin_lock_irqsave(&(G.softcore->ptty->read_lock), flags);

    tty_insert_flip_char(G.softcore->ptty, ch, 0);
    tty_flip_buffer_push(G.softcore->ptty);

    spin_unlock_irqrestore(&(G.softcore->ptty->read_lock), flags);
  }
}
Але майте на увазі, що я це написав за аналогією до патчів від Alan'а Cox'а, і сам, власне, не дуже розбираюся в інтерфейсі tty ядра, тому це може працювати, а може й не працювати.
P.S. Якщо чесно, мені ліньки перезбирати собі ядро в модульному варіанті :) - отже, мабуть, всіх проблем вищенаписане не вирішить. Спробуйте - й напишіть про результати.
« Змінено: 2006-11-17 11:10:51 від ISBear »

Відсутній partizan

  • Новачок
  • *
  • дописів: 4
  • Карма: +0/-0
  • I Love YaBB 2!
Re: Ядро, Mandriva 2007 і модем Intel 536 EP
« Відповідей #4 : 2006-11-25 13:09:00 »
Дякую ще раз, але модем все ще не працює. Я ніяк не можу зібратися, налаштувати і скласти Custom ядро (з ввімкненням застарілих протоколів). Як спробую - ще напишу.

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Ядро, Mandriva 2007 і модем Intel 536 EP
« Відповідей #5 : 2006-11-25 15:01:34 »
Але воно таки зібралося? Більше не писало помилок, і таки встановило Intel536.ko як /lib/modules/<версія_вашого_ядра>/kernel/drivers/char/Intel536.ko ?
Чого питаю, бо там скрипти побудови нестандартні(IMHO), до того ж старі...

Відсутній partizan

  • Новачок
  • *
  • дописів: 4
  • Карма: +0/-0
  • I Love YaBB 2!
Re: Ядро, Mandriva 2007 і модем Intel 536 EP
« Відповідей #6 : 2006-11-26 01:30:07 »
Ні, не зібралося. Команда sed -i~ 's/EXPORT_SYMBOL_NOVERS/EXPORT_SYMBOL/g' coredrv/coredrv.c дійсно виправляє помилку EXPORT_SYMBOL_NOVERS, вона більше не виникає. Але далі йдуть наступні по порядку помилки - про "pm_unregister" і "struct tty_struct" (навіть після зміни коду, яку Ви написали). Таке друкує зі зміненим кодом coredrv/coredrv.c :

[root@localhost Intel-536-4.71]# make
make                 make_driver_db_cups  makekdewidgets
makedev              make_driver_db_lpr   makewhatis
[root@localhost Intel-536-4.71]# make 536
   Module precompile check
   Current running kernel is: 2.6.17-5mdv
   /lib/modules...   autoconf.h exists
diff: /boot/vmlinuz.autoconf.h: No such file or directory
   autoconf.h matches running kernel
diff: /boot/vmlinuz.version.h: No such file or directory
   version.h matches running kernel
uname -r|grep "2.6" && \
        cd coredrv && make 536core_26 && \
        cp Intel536.ko .. && cd .. && \
        strip --strip-debug Intel536.ko && \
        exit; \
        ls Intel536.ko >/dev/null 2>&1 ||  uname -r | grep "2.6" && echo "Failed to build driver" && exit; \
        if [  ]; then \
        cd coredrv; make TARGET=TARGET_SELAH KERNEL_SOURCE_PATH= "PSTN_DEF=-DTARGET_SELAH -DTARGET_LINUX -DLINUX" 536core; \
        else \
        cd coredrv; make TARGET=TARGET_SELAH KERNEL_INCLUDES=/lib/modules/`uname -r`/build/include \
       "PSTN_DEF=-DTARGET_SELAH -DTARGET_LINUX -DLINUX" 536core; \
        fi ; \
        cp Intel536.o .. ; \
        if [ -a /boot/vmlinuz.version.h ]; then \
        cp /boot/vmlinuz.version.h /lib/modules/`uname -r`/build/include/linux/version.h;\
        fi
2.6.17-5mdv
make[1]: Вхожу у каталог "/home/partizan/new/Intel-536-4.71/coredrv"
make -C /lib/modules/2.6.17-5mdv/build SUBDIRS=/home/partizan/new/Intel-536-4.71/coredrv modules
make[2]: Вхожу у каталог "/usr/src/linux-2.6.17-5mdv"
  CC [M]  /home/partizan/new/Intel-536-4.71/coredrv/coredrv.o
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c: In function 'close':
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:439: warning: implicit declaration of function 'pm_unregister'
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c: In function 'send_data_to_user':
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:591: warning: implicit declaration of function 'tty_insert_flip_char'
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c: At top level:
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:659: error: expected ')' before string constant
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c: In function 'hamproc_write':
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:678: warning: ignoring return value of 'copy_from_user', declared with attribute warn_unused_result
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c: At top level:
/home/partizan/new/Intel-536-4.71/coredrv/coredrv.c:874: warning: initialization makes integer from pointer without a cast
make[3]: *** [/home/partizan/new/Intel-536-4.71/coredrv/coredrv.o] Помилка 1
make[2]: *** [_module_/home/partizan/new/Intel-536-4.71/coredrv] Помилка 2
make[2]: Залишаю каталог "/usr/src/linux-2.6.17-5mdv"
make[1]: *** [536core_26] Помилка 2
make[1]: Залишаю каталог "/home/partizan/new/Intel-536-4.71/coredrv"
Failed to build driver
[root@localhost Intel-536-4.71]#
« Змінено: 2006-11-26 12:05:24 від partizan »

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Ядро, Mandriva 2007 і модем Intel 536 EP
« Відповідей #7 : 2006-11-27 07:51:13 »
Таки зібрав модульне ядро, вже розібрався з усім, крім power management'у. В цій сфері також були перебудови, буду розбиратися.

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Ядро, Mandriva 2007 і модем Intel 536 EP
« Відповідей #8 : 2006-11-28 07:41:19 »
Так. Результати моїх досліджень. Заново розпакуйте архів, і з утвореної директорії виконайте команду
patch -p0 -i <шлях_де_лежить_патч_наприклад_..>/intel-536ep-4.71-compilation_fixes-1.patch
Повинно пропатчити два файли.
Після цього принаймні, воно має зібратися і не лаятися на невизначені символи при перевірці. А от чи буде працювати - не знаю. :)
>патч<
P.S. Йой!.. До модераторів: Тут шнягодокладання ;) не дозволене - це так треба?
P.P.S. warning'и воно все одно видає. Але то не фатально.