LINUX.ORG.RU
ФорумTalks

[астрологам] надо закомпилить модуль под 2.4


0

0

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

потому нужны люди которые используют libastral.so

есть ктоннить?

☆☆

[root@observ rs485-3.x.55]# ls
ChangeLog  Config.in  Configure.help  defconfig  i386  include  kernel  Makefile  modules  readme  rpm  scripts
[root@observ rs485-3.x.55]# make
make -C kernel
make[1]: Вход в каталог `/mnt/sata/work/rs485-3.x.55/kernel'
make -C proc
make[2]: Вход в каталог `/mnt/sata/work/rs485-3.x.55/kernel/proc'
make[2]: Цель `all' не требует выполнения команд.
make[2]: Выход из каталог `/mnt/sata/work/rs485-3.x.55/kernel/proc'
make -C pci
make[2]: Вход в каталог `/mnt/sata/work/rs485-3.x.55/kernel/pci'
make[2]: Цель `all' не требует выполнения команд.
make[2]: Выход из каталог `/mnt/sata/work/rs485-3.x.55/kernel/pci'
gcc -O3 -mcpu=i686 -Wall -D__KERNEL__ -DMODULE -I/mnt/sata/work/rs485-3.x.55/include -I/usr/src/linux/include -D_LOOSE_KERNEL_NAMES -o com485.o -c moxa102_com.c
In file included from /usr/include/linux/fs.h:23,
                 from /usr/include/linux/capability.h:17,
                 from /usr/include/linux/binfmts.h:5,
                 from /usr/include/linux/sched.h:9,
                 from /usr/include/linux/delay.h:12,
                 from moxa102_com.c:18:
/usr/include/linux/string.h:8:2: warning: #warning Using kernel header in userland!
In file included from /usr/include/linux/sched.h:14,
                 from /usr/include/linux/delay.h:12,
                 from moxa102_com.c:18:
/usr/include/linux/timex.h:173: field `time' has incomplete type
In file included from /usr/include/linux/bitops.h:69,
                 from /usr/include/asm/system.h:7,
                 from /usr/include/linux/sched.h:16,
                 from /usr/include/linux/delay.h:12,
                 from moxa102_com.c:18:
/usr/include/asm/bitops.h:327:2: warning: #warning This includefile is not available on all architectures.
/usr/include/asm/bitops.h:328:2: warning: #warning Using kernel headers in userspace: atomicity not guaranteed
In file included from /usr/include/linux/signal.h:4,
                 from /usr/include/linux/sched.h:25,
                 from /usr/include/linux/delay.h:12,
                 from moxa102_com.c:18:
/usr/include/asm/signal.h:107: parse error before "sigset_t"
/usr/include/asm/signal.h:110: parse error before '}' token
In file included from /usr/include/linux/sched.h:81,
                 from /usr/include/linux/delay.h:12,
                 from moxa102_com.c:18:
/usr/include/linux/timer.h:45: parse error before "spinlock_t"
/usr/include/linux/timer.h:53: parse error before '}' token
/usr/include/linux/timer.h:67: parse error before "tvec_base_t"
/usr/include/linux/timer.h:101: parse error before "tvec_bases"
/usr/include/linux/timer.h: In function `init_timer':
/usr/include/linux/timer.h:105: dereferencing pointer to incomplete type
/usr/include/linux/timer.h:105: dereferencing pointer to incomplete type
/usr/include/linux/timer.h:106: dereferencing pointer to incomplete type
/usr/include/linux/timer.h: In function `timer_pending':
/usr/include/linux/timer.h:121: dereferencing pointer to incomplete type
In file included from moxa102_com.c:18:
/usr/include/linux/delay.h:13:23: asm/delay.h: No such file or directory
In file included from /mnt/sata/work/rs485-3.x.55/include/mcua.h:36,
                 from moxa102_com.c:21:
/usr/include/asm/atomic.h:40:2: warning: #warning Using kernel header in userland program. BAD!
moxa102_com.c: In function `rs485_test_device':
moxa102_com.c:115: warning: implicit declaration of function `udelay'
moxa102_com.c: In function `rs485_set_baudrate':
moxa102_com.c:160: warning: implicit declaration of function `printk'
moxa102_com.c:160: `KERN_DEBUG' undeclared (first use in this function)
moxa102_com.c:160: (Each undeclared identifier is reported only once
moxa102_com.c:160: for each function it appears in.)
moxa102_com.c:160: parse error before string constant
moxa102_com.c: In function `start_transmitter':
moxa102_com.c:251: `KERN_DEBUG' undeclared (first use in this function)
moxa102_com.c:251: parse error before string constant
moxa102_com.c:256: parse error before string constant
moxa102_com.c:267: parse error before string constant
moxa102_com.c:273: parse error before string constant
moxa102_com.c:285: parse error before string constant
moxa102_com.c:316: parse error before string constant
moxa102_com.c:377: parse error before string constant
moxa102_com.c:412: parse error before string constant
moxa102_com.c:438: parse error before string constant
moxa102_com.c: In function `reciv_data':
moxa102_com.c:571: `KERN_DEBUG' undeclared (first use in this function)
moxa102_com.c:571: parse error before string constant
moxa102_com.c:581: parse error before string constant
moxa102_com.c:590: parse error before string constant
moxa102_com.c:611: parse error before string constant
moxa102_com.c:617: parse error before string constant
moxa102_com.c:624: parse error before string constant
moxa102_com.c:649: parse error before string constant
moxa102_com.c:655: parse error before string constant
moxa102_com.c:672: parse error before string constant
moxa102_com.c:687: parse error before string constant
moxa102_com.c:723: parse error before string constant
moxa102_com.c:727: parse error before string constant
make[1]: *** [com485.o] Ошибка 1
make[1]: Выход из каталог `/mnt/sata/work/rs485-3.x.55/kernel'
make: *** [all-recursive] Ошибка 2

vilfred ☆☆
() автор топика

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

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

cat Makefile

================================================================

.EXPORT_ALL_VARIABLES:

CC=gcc
MAKE=make
LD=ld
SHELL=sh
TOPDIR=$(shell /bin/pwd)
CONFIG=$(shell if [ -r ./.config ]; then echo ./.config; else echo defconfig; fi; )
ARCH=$(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
CPU=$(shell uname -m)
KERNELRELEASE=$(shell uname -r)
DEV_MAJOR=$(shell echo `grep RS485_MAJOR ./include/mcua.h 2>/dev/null | cut -c34-`)
CFLAGS=-O3 -mcpu=$(CPU) -Wall -D__KERNEL__ -DMODULE -I$(TOPDIR)/include
OUT=$(TOPDIR)/$(ARCH)

include $(CONFIG)

ifdef __REAL_TIME__
        RTLINUX=$(shell if [ -d /usr/rtlinux ]; then  echo /usr/rtlinux ; \
                        else if [ -d /usr/src/rtlinux ]; then echo /usr/src/rtlinux ; \
                        else echo "No directory for rtlinux v3.0 or high. Press ^C"; \
                        cat >/dev/null; fi ; fi;)

        include $(RTLINUX)/rtl.mk
else
        LINUX=/usr/src/linux
        CFLAGS += -I$(LINUX)/include
        CFLAGS += -D_LOOSE_KERNEL_NAMES
endif

ifdef _CTS_
        CFLAGS += -D_CTS_
endif

ifdef __REAL_TIME__
        ifdef __CP132__
                TARGET = moxa132_rtl.o
        endif
        ifdef __CP102__
                TARGET = moxa102_rtl.o
        endif
        ifdef __COM__
                TARGET = com485_rtl.o
        endif
        ifdef __LPT__
                TARGET = lpt_rtl.o
        endif
else
        ifdef __CP132__
                TARGET = rs485m132.o
        endif
        ifdef __CP102__
                TARGET = rs485m102.o
        endif
        ifdef __COM__
                TARGET = rs485com.o
        endif
        ifdef __LPT__
                TARGET = rs485lpt.o
        endif
endif

all: all-recursive modules
        ld -m elf_i386 -r -o modules/$(TARGET) $(shell find ./kernel -name *.o)

modules:
        mkdir modules

modules_install: modules/$(TARGET)
        install -v -c -m 644 modules/$(TARGET) /lib/modules/$(KERNELRELEASE)/misc/

all-recursive:
        $(MAKE) -C kernel

clean: clean-recursive
        #rm -f $(OUT)/*.o

clean-recursive:
        $(MAKE) -C kernel clean
        $(MAKE) -C scripts/lxdialog clean
        $(MAKE) -C scripts/xconfig clean

nodes:
        @if [ ! -c /dev/mcua0 ]; then \
                mknod -m 0666 /dev/mcua0 c $(DEV_MAJOR) 0; \
        fi

        @if [ ! -c /dev/mcua1 ]; then \
                 mknod -m 0666 /dev/mcua1 c $(DEV_MAJOR) 1; \
        fi

config:
        $(SHELL) scripts/Configure Config.in

menuconfig:
        $(MAKE) -C scripts/lxdialog
        $(SHELL) scripts/Menuconfig Config.in

xconfig:
        $(MAKE) -C scripts/xconfig
        wish -f scripts/xconfig/kconfig.tk


=========================

сто процентов собирается, у него даже есть собcтвенный 
menuconfig но куда это класть и какую педаль жать - я не помню =(

vilfred ☆☆
() автор топика
Ответ на: комментарий от Id

оное нужно заложить в дерево ядра куда то и походу там сказать make, оно в результате выдаст вроде как rs485com.o на которое потом происходит insmod и оно держит какоето там железо через компорт. Дело тут не в железе, железо и дрова пашут, вопрос в том, как правильно его засунуть в дерево ядра, походу, и как правильно закомпилить.

vilfred ☆☆
() автор топика
Ответ на: комментарий от Id

модуль инсмодится вот таким вот шеллскриптом:

#!/bin/sh
module="rs485com"
adapter_id="RS485COM"
device="rs485com"
group="uucp"
mode="664"

/sbin/insmod -f ${module}.o $* || exit 1

rm -f /dev/${device}?

major=`cat /proc/devices | awk "\\$2==\"$adapter_id\" {print \\$1}"`

mknod /dev/${device}0 c $major 0
mknod /dev/${device}1 c $major 1

chgrp $group /dev/${device}?
chmod $mode /dev/${device}?

vilfred ☆☆
() автор топика
Ответ на: комментарий от Id

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

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

Это сей девайс управляет постоянным наведением на цель телескопа ?


А по сабжу давай еще и исходник модуля, попробую у себя скомпилить.

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

гыгы:

======================

[root@observ work]# tar -cvf rs485-3.x.55
tar: Робкий отказ от создания пустого архива
Попробуйте `tar --help' для получения более подробной информации.
[root@observ work]# tar -cvf rs485-3.x.55

======================

o_O

vilfred ☆☆
() автор топика
Ответ на: комментарий от Id

ага, оно самое. вот затареный архив http://212.152.36.162/arhive.tar

цель получить модуль, который бы после команды insmod
выдавал lsmod | grep 485 наличине загруженного модуля. блин, я упарился седня подня пихать то туда то сюда, хотя система одинаковая, что 4 года назад, что счас. ядро 2.4.20

vilfred ☆☆
() автор топика
Ответ на: комментарий от anonymous

[root@observ work]# gss -v
-bash: gss: command not found
[root@observ work]# gсс -v
-bash: gсс: command not found
[root@observ work]# gсс
-bash: gсс: command not found
[root@observ work]# rpm -qa | grep gcc
gcc-3.2.2-5asp
gcc-c++-3.2.2-5asp
libgcc-3.2.2-5asp
[root@observ work]#

o_O

vilfred ☆☆
() автор топика

Ключевые слова moxa и rs485 заставляют меня думать, что речь идёт о о конверторе rs485<->usb или аналогичной плате pci/isa.

Сырцы дров для которых лежат на сайте производителя вместе с инструкцией по сборке. Дрова, правда, есть не для всех девайсов. Например для многопортовых монстров типа uport1400 нет, но для uport1130 еть (коие я сегодня успешно собрал).

Так что, я полагаю, вам сюда за дровами : http://www.moxa.com

З.Ы. Что за девайс то?

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

сразу видно, написано под оцетоном.

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

нету аськи,я давно от неё отказался, а с жабера на жабер сейчас мигрирую

так что только почта или лор =)

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

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

vilfred ☆☆
() автор топика
Ответ на: комментарий от anonymous

[root@observ work]# find /usr -name "gcc*" | grep -v /usr/share/doc/ | grep -v /usr/share/info/ | grep -v /usr/share/man/ | grep -v /usr/share/locale/ | grep -v X11R6
/usr/bin/gcc
/usr/lib/gcc-lib
/usr/src/linux-2.4.20-9asp/arch/arm/lib/gcclib.h
/usr/src/linux-2.4.20-9asp/include/asm-mips/gcc
/usr/src/linux-2.4.20-9asp/include/asm-mips64/gcc
You have new mail in /var/spool/mail/root
[root@observ work]# /usr/bin/gcc
gcc: no input files
[root@observ work]# gcc
gcc: no input files
[root@observ work]# gcc -v
Reading specs from /usr/lib/gcc-lib/i386-asplinux-linux/3.2.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-asplinux-linux
Thread model: posix
gcc version 3.2.2 20030222 (ASPLinux 3.2.2-5asp)
[root@observ work]#

бред какойто.

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

бред в том, что до запросов от том, кто где и что и манипуляций с gcc -v выдавал комманд нот фаунд, а после чето осмысленное.

может оно гдето в свопе сиди и в оперативе и потом дергаться начинает(своп переобновляется и т.п.)? хотя если ядро 2.4 то при 2.6 это уже никому не интересно однако.

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

В моем случае проблемы думаю в значительно более новом gcc

нашел описание сборки того же модуля в pdf'е http://dragon.sai.msu.ru/mass/download/doc/massug.pdf

Завтра мне на работу к 6 так что если не скомпиляешь, поэксперементирую завтра ...

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

у ГАИШ МГУ есть некоторое маленькое свойство - они так пишут описания что половину недоговаривают. так что это все можно сделать самостоятельно. короче, спасибо тебе за хелп, но на драгон я полезу когда совсем хана будет... короче забей и расслабься, я седня то точно уж сделаю. вот.

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

s/сделать самостоятельно/сделать только самостоятельно/

p.s. хотя может я точно так-же грешен в чем-то другом

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

Ядро 2.4.32, исходники ядра от 2.4.16 (компиленные). gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5). make clean, а потом make all сработали без ругательств. Ничего не копировал, просто развернул архив и всё.

У вас точно ядро дистрибутивное? И kernel-headers установлены. В asp вроде было ядро 2.4.22, а не 2.4.20...

Попробуйте сделать /usr/include/asm и linux симлинками на /usr/src/linux-xxx/include/asm и linux...

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

> кто где и что и манипуляций с gcc -v выдавал комманд нот фаунд, а после чето осмысленное.

В первом случае у тебя c - русские. Попробуй сам gcc и gсс

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