LINUX.ORG.RU

проблема при компиляции модуля ядра


0

1

Всем привет!

Проблему немного трудно описать, но я попробую :)
Имеется Ubuntu 10.04, в котором необходимо необходимо изменить 1 строку в usbserial.c. Нашел, как народ вроде как решил эту проблему:

http://www.at91.com/forum/viewtopic.php/f,26/t,19128/st,0/sk,t/sd,a/sid,ac205...

Пробую следовать описанию и сталкиваюсь с тем, что когда выполняю

make M=drivers/usb/serial/

получаю:


/usr/src/modulehack/linux-headers-2.6.32-21-generic/arch/x86/Makefile:81: stack protector enabled but no compiler support
CC [M] drivers/usb/serial/usb-serial.o
cc1: error: unrecognized command line option "-mregparm=3"
Assembler messages:
Error: unknown architecture `i586'
Error: unrecognized option -march=i586
drivers/usb/serial/usb-serial.c:1: error: bad value (i586) for -march= switch
make[1]: *** [drivers/usb/serial/usb-serial.o] Fehler 1
make: *** [_module_drivers/usb/serial] Fehler 2


Кто-то сталкивался с чем-то подобным? Как можно решить?


Спасибо за советы
Velik


Ответ на: комментарий от ttnl

Модуль ядра нужно скомпилировать для PC:

root@laptop:/usr/src/modulehack/linux-headers-2.6.32-21-generic# gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)

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

Погоди, а это вообще что такое drivers/usb/serial/ ?

Может все-таки make modules?

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

вроде так можно скачать исходники:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-lucid.git

Headers уже инсталлированны. Фишка в том, чтоб скачать исходники ядра, подправить строку в одном модуле, перекомпилировать его и заменить исходный ко файл. Но у меня проскакивает дурацкая ошибка при компиляции, а гугль да кучу левой инфы при поиске причины :(

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

Потому что надо все ядро компилировать. drivers/usb/serial/ - это почти подсистема.

Скачай пакет с исходниками ядра из репозитария и собирай его по-обычному.

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

Или выкачай из git, потом скопируй старый конфиг в новую директорию и собирай с помощью make-kpkg.

Выкачай ядро из git

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

>Или выкачай из git, потом скопируй старый конфиг в новую директорию и собирай с помощью make-kpkg.

кажется вы правы. Попробую собрать целиком заново :(

velikS ()
Ответ на: комментарий от Ptech

>-march=i586 не верно. -march=native попробуй.

что за бред?

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

>-m32 попробуй добавить

Нафига?

Configured with: ... --host=i486-linux-gnu --target=i486-linux-gnu

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