В линуксе я совсем зелёный новичок. Понадобился драйвер для Android под ядро линукса 2.6.14. Как я понял в архиве с драйвером он в виде исходников и его необходимо скомпилировать, т.к. мне нужен в итоге файл с расширением .o или .ko. Прошу помочь собрать драйвер, кому не трудно! Заранее благодарен.

2

anonymous1 пишет:

В линуксе я совсем зелёный новичок. Понадобился драйвер для Android под ядро линукса 2.6.14. Как я понял в архиве с драйвером он в виде исходников и его необходимо скомпилировать, т.к. мне нужен в итоге файл с расширением .o или .ko. Прошу помочь собрать драйвер, кому не трудно! Заранее благодарен.

1. .ко - потому как 2.6.14

2. разархивируйте архив...

3. и ...

$ make

- можете сюда показывать результаты шагов ... подскажем  wink

Настоящие проблемы у вас начнуться после шага 3, когда вы уже получите свой файл .ko  wink - когда вы станете его тулить в свой Android....

Но вы тогда нам расскажете (для любопытства), а мы вам поможем...

3

anonymous1 пишет:

В линуксе я совсем зелёный новичок. Понадобился драйвер для Android под ядро линукса 2.6.14. Как я понял в архиве с драйвером он в виде исходников и его необходимо скомпилировать, т.к. мне нужен в итоге файл с расширением .o или .ko. Прошу помочь собрать драйвер, кому не трудно! Заранее благодарен.

Аж любопытно стало...
Примерно так:

[olej@notebook tmp]$ unzip -x AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source.zip 
Archive:  AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source.zip
  inflating: asix.c                  
  inflating: asix.h                  
  inflating: axusbnet.c              
  inflating: axusbnet.h              
  inflating: Makefile                
  inflating: readme                  
[olej@notebook _asix]$ make
make -C /lib/modules/2.6.32.9-70.fc12.i686.PAE/build SUBDIRS=/home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix modules
make[1]: Entering directory `/usr/src/kernels/2.6.32.9-70.fc12.i686.PAE'
  CC [M]  /home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix/asix.o
/home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix/asix.c: В функции ‘ax8817x_bind’:
/home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix/asix.c:910: предупреждение: присваивание отменяет квалификаторы указуемого типа
/home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix/asix.c: В функции ‘ax88772_bind’:
/home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix/asix.c:1117: предупреждение: присваивание отменяет квалификаторы указуемого типа
/home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix/asix.c: В функции ‘ax88772a_bind’:
/home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix/asix.c:1358: предупреждение: присваивание отменяет квалификаторы указуемого типа
/home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix/asix.c: В функции ‘ax88772b_bind’:
/home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix/asix.c:1713: предупреждение: присваивание отменяет квалификаторы указуемого типа
/home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix/asix.c: В функции ‘ax88178_bind’:
/home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix/asix.c:2627: предупреждение: присваивание отменяет квалификаторы указуемого типа
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix/asix.mod.o
  LD [M]  /home/olej/2011_WORK/LINUX-books/examples.DRAFT/_asix/asix.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.32.9-70.fc12.i686.PAE'
[olej@notebook _asix]$ ls *.ko
asix.ko

Но кто вам сказал, что это имеет какое-то касательство к Androib - это классический Linux модуль... (о чём и readme пишет)
Как вы его станете в Android аж любопытно  wink
Напишете?

4

Olej пишет:

1. .ко - потому как 2.6.14
2. разархивируйте архив...
3. и ...

Не получается. Пробую через cygwin, линукса нет. Пожалуйста выложите готовый скомпилированный вариант.

Olej пишет:

Но кто вам сказал, что это имеет какое-то касательство к Androib - это классический Linux модуль... (о чём и readme пишет)
Как вы его станете в Android аж любопытно  
Напишете?

Сказал мне это сайт. На android ставится через insmod. Естественно для этого нужен root и поддержка USB-хоста в устройстве. Мой девайс Samsung GT-N7000.

5 (11.12.2011 03:54:33 отредактировано Olej)

anonymous1 пишет:

Не получается. Пробую через cygwin, линукса нет. Пожалуйста выложите готовый скомпилированный вариант.

Как?  :lol:
Я не вижу на этом форуме возможности прикреплять файлы  ah (а там архив).

anonymous1 пишет:
Olej пишет:

Но кто вам сказал, что это имеет какое-то касательство к Androib - это классический Linux модуль... (о чём и readme пишет)
Как вы его станете в Android аж любопытно  
Напишете?

Сказал мне это сайт. На android ставится через insmod. Естественно для этого нужен root и поддержка USB-хоста в устройстве. Мой девайс Samsung GT-N7000.

Расскажете потом здесь подробно  wink

P.S. кстати, вспомнил ... может чем поможет в экспериментах?
Android
Android-x86

6

Olej пишет:

Как?  
Я не вижу на этом форуме возможности прикреплять файлы   (а там архив).

http://zalil.ru/

Olej пишет:

Расскажете потом здесь подробно 

C удовольствием, но мне нужен скомпилированный драйвер.

7 (11.12.2011 04:04:24 отредактировано Olej)

anonymous1 пишет:

C удовольствием, но мне нужен скомпилированный драйвер.

Так вот ваш драйвер: http://zalil.ru/32245069  wink

Только он вам может пригодится только посмотреть: драйвер компилируется строго под ядро на котором компилируется, а при переносе не станет грузиться.
Совпадения наименований ядер - практически исключены  ac
Я вам собрал вот на таком хосте:

[olej@notebook _asix]$ uname -r
2.6.32.9-70.fc12.i686.PAE

1. Так что вам остаётся научиться это сделать самому...

P.S. существует способ отменить при загрузке ядра проверку отметки версии, но а). это уже на уровне жестокого хака + б). я не помню как это делается, давненько было  wink


2. ... но здесь вылазит снова проблема с Android - его ядро не будет совпадать в любом случае.

8

Olej пишет:

1. Так что вам остаётся научиться это сделать самому...
P.S. существует способ отменить при загрузке ядра проверку отметки версии, но а). это уже на уровне жестокого хака + б). я не помню как это делается, давненько было 

2. ... но здесь вылазит снова проблема с Android - его ядро не будет совпадать в любом случае.
Отредактировано Olej (Сегодня 13:04:24)

Нда, не выходит с ним :-(
Пишет что под insmod подходит только .o... Ядро у меня '2.6.35.14 FM 1.4gb21d451'.

9

anonymous1, всё, что говорил тов. Olej, относится к общей схеме сборки модулей и в данном случае практически бесполезно.
У вас случай не тривиальный.
достаточный набор:
1) кросс-компилятор (для архитектуры целевой системы)
2) дерево исходников с файлами сборки для вашего ядра. если собирать ядро самостоятельно, то оно всегда под рукой, вам же придётся где-то его искать. по идее его должен предоставить производитель.
3) стандартные утилиты: make perl итп

когда это всё соберёте, то дальше дело одной команды: make -C <путь к ядру> M=$(pwd) modules

всё это удобнее делать в настоящем линуксе(в теории возможно и под cygwin, но ССЗБ)

ЗЫ: это всё теория.

95% процентов проблем находятся между клавиатурой и стулом.

10 (11.12.2011 17:28:06 отредактировано Olej)

anonymous1 пишет:

Нда, не выходит с ним :-(
Пишет что под insmod подходит только .o... Ядро у меня '2.6.35.14 FM 1.4gb21d451'.

Я ведь говорил, что всё будет гораздо интереснее!  wink

То, что требует .o для меня - неожиданность (Android специфика).
В принципе, .o (для ранних ядер это и была конечная форма) всегда собирается как промежуточный результат, но ... я его вытер вместе с другими временными файлами из архива, который вам высылал  ac  :lol:
Я могу пересобрать - попробуйте его втолкать? что они там начудили?

P.S. Если наберётесь упорства, я готов помогать вам пошагово  wink - меня так же занимают эти Android-вопросы.

11 (11.12.2011 18:49:17 отредактировано Olej)

anonymous1 пишет:

Пишет что под insmod подходит только .o... Ядро у меня '2.6.35.14 FM 1.4gb21d451'.

У Android, при его Linux kernel, совершенно не-Linux весь набор утилит (то, что в Linux - GNU) ... я вот здесь Linux для embedded применений начинал разбираться с этими делами, но пока руки не дошли...
Там утилиты (insmod, ...) только по названию совпадают.
И самое противное, что они не имеют --help опции: это можно мотивировать экономией ресурсов Android ... а можно нежеланием раскрывать "открытую" систему  wink
Что там в Android? BusyBox? или не BusyBox? или что-то совершенно своё?

А если и  BusyBox (или и не BusyBox) то где найти описание команд-утилит Android.

Например, там есть "очень похожие" команды:

# ifconfig wlan0
wlan0: ip 192.168.1.22 mask 255.255.255.0 flags [up broadcast running]
# top
User 5%, System 10%, IOW 0%, IRQ 0%
User 19 + Nice 0 + Sys 33 + Idle 273 + IOW 0 + IRQ 0 + SIRQ 0 = 325

  PID CPU% S  #THR     VSS     RSS PCY UID      Name
  989   8% S    52 230712K  33276K  fg system   system_server
 2596   6% R     1    864K    384K  fg root     top
  951   1% S     4   3376K    188K  fg root     /sbin/adbd
  511   0% S     1      0K      0K  fg root     usb_mass_storag
    5   0% S     1      0K      0K  fg root     events/0
...

но не удаётся "добыть" из того же ifconfig список существующих интерфейсов, что-то типа:

$ ifconfig -a
...

- он на это молчит как партизан на допросе в гестапо  ah

12

anonymous1, а можно несколько конкретнее, для чего драйвер, какое устройство и т. п.

iMac 21.5, Asus U36JC, iPad 2, iPhone 4S

13

zvezdochots пишет:

anonymous1, а можно несколько конкретнее, для чего драйвер, какое устройство и т. п.

============================================================================
ASIX AX88178 USB 2.0 Gigabit Ethernet Network Adapter
ASIX AX88772 USB 2.0 Fast Ethernet Network Adapter
ASIX AX88772A USB 2.0 Fast Ethernet Network Adapter
ASIX AX88760 USB 2.0 MTT HUB and USB 2.0 to Fast Ethernet Combo Controller
ASIX AX88772B USB 2.0 Fast Ethernet Network Adapter
Driver Compilation & Configuration on the Linux
============================================================================

This driver has been verified on kernel versions from 2.6.14 to 2.6.38.

Это из readme.

14

Olej пишет:

То, что требует .o для меня - неожиданность (Android специфика).

Я здесь занимался совсем другим модулем ... и дай гляну (давно не видел wink ), думаю, а как "нормальный" Linux реагирует на .o :

[olej@notebook sys_call_table]$ sudo insmod md_0.o 
insmod: error inserting 'md_0.o': -1 Invalid module format

Нормально реагирует!  wink

15

anonymous1 пишет:

Нда, не выходит с ним :-(
Пишет что под insmod подходит только .o... Ядро у меня '2.6.35.14 FM 1.4gb21d451'.

Мне лень детально рыться, искать как подменить метку ядра, но вот это посмотрите, может подскажет (если вы знаете своё ядро):
http://dmilvdv.narod.ru/Translate/LDD3/ … ivers.html
Перевод знаменитой книжки LDD3: "Драйверы устройств Linux, Третья редакция"

Компиляция и загрузка
...

16

Нашёл ядро своего аппарата и даже его исходники. USB сетевуху купил эту. Стоит ~220 рублей с бесплатной доставкой в европу\азию.
От всех этих проблем, чтобы подружить сетевуху и девайс у меня голова скоро треснет...
http://i.cdn.turner.com/ireport/sm/prod/2009/12/20/WE00365922/1158879/facepalmjpg-1158879_sm.jpg
Времени всё это лопатить и изучать к сожалению пока нет. Но спасибо за советы, попробую возможно в будущем лучше разобраться в линуксе...

17

anonymous1 пишет:

USB сетевуху купил эту. Стоит ~220 рублей с бесплатной доставкой в европу\азию.

Любопытная штучка...

anonymous1 пишет:

От всех этих проблем, чтобы подружить сетевуху и девайс у меня голова скоро треснет...

wink Это проблемы ещё, по-существу и не начинались  wink