LINUX.ORG.RU

[Хочется странного] Сборка отдельного ядерного модуля

 


0

1

Всем привет!
Исходные данные: есть Nokia N900, USB-ЦАП+усилитель Meier Audio Corda 3MOVE.
Хочется: подключить ЦАП к нокии через USB и слушать через него музыку.
Этому мешает то, что ядро на N900 собрано без поддержки USB-audio.

#cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.18rc3
#uname -a
Linux Nokia-N900 2.6.28.10power42 #1 PREEMPT Wed Nov 10 01:01:59 EET 2010 armv71 unknown
Пробовал собрать alsa-drivers у себя на компе, но configure ругается на то, что alsa уже вкомпилена в ядро и в юзерспейсе он её собирать не будет. То же самое, думаю, будет при попытке собрать модули прямо на целевом девайсе.
Так как же мне собрать отдельно модуль snd-usb-audio? Или, хотя бы, можно ли где-то взять готовый?

★★★★★

Последнее исправление: Axon (всего исправлений: 3)

Ежели она монолитно вкомпилена в ведро — придется ведро пересобирать, без вариантов (насколько мне известно).

nnz ★★★★
()
Ответ на: комментарий от nnz

Так в ядро же можно в runtime загрузить произвольный модуль, если он под это ядро собран. Есть в доках дебиана инструкция, как собирать такие модули. Только она для альсы, похоже, не подходит...

Axon ★★★★★
() автор топика
Ответ на: комментарий от anon_666

В состав alsa входят модули, которые нельзя загрузить в двух экземплярах.

Ну так и что? У меня же нету snd-usb-audio. Значит, скомпиленный мной, он будет в единственном экземпляре.

Axon ★★★★★
() автор топика
Ответ на: комментарий от ipwww

Пересобери ядро

Уж больно геморно это. Официально, если мне не изменяет память, поддерживается только сборка в SDK с последующей установкой на комп. При этом, надо ставить этот SDK, курить по нему маны, собирать ядро, восстанавливать убитую по неопытности прошивку на мобильнике, собирать ещё раз и т. д...

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

К тому, как собрать только модули, относящиеся к USB audio. Естественно, нужны исходники ядра целевого девайса и желательно его же .config…

Проще и надежнее, конечно, пересобрать все ядро вместе с модулями, но может и так получится.

botkin
()
Ответ на: комментарий от anon_666

Он может не загрузиться, если завязан на некую фичу alsa, которая отсутствует в собранном ядре.

Печаль... Похоже, и правда, придётся ядро пересобирать...

Axon ★★★★★
() автор топика

make sound/usb/snd-usb-audio.ko

Но только при условии совпадения:
1. версии gcc в тулчейне с тем gcc, которым собираля ядро
2. версии исходников ядра ноклы
3. более-менее похож .config

shahid ★★★★★
()
Ответ на: комментарий от anon_666

Что-то не грепается ничего...

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Боюсь, новый модуль неизбежно поссорится с тем, что уже намертво вкомпилено в ведро.

nnz ★★★★
()

Ядро пересобирать не нужно, но помучаться придется.

Порядок такой:

1. Установить scratchbox (инструкции на maemo.org), настроить и залогиниться туда
2. apt-get source kernel-power
Проверить совпадении версии ядра в репозитории и на n900
3. Далее cd kernel-power && cp debian/rx51power_defconfig .config
4. vi .config
5. накатить патчи из debian/patches/series или quilt'ом
6. make modules M=/path/to/module/dir

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

Если правильно настроить scratchbox, то модуль будет собран нужным компилятором с нужным vermagic и встроится в n900 нормально.

Chumka ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.