29 марта | 2024г. | 01:13:50


АвторТема: Ручная сборка драйверов WiFi под Enigma2  (Прочитано 100692 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Оффлайн StuartАвтор темы

  • Джедай
  • ***
  • Сообщений: 420
  • Поблагодарили: 1175
  • Уважение: -2
Попытался собрать свежий драйвер для чипсета RT5370 версии 2.5.0.3 из файла 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2.

На Ubuntu 10.04.4 x32 поставил STLinux 2.4, собирал под ядро linux-sh4-2.5.32.59_stm24_0211. В путях к ядру
указывал /opt/STM/STLinux-2.2/devkit/sources/kernel/linux-sh4-2.5.32.59_stm24_0211 вместо STLinux-2.4, так как
Makefile написан "в лоб", что вызывает ошибку компиляции уже на начальном этапе из-за:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
То есть любые упоминания в пути цифр 2.4 заставляет собираться как под Kernel 2.4, что в данном случае не так.

Проставил в Makefile:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
В ./os/linux/config.mk прописал:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Собираю по make. Получаю ошибку:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Нахожу строки в ./os/linux/config.mk:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Меняю в них CFLAGS на EXTRA_CFLAGS.

Получаю ошибку:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.[/code]

Хорошо, убираю флаг -fomit-frame-pointer.

Получаю ошибку:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Хорошо, в строке:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Убираю флаг -DLINUX.

Теперь ругается на незнакомые типы (вроде ./os/linux/../../common/crypt_md5.c:638:1: error: unknown type name 'VOID' и много пододобных ошибок по типам 'UCHAR', 'ULONG' и так далее).

Если не делать изменений в файлах исходников, а попытаться собрать

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
то получаю ошибку:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
make ARCH=sh CROSS_COMPILE=sh4-linux- тоже набирал, но дело не в этом - конечная платформа и кросс-компилятор прописаны в Makefile, кроме того в .bashrc прописал export PATH=$PATH:/opt/STM/STLinux-2.2/devkit/sh4/bin.

Вопрос. Что делаю не так и как всё же стоит попытаться собрать свежий драйвер RT5370 под нашу SH4-платформу? Может, кто собирал сам и сталкивался с таким?

Цель - заставить работать TP-LINK WL727N v3 под PKTeam Nebula mod by vardan85. На текущей сборке не работает, например, на HDMU цепляется без проблем.

Если ошибки сборки решатся, составлю подробное FAQ по ручной сборке драйверов, включая алгоритмы установки toolchain: может, кому пригодится...


Vitaliy69

Оффлайн ddd203

  • Младший Джедай
  • **
  • Сообщений: 148
  • Поблагодарили: 104
  • Уважение: +5
Stuart, попробуй драйвер из прицепа.
Он собран на Fedora11, как написано в рекомендациях на сайте STLinux.

Из твоего поста непонятно - компилировал ты ядро 2.6.32.59, или нет, кросс_компиляция ядра обязательна. Файл конфигурации config.gz поищи в энигме в каталоге /proc, с ним и собирай ядро. У меня такая энигма не установлена, я файл .config брал из предыдущей сборки, поэтому мой драйвер возможно нерабочий.

Оффлайн schpuntik

  • Джедай
  • ***
  • Сообщений: 314
  • Поблагодарили: 607
  • Уважение: +10
А что на сегодня   дела так плохи в интернете   что надо  велосипед заново изобретать?  Установи  toolchain  от  TDT   и собери свой драйвер  если  интересно самому собирать  а так из любого имеджа вытянуть можно.
  • Amiko SHD-8900, Amiko Alien2

Оффлайн StuartАвтор темы

  • Джедай
  • ***
  • Сообщений: 420
  • Поблагодарили: 1175
  • Уважение: -2
Из твоего поста непонятно - компилировал ты ядро 2.6.32.59, или нет, кросс_компиляция ядра обязательна. Файл конфигурации config.gz поищи в энигме в каталоге /proc, с ним и собирай ядро. У меня такая энигма не установлена, я файл .config брал из предыдущей сборки, поэтому мой драйвер возможно нерабочий.
Да, ядро у меня 2.6.32.59... Только его вручную не собирал - установлены сами исходники и заголовочные файлы, при запуске make драйвера вроде как само всё начинает компилиться (make -C opt/STM/STLinux-2.2/devkit/sources/kernel/linux-sh4-2.5.32.59_stm24_0211 SUBDIRS='/home/vitaliy/drv_src' modules). То есть это неправильно? Надо взять .config с Enigma2 и запустить
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
А потом уже make на драйверах?.. Со своим конфигом по умолчанию ядро пробовал собирать - ошибки компиляции, ругался на незнакомый флаг -m32.

Если, правда, в начале надо собрать ядро, то в этом и ошибка. А не получиться - попробую на Fedora 11 собрать. С TDT тоже гляну.
Vitaliy69

Оффлайн ddd203

  • Младший Джедай
  • **
  • Сообщений: 148
  • Поблагодарили: 104
  • Уважение: +5
Stuart, есть два варианта:
1 - трудоемкий, все ручками, но больше возможностей и не факт, что получится с первого раза;
2 - ресурсоемкий, наверное получится с первого раза, который предлагает schpuntik - но там необходимо компилить полностью всю энигму, да и то, только для определенных платформ и ядер (как следствие - под оболочку SPARK 1.2.31 нет варианта, т.к. это не энигма и т.п) (возможно я не до конца разобрался, но при беглом взгляде все так и выглядит). Да и компиляцию обещают от 2 до 6 часов + постоянно скачивает что-то с интернета, короче, для драйверов не лучший вариант. Зато запустил и пошел пить пиво на 4 часа, нужен другой драйвер - опять запустил и опять пиво на 4 часа.

Если по первому варианту, то:
- скопировать файл с энигмы /proc/config.gz, распаковать его и переименовать в .config (файл с "точкой" в начале имени)
- запустить терминал, зайти в папку с ядром и скопировать туда файл .config
- набрать:
                 make clean
                 make ARCH=sh CROSS_COMPILE=/opt/STM/STLinux-2.2/devkit/sh4/bin/sh4-linux-

Если все пройдет удачно, то ядро скомпилируется.
- перейти в папку с драйвером и : make

schpuntik, подскажи, как мне с помощью toolchain TDT собрать драйвер для ASUS WL-167g v2 (vid/pid 0b05:1723, чип Ralink RT2571W).

Оффлайн StuartАвтор темы

  • Джедай
  • ***
  • Сообщений: 420
  • Поблагодарили: 1175
  • Уважение: -2
Делал:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Получаю такую ошибку при компиляции ядра:
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Причём, что под Ubuntu 10.04, что под Fedora 11... Есть мысли, как поправить?
Vitaliy69

Оффлайн Taapat

  • Мастер Джедай
  • **
  • Сообщений: 3533
  • Поблагодарили: 10595
  • Уважение: +52
Я когда то dvb драйвера успешно собирал с smake
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.Но вы наверно на драйверах не остановитесь, по этому не мучайтесь, а следуйте совету schpuntik.
  • Zgemma H7S | Zgemma H.S | Edision OS mini + | Amiko SHD-8900 Alien | VU+ Solo2 | Gi ET11000 4K
taapat.blogspot.com

Оффлайн schpuntik

  • Джедай
  • ***
  • Сообщений: 314
  • Поблагодарили: 607
  • Уважение: +10
Цитировать
2 - ресурсоемкий, наверное получится с первого раза, который предлагает schpuntik - но там необходимо компилить полностью всю энигму, да и то, только для определенных платформ и ядер (как следствие - под оболочку SPARK 1.2.31 нет варианта, т.к. это не энигма и т.п) (возможно я не до конца разобрался, но при беглом взгляде все так и выглядит). Да и компиляцию обещают от 2 до 6 часов + постоянно скачивает что-то с интернета, короче, для драйверов не лучший вариант. Зато запустил и пошел пить пиво на 4 часа, нужен другой драйвер - опять запустил и опять пиво на 4 часа.
Тут  ты совсем не прав.   Никто не кого  не заставляет собирать весь имедж. 
проходишь make.sh
 а потом   собираешь make bootstrap и   make driver  и после  находишь свой  *.ko   в директории с исходниками.



schpuntik, подскажи, как мне с помощью toolchain TDT собрать драйвер для ASUS WL-167g v2 (vid/pid 0b05:1723, чип Ralink RT2571W).
Если  это драйвер RT73  то  сам пытался  его  собрать   он присутствует в ядре тоже    но не один драйвер корректно не работал .  То есть   работает только в открытом виде  wep  и  wpa не хочет  соединять а wpa2 можно совсем забыть. Можно  ещё раз конешно попробывать! Только    сегодня  полно  других свистков    которые намного  лутьше работают  и стоят не  целое состояние.
  • Amiko SHD-8900, Amiko Alien2

Оффлайн ddd203

  • Младший Джедай
  • **
  • Сообщений: 148
  • Поблагодарили: 104
  • Уважение: +5
Спасибо schpuntik, не знал про "make bootstrap и make driver ", это в корне меняет дело. Драйвер для RT73 собираюсь собрать ради "спортивного интереса", да и такой свисток на полке пылится. Судя по твоему описанию он не работает через iwpriv, и для поднятия WPA2 обращается к wpa_supplicant - и тут засада. 

Stuart, если после двух предыдущих постов не передумал, то файл .config закидывай после команды mrproper, но это не относится к ошибке.

Мой листинг компиляции отличается от твоего:
Спойлер   :
HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf -s arch/sh/Kconfig
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  Generating include/asm-sh/machtypes.h
  CHK     include/linux/utsrelease.h
  UPD     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-sh
  CC      kernel/bounds.s
  GEN     include/linux/bounds.h
  CC      arch/sh/kernel/asm-offsets.s
  GEN     include/asm/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/elflib.o
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/ksymhash.o
  HOSTCC  scripts/mod/ktablehash.o
  HOSTCC  scripts/mod/modpost.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
  HOSTLD  scripts/mod/ksymhash
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/bin2c
  CC      init/main.o
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
  CC      init/version.o
  CC      init/do_mounts.o
  CC      init/do_mounts_rd.o
  CC      init/do_mounts_initrd.o
  LD      init/mounts.o
  CC      init/initramfs.o
  CC      init/calibrate.o
  LD      init/built-in.o
  HOSTCC  usr/gen_init_cpio
  GEN     usr/initramfs_data.cpio
  AS      usr/initramfs_data.o
  LD      usr/built-in.o
  AS      arch/sh/kernel/debugtraps.o
  CC      arch/sh/kernel/dumpstack.o
  CC      arch/sh/kernel/idle.o
  CC      arch/sh/kernel/io.o
  CC      arch/sh/kernel/io_generic.o
  CC      arch/sh/kernel/irq.o
  CC      arch/sh/kernel/machvec.o
  CC      arch/sh/kernel/nmi_debug.o
  CC      arch/sh/kernel/process_32.o
  CC      arch/sh/kernel/ptrace_32.o
  CC      arch/sh/kernel/setup.o
  CC      arch/sh/kernel/signal_32.o
  CC      arch/sh/kernel/sys_sh.o
  CC      arch/sh/kernel/sys_sh32.o
  AS      arch/sh/kernel/syscalls_32.o
  CC      arch/sh/kernel/time.o
  CC      arch/sh/kernel/topology.o

У меня после команды CALL    scripts/checksyscalls.sh есть вызовы компилятора HOSTCC, а не только кросскомпилятора СС. Возможно ты не установил какие то пакеты для Fedora/Ubuntu. Под рукой у меня рекомендации от TDT:
Спойлер   :
3. Setup host:
    - To build an image you need to install some packages on your host system.

          * git
          * ccache
          * rpm
          * make
          * automake1.8
          * autoconf
          * patch
          * gcc
          * cpp (or gcc or c++)
          * tar
          * bzip2
          * gzip
          * ncurses-devel (debian: libncurses5-dev)
          * flex
          * bison
          * gawk
          * e2fsprogs-devel
          * texinfo
          * gettext
          * gettext-devel (debian?)
          * cfv
          * fakeroot
          * xfsprogs-devel debian: (xfslibs-dev)
          * zlib1g-dev (zlib-devel)
          * libtool
          * g++
          * swig
          * pkg-config
Попробуй их установить.
Да, команду clean я использую как: make ARCH=sh CROSS_COMP..... clean


P.S. И переименуй каталог STLinux-2.2 обратно в STLinux-2.4 - возможно там есть залинкованные файлы/директории. А в файле Makefile от дров замени ifneq (,$(findstring 2.4,$(LINUX_SRC))) на ifneq (,$(findstring 2.w,$(LINUX_SRC))).

Оффлайн StuartАвтор темы

  • Джедай
  • ***
  • Сообщений: 420
  • Поблагодарили: 1175
  • Уважение: -2
HOSTCC - компилятор основной ОС? На Ubunte gcc вообще не установлен, на Fedora стоит. Другие пакеты проверю сегодня вечером...

В остальном собирали так же? make ... oldconfig тоже делали? С каким ядром STLinux пробовали?
Vitaliy69

Оффлайн ddd203

  • Младший Джедай
  • **
  • Сообщений: 148
  • Поблагодарили: 104
  • Уважение: +5
Да, HOSTCC - это компилятор основной OS.
Для драйвера из поста №2 я использовал .config от 208 ядра, oldconfig не запускал, сделалал только menuconfig - проверил настройки и скомпилил 211 ядро (так секретом и осталось, работает этот драйвер или нет, энигму переустанавливать нет желания).

Оффлайн StuartАвтор темы

  • Джедай
  • ***
  • Сообщений: 420
  • Поблагодарили: 1175
  • Уважение: -2
ddd203, на каком дистрибутиве STLinux собрал драйвер и с какой версией sh4-linux-gcc?

Все указанные в предыдущем моём сообщении ошибки на дистрибутиве STLinux-2.4-sh4-20120822 и ядре 211. Попробовал сегодня с тем же дистрибутивом ядро 208 - уже другие ошибки, исправляю их ручками, но это как-то неправильно. В дистрибутиве кстати установлен sh4-linux-gcc 4.6.

Сегодня поставил STLinux-2.4-sh4-20100401, пробовал собирать то же 211 ядро. Уже лучше:

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Но всё равно ошибка... sh4-linux-gcc на этом дистирибутиве 4.3.4. Интересно знать сочетание рабочего дистрибутива(компилятора)/ядра.

Установка дополнительных пакетов, увы, не помогла (хотя вроде даже другие ошибки пошли)...

Toolchain то ли качал не тот, но совершенно не понятно, как собирать. Нет в нём make.sh.
Vitaliy69

Оффлайн ddd203

  • Младший Джедай
  • **
  • Сообщений: 148
  • Поблагодарили: 104
  • Уважение: +5
Дрова собирал как на STLinux 2.3, так и на STLinux 2.4 для ядер: 123, 207, 208, 211. STLinux устанавливал по FTP месяца 3-4 назад, какая была на тот момент версия не знаю.
STLinux 2.4: gcc version 4.6.3 20120313
STLinux 2.3: gcc version 4.2.4


Toolchain TDT: git clone git://gitorious.org/open-duckbox-project-sh4/tdt.git (см. директорию /cvs/cdk/make.sh)
Установка STLinux: Howto_install_STLinux23 -
 wydevices -
 
 Install STLinux 2.3 on a Fedora 11 for cross compile to SH4. -
 Development framework for wydevices - Google Project Hosting
 





Добавлено  29 ноября | 2012г. | 21:23:14   
Вот нашел .config от 211 ядра, собрал драйвер.

Оффлайн alternative

  • Падаван
  • *
  • Сообщений: 21
  • Поблагодарили: 0
  • Уважение: 0
Может кто подскажет , почему никто нихочет собрать драйвера под чипы на базе атерос и рилтек?Тем более что драйвера опенсорц,и уже насколько известно подавно поддерживаются с ядря 2.6.30 если не ошибаюсь.Да и последние , рилтек версии уже имеются, а про старые на базе rtl8187 забыли,а адаптеры на их базе отличные,чего нельзя сказать про ралинк,апараты на которых еле 1 стенку "пробивают",да и предоставляются закрытыми модулями.
Спасибо заранее за пояснения.

Оффлайн ddd203

  • Младший Джедай
  • **
  • Сообщений: 148
  • Поблагодарили: 104
  • Уважение: +5
Это риторический вопрос, или что-то не запускается?

Теги:
 

Похожие темы

  Тема / Автор Ответов Последний ответ
25 Ответов
20799 Просмотров
Последний ответ 25 ноября | 2011г. | 14:05:55
от vito72
70 Ответов
126959 Просмотров
Последний ответ 01 сентября | 2023г. | 19:35:47
от pitmaa
0 Ответов
17984 Просмотров
Последний ответ 25 января | 2015г. | 02:34:15
от Komandir
0 Ответов
2562 Просмотров
Последний ответ 09 июня | 2016г. | 13:56:02
от AndreyNag
21 Ответов
29153 Просмотров
Последний ответ 26 января | 2019г. | 14:12:27
от sever-s



X

Добро пожаловать!

Мы заметили, что у Вас установлено расширение AdBlock или ему подобное. Пожалуйста добавьте наш Клуб в белый список, внесите этим посильную лепту в его развитие. Спасибо!