.
.
.
.
.
之前家里台式机上安装的是win7+CentOS双系统,但是CentOs的无线网卡驱动不知为何无论如何都安装不上,再加上这段时间一直很忙,所以一直使用着win。这几天事情忙得差不多了,再加上win的分区告急了(硬盘总共2TB,win分配了500G,剩下的是Linux分区),便想好好弄一弄机器上的Linux。没想到CentOS居然不能启动了,于是只能换成Ubuntu碰碰运气。另外我一直比较喜欢用Ubuntu,虽然换成Unity的界面后看着不太爽,不过用了好些年了还是这个系统比较顺手。
总之这次安装系统+安装无线网卡驱动相当的不顺利,不过最终还是成功的装好了,所以顺便记录下来提供给遇到类似问题的童鞋参考。
机器配置:
CPU:AuthenticAMD A4-3300
内存:4GB
硬盘:2TB
主板:七彩虹 C.A55T V15
无线网卡:瑞昱RTL8188C USB
显卡:(主板集成)amd-catalyst
从官网下载了Ubuntu 12.04 LTS 版,并刻录成光盘。用光盘启动后刚出现桌面背景图片就死机了,反复修改N次BIOS的磁盘模式(无论是AHCI、RAID或者Native IDE)都不行。后来发现用Ubuntu 10.04 的可以正常启动,不知道是什么原因,于是就直接安装了Ubuntu 10.04。系统安装完成后重新启动进入新系统当中,然后从无线网卡附赠的光盘中将驱动包拷出来(/tmp/bx, bx是我自己创建的目录)。
unzip RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.zip
mv RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911 rtl8188cu
cd rtl8188cu
chmod 777 install.sh
sudo ./install.sh
然后报了一个编译错误:
/tmp/bx/rtl8188cu/core/rtw_pwrctrl.c:
In function 'LeaveAllPowerSaveMode':
/tmp/bx/core/rtw_pwrctrl.c:712: error 'HAL_DATA_TYPE\ has no member named 'autosuspend_disabled'
make[2]: *** [/tmp/bx/rtl8188cu/core/rtw_pwrctrl.o] Error 1
make[1]: *** [_module_/tmp/bx/rtl8188cu] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-2.6.32-28-generic'
make: *** [modules] Error 2
Compile make driver error: 2, Please check error Mesg
遂请教Google,找到了一篇帖子,帖子里的回答类似修改core/rtw_pwrctrl.c文件的LeaveAllPowerSaveMode函数,712行。果然找到了这个函数,将
Adapter->dvobjpriv.pusbdev->autosuspend_disabled = pHalData->autosuspend_disabled;
修改为:
Adapter->dvobjpriv.pusbdev->autosuspend_disabled = 0;
既然修改了源文件就不能使用外面的install.sh脚本了,否则脚本会删掉我修改后的文件重新解压压缩包里的源码。于是只能手工编译:
cd /tmp/bx/rtl8188cu/core/driver/rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911/
sudo make
sudo make install
编译很顺利,可是系统还是认不出无线网卡,输入iwconfig指令也查看不到无线网卡,于是只能重启系统。
重启后依然无法识别无线网卡,只好先把系统升级到12.04LTS,用有线连接上网络之后用系统的升级工具自动升级,出去洗了个澡,回来后系统还没有升级完,边看书边等待系统升级结束。。
一个多小时后,系统终于升级完成了,于是乎赶紧重启准备体验下新系统。谁知重启之后..........
花屏了。。
于是重启到win中,从官网下载了一个显卡驱动:amd-catalyst-13.9-linux-x86.x86_64.run
用恢复模式启动后安装了这个驱动:
chmod 777 amd-catalyst-13.9-linux-x86.x86_64.run
sudo ./amd-catalyst-13.9-linux-x86.x86_64.run
显卡驱动装好后重启,桌面终于正常了。
于是乎继续折腾无线网卡的问题。
这回从官网重新下载了一份无线网卡的驱动,依然按照上面的步骤进行傻瓜式安装,编译成功,安装成功。
终于在状态栏中看到可爱的无线网卡图标了,也搜索到了我的无线路由器了,于是乎赶紧输入密码进行连接......连接成功!
打开浏览器赶紧上网。。。。结果。。。。上不去。。
ping 192.168.0.1(网关地址)返回网络不可到达的错误消息。。
在浏览器中访问:http://192.168.0.1 也是访问失败。
杯了个催的,这是怎么回事呢?
继续重新安装无线网卡驱动,结果居然好了,能上网了,我心里那个激动。。
别急,重启试试吧。重启系统后。。。可想而知。。又杯具了。。
于是继续Google,有幸又找到了一篇文章。
根据文章的描述,我在想是不是由于之前安装失败了的驱动覆盖了我新安装的驱动的配置。于是屏蔽掉现有的网卡驱动模块后重新编译驱动并安装,对比一下安装驱动之前和安装之后,内核模块的加载又什么差别。
发现安装驱动之前,加载的模块如下:(仅列出无线网卡相关模块)
命令:lsmod,输出:
amd76x_edac
rtl8192cu
rtl8192c_common
rtlwifi
mac80211
cfg80211
干掉以上模块,为安装新的网卡驱动做准备:(执行如下命令)
rmmod amd76x_edac
rmmod rtl8192cu
rmmod rtl8192c_common
rmmod rtlwifi
rmmod mac80211
rmmod cfg80211
重新编译安装无线网卡驱动,再次 lsmod 查看已加载的内核模块的变化。
发现多出了一个 8192cu 模块,于是网络功能又恢复了。看来这个模块式正常的,而上面那一堆都是不正常的模块,于是屏蔽掉它们:
sudo vi /etc/modprobe.d/blacklist.conf
在文件的最后面添加:
blacklist amd76x_edac
blacklist rtl8192cu
blacklist rtl8192c_common
blacklist rtlwifi
blacklist mac80211
blacklist cfg80211
保存,退出,重启系统。
重启后一切都正常了。
至此系统的安装和无线网卡驱动的安装就结束了。
由于Unity实在用不习惯,遂改成 Gnome 3,安装方式详见这里。
最近在win里安装了Rime输入法,感觉不错,于是打算给Linux也装上,于是今晚边写这篇博客边安装了Rime输入法。
跟着官方的安装步骤(源码编译安装)每一步准备工作执行得都挺顺利,结果最后一步执行 ./install.sh 的时候报了个错误,看有人提出了疑问却没人回答。(错误如下)
if -e ../brise; then cp -R ../brise/ data/; fi mkdir -p build (cd build; cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_STATIC=OFF ..) -- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY) -- Found yaml-cpp: /usr/local/lib/libyaml-cpp.so -- Found kyotocabinet: /usr/local/lib/libkyotocabinet.so CMake Error at cmake/FindOpencc?.cmake:22 (message):
Could not find opencc library.
Call Stack (most recent call first):
CMakeLists.txt:50 (find_package)
-- Configuring incomplete, errors occurred! make: librime? 错误 1
最终为了方便,只好用源的方式进行安装了,不过很顺利:
# this repo provides libkyotocabinet, libgoogle-glog for Ubuntu 12.04;
# these packages are officially supported since Ubuntu 12.10.
sudo add-apt-repository ppa:fcitx-team/nightly # providing libyaml-cpp0.5, librime, rime-data, ibus-rime
sudo add-apt-repository ppa:lotem/rime sudo apt-get update
sudo apt-get install ibus-rime
如果是Ubuntu10.04以上的版本,直接执行
sudo apt-get install ibus-rime
命令就行了,因为 Rime 已经被收录到 Ubuntu 源中了。