В линуксе я совсем зелёный новичок. Понадобился драйвер для Android под ядро линукса 2.6.14. Как я понял в архиве с драйвером он в виде исходников и его необходимо скомпилировать, т.к. мне нужен в итоге файл с расширением .o или .ko. Прошу помочь собрать драйвер, кому не трудно! Заранее благодарен.
Помогите собрать драйвер
В линуксе я совсем зелёный новичок. Понадобился драйвер для Android под ядро линукса 2.6.14. Как я понял в архиве с драйвером он в виде исходников и его необходимо скомпилировать, т.к. мне нужен в итоге файл с расширением .o или .ko. Прошу помочь собрать драйвер, кому не трудно! Заранее благодарен.
1. .ко - потому как 2.6.14
2. разархивируйте архив...
3. и ...
$ make
- можете сюда показывать результаты шагов ... подскажем wink
Настоящие проблемы у вас начнуться после шага 3, когда вы уже получите свой файл .ko wink - когда вы станете его тулить в свой Android....
Но вы тогда нам расскажете (для любопытства), а мы вам поможем...
В линуксе я совсем зелёный новичок. Понадобился драйвер для 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
Напишете?
1. .ко - потому как 2.6.14
2. разархивируйте архив...
3. и ...
Не получается. Пробую через cygwin, линукса нет. Пожалуйста выложите готовый скомпилированный вариант.
Но кто вам сказал, что это имеет какое-то касательство к Androib - это классический Linux модуль... (о чём и readme пишет)
Как вы его станете в Android аж любопытно
Напишете?
Сказал мне это сайт. На android ставится через insmod. Естественно для этого нужен root и поддержка USB-хоста в устройстве. Мой девайс Samsung GT-N7000.
Не получается. Пробую через cygwin, линукса нет. Пожалуйста выложите готовый скомпилированный вариант.
Как? :lol:
Я не вижу на этом форуме возможности прикреплять файлы :[ (а там архив).
[quote=Olej]Но кто вам сказал, что это имеет какое-то касательство к Androib - это классический Linux модуль... (о чём и readme пишет)
Как вы его станете в Android аж любопытно
Напишете?
Сказал мне это сайт. На android ставится через insmod. Естественно для этого нужен root и поддержка USB-хоста в устройстве. Мой девайс Samsung GT-N7000.
[/quote]
Расскажете потом здесь подробно wink
P.S. кстати, вспомнил ... может чем поможет в экспериментах?
Android
Android-x86
Как?
Я не вижу на этом форуме возможности прикреплять файлы (а там архив).
Расскажете потом здесь подробно
C удовольствием, но мне нужен скомпилированный драйвер.
C удовольствием, но мне нужен скомпилированный драйвер.
Так вот ваш драйвер: http://zalil.ru/32245069 wink
Только он вам может пригодится только посмотреть: драйвер компилируется строго под ядро на котором компилируется, а при переносе не станет грузиться.
Совпадения наименований ядер - практически исключены :(
Я вам собрал вот на таком хосте:
[olej@notebook _asix]$ uname -r
2.6.32.9-70.fc12.i686.PAE
1. Так что вам остаётся научиться это сделать самому...
P.S. существует способ отменить при загрузке ядра проверку отметки версии, но а). это уже на уровне жестокого хака + б). я не помню как это делается, давненько было wink
2. ... но здесь вылазит снова проблема с Android - его ядро не будет совпадать в любом случае.
1. Так что вам остаётся научиться это сделать самому...
P.S. существует способ отменить при загрузке ядра проверку отметки версии, но а). это уже на уровне жестокого хака + б). я не помню как это делается, давненько было
2. ... но здесь вылазит снова проблема с Android - его ядро не будет совпадать в любом случае.
Отредактировано Olej (Сегодня 13:04:24)
Нда, не выходит с ним :-(
Пишет что под insmod подходит только .o... Ядро у меня '2.6.35.14 FM 1.4gb21d451'.
anonymous1, всё, что говорил тов. Olej, относится к общей схеме сборки модулей и в данном случае практически бесполезно.
У вас случай не тривиальный.
достаточный набор:
1) кросс-компилятор (для архитектуры целевой системы)
2) дерево исходников с файлами сборки для вашего ядра. если собирать ядро самостоятельно, то оно всегда под рукой, вам же придётся где-то его искать. по идее его должен предоставить производитель.
3) стандартные утилиты: make perl итп
когда это всё соберёте, то дальше дело одной команды: make -C <путь к ядру> M=$(pwd) modules
всё это удобнее делать в настоящем линуксе(в теории возможно и под cygwin, но ССЗБ)
ЗЫ: это всё теория.
Нда, не выходит с ним :-(
Пишет что под insmod подходит только .o... Ядро у меня '2.6.35.14 FM 1.4gb21d451'.
Я ведь говорил, что всё будет гораздо интереснее! wink
То, что требует .o для меня - неожиданность (Android специфика).
В принципе, .o (для ранних ядер это и была конечная форма) всегда собирается как промежуточный результат, но ... я его вытер вместе с другими временными файлами из архива, который вам высылал :( :lol:
Я могу пересобрать - попробуйте его втолкать? что они там начудили?
P.S. Если наберётесь упорства, я готов помогать вам пошагово wink - меня так же занимают эти Android-вопросы.
Пишет что под 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
...
- он на это молчит как партизан на допросе в гестапо :[
anonymous1, а можно несколько конкретнее, для чего драйвер, какое устройство и т. п.
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.
То, что требует .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
Нда, не выходит с ним :-(
Пишет что под insmod подходит только .o... Ядро у меня '2.6.35.14 FM 1.4gb21d451'.
Мне лень детально рыться, искать как подменить метку ядра, но вот это посмотрите, может подскажет (если вы знаете своё ядро):
http://dmilvdv.narod.ru/Translate/LDD3/index.html?linux_device_drivers.html
Перевод знаменитой книжки LDD3: "Драйверы устройств Linux, Третья редакция"
Компиляция и загрузка
...
Нашёл ядро своего аппарата и даже его исходники. USB сетевуху купил эту. Стоит ~220 рублей с бесплатной доставкой в европу\азию.
От всех этих проблем, чтобы подружить сетевуху и девайс у меня голова скоро треснет...

Времени всё это лопатить и изучать к сожалению пока нет. Но спасибо за советы, попробую возможно в будущем лучше разобраться в линуксе...