Arch Linux broadcom wireless 驱动自行编译安装

Arch最近频繁升级内核,有木有?一激动,升级了内核,无线网络没了,有木有?
以前,辛辛苦苦找到了无线网卡的驱动broadcom-wl,结果现在全白费了,有木有?

但是,回过神来,不想折腾的Linux User不适合用Arch。想想,还是硬着头皮自己编译吧。当然也不是完全从零开始,Arch的一个优点就是有很好的用户支持,官方wiki中没有的话,可以去AUR看看。因为原先使用的是第三方源中的broadcom-wl,所以在AUR中搜索了一下,于是就得到了编译需要的前提信息,链接是http://aur.archlinux.org/packages.php?ID=19514

好,接下来进入编译工作。

  1. 在上面的链接中下载整个编译需要的文件(Tarball),如PKGBUILD、install等,也可以点击这里下载,解压
  2. 编译需要依赖以下软件或工具:makepkg,fakeroot,patch,make。请确保一一安装。
  3. 从终端进入刚才的Tarball解压出来的目录,执行makepkg,不推荐使用root权限编译(所以要安装fakeroot,这些信息在编译过程中都会一一提示的,请注意输出的内容)
  4. 编译成功后,会生成名字类似broadcom-wl-5.100.82.112-2-i686.pkg.tar.xz的包,使用 pacman -U broadcom-wl-5.100.82.112-2-i686.pkg.tar.xz 安装。
  5. 安装完成后,执行 modprobe wl

原先使用第三方源安装时,如果执行modprobe wl是会报错的,现在OK了。

如果这样之后还是不行的话,给我留言吧。记得描述清除,或者留下联系方式。

Wubi安装Lubuntu

想使用Ubuntu的Windows用户,又不想重新分区安装的,不可或缺的安装工具就是Wubi了。Wubi在下载的系统镜像中就有,这里要说的是要用它安装Lubuntu,因为在该工具的可安装的系统的选择项中并没有Lubuntu。

关于Lubuntu呢?其实就是使用LXDE桌面环境的Ubuntu。而LXDE呢?是由台湾的开发者开发的轻量级Linux桌面环境,据称对内存的需求只有128M,对于现代的电脑来说,太小菜了。LXDE除了轻量之外,也保证了一定的美观,对于需要轻量又不失美观的用户,可以考虑使用这款系统。当然,Lubuntu也时常被推荐为安装在老旧的机器上,让老旧的机器也能焕然新生。其实,Linux Kernel一直以来对硬件就没有怎么挑剔过,至于桌面环境嘛,毕竟它也是一个较为庞大而复杂的软件套装。

言归正传,使用Wubi安装Lubuntu。其实很简单,只是你需要准备两个系统镜像文件,一个是Ubuntu的iso镜像,一个是Lubuntu的iso镜像。首先,运行任意镜像中的Wubi(你可以安装winmount,使用它将镜像挂在到一个盘符中,或者使用其他的虚拟光驱软件),选择安装Ubuntu(另外还有Kubuntu和Xubuntu,因为我们的镜像是Ubuntu的,所以选择Ubuntu),安装。安装好后,不要重启,先将Lubuntu的镜像拷贝到Ubuntu的安装目录中的install目录下,删除installation.iso,并将Lubuntu的镜像更名为installation.iso。接着,重启安装Ubuntu。

安装好后,像Ubuntu一样,如果语言环境安装不完整,系统会提示你安装。如果输入法没有安装,可以安装ibus-pinyin,安装完成后,需要注销一下系统。其他的如音视频编解码器、rar解压之类的,可以安装lubuntu-restricted-extras。

另外,如果安装virtualbox的话,可能会遇到缺少libGL.so.1的问题,安装一下libgl1-mesa-swx11就好了,或者直接在软件包安装程序中搜索libGL.so.1。

nvidia b4312 install arch linux

以下安装信息已中文用户为主,安装机器为Dell Insporon 1420(Nividia显卡,Broadcom 4312无线网卡),安装介质为2011.08.19 i686。已经有一篇关于安装的博文,Install ArchLinux。这一篇是针对特定机型的安装记录,以及一些注意点,尽可能精简安装过程。

  1. 基础安装。以下是一些需要注意的。
    • 中国地区用户在设置硬件时钟类型时,推荐使用locatime
    • 在选择安装包时,推荐将sudo选中,省得后面还要再装。
    • 设置配置。主要是更新源的选择,即/etc/pacman.d/mirrorlist,推荐选择China相关的源中的一个,一般选择163的即可。
  2. 创建用户。具体的请参见Install ArchLinux。例如,useradd -m -g users -G audio,lp,optical,storage,video,wheel,games,power -s /bin/bash archie。设置密码为passwd archie。
  3. 更新软件源信息。pacman -Syu
  4. 如果没有安装sudo,可以通过命令pacman -S sudo安装。
  5. 配置sudo。nano /etc/sudoers,该文件中已经预设了一些配置,由于创建的用户已经在wheel组中,将相应的#%wheel ALL=(ALL) ALL前的注释#去掉就好了。至于# %wheel ALL=(ALL) NOPASSWD: ALL也是可以的,这样就不需要输入密码了。
  6. 登出root,使用新建的帐号登录。这一步是处于操作安全性的考虑,毕竟使用root的每一步操作都会即刻生效,而是用一般用户还要受到sudo的牵绊。
  7. 安装于图形化相关的基础软件。sudo pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils xf86-video-nouveau (pacman -Ss xf86-video | less)
  8. 安装字体。sudo pacman -S ttf-dejavu wqy-zenhei
  9. 安装dbus、networkmanager、显卡驱动。sudo pacman -S dbus networkmanager nvidia network-manager-applet
  10. 安装桌面环境。sudo pacman -S gnome(安装时,可以根据自己的需求选择相应的软件套装,这里安装了除1外的所有软件套装)
  11. 安装桌面环境的额外软件套装。sudo pacman -S gnome-extra(这里安装了5、6、7、8、9、10、12、13、14、15、18、22、23、24、31、33)请根据安装的输出信息,补充安装解压缩支持和影音编解码支持。
  12. 中文输入法。sudo pacman -S ibus-pinyin
  13. 进行一些配置。sudo nano /etc/rc.conf,在deamon中添加dbus、networkmanager、gdm,除此之外的可以在其前方添加@,让它在背景中运行。
  14. 添加软件源,安装无线网卡驱动。参照Arch Linux network。如果想手动安装,可以使用与sudo pacman -U /var/cache/pacman/pkg/broadcom-wl-5.100.82.38-6-i686.pkg.tar.xz类似的命令。
  15. 一些细节问题的修正。
    • 聊天工具empathy无法显示帐号菜单。执行安装sudo pacman -S telepathy 。
    • ibus无法自动启动。执行cp /usr/share/applications/ibus.desktop ~/.config/autostart
  16. 重启
  17. 一些软件的安装。
    • flash插件。sudo pacman -S flashplugin
    • chromium。sudo pacman -S chromium
    • gnome shell tweak tool。sudo pacman -S gnome-tweak-tool
    • libreoffice。sudo pacman -S libreoffice-calc libreoffice-common libreoffice-gnome libreoffice-impress libreoffice-writer libreoffice-zh-CN

LMDE: 无法在终端输入内容

重新安装了LMDE,折腾了一阵,结果发现在ibus运行的情况下,终端和计算器中都无法通过键盘输入内容。这是为什么呢?应该要归结到LMDE的桌面环境了。LMDE的桌面环境是Gnome2和Gnome3的混合体,既使用了Gtk2,也使用了Gtk3。而ibus默认支持在Gtk2下进行输入,而为了支持在Gtk3下输入,需要安装ibus-gtk3

Gnome 3: 调整移至回收站的快捷键

在Gnome 3中,当需要将文件或者文件夹移至回收站时,使用键盘操作,需要使用组合键Ctrl + Delete。

那么,如何将它改成我们熟悉的Delete呢?这里有一个参考GNOME 3 – Delete Key Not Deleting/Working in Nautilus。操作如下:

  1. 运行dconf-editor。
  2. 在org > gnome > desktop > interface下找到can-change-accels,将其勾上。
  3. 在nautilus(即文件管理器),选择一个文件或者文件夹,在编辑菜单中找到移动到回收站,鼠标停留在该项上,并敲击键盘上的Delete键两次。
这样快捷键就改成Delete了。然后可以选择将第二步的勾选去除。

windows Virtualbox boot from usb

参考Ubuntu与Windows下让Virtualbox从U盘启动

前提:
Virtualbox版本          4.1.4
操作系统                  Windows 7
启动U盘                   A-DATA 4G(通过Universal USB Installer 1.8.6.8刻录了Windows 7系统,可启动)
虚拟机                     新建的Windows 7虚拟机(IDE控制器:光驱,SATA控制器:win7.vdi)

开工:

  1. 进入Virtualbox安装目录,打开命令行。安装目录一般为C:\Program Files\Oracle\VirtualBox。
  2. 获取启动U盘在Virtualbox中的别名。
    wmic /output:d:\diskdrive.html diskdrive list /format:htable
    打开diskdrive.html(在D盘根目录,如果只有一个盘——C盘,请修改为C:\diskdrive.html),在页面中找到可移动设备,并找到与启动U盘信息相符的设备名称,如\\.\PHYSICALDRIVE1。
  3. 查看设备信息。这一步只是为了确认一下。
    VBoxManage internalcommands listpartitions -rawdisk \\.\PHYSICALDRIVE1
  4. 创建启动U盘的对应硬盘文件。
    VBoxManage internalcommands createrawvmdk -filename d:\UsbDisk.vmdk -rawdisk \\.\PHYSICALDRIVE1
    标红部分根据自己的实际需求进行调整,如果是D盘的Virtualbox目录,则是D:\Virtualbox。执行成功,会看到相应的成功信息。
  5. 挂载启动U盘。点击虚拟机设置中的Storage,在SATA控制器中添加UsbDisk.vmdk,通过调整虚拟硬盘属性中的端口,来调整硬盘的顺序,也就是对应的启动顺序。也可以将UsbDisk.vmdk添加到IDE控制器中,只是在启动时需要按F12选择从IDE启动。

webkit font-size 12px bug

基于webkit核心的浏览器,如chrome、safari等,在显示小于12px的英文字符时始终会显示为12px。解决这一问题,只需要在设置字体的地方,添加以下css代码:

-webkit-text-size-adjust: none;

这样问题就迎刃而解了。

本地图片预览及大小获取

内容涉及范围:使用input file选择图片后,在不提交至服务器的情况下,预览选择的图片,获取图片文件的大小。

先说一些结论,在默认设置的情况下,ie6和firefox6可以预览和获取大小;ie7-9只能预览;chrome13只能获取大小。只能预览或只能获取大小的,很大程度上都是由浏览器的安全策略造成的。

接下来是一些详情,

html代码:

<input id=”file” type=”file”" />
<div id=”div”>
<img id=”img” />
</div>

各浏览器图片预览及大小获得:

浏览器(版本) 图片预览 大小获得
ie6 设置img.src=file.value 通过img.fileSize获得
ie7-9
  1. 通过file.select()和document.selection.createRangeCollection().item(0).text获取上传文件本地路径filepath
  2. 为div添加filter,即div.style.filter = ‘progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=\’scale\’,src=\” + filepath + ‘\’)';
无法获得,需结合后台功能
firefox6 设置img.src=file.files.item(0).getAsDataURL() file.files.item(0).fileSize或者file.files.item(0).size
chrome13 无法通过前端方法本地预览,需结合后台功能,即上传文件后展示 file.files.item(0).fileSize或者file.files.item(0).size

在ie7-9、firefox6及chrome13下,浏览器出于安全考虑,无法通过file.value获得选择图片的本地路径,其中ie7-9和chrome13获得的是经过处理的本地路径,而firefox6下获得的是图片的名称。

make ibus autostart in Arch Linux

前段时间将arch linux的gnome桌面环境升级到了3.0.1,之后升级到了3.2。本来以为在3.0.1中ibus不能自动启动的问题会修复掉,结果还是老样子,每次只能打开终端,运行ibus-daemon -d -x或者ibus-daemon –xim来手动运行ibus(还可以在程序列表中找到ibus,直接运行)。但是,这样做总不是办法的。还是要让它自行启动才好。

首先,看一下ibus官方的wiki:http://code.google.com/p/ibus/wiki/Install#Run_iBus,其中有一句

Add a new /etc/xdg/autostart/ibus.desktop to invoke ‘ibus-daemon –xim’

这就是解决问题的关键了。如果你知道desktop文件怎么写,以下内容可以跳过了。

接下来,就是写ibus.desktop了。这里有篇文章很详细的介绍了desktop文件,Linux Desktop Entry 文件深入解析

实际上,我们只需要找到ibus安装完成后,产生的ibus.desktop文件在哪就好了。而手工写desktop文件的做法,就留给高手和勤快的人吧。而这个文件就在/usr/share/applications/中,你可以执行sudo cp ibus.desktop /etc/xdg/autostart。

#对于所有用户
sudo cp /usr/share/applications/ibus.desktop /etc/xdg/autostart

#对于当前用户
cp /usr/share/applications/ibus.desktop ~/.config/autostart

最后,注销并重新登录。这样,就可以在托盘区看到久违的ibus图标了。(折腾这么久,终于好了,泪奔啊。)

图片垂直居中

小乔的解决方案,这应该算是终极的多浏览器兼容的方案了,目前常用的浏览器(ie6-9,firefox,chrome)都是兼容的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<style type="text/css">
	.float-div {
		float:left;
	}
 
	.img-wrapper {
		border:1px solid gray;
		width:100px;
		height:100px;
 
		text-align:center;
 
		display:table-cell;
		vertical-align:middle;
		*display:block;
	}
	.img-wrapper * {
		vertical-align:middle;
	}
	.img-wrapper span {
		*display:inline-block;
		*height:100%;
	}
	.img-wrapper img {
		border:none;
	}
</style>
 
<div class="float-div">
	<a href="#" class="img-wrapper">
		<span></span>
		<img src="80x80.png" alt="80x80" />
	</a>
</div>

但是,以上方案在ie6下会受word-wrap:break-word的影响,需要修改word-wrap为normal。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<style type="text/css">
	.float-div {
		float:left;
	}
 
	.img-wrapper {
		border:1px solid gray;
		width:100px;
		height:100px;
 
		text-align:center;
 
		display:table-cell;
		vertical-align:middle;
		*display:block;
	}
	.img-wrapper * {
		vertical-align:middle;
		word-wrap:normal;
	}
	.img-wrapper span {
		*display:inline-block;
		*height:100%;
	}
	.img-wrapper img {
		border:none;
	}
</style>
 
<div class="float-div">
	<a href="#" class="img-wrapper">
		<span></span>
		<img src="80x80.png" alt="80x80" />
	</a>
</div>