# Software > Linux >  kernel 2.4.25-awmn και bttv module

## MerNion

Εχω εγκαταστήσει σε ένα μηχάνημα τον kernel 2.4.25-awmn, μαζί και με όλα τα patches, modules (ότι υπήρχε στο ftp, φάκελο awmn).
Εχω βάλει μια pci κάρτα TV την οποία την βλέπει αν κάνω cat /proc/pci. Βρήκα οτι τα modules που θέλει για να δουλέψει είναι το bttv.o, videodev.o, tuner.o
Κατέβασα το τελευταίο bttv που κυκλοφορεί και αφού το έκανα untar πρέπει να κάνω make και make install.
Οταν κάνω make όμως μου λέει ότι:


```
aptiva:~/bttv/bttv-0.9.14# make 
make -C /lib/modules/2.4.25-awmn/build SUBDIRS=/root/bttv/bttv-0.9.14 modules 
make: *** /lib/modules/2.4.25-awmn/build: No such file or directory. Stop. 
make: *** [default] Error 2
```

το build στο /lib/modules/2.4.25-awmn/ είναι softlink για το /usr/src/awmn/kernel. Το /usr/src/awmn/kernel δεν υπάρχει όμως!
στο /usr/src υπάρχουν μόνο αυτά:


```
aptiva:/usr/src# ls
kernel-headers-2.4.25-awmn  kernel-source-2.4.25-awmn.tar.bz2
```

Οπότε έκανα untar το source και άλλαξα το /lib/modules/2.4.25-awmn/build να δείχνει στο /usr/src/kernel-source-2.4.25-awmn

πάω πάλι στο bttv να κάνω make και μου βγάζει αυτό:



```
The present kernel configuration has modules disabled.
Type 'make config' and enable loadable module support.
Then build a kernel with module support enabled.
```

οπότε τι?? πρέπει να κάνω compile τον kernel???? Δεν υπάρχει κάποια λύση για να φορτωθεί το module αυτό?

----------


## paravoid

Κάνε ένα
cp /boot/config-2.4.25-awmn /usr/src/kernel-source-2.4.25-awmn/.config

Α και ένα softlink /usr/src/linux -> /usr/src/kernel-source-2.4.25-awmn δεν θα έβλαπτε...

----------


## MerNion

> Κάνε ένα
> cp /boot/config-2.4.25-awmn /usr/src/kernel-source-2.4.25-awmn/.config
> 
> Α και ένα softlink /usr/src/linux -> /usr/src/kernel-source-2.4.25-awmn δεν θα έβλαπτε...


Εκανα και τα δύο.. έκανα και ένα softlink /lib/modules/2.4.25-awmn/build -> /usr/src/kernel-source-2.4.25-awmn γιατι ψάχνει όταν κάνω make για το /lib/modules/2.4.25-awmn/build

Τώρα όμως μου βγάζει αυτό:



```
aptiva:~/bttv-0.9.14# make
make -C /lib/modules/2.4.25-awmn/build SUBDIRS=/root/bttv-0.9.14 modules
make[1]: Entering directory `/usr/src/kernel-source-2.4.25-awmn'
make[1]: *** No rule to make target `include/linux/autoconf.h', needed by `include/config/MARKER'.  Stop.
make[1]: Leaving directory `/usr/src/kernel-source-2.4.25-awmn'
make: *** [default] Error 2
```

----------


## MerNion

Καμία λύση/ιδέα????

----------


## panXer

```
cd /usr/src/kernel-source-2.4.25-awmn && make dep ; cd ~/bttv-0.9.14 && make
```

Το make dep μπορεις να το σταματήσεις όταν ξεκινήσει να φτιάχνει τα *.ο.

----------


## MerNion

> ```
> cd /usr/src/kernel-source-2.4.25-awmn && make dep ; cd ~/bttv-0.9.14 && make
> ```
> 
> Το make dep μπορεις να το σταματήσεις όταν ξεκινήσει να φτιάχνει τα *.ο.


Εκανα το make dep στο /usr/src/kernel-source-2.4.25-awmn και αφού τελείωσε (έκανα αρκετά πράγματα για να τα κάνω c&p). Εκανα reboot. Πήγα στο ~/bttv-0.9.14 και έκανα make αλλά μου βγάζει αυτό τώρα:



```
aptiva:~/bttv-0.9.14# make
make -C /lib/modules/2.4.25-awmn/build SUBDIRS=/root/bttv-0.9.14 modules
make[1]: Entering directory `/usr/src/kernel-source-2.4.25-awmn'
gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/split-include scripts/split-include.c
make[1]: *** No rule to make target `include/linux/autoconf.h', needed by `include/config/MARKER'.  Stop.
make[1]: Leaving directory `/usr/src/kernel-source-2.4.25-awmn'
make: *** [default] Error 2
```

Τι άλλο μπορεί να φταίει???

EDIT
η μόνη διαφορά δηλαδή είναι οτι τώρα έκανε και αυτό:


```
gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/split-include scripts/split-include.c
```

πριν βγάλει το ίδιο λάθος

----------


## MerNion

αυτό που διάβασα σε κάτι mailing-lists που βρήκα από το google είναι οτι πρέπει στο /usr/src/kernel-source-2.4.25-awmn να κάνω make config και να σώσω το configuration σαν temp και μετά να κάνω cp temp include/linux/autoconf.h (για το include/linux/autoconf.h για κάποιο περίεργο λόγο δεν υπάρχει εκει).

Το έκανα αυτό λοιπόν και έκανα make sto bttv αλλά έβγαλε ΕΝΑ σωρό errors με αποτέλεσμα να μην φτίαξει τα modules.


```
..........
........
video-buf.c:1277: warning: data definition has no type or storage class
video-buf.c:1278: parse error before `config_must_be_included_before_module'
video-buf.c:1278: warning: type defaults to `int' in declaration of `config_must_be_included_before_module'
video-buf.c:1278: warning: data definition has no type or storage class
make[2]: *** [video-buf.o] Error 1
make[2]: Leaving directory `/root/bttv-0.9.14'
make[1]: *** [_mod_/root/bttv-0.9.14] Error 2
make[1]: Leaving directory `/usr/src/kernel-source-2.4.25-awmn'
make: *** [default] Error 2
```

Τι στο καλό επιτέλους.. τόσο εύκολο είναι να κάνει compile ορισμένα modules στο linux?? paravoid.. τελικά θα με χάσετε απο το club που δυστυχώς βιάστηκες να με καλοσωρίσεις  ::   ::

----------


## MerNion

::   ::   ::   ::   ::   ::   ::   ::   ::   ::   ::   ::   ::   ::  

Λοιπόν.. τελικά το βρήκα..

Για κάποιο λόγο δεν υπάρχει στο /usr/src/kernel-source-2.4.25-awmn/include/linux το autoconf.h. Αυτό μπορούμε τελικά να το δημιουργήσουμε πηγαίνοντας στο /usr/src/kernel-source-2.4.25-awmn και κάνοντας make oldconfig
Ετσί αφού δημιουργηθεί το autoconf.h μπορούμε να κάνουμε make στο ~/bttv-0.9.14

Ας ελπίσω οτι απο εκεί και πέρα θα φορτωθούν τα modules.. Για να δούμε...

----------


## MerNion

Οκ.. τώρα τα έχω πάρει.. μπορεί κάποιος να μου εξηγήσει γιατί αφού εγώ τρέχω kernel 2.4.25-awmn μου κάνει αυτό όταν κάνω make install?



> aptiva:~/bttv-0.9.14# make install
> strip --strip-debug video-buf.o v4l1-compat.o v4l2-common.o btcx-risc.o ir-common.o bttv.o ir-common.o tuner.o tda9887.o msp3400.o tvaudio.o tvmixer.o
> su -c "mkdir -p /lib/modules/*2.4.25*/v4l2; cp -v video-buf.o v4l1-compat.o v4l2-common.o btcx-risc.o ir-common.o bttv.o ir-common.o tuner.o tda9887.o msp3400.o tvaudio.o tvmixer.o /lib/modules/*2.4.25*/v4l2; depmod -a"
> `video-buf.o' -> `/lib/modules/*2.4.25*/v4l2/video-buf.o'
> `v4l1-compat.o' -> `/lib/modules/*2.4.25*/v4l2/v4l1-compat.o'
> `v4l2-common.o' -> `/lib/modules/*2.4.25*/v4l2/v4l2-common.o'
> `btcx-risc.o' -> `/lib/modules/*2.4.25*/v4l2/btcx-risc.o'
> `ir-common.o' -> `/lib/modules/*2.4.25*/v4l2/ir-common.o'
> `bttv.o' -> `/lib/modules/*2.4.25*/v4l2/bttv.o'
> ...


Γιατί στο 2.4.25 και όχι στο 2.4.25-awmn?!!??!?!
Το αποτέλεσμα αυτού είναι:


```
aptiva:~/bttv-0.9.14# modprobe bttv
modprobe: Can't locate module bttv
```



```
aptiva:~/bttv-0.9.14# insmod bttv.o
bttv.o: kernel-module version mismatch
        bttv.o was compiled for kernel version 2.4.25
        while this kernel is version 2.4.25-awmn.
```

  ::   ::   ::   ::   ::   ::   ::

----------


## Pater_Familias

Πήγαινε στο αρχείο makeconf και όπου έχεις /usr/src/2.4.25 άλλαξέ το σε /usr/src/2.4.25-awmn. Λογικά θα δουλέψει.

----------


## panXer

Και αν βαριέσαι κάνε cp τα modules στο dir /lib/modules/2.4.25-awmn
και φόρτωνε τα με insmod -f .

----------


## MerNion

> Και αν βαριέσαι κάνε cp τα modules στο dir /lib/modules/2.4.25-awmn
> και φόρτωνε τα με insmod -f .


Το έκανα και κοίτα τι κάνει:


```
aptiva:/lib/modules/2.4.25-awmn/v4l2# insmod -f bttv.o
bttv.o: unresolved symbol videobuf_read_stop
bttv.o: unresolved symbol videobuf_queue_is_busy
bttv.o: unresolved symbol i2c_master_send
bttv.o: unresolved symbol videobuf_streamon
bttv.o: unresolved symbol videobuf_dma_pci_sync
bttv.o: unresolved symbol videobuf_iolock
bttv.o: unresolved symbol videobuf_querybuf
bttv.o: unresolved symbol videobuf_dqbuf
bttv.o: unresolved symbol btcx_align
bttv.o: unresolved symbol videobuf_next_field
bttv.o: unresolved symbol videobuf_mmap_setup
bttv.o: unresolved symbol videobuf_queue_init
bttv.o: unresolved symbol i2c_bit_del_bus
bttv.o: unresolved symbol mod_firmware_load
bttv.o: unresolved symbol videobuf_poll_stream
bttv.o: unresolved symbol video_register_device
bttv.o: unresolved symbol v4l2_video_std_construct
bttv.o: unresolved symbol videobuf_waiton
bttv.o: unresolved symbol video_unregister_device
bttv.o: unresolved symbol v4l2_type_names
bttv.o: unresolved symbol i2c_bit_add_bus
bttv.o: unresolved symbol video_usercopy
bttv.o: unresolved symbol videobuf_dma_pci_unmap
bttv.o: unresolved symbol videobuf_reqbufs
bttv.o: unresolved symbol v4l2_prio_open
bttv.o: unresolved symbol v4l2_ioctl_names
bttv.o: unresolved symbol videobuf_read_one
bttv.o: unresolved symbol v4l2_prio_init
bttv.o: unresolved symbol btcx_sort_clips
bttv.o: unresolved symbol videobuf_dma_free
bttv.o: unresolved symbol v4l2_prio_close
bttv.o: unresolved symbol v4l2_field_names
bttv.o: unresolved symbol btcx_riscmem_free
bttv.o: unresolved symbol videobuf_mmap_mapper
bttv.o: unresolved symbol i2c_master_recv
bttv.o: unresolved symbol video_device_release
bttv.o: unresolved symbol videobuf_qbuf
bttv.o: unresolved symbol v4l2_prio_check
bttv.o: unresolved symbol v4l2_prio_change
bttv.o: unresolved symbol videobuf_read_stream
bttv.o: unresolved symbol btcx_calc_skips
bttv.o: unresolved symbol videobuf_streamoff
bttv.o: unresolved symbol i2c_add_adapter
bttv.o: unresolved symbol videobuf_alloc
bttv.o: unresolved symbol v4l2_prio_max
bttv.o: unresolved symbol video_device_alloc
bttv.o: unresolved symbol btcx_riscmem_alloc
bttv.o: unresolved symbol i2c_del_adapter
bttv.o: unresolved symbol btcx_screen_clips
```

----------


## panXer

Όμορφα. Υπάρχει νομίζω ένα εργαλείο το fixscript που ίσως μπορέσει να σε βοηθήσει να απαλλαγείς από τα unresolved symbols

----------


## MerNion

> Πήγαινε στο αρχείο makeconf και όπου έχεις /usr/src/2.4.25 άλλαξέ το σε /usr/src/2.4.25-awmn. Λογικά θα δουλέψει.


Εννοείς το Make.conf που υπάρχιε μέσα στο ~/bttv-0.9.14 ?

Το μόνο που λέει εκει μέσα είναι αυτό:


```
MDIR                    := v4l2
snap                    := video4linux

CONFIG_VIDEO_BTTV       := m
CONFIG_VIDEO_CX88       := n
CONFIG_VIDEO_SAA7134    := n
CONFIG_VIDEO_IR         := m
CONFIG_VIDEO_TUNER      := m
CONFIG_VIDEO_TVAUDIO    := m
```

Δεν έχει τίποτα για το /usr/src/

Εγώ πάντως βρήκα τα windows98SE που ξέρω οτι υπάρχουν προγράμματα και drivers για να κάνω αυτό που θέλω.. και θα γίνει και πιο εύκολα.. Αν έχετε καμία άλλη πρόταση μέχρι το βράδυ που θα τα βάλω.. δεκτή (ας κάνω μια τελευταία προσπάθεια)

Ερώτηση απο άσχετο με linux: Ο paravoid, achille και όποιοι άλλοι έχουν το 2.4.25-awmn δεν μπορούν να μου κάνουν αυτοί compile τα modules και να μου τα στείλουν???

----------


## panXer

Νομίζω το .config που έχεις μέσα στα sources του kernel σου ότι εννοεί. Κοίτα κοντά στην τρίτη γραμμή.

----------


## MerNion

> Νομίζω το .config που έχεις μέσα στα sources του kernel σου ότι εννοεί. Κοίτα κοντά στην τρίτη γραμμή.




```
aptiva:/usr/src/kernel-source-2.4.25-awmn# less .config

#
# Automatically generated make config: don't edit
#
CONFIG_X86=y
# CONFIG_SBUS is not set
CONFIG_UID16=y

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y

#
# Loadable module support
#
CONFIG_MODULES=y
# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y

#
# Processor type and features
#
# CONFIG_M386 is not set
# CONFIG_M486 is not set
CONFIG_M586=y
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MELAN is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
....
.....
.....
```

τίποτα τέτοιο στην τρίτη (ούτε σε καμία άλλη γραμμή) στο .config στο /usr/src/kernel-source-2.4.25-awmn

----------


## Mick Flemm

α) ενοεί ο panXer το Makefile που υπάρχει στο directory του Kernel (κάπου λέει subversion= extra= κλπ)

β) δοκίμασε με modprobe...

----------


## Achille

Μπορώ να μάθω τι σχέση έχει το bttv με το AWMN?

Αν θέλεις να βάλεις κάρτα τηλεόρασης στο router σου, προφανώς μην περιμένεις να έχει γίνει πρόβλεψη.

Μαζί με τα modules πρέπει να φτιάξεις και πυρήνα και να τον βάλεις στο lilo για να είναι στην ίδια έκδοση, δεν θα σου δουλέψει precompiled πυρήνας με modules που έφτιαξες μόνος σου.

Μετά βέβαια θα πρέπει να φτίαξεις και modules για το ipp2p για να σου δουλέψει το traffic shaping, κλπ κλπ.

Οι έτοιμες λύσεις είναι για να κάνουμε τη δουλειά μας, όχι για να τις τραβάμε και να τις τεντώνουμε για να κάνουμε τα πάντα.

----------


## MerNion

> Όμορφα. Υπάρχει νομίζω ένα εργαλείο το fixscript που ίσως μπορέσει να σε βοηθήσει να απαλλαγείς από τα unresolved symbols


To βρήκα το fixscript και το έτρεξα αλλά μου βγάζει οτι δεν υπάρχουν στον kernel κάποια symbols και κάτι τέτοια.. Θα πρέπει μάλλον να κάνω μόνος μου compile τον kernel όπως είπε ο Achille υποθέτω.. Ευχαριστώ για την ώρα σου πάντως Παναγιώτη





> α) ενοεί ο panXer το Makefile που υπάρχει στο directory του Kernel (κάπου λέει subversion= extra= κλπ) 
> 
> β) δοκίμασε με modprobe...


α) ναι το βρήκα και το άλλαξα και έγινε μια χαρά το compile των modules.. δεν μου χτύπησε τώρα εκεί.. απλά βγάζει πάλι τα unresolved symbols.
β) το έκανα και πάλι μου λέει failed για κάποιο λόγο.. Thanks παντως





> Μπορώ να μάθω τι σχέση έχει το bttv με το AWMN? 
> 
> Αν θέλεις να βάλεις κάρτα τηλεόρασης στο router σου, προφανώς μην περιμένεις να έχει γίνει πρόβλεψη. 
> 
> Μαζί με τα modules πρέπει να φτιάξεις και πυρήνα και να τον βάλεις στο lilo για να είναι στην ίδια έκδοση, δεν θα σου δουλέψει precompiled πυρήνας με modules που έφτιαξες μόνος σου. 
> 
> Μετά βέβαια θα πρέπει να φτίαξεις και modules για το ipp2p για να σου δουλέψει το traffic shaping, κλπ κλπ. 
> 
> Οι έτοιμες λύσεις είναι για να κάνουμε τη δουλειά μας, όχι για να τις τραβάμε και να τις τεντώνουμε για να κάνουμε τα πάντα.


Τι σχέση λες να έχει? Θέλω να το βάλω στον κόμβο μου για να πέρνει εικόνα και να την βάλω στην σελίδα μου.. Δεν είπα οτι έπρεπε να δουλέψει με την μία αλλά κανείς εδώ και δυο μέρες δεν μου λέει αυτό που μου είπες τώρα εσύ.. Αν το ήξερα απο την αρχή οτι πρέπει να κάνω μόνος μου compile τον πυρήνα για να βάλω τα modules, δεν θα είχα ξεκινήσει καν το thread.. Απλά επειδή νόμιζα οτι θα ήταν πιο εύκολο να το κάνω απο linux αντι για Windows, είπα να το δοκιμάσω.. αφού όμως πρέπει να κάνω ολόκληρη ιστορία για να βάλω μια κάρτα tv.. θα προτιμήσω τα Windows και πάλι..

Οσο για το image του awmn το έβαλα γιατί νόμιζα οτι μπορεί να έχει τίποτα καινούρια modules που δεν είχε ο 2.4.18 που είχα στην αρχή.. 
Ευχαριστώ πάντως για τον χρόνο σας όσοι απαντήσατε..

----------


## Painter

> Μπορώ να μάθω τι σχέση έχει το bttv με το AWMN?


Εχει και μάλιστα πολύ μεγάλη (τουλάχιστον για μένα) όπως και οι είσοδοι και έξοδοι ήχου (αναλογικές & ψηφιακές) γιατί ένας ρούτερ ενίοτε πρέπει να φτιάχνει ΚΑΙ καφέ και ας μη πίνω.
Πρέπει να έχει videograbbing hardware για να κάνει video streaming ή για security recording me motion detection της κάμερας του θυροτηλεφώνου μου και μέχρι να το καταφέρω με linux δεν βγάζω τα windows.
Σιγά μη φτιάξω και τη "φάρμα με τους σέρβερς #2" στην ταράτσα όταν είναι εφικτό με ΕΝΑ καλό μηχάνημα και ΕΝΑ UPS να κάνω την δουλειά μου.
Και εγώ παιδεύτηκα με το bttv αλλά με 2.6Χ κέρνελ και πιστεύω μέχρι το καλοκαίρι να είμαι έτοιμος με όλα τα linuxoapplications που χρειάζομαι.

----------


## Exoticom

Eνα site που μπορει να βοηθησει μερικους
http://www.tldp.org/HOWTO/BTTV.html

----------

