分类目录归档:Ubuntu

Ubuntu下让ADB识别所有设备的两个方法

方法一,完全参考谷歌的文档,内容如下
在/etc/udev/rules.d目录下新建一个51-android.rules文件,将下面所有内容拷贝到该文件中:

SUBSYSTEM=="usb", ATTR{idVender}=="0502", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="0b05", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="413c", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="0489", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="04c5", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="091e", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="18d1", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="109b", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="0bb4", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="12d1", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="24e3", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="2116", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="0482", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="17ef", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="1004", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="22b8", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="0409", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="2080", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="0955", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="2257", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="10a9", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="1d4d", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="0471", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="04da", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="05c6", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="1f53", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="04e8", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="04dd", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="054c", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="0fce", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="2340", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="0930", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVender}=="19d2", MODE="0666", GROUP="plugdev"

方法二,有点Hack的味道,参考“孔雀的小屋”滴,就是将下面这行内容拷贝至/etc/udev/rules.d/51-android.rules文件中,
通杀所有Android设备,上面的那些都可作为浮云

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666", GROUP="plugdev"

Ubuntu 10.04安装Reciteword支持Alsa发声

在Ubuntu上安装Reciteword的时候我们可能都曾遇到过esound发声的问题,之前有过一篇文章介绍了如何解决esound initialization failed的问题,文章地址在这里

因为Ubuntu默认的软件混音选择的是alsa而不是esound,所以会有一些问题,在上面提到的那篇文章中也列出来了一些。然后看到网上有很多人提到一个reciteword-alsa版本,那就下下来试试看吧。

下载地址在这里,将reciteword-alsa.tar.gz下载下来,使用tar -xzvf reciteword-alsa.tar.gz解压到当前目录。

之后就是准备reciteword的源码了,源码可以从这里找到下载,普通的esound版本编译方法在这里有非常详尽的wiki页面,当然我们并不需要esound的版本,所以接下来的事情才是我们想要做的。

1. 解压下下来的源码到当前路径,tar -xjvf reciteword-0.8.4.tar.bz2

2. 进入解压后的目录,cd reciteword-0.8.4

3. 将alsa版本的补丁打上,patch -p1 -i ../reciteword-alsa/reciteword-alsa.patch

4. 开始编译,./configure –prefix=/usr/

5. make

6. sudo make install

7. 接下来的所有步骤就是下载书本和字典,所有下载均可以从这个页面下载到,下载的都是tar.bz2包。以下步骤参考了这个wiki页面

课本的安装:

tar -xjvf reciteword-books-*.tar.bz2  && sudo mv books /usr/share/reciteword/
词典的安装:

tar -xjvf reciteword-dicts-*.tar.bz2  && sudo mv dicts /usr/share/reciteword/
皮肤的安装:

tar -xjvf reciteword-skins-rw-*.tar.bz2  && sudo mv rw /usr/share/reciteword/skins
真人声音的安装:

tar -xjvf WyabdcRealPeopleTTS.tar.bz2  && sudo mv WyabdcRealPeopleTTS /usr/share

这样我们就完成了所有的安装程序,到Applications->Education->Reciteword中启动程序吧。上个效果图。

Ubuntu 10.04 Reciteword发声问题解决方法

之前在学校时候学习使用Ubuntu时使用过一个非常优秀的软件那就是Reciteword,俗称黑客背单词,认识这款软件是因为自己在Ubuntu下使用的字典软件是stardict,这两款软件的作者是同一个,作者名字叫胡正

最近一段时间里工作上和家里都使用的Ubuntu,又想起了这款优秀的软件,那么好吧,我们这就开始安装吧,这里有一篇文章非常的详细,你只要按照这个流程安装,肯定成功。

但是在安装之后我们很有可能碰到不能正常发声的问题,那么我们如何解决这个问题呢?我在网上搜了一些相关的资料,自己一一尝试验证之后,发现这个法子很不错。

那就是在启动reciteword命令前,加上esound -noterminate -nobeeps &,也就是在终端中启动reciteword的命令应该是这样的esound -noterminate -nobeeps & reciteword,但是这样肯定是不方便的。那么我们可以这么做,也就是通过编辑/etc/esound/esd.conf文件来达成目的

例如我的/etc/esound/esd.conf文件内容如下:

[esd]

# autospawning is not recommended, since it can’t really be done
# right.  If you want your login session to be using a sound daemon,
# you should start it from the session controller, not some random
# app inside.
auto_spawn=1
spawn_options=-noterminate -nobeeps -as 2
spawn_wait_ms=100
# default options are used in spawned and non-spawned mode
default_options=2

修改该文件之后再次启动reciteword,就能正常发声了,但是还有一个问题,那就是你单击软件界面中的朗读按钮,软件并不会正常的朗读单词,在测试的过程中,如果你输入单词的速度很快的话,软件发出的那种老式打字机金属敲击的声音并不能跟上你的节奏,我想应该是esound自动多音频流播放的问题吧,解决方案参考了这篇文章这篇文章。

听说有alsa版本的,哪天试一试看看如何,嘿嘿,希望本文能对你有所帮助。

==========================更新=============================

在Ubuntu 10.04下编译可能会出现一个错误

bookfile.cpp: In function ‘gchar* rw_book_get_value(const gchar*, gchar*, gint)’:

在bookfile.cpp文件中找到原来的 tmp1 = strstr (str1, str2);

改为    tmp1 = (gchar*)strstr (str1, str2);

Ubuntu下让Air程序TweetDeck成功使用代理发推

在使用Ubuntu的过程中自己有一些需求,例如使用Twitter客户端发推,发现目前没有哪个程序中有设置代理这么一项,真是杯具啊,生活在天朝我们拥有很多的杯具,那么如何解决这个问题呢。在网上搜了一下,有一个哥们的方法很好很给力,例如我们将程序安装到/opt/TweetDeck目录下,那么我们可以在终端中以这样的命令启动程序,export http_proxy=http://127.0.0.1:1984/ && exec /opt/TweetDeck/bin/TweetDeck,如此就可以穿越我们伟大的GFW了,如果你觉得每次都这样非常不方便的话,那么我们将其做成shell文件即可。

1. 创建脚本,名为TweetDeck,sudo vim /usr/bin/TweetDeck

2 .脚本内容为:

#!/bin/bash
export http_proxy=http://127.0.0.1:1984/ #这是因为我使用的是Puff,其他http代理应该是一样的

exec /opt/TweetDeck/bin/TweetDeck

3. 将shell文件的权限改为可执行,sudo chmod +x /usr/bin/TweetDeck

之后你就可以顺利的从命令行启动你的客户端了,当然如果你想将主菜单以及桌面上的快捷方式也顺便修改一下的话,那么可以通过System->Preferences->Main Menu->Applications->Accessories->TweetDeck,找打你需要修改的项,然后选中Properties,找到Command选项,将Command指向刚才咱们创建的shell文件/usr/bin/TweetDeck即可,同理桌面程序启动器也可以通过其Properties中的Command子项来修改其启动的命令。

这样你就可以畅通无阻的开始在墙外的世界使劲推了。

上个图吧,:-)

TweetDeck截图

TweetDeck截图

硬件才是限制自由软件的No.1

昨天舍友看到我在Ubuntu 9.10下Coding,觉得界面比较炫,然后突然想起自己的机器上曾在07年装了一个Redhat 9.2 Desktop中文版。重启一下,怀念了一下往日疯狂装系统的时光。然后发现上不了网,为什么呢?

由于之前在学校使用的有线连接,目前屋子里头使用的是无线,他电脑上插着一个从京东买来的TP-Link WN322G+ 2.0的无线网卡,之前一直在Windows下装着驱动,自然跑得飞快,时常在网上“草蛋”。可惜的是在Redhat中,他也不知道如何设置无线,更别说安装驱动了。突发奇想的他,突然问我要Ubuntu的安装盘,那我倒是有,8.04和9.04的都有CD。

Ubuntu的安装非常方便,在安装的过程中,他让我给他讲一讲我认为的Ubuntu的易用性和值得推荐的地方。我说其实我用的也很少,也就偶尔写写代码的时候会跑到Ubuntu中去,为了学习一些命令和常用的编译知识和Linux平台中的特性才会去使用,娱乐的时候还是选择Windows。那么为什么当时会选择Ubuntu而不是别的Linux发行版呢?其实最早知道有Ubuntu操作系统是在07年冬天,那个时候开始泡JavaEye,在社区中看到很多前辈们都在赞Ubuntu。后来开始想学习一下Linux的时候就完全从零开始了,自己刻了一张光盘(很高兴当时自己的台式机的光驱是个刻录机),开始慢慢的学习安装。第一次使用的还不是光盘安装,刻好了之后一直放在抽屉里头,安装时使用的wubi安装,真是简单方便快捷无副作用啊,和装迅雷、QQ一类的Windows应用程序一模一样,一阵next就OK了。回到话题中来,其实自己觉得选择Ubuntu后,觉得很庆幸的一点是,自己选择了一个社区强大的免费软件。正式因为有社区中的人们无私的奉献和共享。我才能从一个连swap分区时什么都不知道的人,成为了一个可以指导别人使用Ubuntu系统的人。当然这也从另一个角度说明了一个问题——那就是Ubuntu的易用性还不是很好,因为它至少还是需要别人指导的——不过从零开始学Windows同样也是需要人来教的。社区的强大,相对的易用,绚丽的UI,免费开放,这是我给出的四点。其中我个人的排序时这样的,社区强大,绚丽的UI,免费开放,相对的易用。因为我认为社区的强大,完全可以解决易用性的问题,只要你敢问就肯定有人帮你解答。绚丽的UI是我一直追随最新版本Ubuntu的原因,因为每一个版本中都会有一些很明显的改进,不过最近发现其实内核的高低并不是问题,时尚其实可以掌握在自己的手中,保持一个比较稳定版本的内核和显卡驱动,之后你就可以在gnome-look.org中畅快的遨游了,想把自己的桌面整成啥样就整成啥样。就在闲扯之中,舍友的机器已经跑起来了,他的第一感觉是很不错,至少默认的挂载Windows分区的功能是让他狠狠地赞了一个(当年在Redhat中折腾的时候想必是很痛苦滴啊)。

之后就是准备安装软件了,提到Ubuntu安装软件,我们首选的自然是apt-get命令了,只可惜该命令只在你保证自己的机器能连接到一个有效地软件源上才能生效,要么有挂载的DVD映像文件,要么就得上Internet。又回到了最开始的问题了,Ubuntu中配置无线是很方便简单,但是驱动呢?我的机器是笔记本,自带的无线网卡在系统安装的时候已经装上了相应的驱动,而他就只能自己再次放狗搜索了。找了段网线,先连上有线网,把常用的几个软件搞定之后。开始尝试着去搜寻如何安装无线网卡驱动的文章,找到一箩筐还有得多啊。看来大家均碰到过这样恶心的问题啊。有很多的兄弟都在文中号称自己解决了,但是我们按着他的步骤来就是无耻的失败鸟。这是为什么呢?

我们可以来分析一下,主要应该有两个原因:

  • 内核的版本不一致。大部分宣称自己解决了问题的兄弟肯定是解决了自己特定的问题,比如针对WN322G+ 2.0这个无线网卡的文章就有好几篇(看来这款无线网卡的销量还不错哦!),但是撰文时间大都是2008年的,甚至更早。而我的舍友装的系统是Ubuntu 9.04版本,内核极有可能高于别人。
  • 编译环境不一致。有一些文章直接都是给出源码,从源码开始编译,最后进行设置,将问题搞定。但是源码编译这个事情很多时候是受限于系统开发环境的,那么也有可能导致安装不正确问题。

回到标题。为什么说硬件阻碍或限制了自由软件的发展呢?

  1. 硬件厂商仅提供Windows下的驱动程序。当然这个问题其实很奇特,因为Windows市场最大,而且Windows本来就是要在所有兼容机上运行,导致出现驱动程序开发这么一个环节,兼容机的硬件标准非常迥异,导致各家生产厂商要自行开发或者外包开发驱动程序。那么为什么不提供Linux和Mac OS X的呢?谁傻谁才提供呢。Linux市场太小,不赚钱,而Mac OS X是和硬件绑定销售的,不需要自行安装驱动,而且也不可能和别的硬件去兼容。
  2. 提供的驱动并不靠谱。ATI的显卡也有Linux下的驱动程序,开源的闭源的都有,但是就是没有官方的,官网上挂的也是社区驱动的项目开发的驱动。Nvidia虽然提供官方的驱动,但是问题也是一堆堆。这明显成为了诸多Linux潜在用户最怕碰到的棘手问题,我想我的舍友的激情也就在昨夜凌晨4点半的时候被耗尽了(昨天跟舍友一起整这个问题,足足整了3个小时)。
  3. OEM的程度还是很不够,其实如果能提供非常好的OEM套件也是很不错的。机器出厂时,已经保证其驱动和系统均是OK的,那么到了用户那里,他就不需要再去为这些原本不属于他关心的问题去费神费时了。现在的Windows也开始默认安装绝大多数通用驱动了,从XP开始(Vista不算)到Win7,系统自带的驱动越来越多,标准也越来越完善——作为兼容机首选操作系统生产商的微软完全有能力也很有责任把这个事情做好,让Windows的用户远离驱动程序,让用户知道他们之需要一键安装Windows便是了。解决了标准的问题之后,生产厂商开心了,微软其实也赚了好彩头——用户的体验提升。

就这样,我的舍友又回到了他盗版的Windows下面,继续“DOTA”和“草蛋”。你那该死的硬件,让我又失去了一个可能成为学习伙伴的Ubuntu发烧友。