给群輝加上 博通Broadcom BCM43xx 无线网卡驱动 (未成功)
本帖最后由 j796160836 于 2017-6-16 12:23 编辑这是一篇没成功的教程
相当折腾,也相当蛋疼,弄了好几个晚上不弄了
大概是太折腾,没人写
只是分享一下折腾的纪录和思路,如果有人成功了记得跟我说说
可以帮帮我
我找了很多文章跟教程还是做不出来
以下会拼凑一些我看到的教程跟我的步骤
---
今天想加入的是
Broadcom BCM43224AG 802.11a/b/g/draft-n Wi-Fi Adapter
从鲁大师或AIDA64可以看到这个型号
Win7底下免驱
但在这里要驱动
思路有二个,一个是 b43 驱动一个是 wl 驱动
Broadcom(博通)无线网卡,总有三种类型的驱动
驱动类型
描述
brcmsmac/brcmfmac
内核自带,源自broadcom的开源驱动
b43
内核自带,源自 broadcom Linux 驱动的逆向工程
Broadcom-wl
broadcom发布的专用驱动
http://blog.csdn.net/beijing2008lm/article/details/18979607
细节差异就不贴了,大意就是内核自带的 b43 驱动比较厉害,但内核没有预设开启
wl 驱动会跟自带的驱动冲突所以安装时要关掉另外二者
查网卡型号 (在你的Nas底下做)
$ lspci -n | grep 14e4
系统显示
0000:02:00.0 0280: 14e4:4353 (rev 01)
对照了表格
PCI-IDSupported?Chip IDModesPHY versionAlternative
14e4:4353yes (3.1+)BCM43224a/b/g/nN (r6)wl/brcm80211
都是三者都可以用的意思
查系统版本(在你的Nas底下做)
$ uname -a
系统显示
Linux DiskStation 3.10.102 #15101 SMP Mon May 22 10:02:53 CST 2017 x86_64 GNU/Linux synology_broadwell_3617xs
这里有三个信息
1. Linux 内核版号是 3.10.102
2. 平台是 x86_64 (broadwell)
3. 型号是 DS3617xs
喔对了,我的是系统是 DSM 6.1 用的档案是 DSM_DS3617xs_15101.pat
环境准备
准备一台 Ubuntu 12.10 系統,如果版本新了一點沒關係
我是做台 Ubuntu 虚拟机,用 ssh 连到那台虚拟机,方便剪贴指令
避免蛋疼的权限不足,以下直接都用 root 操作,如果介意的话请自行加 sudo
安裝一些必要軟件: git, libc6-i386, ncurses, build-essential archivemount
$ apt-get install git libc6-i386 build-essential libncurses5-dev archivemount
从这里
http://sourceforge.net/projects/dsgpl/files/
下载 DSM 6.1 tool chain 文件解压至 /usr/local 下
路徑是 DSM 6.1 Tool Chains -> Intel x86 Linux 3.10.102 (Broadwell)
档名为 broadwell-gcc493_glibc220_linaro_x86_64-GPL.txz
(在另一台主机上复制档案,如果知道的可以略过)
$ scp broadwell-gcc493_glibc220_linaro_x86_64-GPL.txz ssh user@10.211.55.11:/home/user/
$ cp /home/user/broadwell-gcc493_glibc220_linaro_x86_64-GPL.txz /usr/local/
$ cd /usr/local/
$ tar -xvf broadwell-gcc493_glibc220_linaro_x86_64-GPL.txz
会解压很多文件在 /usr/local/x86_64-pc-linux-gnu/
wl 驱动
这里参考了
http://blog.csdn.net/tallercc/article/details/51985019
在
http://www.broadcom.com/support/802.11/linux_sta.php
下载最新的驱动
我点 Linux® STA 64-bit driver
档名为 hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
解压下载好的驱动到 /usr/local/src/hybrid-wl 目录
$ mkdir -p /usr/local/src/hybrid-wl
(在另一台主机上复制档案,如果知道的可以略过)
$ scp hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz ssh user@10.211.55.11:/home/user/
$ cp /home/user/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz /usr/local/src/hybrid-wl/
$ cd /usr/local/src/hybrid-wl
$ tar -zxvf hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
交互编译
$ cd /usr/local/src/hybrid-wl
$ make ARCH=x86_64 CROSS_COMPILE=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-
执行完毕会得到 wl.ko
编译时有 API=WEXT 或者 API=CFG80211 这二个参数,默认为第二种
如果不能加载就试试第一种
把它放在NAS的 /lib/modules 底下
(复制档案到NAS上,如果知道的可以略过)
$ scp wl.ko admin@192.168.1.130:/volume1/data/
$ cp /volume1/data/ /lib/modules
然后在NAS上加载
$ insmod /lib/modules/wl.ko
系统会给这个错误
insmod: ERROR: could not insert module wl.ko: Invalid module format
然而用以下指令会得到更进一步的信息
$ dmesg
wl: version magic '3.5.0-17-generic SMP mod_unload modversions ' should be '3.10.102 SMP mod_unload '
到这里就卡住了
这里有乱试了一下,用一些不正规的作法绕过去版本检查
http://blog.csdn.net/crazycoder8848/article/details/40950317
只会得到更多的错误
这个驱动没有 Kconfig 只有 Makefile
(难道 Kconfig 是要自己写?)
没有 Kconfig 意思就是在 menuconfig 会没有选项可以选
所以我不知道要放在原代码的哪里
直接编译又有版本检查问题,求指导
b43 驱动
刚刚提到内核自带的 b43 驱动比较厉害,但内核没有预设开启
那就拿內核源代碼编译内核模组让他开启
这里参考了很多文章
http://www.gebi1.com/thread-63718-1-1.html
http://www.xp933.com/tech/1328.html
http://xpenology.com/wiki/en/building_xpenology
http://www.bydavy.com/2012/01/co ... r-synology-devices/
http://xpenology.eu/viewtopic.php?t=59
https://forum.synology.com/enu/viewtopic.php?f=27&t=52065
http://www.gebi1.com/thread-64338-1-1.html
http://www.21qa.net/questions/2145/2145?sort=votes&page=1
内核源代码有二处,andy 的跟 群晖官方的 我二个都试过
主要还是走模块加载的思路
**** Hidden Message *****
群暉官方的内核源代码
我主要是看这个教程做的
https://hallard.me/how-to-instal ... ogy-ds1010-dsm-4-1/
从这里
http://sourceforge.net/projects/dsgpl/files/
下载
我的路径是 Synology NAS GPL Source -> 15047branch -> broadwell-source
档名是 linux-3.10.x.txz
把它解压到 /usr/local/x86_64-pc-linux-gnu/source/
$ mkdir -p /usr/local/x86_64-pc-linux-gnu/source/
(在另一台主机上复制档案,如果知道的可以略过)
$ scp linux-3.10.x.txz ssh user@10.211.55.11:/home/user/
$ cp /home/user/linux-3.10.x.txz /usr/local/x86_64-pc-linux-gnu/source/
$ cd /usr/local/x86_64-pc-linux-gnu/source/
$ tar -xvf linux-3.10.x.txz
会解压很多文件在 /usr/local/x86_64-pc-linux-gnu/source/linux-3.10.x
进入选单选择
$ make ARCH=x86_64 CROSS_COMPILE=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-linux-gnu- menuconfig
编译模组
$ make ARCH=x86_64 CROSS_COMPILE=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu- modules
主要的问题是,编译时会出错在一个莫名奇妙的地方
drivers/usb/core/port.c: In function ‘usb_hub_create_port_device’:
drivers/usb/core/port.c:151:35: error: ‘CONFIG_SYNO_USB_VBUS_NUM_GPIO’ undeclared (first use in this function)
drivers/usb/core/port.c:151:35: note: each undeclared identifier is reported only once for each function it appears in
drivers/usb/core/port.c:153:18: warning: unused variable ‘gSynoUsbVbusGpp’ [-Wunused-variable]
drivers/usb/core/port.c:152:13: warning: unused variable ‘gSynoUsbVbusPort’ [-Wunused-variable]
drivers/usb/core/port.c:151:14: warning: unused variable ‘gSynoUsbVbusHostAddr’ [-Wunused-variable]
make: *** Error 1
make: *** Error 2
make: *** Error 2
make: *** Error 2有折腾的人一起讨论讨论
怎麼選?
menuconfig 怎麼選擇
這裡有一些參考
**** Hidden Message *****
这里很多地方都没有写,或者草草带过
有折腾的人一起讨论讨论
跟我一样不懂的人也帮忙顶一下,求大神出现
自顶一个 学习一下 谢谢分享!!!!! 谢谢分享 按照我编译QNAP模块的经验来看,你可以尝试把所有编译失败的模块都去掉。反正你只是想编译一个wl.ko而已。比如说现在先把整个usb子系统全部去掉,再编译。 高端玩法,我贫乏的大脑完全想不出,给nas服务器安装无线网卡可以干什么用?不过看楼上这么折腾,突然有一种试一试的冲动 感谢分享,学习一下 我给台式机用的usb3.0的5G无线网卡插在黑群晖上竟然是免驱的,可以识别连接无线网,比较蛋疼的是偶尔会休眠无法唤醒,名字叫睿因USB千兆无线网卡,不是打广告 只支持楼主~~~ 感谢楼主分享,最近在给DS1821+添加E10M20-T1(AQC107网卡驱动)时,也折腾了好久,最后虽然驱动成功了,但方法是拣现成(pocopico大佬编译ds918+里的ko)还有winhex修改官方atlantic.ko里的PID VID,再删除数字签名部分)这个偏方。
通过DSM自身搭编译环境,Dsm 6.2 7.0下很多命令都删除了(apt等)困难重重,
虚拟机ubuntu 18.04下搭建群晖官方交叉编译环境,make成功得到ko文件,在insmod时也遇到版本号不匹配问题,
编译linux内核,我看到网友尝试完也未成功,目前看论坛里公开的方法都较早了,对DSM 6.2后面的新版本不适用,期待大佬位指导 好东西学习一下 看看 学习下 感谢分享,下载收藏 感谢分享,下载收藏
页:
[1]