• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 請問bcm4329 在mini2440編譯問題... 复制链接 | 浏览器收藏 | 打印
级别: 圣骑士
UID: 44407
精华: 0
发帖: 386
金钱: 1945 两
威望: 389 点
综合积分: 772 分
注册时间: 2011-04-25
最后登录: 2014-08-25
楼主  发表于: 2011-04-28 17:18

 請問bcm4329 在mini2440編譯問題...

RT, bcm4239 已先在FC9/kernel 2.6.25.14上編譯正常,但是無法正常帶起網卡,
所以想使用Friendlyarm mini2440,帶起BCM4239網卡,
先前試著移植ar6002都正常...
但是要用2.6.32.2的kernel版本編譯出現如下問題:
經比較應該為netdevice.h 的參數問題,請問是否能告知如何修改?

make dhd-cdc-sdstd 的訊息:

root@ubuntu:/opt/test/bcm4329/src/dhd/linux# make dhd-cdc-sdstd
MAKING dhd-cdc-sdstd
make TARGET=dhd-cdc-sdstd objdir
make[1]: Entering directory `/opt/test/bcm4329/src/dhd/linux'
CC = arm-linux-gcc (ver=4.3.2; host=ubuntu; processor=i686)
Making objdir dhd-cdc-sdstd-2.6.32.2-FriendlyARM
TARGET is dhd-cdc-sdstd

  CC [M]  /opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.o
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c: In function 'dhd_attach':
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c:1502: error: 'struct net_device' has no member named 'open'
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c: In function 'dhd_net_attach':
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c:1679: error: 'struct net_device' has no member named 'open'
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c:1680: error: 'struct net_device' has no member named 'stop'
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c:1682: error: 'struct net_device' has no member named 'open'
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c:1682: error: 'struct net_device' has no member named 'stop'
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c:1688: error: 'struct net_device' has no member named 'get_stats'
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c:1689: error: 'struct net_device' has no member named 'do_ioctl'
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c:1690: error: 'struct net_device' has no member named 'hard_start_xmit'
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c:1692: error: 'struct net_device' has no member named 'set_mac_address'
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c:1693: error: 'struct net_device' has no member named 'set_multicast_list'
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c:1721: error: 'struct net_device' has no member named 'open'
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c: In function 'dhd_detach':
/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.c:1760: error: 'struct net_device' has no member named 'open'
make[4]: *** [/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM/dhd_linux.o] Error 1
make[3]: *** [_module_/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM] Error 2
make[3]: Leaving directory `/opt/FriendlyARM/mini2440/linux-2.6.32.2'
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/opt/test/bcm4329/src/dhd/linux/dhd-cdc-sdstd-2.6.32.2-FriendlyARM'
make[1]: *** [objdir] Error 2
make[1]: Leaving directory `/opt/test/bcm4329/src/dhd/linux'
make: *** [dhd-cdc-sdstd] Error 2



dhd_linux.c有問題部份那段擷錄


int
dhd_net_attach(dhd_pub_t *dhdp, int ifidx)
{
    dhd_info_t *dhd = (dhd_info_t *)dhdp->info;
    struct net_device *net;
    uint8 temp_addr[ETHER_ADDR_LEN] = { 0x00, 0x90, 0x4c, 0x11, 0x22, 0x33 };

    DHD_TRACE(("%s: ifidx %d\n", __FUNCTION__, ifidx));

    ASSERT(dhd && dhd->iflist[ifidx]);
    ASSERT(dhd->iflist[ifidx]->net);
    ASSERT(!dhd->iflist[ifidx]->net->open);

    /* Ok, link into the network layer... */
    net = dhd->iflist[ifidx]->net;
    if (ifidx == 0) {
        /*
         * device functions for the primary interface only
         */
        net->open = dhd_open;
        net->stop = dhd_stop;
    } else {
        net->open = net->stop = NULL;
        /*
         * We have to use the primary MAC for virtual interfaces
         */
        memcpy(temp_addr, dhd->iflist[ifidx]->mac_addr, ETHER_ADDR_LEN);
    }
    net->get_stats = dhd_get_stats;
    net->do_ioctl = dhd_ioctl_entry;
    net->hard_start_xmit = dhd_start_xmit;
    net->hard_header_len = ETH_HLEN + dhd->pub.hdrlen;
    net->set_mac_address = dhd_set_mac_address;
    net->set_multicast_list = dhd_set_multicast_list;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)
    net->ethtool_ops = &dhd_ethtool_ops;
#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24) */

#ifdef CONFIG_WIRELESS_EXT
#if WIRELESS_EXT < 19
    net->get_wireless_stats = dhd_get_wireless_stats;
#endif /* WIRELESS_EXT < 19 */
#if WIRELESS_EXT > 12
    net->wireless_handlers = (struct iw_handler_def *)&wl_iw_handler_def;
#endif /* WIRELESS_EXT > 12 */
#endif /* CONFIG_WIRELESS_EXT */

    dhd->pub.rxsz = net->mtu + net->hard_header_len + dhd->pub.hdrlen;

    memcpy(net->dev_addr, temp_addr, ETHER_ADDR_LEN);

    if (register_netdev(net) != 0) {
        DHD_ERROR(("couldn't register the net device\n"));
        goto fail;
    }

    printf("%s: Broadcom Dongle Host Driver\n", net->name);

    return 0;

fail:
    net->open = NULL;
    return BCME_ERROR;
}


部份netdevice.h請參考:
http://dev.firnow.com/course/6_system/linux/Linuxjs/20091121/183115.html
[ 此帖被kazaya在2011-05-13 18:15重新编辑 ]
描述:部分資料
附件: dhd.rar (94 K) 下载次数:34
级别: 新手上路
UID: 44934
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2011-04-29
最后登录: 2017-09-13
1楼  发表于: 2011-04-29 18:08
楼主您用的Bcm4329 source code是从那边下的,记得Android 官网上有2份source code,一份支持>= 2.6.32, 一份是不支持的,编译的时候就会报像您贴的错误信息.
级别: 新手上路
UID: 44934
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2011-04-29
最后登录: 2017-09-13
2楼  发表于: 2011-04-29 18:14
试试看我这份.
描述:bcm43429 driver
附件: src.tar.bz2 (267 K) 下载次数:44
级别: 圣骑士
UID: 44407
精华: 0
发帖: 386
金钱: 1945 两
威望: 389 点
综合积分: 772 分
注册时间: 2011-04-25
最后登录: 2014-08-25
3楼  发表于: 2011-05-03 11:00
謝謝,據您所言,可能是Source的版本問題....

目前我才移植mini2440的arm-linux上
尚未測試android....有點為難....
级别: 圣骑士
UID: 44407
精华: 0
发帖: 386
金钱: 1945 两
威望: 389 点
综合积分: 772 分
注册时间: 2011-04-25
最后登录: 2014-08-25
4楼  发表于: 2011-05-04 13:21
目前已在ubuntu 9 的android-2.1-Real6410-r1
build OK,需等同事CE更換成android才可以測試
感謝....
Android.mk 是您自己改寫的?
因為原來下載的部份不含這個文檔
级别: 新手上路
UID: 44934
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2011-04-29
最后登录: 2017-09-13
5楼  发表于: 2011-05-04 13:29
Android.mk是开源的里面本来就有的,他就生成一个dhdutil,我没有用过这个工具.
我附件里面的那份是Google source code Android2.2 里面hardware/broadcom/wlan/bcm4329/src.
级别: 圣骑士
UID: 44407
精华: 0
发帖: 386
金钱: 1945 两
威望: 389 点
综合积分: 772 分
注册时间: 2011-04-25
最后登录: 2014-08-25
6楼  发表于: 2011-05-04 16:01
可以請問一下,您是否build完測試過?....
因為我才build好dhdutil(我改名為dhd.ko),其餘的tools build有問題....

Android.mk


#
# Copyright (C) 2008 Broadcom Corporation
#
# $Id: Android.mk,v 2.1.4.3 2009/05/07 18:48:19 Exp $
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

ifneq ($(TARGET_SIMULATOR),true)

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
    dhd/exe/dhdu.c \
    dhd/exe/dhdu_linux.c \
    shared/bcmutils.c \
    shared/miniopt.c

LOCAL_MODULE := dhd.ko
LOCAL_CFLAGS := -DSDTEST -DTARGETENV_android -Dlinux -DLINUX
LOCAL_C_INCLUDES +=$(LOCAL_PATH)/include $(LOCAL_PATH)/../../../../kernel/include
LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_STATIC_LIBRARIES := libc

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
LOCAL_MODULE_TAGS := debug tests

include $(BUILD_EXECUTABLE)

#ifeq ($(ESTA_POSTMOGRIFY_REMOVAL), true)

# Build WL Utility
include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
    wl/exe/wlu.c \
    wl/exe/wlu_linux.c \
    wl/exe/wlu_cmd.c \
    wl/exe/wlu_iov.c \
    wl/exe/wlu_pipe.c \
    wl/exe/wlu_pipe_linux.c \
    wl/exe/wlu_client_shared.c \
    shared/bcmutils.c \
    shared/bcmwifi.c \
    shared/miniopt.c

LOCAL_MODULE := wlarm_android
LOCAL_CFLAGS := -DBCMWPA2 -DTARGETENV_android -DLINUX -Dlinux
LOCAL_CFLAGS += -DRWL_WIFI -DRWL_SOCKET -DRWL_DONGLE
LOCAL_C_INCLUDES +=$(LOCAL_PATH)/include $(LOCAL_PATH)/../../../../kernel/include
LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_STATIC_LIBRARIES := libc

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
LOCAL_MODULE_TAGS := debug tests
include $(BUILD_EXECUTABLE)

# Build WLM library
include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
    wl/exe/wlm.c \
    wl/exe/wlu.c \
    wl/exe/wlu_cmd.c \
    wl/exe/wlu_iov.c \
    wl/exe/wlu_linux.c \
    wl/exe/wlu_client_shared.c \
    wl/exe/wlu_pipe_linux.c \
    wl/exe/wlu_pipe.c \
    shared/bcmutils.c \
    shared/bcmwifi.c \
    shared/miniopt.c

LOCAL_MODULE := wlmarm_android
LOCAL_CFLAGS := -DBCMWPA2 -DTARGETENV_android -Dlinux -DLINUX
LOCAL_CFLAGS += -DRWL_DONGLE -DRWL_SOCKET -DRWL_WIFI -DWLTEST -DWLMSO
LOCAL_C_INCLUDES +=$(LOCAL_PATH)/include $(LOCAL_PATH)/../../../../../kernel/include
LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_STATIC_LIBRARIES := libc

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
LOCAL_MODULE_TAGS := debug tests
include $(BUILD_STATIC_LIBRARY)

#include $(BUILD_EXECUTABLE)
#endif
#endif /* !defined(ESTA_POSTMOGRIFY_REMOVAL) */
endif  # TARGET_SIMULATOR != true
.


錯誤訊息

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.1-update1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================
make: Entering directory `/home/Android-2.1-Real6410-r1'
target Non-prelinked: dhd.ko (out/target/product/generic/symbols/system/bin/dhd.ko)
Install: out/target/product/generic/system/xbin/dhdarm_android
make: *** No rule to make target `development/hello/src/wl/exe/wlu.c', needed by `out/target/product/generic/obj/EXECUTABLES/wlarm_android_intermediates/wl/exe/wlu.o'.  Stop.
make: Leaving directory `/home/Android-2.1-Real6410-r1'
root@test-desktop:/home/Android-2.1-Real6410-r1/development/hello/src#
[ 此帖被kazaya在2011-05-04 16:46重新编辑 ]
级别: 新手上路
UID: 44934
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2011-04-29
最后登录: 2017-09-13
7楼  发表于: 2011-05-04 16:36
编译过dhd.ko,其他没有编译过.
级别: 新手上路
UID: 44934
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2011-04-29
最后登录: 2017-09-13
8楼  发表于: 2011-05-04 16:40
wlmarm_android这个工具我没有编译过,猜是用来在Command line测试WiFi的,
Bcm4329不支持iwconfig连接,自己搞了个wl工具,不过Android 用的是wpa_supplicant.
级别: 圣骑士
UID: 44407
精华: 0
发帖: 386
金钱: 1945 两
威望: 389 点
综合积分: 772 分
注册时间: 2011-04-25
最后登录: 2014-08-25
9楼  发表于: 2011-05-05 09:58
目前無法使用這版編譯wl的command,改使用其它的編譯,需要測試

wifi_up??

#!/system/bin/sh
echo "Checking and inserting driver..."
/system/bin/rmmod dhd.ko 2> /dev/null
/system/bin/sleep 2
/system/bin/insmod /system/lib/modules/dhd.ko
/system/bin/sleep 3
echo "Downloading firmware..."
/system/bin/dhdarm_android -i eth0 download /system/etc/wlan/sdio-g-cdc-reclaim-idsup-wme.bin /system/etc/wlan/nvram.txt
/system/bin/sleep 2
/system/bin/ifconfig eth0 up
/system/bin/sleep 1
/system/bin/ifconfig eth0 0.0.0.0
/system/bin/sleep 1
/system/bin/wlarm_android up
/system/bin/sleep 2
/system/bin/wlarm_android scan
echo "Scanning APs..."
/system/bin/sleep 1
/system/bin/wlarm_android scanresults
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go