LinuxForum.Fans
Тема

Научите устанавливать linux-приложения

Автор: sasch 53 сообщений 9309 просмотров
#211806

чего то запутали, правильно я понял что существующая версия драйвера старая для текущей ОС, и про установку этого драйвера можно забыть?

Как тогда запустить вайфай адаптер?

#211830
bormant написал:
Olej,
... для ядер 2.4 и 2.6 ...

Вы всему верите, что на заборе читаете? :lol:

я вам говорю: то, что написано для 2.6.18 (с обработкой IRQ) почти никогда не компилируется 2.6.19 ... а здесь: и 2.4, и 2.6 ... может и 3.0?

#211832
sasch написал:
чего то запутали, правильно я понял что существующая версия драйвера старая для текущей ОС, и про установку этого драйвера можно забыть?

лучше забыть ... чтоб кошмары не снились по ночам wink

sasch написал:
Как тогда запустить вайфай адаптер?

1. отправляемся на сайт изготовителя (не только чипа RealTec, но и девайса) ... ищем
2. отправляемся в интернет ... ищем
3. ищем совместимость...
4. бывает что и никак wink

#211844
Olej написал:
1. отправляемся на сайт изготовителя

можно сделать проще - набрать имя девайса(в гугле), и почитать истории (не)успеха тех, кто уже пробовал.

#211860
Olej написал:
[quote=bormant]Olej,
... для ядер 2.4 и 2.6 ...

Вы всему верите, что на заборе читаете? :lol:

я вам говорю: то, что написано для 2.6.18 (с обработкой IRQ) почти никогда не компилируется 2.6.19 ... а здесь: и 2.4, и 2.6 ... может и 3.0?[/quote]
Не на заборе, а в Makefile, *.c, *.h в районе if, #ifdef, условная компиляция называется ;)
Про конкретный помянутый архив -- исходники не содержат исправлений под 2.6.3х и выше, "в лоб" на этих версиях не соберутся.

#212212
drBatty написал:
[quote=Olej]1. отправляемся на сайт изготовителя

можно сделать проще - набрать имя девайса(в гугле), и почитать истории (не)успеха тех, кто уже пробовал.[/quote]

ну, ... wink - это и есть п.2 расписанного выше марлизонского балета :D

#212216
bormant написал:
[quote=Olej][quote=bormant]Olej,
... для ядер 2.4 и 2.6 ...

Вы всему верите, что на заборе читаете? :lol:

я вам говорю: то, что написано для 2.6.18 (с обработкой IRQ) почти никогда не компилируется 2.6.19 ... а здесь: и 2.4, и 2.6 ... может и 3.0?[/quote]
Не на заборе, а в Makefile, *.c, *.h в районе if, #ifdef, условная компиляция называется ;)
[/quote]

Я такой "букварь" - давно просчитал. Но только это все называется: просто сказки :(
Никакие #ifdef вам, или любому разработчику модулей, сильно не помогут, потому как не сможете вы отследить последовательно всё, что начудит kernel-команда, а чудит она безмерно, потому как не связана никакими стандартами, как, например, разработчики GNU повязаны стандартами POSIX, и там не побалуешь :lol:
И уж конечно, никакие #ifdef не помогут вам предсказать, что они там начудят в .h файлах следующего релиза ... а каждый следующий релиз kernel выходит с периодом 12 недель :(

#212247
Olej написал:
Но только это все называется: просто сказки

По поводу невозможности предугадать смену ABI/API в будущих версиях -- с этим и не спорил.
По поводу

Olej написал:
Никакие #ifdef вам, или любому разработчику модулей, сильно не помогут
и остального -- извините, бред чистой воды.

Драйвер в универсальном тарболе зачем распространяется? Чтобы пользователь/админ сказал:[console]
# tar xf name.tar.gz
# cd name
# make
# make install
[/console]и получил одинаково успешный результат на всех поддерживаемых версиях ядер.
Выйдет ядро с новым API, разработчик что, заново пишет весь код драйвера? Очень редко что-то заново и ещё многократно реже весь. На стандартные изменения с переименованием полей структур -- стандартные ветвления в коде по KERNEL_VERSION. Если изменения зело существенны -- изменения в Makefile из каких исходников компоновать итоговый модуль в зависимости от версии.
Но концепция от этого не страдает. Внешне и для для 2.4, и для 2.6 единый тарбол и унифицированная процедура.

И не надо сюда впутывать прекращение поддержки в виде выпуска версий под новые ядра -- это другой случай. Мухи отдельно, котлеты отдельно.
#212282
bormant написал:

и получил одинаково успешный результат на всех поддерживаемых версиях ядер.
Выйдет ядро с новым API, разработчик что, заново пишет весь код драйвера? Очень редко что-то заново и ещё многократно реже весь. На стандартные изменения с переименованием полей структур -- стандартные ветвления в коде по KERNEL_VERSION. Если изменения зело существенны -- изменения в Makefile из каких исходников компоновать итоговый модуль в зависимости от версии.

Это всё теория ... в изложении для пыанэров среднего школьного уровня :lol:
И благие намерения ... которыми, как утверждается у Данте: "дорога в Ад вымощена" :lol:

А на практике ... вот вам VPN от бренда - более не бывает - Cisco ... у меня лог сохранился:

text

[olej@notebook vpnclient]$ sudo ./vpn_install
Cisco Systems VPN Client Version 4.8.02 (0030) Linux Installer
...
make[1]: Entering directory `/usr/src/kernels/2.6.32.9-70.fc12.i686.PAE'
  CC [M]  /usr/src/vpnclient/linuxcniapi.o
  CC [M]  /usr/src/vpnclient/frag.o
  CC [M]  /usr/src/vpnclient/IPSecDrvOS_linux.o
  CC [M]  /usr/src/vpnclient/interceptor.o
/usr/src/vpnclient/interceptor.c: В функции ‘interceptor_init’:
/usr/src/vpnclient/interceptor.c:132: ошибка: ‘struct net_device’ не содержит элемента с именем ‘hard_start_xmit’
...

И поехали пляски с бубном по интернету в поисках патчей ... а вопросом этим, оказывается, интернет полнится :lol: , тысячи (!) народу решают проблему каждый для своей (под-)версии ядра.
И начинается:

text

[olej@notebook VPN]$ wget http://lamnk.com/download/vpnclient-linux-2.6.31-final.diff
...
[olej@notebook vpnclient-path]$ patch < ./vpnclient-linux-2.6.31-final.diff
...

Но и этого мало ... потом лезем в исходники и по-маленьку подправляем где ошибки указывает...
И только после этого:

text

[olej@notebook vpnclient-path]$ sudo /etc/init.d/vpnclient_init start
Starting /opt/cisco-vpnclient/bin/vpnclient: Done
[olej@notebook vpnclient-path]$ lsmod | grep cisco
cisco_ipsec           590314  0

И этот путь прошли все кто возился с Cisco Systems VPN Client...

Так что: теория теорией, пыанэры пыанэрами wink ... а на практике оказывается, что драйвера-модули больше 8-10 подверсий ядра не переживают, и то, что писалось, скажем, для 2.6.19 с ба-а-а-альшущей вероятностью в 2.6.30 компилироваться не станет. Но и компилироваться - это ведб тоже только пол-беды, правда? wink Оно даже если откомпилируется, то достаточно часто модуль в более позднем ядре просто неправильно работает ... тонкие могут вылезать артефакты, но они есть!

bormant написал:

Но концепция от этого не страдает. Внешне и для для 2.4, и для 2.6 единый тарбол и унифицированная процедура.

Я не знаю как там концепция поживает....
Но (если вы заглядывали в kernel API wink ) то в 2.4 & 2.6 там практически ничего общего не осталось!
Вот вам и #ifdef ...

#212285
Olej написал:

то, что писалось, скажем, для 2.6.19 с ба-а-а-альшущей вероятностью в 2.6.30 компилироваться не станет. Но и компилироваться - это ведб тоже только пол-беды, правда?

bormant написал:

И не надо сюда впутывать прекращение поддержки в виде выпуска версий под новые ядра -- это другой случай. Мухи отдельно, котлеты отдельно.
Извините, что повторяюсь...

Вот простой пример: драйверы от реалтек http://www.realtek.com/Downloads/downloadsView.aspx?Langid=1&PNid=13&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false#2
Единый тарбол. Единый Makefile в корне, выбирающий вариант 2.4/2.6, отдельные Makefile для 2.6 и 2.4,
[console]
% grep -R KERNEL_VERSION ./ | wc -l
124
[/console]
ps. KERNEL_VERSION -- это макрос, используемый обычно для формирования условий по версиям ядра, например,
text

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)
#212300

Извините, что повторяюсь...

Это уже становится нудно и неинтересно :o

Итогом к этому месту обсуждения может быть то, что:
- вопрос был поставлен в теме: "Научите устанавливать linux-приложения"
- вопрос был поставлен неправильно, потому как в такой формулировке он охватывает 99.9...% Linux проектов, но именно те, которые не собирают и не устанавливают в своём составе модулей ядра.
- а вот когда вопрос переходит к сборке и установке модулей ядра? ... здесь всё гораздо изощрённее, и могут быть всякие варианты, и тут я просто категорически не советовал бы заниматься этим тем, кто ещё не освоил в совершенстве (понимая что и каким телодвижением делается) технику сборки ординарных Linux-приложений ... - можете легко остаться без своей системы :D

#212304

Возвращаясь к беде ТС.

sasch написал:

make[3]: *** Нет правила для сборки цели `стол/rtl8192su_linux_2.4_2.6.0003.1019.2009/HAL/rtl8192u'. Останов.
make[2]: *** [sub-make] Ошибка 2
make[1]: *** [all] Ошибка 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.39-2-486'
make: *** [all] Ошибка 2
саш@8 ~/Рабочий стол/rtl8192su_linux_2.4_2.6.0003.1019.2009 $

1) Не используйте путь с пробелом в имени, Makefile не рассчитан на это.
2) Если D-Link (производитель донгла) не обновляет драйверы, есть смысл посмотреть драйверы на сайте производителя чипсета.
http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&PNid=21&PFid=48&Level=5&Conn=4&ProdID=231&DownTypeID=3&GetDown=false&Downloads=true#2292
Под 2.6.37 собирается, под 2.6.39 -- должен (по крайней мере в коде есть указания на это в виде "#if LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,29)" ). Драйвер внутри .zip в каталоге driver в tar.gz архиве.

Мог ошибиться с чипсетом, покажите результат выполнения от рута
[console]# lspci -knn | grep Wireless -A3[/console]

#212336
Olej написал:
Это всё теория ... в изложении для пыанэров среднего школьного уровня

может быть. Вам виднее. На практике bormant прав. А вы - нет.

Olej написал:
И этот путь прошли все кто возился с Cisco Systems VPN Client...

это несколько другой случай.

#212378
bormant написал:

ps. KERNEL_VERSION -- это макрос, используемый обычно для формирования условий по версиям ядра, например,
text

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)

Т.е. вы решили меня этому поучить?
Спасибо за заботу :lol:

Вы то сами модули ядра хоть к чему писали? oO
... ну, так соберите товарисчу его модуль RealTec - да и дело с концом wink

#212379
drBatty написал:

может быть. Вам виднее. На практике bormant прав. А вы - нет.

А bormant - он всегда праа-а-ав. wink
bormant - голова (почти по Ильф и Петров wink )

Уважаемый drBatty

... хотелось бы обсуждать вкус устриц с теми, кто их пробовал

(с) М.Жванецкий

#212389

Olej, мы тут ничего не обсуждаем вообще-то

хотя впрочем - обсуждаем. ТС давно слился, так и не сказав, что у него за ОС... Продолжайте... Я уже указал ТСу на первую его ошибку: http://linuxforum.ru/viewtopic.php?pid=232164#p232164
что дальше делать - не знаю. Я не телепат. Даже ни одного модуля не написал.

#212413

Отчего ж не собрать-то... Есть вероятность, что ТС использует иные, несовместимые с моими, параметры сборки ядра. В этом случае ему нужно будет собрать драйвер самостоятельно.

Realtek rtl8712_8188_8191_8192SU_usb_linux_v2.6.6.0.20110401 driver
Собран для 2.6.39.4-smp 32-бит
http://ifolder.ru/27465728

Установка (от root):
[console]# tar zxf /путь/к/тарболу/rtl8712u_2.6.39.4.tar.gz
# cd rtl8712u_2.6.39.4
# ./install.sh
[/console]

Исходники от Realtek: http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&PNid=21&PFid=48&Level=5&Conn=4&ProdID=231&DownTypeID=3&GetDown=false&Downloads=true#2292

#212559
bormant написал:
Отчего ж не собрать-то...

Ну вот это - дело wink

#214084
bormant написал:
Отчего ж не собрать-то... Есть вероятность, что ТС использует иные, несовместимые с моими, параметры сборки ядра. В этом случае ему нужно будет собрать драйвер самостоятельно.

Realtek rtl8712_8188_8191_8192SU_usb_linux_v2.6.6.0.20110401 driver
Собран для 2.6.39.4-smp 32-бит
http://ifolder.ru/27465728

Установка (от root):
[console]# tar zxf /путь/к/тарболу/rtl8712u_2.6.39.4.tar.gz
# cd rtl8712u_2.6.39.4
# ./install.sh
[/console]

Исходники от Realtek: http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&PNid=21&PFid=48&Level=5&Conn=4&ProdID=231&DownTypeID=3&GetDown=false&Downloads=true#2292

Бортман, прошу прощения, вот изза этого косяка (http://linuxforum.ru/viewtopic.php?pid=234801#p234801) я даже не знаю работает ли ваш метод. Сечас поробую исправить тогда отвечу. Простите за столь долгий ответ.

#216949

Можно уточнить?
у меня уже 2 ос, и вот что пишут обе:


linuxMintGnom
саш@минтовый /media/0616B26816B2587F/rtl_8712u_2.6.39.4/rtl_8712u_2.6.39.4 $ su
Пароль:
минтовый rtl_8712u_2.6.39.4 # install.sh
install.sh: command not found
минтовый rtl_8712u_2.6.39.4 # ./install.sh
bash: ./install.sh: Отказано в доступе
минтовый rtl_8712u_2.6.39.4 #


Debian 6.0.3 Gnom
root@debian:/home/sasch# install -p -m 644 8712u.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/
root@debian:/home/sasch#
второй вариант, если пробовать ./install.sh - то то же пишет что отказано в доступе...

чего то делаю не правильно?

Войдите или зарегистрируйтесь, чтобы ответить.