Treiber als KernelObject kompilieren

Dieses Thema im Forum "Linux & BSD" wurde erstellt von unix, 25. Mai 2011 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 25. Mai 2011
    Guten Tag,

    Ich will die Treiber für meinen RT3062 WLAN Chip für ein Linux System kompilieren.

    Ich brauch dazu ja die *.ko Dateien, damit ich diese dann nach /lib/..... kopieren kann, damit der Kernel diese erkennt.

    Vom Hersteller kann man nur den source code runterladen und das Makefile von denen kompiliert mir nur die Object Dateien.

    Wie muss ich das Makefile ändern damit der mir dieses KernelObject rausspuckt?

    Hier mal der source:
    MediaTek - Website Announcement

    Und hier das Makefile direkt:

    Spoiler
    Code:
    RT28xx_MODE = STA
    
    TARGET = LINUX
    
    CHIPSET = 3562
    
    #OS ABL - YES or NO
    OSABL = NO
    
    ifneq ($(TARGET),THREADX)
    #RT28xx_DIR = home directory of RT28xx source code
    RT28xx_DIR = $(shell pwd)
    endif
    
    RTMP_SRC_DIR = $(RT28xx_DIR)/RT$(CHIPSET)
    
    #PLATFORM: Target platform
    PLATFORM = PC
    #PLATFORM = 5VT
    #PLATFORM = IKANOS_V160
    #PLATFORM = IKANOS_V180
    #PLATFORM = SIGMA
    #PLATFORM = SIGMA_8622
    #PLATFORM = INIC
    #PLATFORM = STAR
    #PLATFORM = IXP
    #PLATFORM = INF_TWINPASS
    #PLATFORM = INF_DANUBE
    #PLATFORM = INF_AR9
    #PLATFORM = INF_VR9
    #PLATFORM = BRCM_6358
    #PLATFORM = INF_AMAZON_SE
    #PLATFORM = CAVM_OCTEON
    #PLATFORM = CMPC
    #PLATFORM = RALINK_2880
    #PLATFORM = RALINK_3052
    #PLATFORM = SMDK
    #PLATFORM = RMI
    #PLATFORM = RMI_64
    #PLATFORM = KODAK_DC
    #PLATFORM = DM6446
    #PLATFORM = FREESCALE8377
    #PLATFORM = BL2348
    #PLATFORM = BLUBB
    #PLATFORM = BLPMP
    #PLATFORM = MT85XX
    #PLATFORM = NXP_TV550
    #PLATFORM = MVL5
    
    #RELEASE Package
    RELEASE = DPO
    
    ifeq ($(TARGET),LINUX)
    MAKE = make
    endif
    
    ifeq ($(TARGET), UCOS)
    MAKE = make
    endif
    ifeq ($(TARGET),THREADX)
    MAKE = gmake
    endif
    
    ifeq ($(PLATFORM),5VT)
    LINUX_SRC = /project/stable/5vt/ralink-2860-sdk/linux-2.6.17
    CROSS_COMPILE = /opt/crosstool/uClibc_v5te_le_gcc_4_1_1/bin/arm-linux-
    endif
    
    ifeq ($(PLATFORM),IKANOS_V160)
    LINUX_SRC = /home/sample/projects/LX_2618_RG_5_3_00r4_SRC/linux-2.6.18
    CROSS_COMPILE = mips-linux-
    endif
    
    ifeq ($(PLATFORM),IKANOS_V180)
    LINUX_SRC = /home/sample/projects/LX_BSP_VX180_5_4_0r1_ALPHA_26DEC07/linux-2.6.18
    CROSS_COMPILE = mips-linux-
    endif
    
    ifeq ($(PLATFORM),SIGMA)
    LINUX_SRC = /root/sigma/smp86xx_kernel_source_2.7.172.0/linux-2.6.15
    CROSS_COMPILE = /root/sigma/smp86xx_toolchain_2.7.172.0/build_mipsel_nofpu/staging_dir/bin/mipsel-linux-
    endif
    
    ifeq ($(PLATFORM),SIGMA_8622)
    LINUX_SRC = /home/snowpin/armutils_2.5.120.1/build_arm/linux-2.4.22-em86xx
    CROSS_COMPILE = /home/snowpin/armutils_2.5.120.1/toolchain/bin/arm-elf-
    CROSS_COMPILE_INCLUDE = /home/snowpin/armutils_2.5.120.1/toolchain/lib/gcc-lib/arm-elf/2.95.3
    endif
    
    ifeq ($(PLATFORM),INIC)
    UCOS_SRC = /opt/uCOS/iNIC_rt2880
    CROSS_COMPILE = /usr/bin/mipsel-linux-
    endif
    
    ifeq ($(PLATFORM),STAR)
    LINUX_SRC = /opt/star/kernel/linux-2.4.27-star
    CROSS_COMPILE = /opt/star/tools/arm-linux/bin/arm-linux-
    endif
    
    ifeq ($(PLATFORM),RMI)
    LINUX_SRC = /opt/rmi/1.7.0/linux/src/
    CROSS_COMPILE = /opt/rmi/1.7.0/mipscross/nptl/bin/mips64-unknown-linux-gnu-
    endif
    
    ifeq ($(PLATFORM),RMI_64)
    LINUX_SRC = /opt/rmi/1.7.0/linux_64/src/
    CROSS_COMPILE = /opt/rmi/1.7.0/mipscross/nptl/bin/mips64-unknown-linux-gnu-
    endif
    
    ifeq ($(PLATFORM), RALINK_2880)
    LINUX_SRC = /project/stable/RT288x/RT288x_SDK/source/linux-2.4.x
    CROSS_COMPILE = /opt/buildroot-gdb/bin/mipsel-linux-
    endif
    
    ifeq ($(PLATFORM),RALINK_3052)
    LINUX_SRC = /home/snowpin/RALINK_SDK_v3410/RT288x_SDK/source/linux-2.6.21.x
    CROSS_COMPILE = /opt/buildroot-gcc342/bin/mipsel-linux-uclibc-
    endif
    
    ifeq ($(PLATFORM),FREESCALE8377)
    LINUX_SRC = /opt/ltib-mpc8377_rds-20090309/rpm/BUILD/linux-2.6.25 
    CROSS_COMPILE = /opt/freescale/usr/local/gcc-4.2.187-eglibc-2.5.187/powerpc-linux-gnu/bin/powerpc-linux-gnu-
    endif
    
    ifeq ($(PLATFORM),BL2348)
    LINUX_SRC = /home/sample/Customers/BroadLight/bl234x-linux-2.6.21-small-v29
    CROSS_COMPILE = mips-wrs-linux-gnu-
    endif
    
    ifeq ($(PLATFORM),BLUBB)
    LINUX_SRC = /home/sample/Customers/BroadLight/UBB/gmp20/linux-2.6.21-small
    CROSS_COMPILE = mips-wrs-linux-gnu-
    endif
    
    ifeq ($(PLATFORM),BLPMP)
    LINUX_SRC = /home/sample/Customers/BroadLight/UBB/pmp16/bl234x-linux-2.6.21-small-v30.2
    CROSS_COMPILE = mips-wrs-linux-gnu-
    endif
    
    ifeq ($(PLATFORM),PC)
    # Linux 2.6
    LINUX_SRC = /lib/modules/$(shell uname -r)/build
    # Linux 2.4 Change to your local setting
    #LINUX_SRC = /usr/src/linux-2.4
    LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/
    CROSS_COMPILE = 
    endif
    
    ifeq ($(PLATFORM),IXP)
    LINUX_SRC = /project/stable/Gmtek/snapgear-uclibc/linux-2.6.x
    CROSS_COMPILE = arm-linux-
    endif
    
    ifeq ($(PLATFORM),INF_TWINPASS)
    # Linux 2.6
    #LINUX_SRC = /lib/modules/$(shell uname -r)/build
    # Linux 2.4 Change to your local setting
    LINUX_SRC = /project/stable/twinpass/release/2.0.1/source/kernel/opensource/linux-2.4.31/
    CROSS_COMPILE = mips-linux-
    endif
    
    ifeq ($(PLATFORM),INF_DANUBE)
    LINUX_SRC = /opt/danube/sdk/linux-2.6.16.x
    CROSS_COMPILE = mips-linux-
    ROOTDIR = /opt/danube/sdk
    export ROOTDIR
    endif
    
    ifeq ($(PLATFORM),INF_AR9)
    LINUX_SRC = /root/ar9/xR9_BSP1.2.2.0/source/kernel/opensource/linux-2.6.20/
    CROSS_COMPILE = /root/ar9/ifx-lxdb26-1.0.2/gcc-3.4.4/toolchain-mips/bin/
    endif
    
    ifeq ($(PLATFORM),INF_VR9)
    LINUX_SRC = /home/public/lantiq/VR9/UGW-4.2/build_dir/linux-ifxcpe_platform_vr9/linux-2.6.20.19
    CROSS_COMPILE = /home/public/lantiq/VR9/UGW-4.2/staging_dir/toolchain-mips_gcc-3.4.6_uClibc-0.9.29/bin/mips-linux-
    endif
    
    ifeq ($(PLATFORM),BRCM_6358)
    LINUX_SRC = 
    CROSS_COMPILE = 
    endif
    
    ifeq ($(PLATFORM),INF_AMAZON_SE)
    # Linux 2.6
    #LINUX_SRC = /lib/modules/$(shell uname -r)/build
    # Linux 2.4 Change to your local setting
    LINUX_SRC = /backup/ifx/3.6.2.2/source/kernel/opensource/linux-2.4.31
    #CROSS_COMPILE = mips-linux-
    #LINUX_SRC = /project/Infineon/3.6.2.2/source/kernel/opensource/linux-2.4.31
    CROSS_COMPILE = /opt/uclibc-toolchain/ifx-lxdb-1-2-3-external/gcc-3.3.6/toolchain-mips/R0208V35/mips-linux-uclibc/bin/
    endif
    
    ifeq ($(PLATFORM),ST)
    LINUX_SRC = /opt/STM/STLinux-2.2/devkit/sources/kernel/linux0039
    CROSS_COMPILE = /opt/STM/STLinux-2.2/devkit/sh4/bin/sh4-linux-
    ARCH := sh
    export ARCH
    endif
    
    ifeq ($(PLATFORM),CAVM_OCTEON)
    OCTEON_ROOT = /usr/local/Cavium_Networks/OCTEON-SDK
    LINUX_SRC = $(OCTEON_ROOT)/linux/kernel_2.6/linux
    CROSS_COMPILE = mips64-octeon-linux-gnu-
    endif
    
    ifeq ($(PLATFORM),CMPC)
    LINUX_SRC = /opt/fvt_11N_SDK_0807/fvt131x_SDK_11n/linux-2.6.17
    CROSS_COMPILE =
    endif
    
    ifeq ($(PLATFORM),SMDK)
    LINUX_SRC = /home/bhushan/itcenter/may28/linux-2.6-samsung
    CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
    endif
    
    ifeq ($(PLATFORM),KODAK_DC)
    SKD_SRC = C:/SigmaTel/DC1250_SDK_v1-9/sdk
    CROSS_COMPILE = $(cc)
    endif
    
    ifeq ($(PLATFORM),DM6446)
    LINUX_SRC = /home/fonchi/work/soc/ti-davinci
    endif
    
    ifeq ($(PLATFORM),MT85XX)
    LINUX_SRC = /home/john/MTK/BDP_Linux/linux-2.6.27
    CROSS_COMPILE = armv6z-mediatek-linux-gnueabi-
    endif
    
    ifeq ($(PLATFORM),NXP_TV550) 
    LINUX_SRC = /data/tv550/kernel/linux-2.6.28.9
    LINUX_SRC_MODULE = /data/tv550/kernel/linux-2.6.28.9/drivers/net/wireless
    CROSS_COMPILE = /opt/embeddedalley/nxp_tv550/bin/mipsel-linux-
    endif
    
    ifeq ($(PLATFORM),MVL5)
    LINUX_SRC = /home2/charlestu/AP-VT3426/linux-2.6.18
    CROSS_COMPILE = /opt/montavista/pro/devkit/arm/v5t_le_mvl5/bin/arm_v5t_le-
    endif
    
    export OSABL RT28xx_DIR RT28xx_MODE LINUX_SRC CROSS_COMPILE CROSS_COMPILE_INCLUDE PLATFORM RELEASE CHIPSET RTMP_SRC_DIR LINUX_SRC_MODULE TARGET
    
    # The targets that may be used.
    PHONY += all build_tools test UCOS THREADX LINUX release prerelease clean uninstall install libwapi osabl
    
    ifeq ($(TARGET),THREADX)
    all: $(TARGET)
    else
    all: build_tools $(TARGET)
    endif 
    
    
    
    build_tools:
     $(MAKE) -C tools
     $(RT28xx_DIR)/tools/bin2h
    
    test:
     $(MAKE) -C tools test
    
    UCOS:
     $(MAKE) -C os/ucos/ MODE=$(RT28xx_MODE)
     echo $(RT28xx_MODE)
    
    
    THREADX:
     $(MAKE) -C $(RT28xx_DIR)/os/Threadx -f $(RT28xx_DIR)/os/ThreadX/Makefile
    
    LINUX:
    ifneq (,$(findstring 2.4,$(LINUX_SRC)))
    
    ifeq ($(OSABL),YES)
     cp -f os/linux/Makefile.4.util $(RT28xx_DIR)/os/linux/Makefile
     $(MAKE) -C $(RT28xx_DIR)/os/linux/
    endif
    
     cp -f os/linux/Makefile.4 $(RT28xx_DIR)/os/linux/Makefile
     $(MAKE) -C $(RT28xx_DIR)/os/linux/
    
    ifeq ($(OSABL),YES)
     cp -f os/linux/Makefile.4.netif $(RT28xx_DIR)/os/linux/Makefile
     $(MAKE) -C $(RT28xx_DIR)/os/linux/
    endif
    
    ifeq ($(RT28xx_MODE),AP)
     cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)ap.o /tftpboot
    ifeq ($(OSABL),YES)
     cp -f $(RT28xx_DIR)/os/linux/rtutil$(CHIPSET)ap.o /tftpboot
     cp -f $(RT28xx_DIR)/os/linux/rtnet$(CHIPSET)ap.o /tftpboot
    endif
    ifeq ($(PLATFORM),INF_AMAZON_SE)
     cp -f /tftpboot/rt2870ap.o /backup/ifx/build/root_filesystem/lib/modules/2.4.31-Amazon_SE-3.6.2.2-R0416_Ralink/kernel/drivers/net
    endif
    else 
    ifeq ($(RT28xx_MODE),APSTA)
     cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)apsta.o /tftpboot
    ifeq ($(OSABL),YES)
     cp -f $(RT28xx_DIR)/os/linux/rtutil$(CHIPSET)apsta.o /tftpboot
     cp -f $(RT28xx_DIR)/os/linux/rtnet$(CHIPSET)apsta.o /tftpboot
    endif
    else
     cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)sta.o /tftpboot
    ifeq ($(OSABL),YES)
     cp -f $(RT28xx_DIR)/os/linux/rtutil$(CHIPSET)sta.o /tftpboot
     cp -f $(RT28xx_DIR)/os/linux/rtnet$(CHIPSET)sta.o /tftpboot
    endif
    endif 
    endif 
    else
    
    ifeq ($(OSABL),YES)
     cp -f os/linux/Makefile.6.util $(RT28xx_DIR)/os/linux/Makefile
     $(MAKE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules
    endif
    
     cp -f os/linux/Makefile.6 $(RT28xx_DIR)/os/linux/Makefile
    ifeq ($(PLATFORM),DM6446)
     $(MAKE) ARCH=arm CROSS_COMPILE=arm_v5t_le- -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules
    else
    ifeq ($(PLATFORM),FREESCALE8377)
     $(MAKE) ARCH=powerpc CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules
    else
     $(MAKE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules
    endif
    endif
    
    ifeq ($(OSABL),YES)
     cp -f os/linux/Makefile.6.netif $(RT28xx_DIR)/os/linux/Makefile
     $(MAKE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules
    endif
    
    ifeq ($(RT28xx_MODE),AP)
     cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)ap.ko /tftpboot
    ifeq ($(OSABL),YES)
     cp -f $(RT28xx_DIR)/os/linux/rtutil$(CHIPSET)ap.ko /tftpboot
     cp -f $(RT28xx_DIR)/os/linux/rtnet$(CHIPSET)ap.ko /tftpboot
    endif
     rm -f os/linux/rt$(CHIPSET)ap.ko.lzma
     /root/bin/lzma e os/linux/rt$(CHIPSET)ap.ko os/linux/rt$(CHIPSET)ap.ko.lzma
    else 
    ifeq ($(RT28xx_MODE),APSTA)
     cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)apsta.ko /tftpboot
    ifeq ($(OSABL),YES)
     cp -f $(RT28xx_DIR)/os/linux/rtutil$(CHIPSET)apsta.ko /tftpboot
     cp -f $(RT28xx_DIR)/os/linux/rtnet$(CHIPSET)apsta.ko /tftpboot
    endif
    else
     cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)sta.ko /tftpboot
    ifeq ($(OSABL),YES)
     cp -f $(RT28xx_DIR)/os/linux/rtutil$(CHIPSET)sta.ko /tftpboot
     cp -f $(RT28xx_DIR)/os/linux/rtnet$(CHIPSET)sta.ko /tftpboot
    endif
    endif
    endif
    endif
    
    
    release:
    ifeq ($(TARGET), LINUX)
     $(MAKE) -C $(RT28xx_DIR)/striptool -f Makefile.release clean
     $(MAKE) -C $(RT28xx_DIR)/striptool -f Makefile.release
     striptool/striptool.out
    ifeq ($(RELEASE), DPO)
     gcc -o striptool/banner striptool/banner.c
     ./striptool/banner -b striptool/copyright.gpl -s DPO/ -d DPO_GPL -R
     ./striptool/banner -b striptool/copyright.frm -s DPO/include/firmware.h -d DPO_GPL/include/firmware.h
    endif
    endif
    
    prerelease:
    ifeq ($(CHIPSET), 2880)
     $(MAKE) -C $(RT28xx_DIR)/os/linux -f Makefile.release.2880 prerelease
    else
     $(MAKE) -C $(RT28xx_DIR)/os/linux -f Makefile.release prerelease
    endif
     cp $(RT28xx_DIR)/os/linux/Makefile.DPB $(RTMP_SRC_DIR)/os/linux/.
     cp $(RT28xx_DIR)/os/linux/Makefile.DPA $(RTMP_SRC_DIR)/os/linux/.
     cp $(RT28xx_DIR)/os/linux/Makefile.DPC $(RTMP_SRC_DIR)/os/linux/.
    ifeq ($(RT28xx_MODE),STA)
     cp $(RT28xx_DIR)/os/linux/Makefile.DPD $(RTMP_SRC_DIR)/os/linux/.
     cp $(RT28xx_DIR)/os/linux/Makefile.DPO $(RTMP_SRC_DIR)/os/linux/.
    endif 
    
    clean:
    ifeq ($(TARGET), LINUX)
    ifneq (,$(findstring 2.4,$(LINUX_SRC)))
     cp -f os/linux/Makefile.4 os/linux/Makefile
    else
     cp -f os/linux/Makefile.6 os/linux/Makefile
    endif
     $(MAKE) -C os/linux clean
     rm -rf os/linux/Makefile
    endif 
    ifeq ($(TARGET), UCOS)
     $(MAKE) -C os/ucos clean MODE=$(RT28xx_MODE)
    endif
    
    uninstall:
    ifeq ($(TARGET), LINUX)
    ifneq (,$(findstring 2.4,$(LINUX_SRC)))
     $(MAKE) -C $(RT28xx_DIR)/os/linux -f Makefile.4 uninstall
    else
     $(MAKE) -C $(RT28xx_DIR)/os/linux -f Makefile.6 uninstall
    endif
    endif
    
    install:
    ifeq ($(TARGET), LINUX)
    ifneq (,$(findstring 2.4,$(LINUX_SRC)))
     $(MAKE) -C $(RT28xx_DIR)/os/linux -f Makefile.4 install
    else
     $(MAKE) -C $(RT28xx_DIR)/os/linux -f Makefile.6 install
    endif
    endif
    
    libwapi:
    ifneq (,$(findstring 2.4,$(LINUX_SRC)))
     cp -f os/linux/Makefile.libwapi.4 $(RT28xx_DIR)/os/linux/Makefile
     $(MAKE) -C $(RT28xx_DIR)/os/linux/
    else
     cp -f os/linux/Makefile.libwapi.6 $(RT28xx_DIR)/os/linux/Makefile 
     $(MAKE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules 
    endif 
    
    osabl:
    ifeq ($(OSABL),YES)
    ifneq (,$(findstring 2.4,$(LINUX_SRC)))
     cp -f os/linux/Makefile.4.util $(RT28xx_DIR)/os/linux/Makefile
     $(MAKE) -C $(RT28xx_DIR)/os/linux/
     cp -f os/linux/Makefile.4.netif $(RT28xx_DIR)/os/linux/Makefile
     $(MAKE) -C $(RT28xx_DIR)/os/linux/
    else
     cp -f os/linux/Makefile.6.util $(RT28xx_DIR)/os/linux/Makefile
     $(MAKE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules
     cp -f os/linux/Makefile.6.netif $(RT28xx_DIR)/os/linux/Makefile
     $(MAKE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules
    endif
    endif
    
    libautoprovision:
     rm -f os/linux/lib.a
     cp -f os/linux/Makefile.libautoprovision.6 $(RT28xx_DIR)/os/linux/Makefile 
     $(MAKE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux
    
    # Declare the contents of the .PHONY variable as phony. We keep that information in a variable
    .PHONY: $(PHONY)
    
    
    
    

    merci
     
  2. 25. Mai 2011
    AW: Treiber als KernelObject kompilieren

    Schonmal:
    Code:
    sudo make install
    probiert?

    Das sollte eigtl funktionieren..
    Ist zumindest gängig, dass die Entwickler die Installation über das Makefile einbauen..

    MfG
     
  3. 25. Mai 2011
    AW: Treiber als KernelObject kompilieren

    Habe ein make versucht, der hat mir aber nur *.o Dateien rausgespuckt.

    Und in den entsprechenden Ordnern waren auch keine Kernel Objects.

    Ich hab iwie von Google gehört, dass man im Makefile iwas mit __KERNEL__ oder sowas eintragen muss, aber ich hab null Ahnung von diesen Makefiles!
     
  4. 25. Mai 2011
    AW: Treiber als KernelObject kompilieren

    $ more README_STA_pci
    Code:
    <snip>
    Build Instructions: 
    ====================
    
    1> $tar -xvzf DPB_RT2860_Linux_STA_x.x.x.x.tgz
     go to "./DPB_RT2860_Linux_STA_x.x.x.x" directory.
     
    2> In Makefile
     set the "MODE = STA" in Makefile and chose the TARGET to Linux by set "TARGET = LINUX"
     define the linux kernel source include file path LINUX_SRC
     modify to meet your need.
    
    3> In os/linux/config.mk 
     define the GCC and LD of the target machine
     define the compiler flags CFLAGS
     modify to meet your need.
     ** Build for being controlled by NetworkManager or wpa_supplicant wext functions
     Please set 'HAS_WPA_SUPPLICANT=y' and 'HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y'.
     => #>cd wpa_supplicant-x.x
     => #>./wpa_supplicant -Dwext -ira0 -c wpa_supplicant.conf -d
     ** Build for being controlled by WpaSupplicant with Ralink Driver
     Please set 'HAS_WPA_SUPPLICANT=y' and 'HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n'.
     => #>cd wpa_supplicant-0.5.7
     => #>./wpa_supplicant -Dralink -ira0 -c wpa_supplicant.conf -d
    
    4> $make 
     # compile driver source code
     # To fix "error: too few arguments to function ¡¥iwe_stream_add_event"
     => $patch -i os/linux/sta_ioctl.c.patch os/linux/sta_ioctl.c
    
    5> $cp RT2860STA.dat /etc/Wireless/RT2860STA/RT2860STA.dat 
     
    6> load driver
     #[kernel 2.4]
     # $/sbin/insmod rt2860sta.o
     # $/sbin/ifconfig ra0 inet YOUR_IP up
     
     #[kernel 2.6]
     # $/sbin/insmod rt2860sta.ko
     # $/sbin/ifconfig ra0 inet YOUR_IP up
    
    7> unload driver 
     $/sbin/ifconfig ra0 down
     $/sbin/rmmod rt2860sta
    </snip>
    
    Ne readme is doch da, um gelesen zu werden.
     
  5. 25. Mai 2011
    AW: Treiber als KernelObject kompilieren

    Ich weiß, aber leider steht da nicht wie ich das Makefile verändern soll, damit ich eine *.ko beim kompilieren krieg.
     
  6. 26. Mai 2011
    AW: Treiber als KernelObject kompilieren

    Code:
    2> In Makefile
     set the "MODE = STA" in Makefile and chose the TARGET to Linux by set "TARGET = LINUX"
     define the linux kernel source include file path LINUX_SRC
     modify to meet your need.
    
    Das hast du gemacht ?

    Code:
    6> load driver
     #[kernel 2.4]
     # $/sbin/insmod rt2860sta.o
     # $/sbin/ifconfig ra0 inet YOUR_IP up
     
     #[kernel 2.6]
     # $/sbin/insmod rt2860sta.ko
     # $/sbin/ifconfig ra0 inet YOUR_IP u
    
    Man kann auch .o files als kernelmodul installieren. Kann es vielleicht sein, dass du im makefile den falschen kernel angegeben hast? Für Linux 2.4 kommt anscheinend laut readme ne .o raus.
    Schon versucht den insmod auszuführen ?
     
  7. 30. Mai 2011
    AW: Treiber als KernelObject kompilieren

    Ich hab keine Ahnung wie ich das Makefile nach meinen Bedürfnissen verändern soll! Wie gesagt ich kenn mich mit C/C++ und diesen MakeFiles nicht aus!

    Bei den Settings für den "PC" steht ja schon:

    Code:
    ifeq ($(PLATFORM),PC)
    # Linux 2.6
    LINUX_SRC = /lib/modules/$(shell uname -r)/build
    # Linux 2.4 Change to your local setting
    #LINUX_SRC = /usr/src/linux-2.4
    LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/
    CROSS_COMPILE = 
    endif
    insmod: cannot insert 'rt30xx.o': invalid module format
    Also gehts nicht mit den Objects.

    Ich hab jetzt aber mal was anderes geändert gehabt:

    Am Anfang steht die Variable CHIPSET mit was falschem drin (3562) ich brauche ja aber den 3062.
    Nach dem Korregieren hat der nochmal lang rumkompiliert und dann kam als letzte Meldung

    Aber dieses /tftpboot ist eine Datei und kein Verzeichnis??

    Ich hab auch schon nach der rt3062sta.ko gesucht gehabt, aber nix gefunden! kA wo die hin ist

    EDIT::
    So nach einem make install war die *.ko im driver Ordner.

    Da ich diesen Treiber aber auf nem anderen Gerät brauch, auf dem OpenEmbedded läuft, liefs leider nicht ganz ^^

    Naja muss jetzt noch schaun wie ich das hinkrieg.

    Trotzdem Danke!
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.