我正在尝试将文件 /proc/brcm_monitor0 中的值从 0 更改为 1。该文件用于将 Broadcom wifi 模块设置为监控模式。
执行此操作的默认方法是:
sudo -s
echo 1 > /proc/brcm_monitor0
但是,这会出现错误:
-bash: echo: write error: Input/output error
所以我尝试第二种方法:
echo 1 | sudo tee /proc/brcm_monitor0
控制台输出 1,但是当我使用以下命令检查文件时:
cat brcm_monitor0
它仍为 0。
我不知道为什么文件不会改变。我试过 chmod 777,但输出似乎没有任何变化。我知道 proc 文件夹包含虚拟文件,但从我读到的内容来看,上述两种方法应该可以更改文件中存储的参数。
欢迎提出任何建议。谢谢
答案1
可能是修补的 Ubuntu 驱动程序中存在错误。
在 Ubuntu 13.04 中,使用 Broadcom.com 的 vanilla 6.30.223.141 驱动程序可以解决问题。
在 Ubuntu 13.10 中,由于与内核版本 3.11 不兼容,vanilla 6.30.223.141 驱动程序无法工作。使用 Launchpad 中的补丁“0009-add-support-for-linux-3.10.0.patch”修补 vanilla 驱动程序会产生同样的错误:
$ LANG=C sudo bash -c “echo 1 > /proc/brcm_monitor0”
bash:第 0 行:echo:写入错误:输入/输出错误
修复 Ubuntu 13.10 中的错误:
应用 Arch Linux AUR 中的补丁,而不是 0009-add-support-for-linux-3.10.0.patch
指示:
从 Broadcom 下载驱动程序源 (6.30.223.141)
wget http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_141.tar.gz tar xvzf hybrid-v35_64-nodebug-pcoem-6_30_223_141.tar.gz
不要应用 LINUX 3.10 UBUNTU 补丁。应用http://ix.io/9DV仅限补丁。
wget http://ix.io/9DV cd hybrid patch -i ../9DV -p1
编译驱动程序。
make
测试驱动程序。
sudo rmmod wl sudo insmod ./wl.ko
启用监控模式。
sudo bash -c "echo 1 > /proc/brcm_monitor0"
来源:http://aur.archlinux.org/packages/broadcom-wl/?setlang=de&comments=all