1,Ubuntu for phones 有哪些值得关注的特性
看来有不少人也在关注这个新家伙,其实关于产品特性在官网和视频里已经讲的很详细了,简单提取一些我比较关注的哈。对手势的使用要比Android和iOS更多,也更大胆,例如向右滑动切换至喜爱的程序、在界面底部下上滑动切换出具体的控制操作、在顶部手机状态栏左右滑动切换具体的控制栏目等,随着硬件屏幕的增大和人们对点击这种老土交互方式的抛弃,在屏幕上大量使用手势操作应该是将来的发展潮流,甚至手势可以是通过感应器触发而不只是屏幕;非常重视Web应用,它可以像原生应用一样使用系统功能,例如系统通知等;对OpenGL也做到了全面支持,同时提供了一个惊人的本地开发环境QML(刚才QML);强大而智能的搜索功能,如果你搜索的是人,则提供人的信息,例如FB/TWITTER的信息,而如果你搜索的是电影,则会提供电影的信息,它总能找到你想要的那个;可以根据用户/企业需求自由订制系统,无论是订制界面风格、数据内容、应用程序等都可以轻松支持,还可以做到云端订制,同时支持多达40多种语言,真正的全球性解决方案;Ubuntu手机可以和Ubuntu电视/电脑端结合的更紧密,例如你的应用程序一次编写后,将有可以在多个平台上使用;系统默认提供Ubuntu One云空间,我认为这个有可能成为Dropbox/Google Device的对手。
2,Ubuntu for phones 有哪些值得关注的特性?
对手势的使用要比Android和iOS更多,也更大胆,例如向右滑动切换至喜爱的程序、在界面底部下上滑动切换出具体的控制操
作、在顶部手机状态栏左右滑动切换具体的控制栏目等,随着硬件屏幕的增大和人们对点击这种老土交互方式的抛弃,在屏幕上大量使用手势操作应该是将来的发展
潮流,甚至手势可以是通过感应器触发而不只是屏幕;
非常重视Web应用,它可以像原生应用一样使用系统功能,例如系统通知等;对OpenGL也做到了全面支持,同时提供了一个惊人的本地开发环境QML(刚才QML);
强大而智能的搜索功能,如果你搜索的是人,则提供人的信息,例如FB/TWITTER的信息,而如果你搜索的是电影,则会提供电影的信息,它总能找到你想要的那个;
可以根据用户/企业需求自由订制系统,无论是订制界面风格、数据内容、应用程序等都可以轻松支持,还可以做到云端订制,同时支持多达40多种语言,真正的全球性解决方案;
Ubuntu手机可以和Ubuntu电视/电脑端结合的更紧密,例如你的应用程序一次编写后,将有可以在多个平台上使用;
系统默认提供Ubuntu One云空间,我认为这个有可能成为Dropbox/Google Device的对手。
3,Ubuntu for Phones操作系统意义有多大?麻烦告诉我
去年 1 月,Ubuntu 发布了对应智能电视的衍生版 Ubuntu TV,2 月份又发布了为 Android 手机设计的,类似摩托罗拉 WebTop 的 Ubuntu for Android。这一次,Ubuntu 还发布了独立的移动操作系统 Ubuntu for Phones。由于Linux 开放的本性,只要进行一定的改造,Linux 很容易跑在 ARM 设备上。不过,用户体验则不是一次技术改造可以完成的事情。毕竟手指和鼠标键盘的操作体验大有不同。三年前 Ubuntu 开发新的用户界面 Unity,当初的目的是希望为上网本的小屏幕作出优化。一年后,在发布 Ubuntu 11.04 的时候,Unity 成为系统的标配。从诞生到现在,Unity 就面对许多许多批评,比如说运行缓慢、容易崩溃、应用不够兼容等等。无论如何,Unity 已经成为 Ubuntu 的“设计语言”——Ubuntu TV、Ubuntu for Android 以及现在发布的 Ubuntu for Phones,都有浓浓的 Unity 风格。在手机上,Unity 会有怎样的表现?The Verge 在 Canonical 发布 Ubuntu for Phones 之后,拿到一部 Ubuntu for Phone 的手机进行上手评测,发现它的设计十分依赖手势,但与 Windows Phone、webOS 的又有所不同。1. 在锁屏界面上,用手指向左滑动即为解锁。2. 在主界面上,手指向右滑动,会唤出应用列表。3. 在系统通知栏上,手指往下一拉,就能拖出通知栏。和 Android 不同的是,如果你的手指放在电源图标上,向下拉会拖出电源的设置,显示具体的电量等等,在音量图标上也如此。4. 在主界面上,手指往左滑,就会唤出上一次运行的应用,如果继续往左滑,会按顺序打开之前打开过的应用。5. 主界面的设计与 kindle Fire 有相似的地方。可以看到,Canonical 一直在竭力横向拓展 Ubuntu 的外延,令它的角色不再固定在桌面电脑操作系统上。不过,外界评论并不看好 Ubuntu for Phones 的前景。TechCrunch的观点是,如今移动市场已成定局,可以预见不会有多少手机厂商采用 Ubuntu for Phones。而缺少了他们作为后盾,一个操作系统还能有活路吗?而 PCWorld 的表达赤裸,“没有硬件,Ubuntu 的手机操作系统什么都不是。”Ubuntu for Phones 不会运行其它平台的应用,若无足够的应用作为支持,Ubuntu 作为手机操作系统的意义也不大——正如我们之前所说,“你来是因为产品,你留下是因为生态系统。”有时候,你想不明白,移动操作系统的市场格局已定,为何依然会有人奋不顾身地跳下去。但既然有人跳下去,必然就有跳下去的原因。近年来,由于苹果的强势,运营商为引进 iPhone 时,往往要经历艰难的谈判,不但要对消费者进行高额补贴,还不能在 iPhone 上安装定制应用,推广自己以及合作伙伴的服务。而 Google 一直处心积虑要甩开运营商渠道,自行销售 Nexus 手机。手机厂商与运营商之间既有利益合作,又有利益冲突,AT&T 之前嫌 iPhone 的利润少,为了让顾客购买其它型号的手机,不惜让销售人员当着顾客的面说,“iPhone 是一堆狗屎。”从苹果、从 Google、从腾讯身上,运营商已经吸取了教训,不想成为单纯的管道,就要自己掌握终端,重掌话语权。中移动总裁李跃在去年 12 月 5 日的中国移动全球开发者大会上,已经明确表示要生产自有品牌的手机。但让运营商重头开发一个操作系统,这并不现实。
4,Ubuntu明明不赚钱为什么还要坚持投资?
2004 年,Mark Shuttleworth 创立了 Canonical 公司,他告诉员工,“光靠我,公司就能撑两年。”Shuttleworth 说出这番话的用意就是想让员工不用过于关心公司的业绩表现,要放轻松,然后将工作重心放到新开发的 Ubuntu 操作系统上。他要求员工消灭初尝市场胜利的喜悦感,不要放松警惕,专心做好Ubuntu。面对一个从来没有盈利过的公司,他并没有放弃过。Shuttleworth 一直希望 Canonical 可以自力更生,即便亏钱也没有打算离开它。“虽然一开始说过两年内靠我没问题,但是我并没有说两年内能赚到钱。我说的应该是‘这两年你们靠我就可以了。我希望能够找到 Ubuntu 走向成功的道路以及 Ubuntu 操作系统在市场上的破坏点。’”然而,9 年过去了,Canonical 的账本上依旧是赤字。根据测算,Shuttleworth 目前身价 5 亿美元,这笔钱来自 1999 年他出售的 VeriSign 数字证书认证公司。直到今天,Canonical 公司依旧在烧着 Shuttleworth 的血汗钱。即便没有移动市场,桌面市场也会消亡到现在为止,Shuttleworth 依旧没有对 Canonical 的员工下发盈利的要求。实际上,除了桌面和服务器市场运营成本的不断增加之外,移动市场的发展也在不断加大资金消耗力度。Shuttleworth 说,“桌面电脑市场就让它自生自灭吧”,移动市场的成功正是因为它迎合了计算私有化的趋势。Shuttleworth 原本的目标就是依靠基于 Linux 的操作系统与微软在桌面电脑操作系统市场上进行抗衡。不过到现在为止,微软的 Windows 操作系统占据整个桌面操作系统 93% 的市场份额,Linux 操作系统占据 1% 的市场份额。看到这样的数字,Canonical 没有赚到钱一点也不奇怪。然而,令人们感到奇怪的是,Shuttleworth 放弃了专攻商用市场,而是选择通过革命性终端用户计算方式来进攻个人计算市场。知道 Ubuntu 操作系统的人都知道这是一个免费的操作系统,开发它的 Canonical 公司在服务器软件领域也享有盛名,同时其基于 Ubuntu 的 OpenStack 云基础平台也对各大数据中心免费开放。对于旁观者来说,Canonical 想盈利非常简单,放弃桌面和移动市场,专攻数据中心就可以轻松地赚到钱。Shuttleworth 说:“想让 Canonical 赚钱真是太简单了,只需要专攻服务器市场或者是制作 OpenStack 就行了。只有一两个产品的公司很小,肯定能盈利。”然而,赚钱并不是 Shuttleworth 心中所想。Shuttleworth 是一个真正的开源软件信奉者,他希望开源软件能从电脑覆盖到手机,再到平板电脑,再到服务器,最后再到云端,全部开源。“在我眼中,开源的机会越来越成熟,这正是我的兴趣所在。我喜欢破坏、细分,未来有一点,你打开手机运行一个 Ubuntu 应用程序,然后将其投影到大屏幕上,这时候手机就是一台 Ubuntu 电脑,数据的计算将在 Ubuntu 的云计算机上进行。现在我并不想让别人觉得我妄自尊大,但是时机真的越来越成熟。我投资这么多产品肯定比投资一个产品更有意义。”Canonical 总部坐落于英国,在全球 30 个国家拥有超过 500 名雇员。因为 Canonical 是一个私企,所以财报并不公开,我们也无法得到这家公司的季度财报。在 2009 年,Canonical 的收入达到了 3000 万美元,Shuttleworth 宣称这些钱足够 Canonical 自给自足。根据金融信息服务机构 DueDil 的信息,Canonical 公司 2012 年 3 月显示的年度收入为 5420 万美元,净损失 1055 万美元。Canonical 的发言人说,这只是英国的数据,并不代表全球数据。软件虽免费,收费亦有道虽然用户可以免费下载 Ubuntu 桌面版和服务器版操作系统,但是 Canonical 依旧有多种途径来赚钱。使用Ubuntu 桌面操作系统的企业如果需要技术支持和版权保护,可以向 Canonical 提出付费获取帮助。另外,电脑厂商如果要在新电脑中预装 Ubuntu 操作系统的话,也需要向 Canonical 付费,Canonical 会为企业开发定制版本确保硬件与软件兼容。中国政府也向 Canonical 要求开发定制版 Ubuntu 操作系统来绕开昂贵的 Windows 操作系统。一般来说,家庭用户会不向 Canonical 付费,不过 Canonical 与亚马逊签署协议可以让其在桌面版系统中显示广告,可以为 Canonical 带来不少收入。Shuttleworth 没有明确表态桌面电脑市场究竟有没有赚到钱,他只是说“桌面市场很明显不会带来巨额利润。桌面市场和服务器市场的重要性对我们来说旗鼓相当。”“Ubuntu 在美国的市场份额并不代表全球。今年,戴尔、惠普和联想中有一家公司生产的 20% 的电脑预装 Ubuntu 操作系统,另外一家明年也将做到 20%,第三家很快也会做到这么大的预装量。”因为签署了保密协议,Canonical 公司并没有公布这三家的顺序。Canonical 的服务器和云业务给公司带来了不少的利润。Canonical 通过销售 Ubuntu Server 和 OpenStack 的技术支持来赚钱。此外,Canonical 还出售 Ubuntu 控制系统 Landscape 帮助企业管理 Ubuntu 系列产品,不过 Landscape 不是开源软件。除此之外,Canonical 还靠出租 Ubuntu 云服务器来盈利,所有人都可以付费使用(价格见下表)。Shuttleworth 说,“Ubuntu 虽然免费,但是云服务器运行需要成本。”亚马逊和其他云服务器商靠云服务器赚翻了,Canonical 肯定也赚了不少钱。“让所有云服务器都用上 Ubuntu 是我们的目标,目前微软 Azure 云服务器上 Linux 服务器列表中 Ubuntu 是第一位,亚马逊云服务器上 Ubuntu 还是第一位。”微软和亚马逊将 Ubuntu 看作是客户操作系统,其实 Ubuntu 还可以作为主机操作系统,比如说 AT&T、德国电信、NTT、中国移动、爱立信和 Rackspace 等公司都使用 Ubuntu 和 OpenStack 作为 IaaS(架构即服务)。实际上,OpenStack 是由 Rackspace 和 NASA 合作开发的开源项目,并非 Canonical 独享。只不过 OpenStack 云要靠 Ubuntu 操作系统来搭建,所以默认使用 Ubuntu。目前全球有 2200 万 Ubuntu 用户,其中绝大多数为桌面系统用户。OpenStack 上市时间还很短,不过已经有不少大型机构选择使用 OpenStack,比如说控制大型强子对撞机的欧洲核子研究委员会(CERN)。目前正在运行的 OpenStack 云中大多数都是模拟测试,并非付费使用。Shuttleworth 说:“不过目前世界上排名靠前的六七家电信运营商正在使用 OpenStack 云服务,他们付费使用就会带动更多人来使用。”巧的是这些公司正好可以帮助他推广 Ubuntu 移动操作系统。去哪找 3200 万美元?Canonical 公司计划推出 Ubuntu Touch 手机和平板电脑来全面进入移动市场。为了减少企业的财政压力,Canonical 公司在众筹平台上发起了 3200 万美元的众筹项目 Ubuntu Edge。3200 万美元,对于 Shuttleworth 来说不算什么,他想借众筹平台试探一下市场反应。就目前来看,这个众筹项目肯定是要失败了的。即便会失败,Shuttleworth 也有各种理由来继续追逐 Ubuntu 手机和平板电脑的梦想。“我相信我们有实力来完成这一任务。”因为消费者依旧喜欢苹果和 Android 手机,所以 Ubuntu 手机和平板电脑将不能如期在明年登陆市场了。Canonical 公司并不打算采取 Google 公司 Android 操作系统依赖广告的盈利方式,Canonical 希望通过出售硬件和运营商合约机来赚钱,目前已有 11 家大型电信运营商有意与 Canonical 展开合作,出售 Ubuntu 手机。Shuttleworth 希望 Ubuntu 手机的市场份额能达到 20%,他还认为在 Ubuntu 系统上开发 Android 应用程序的开发者会很愿意为 Ubuntu 手机开发应用程序。Shuttleworth 说过,Ubuntu 手机就是 Ubuntu 桌面操作系统的拓展,因为它们使用的都是同一个系统的代码,只是用户界面不一样而已。你可以把 Ubuntu 手机理解成小屏幕的 Ubuntu 电脑。不过Ubuntu 手机操作系统目前依旧在开发过程中,Nexus 4 手机已经可以运行试用版,基本功能都运行正常。看看微软,再看看黑莓,Ubuntu 在手机操作系统市场上能打败 iOS 和 Android 吗?现在定论还为时过早,因为连真机都还没有面世。不过我们都知道,移动市场并不是 Canonical 唯一的筹码,它的服务器和云业务在 Linux 操作系统领域影响力非常大。Ubuntu 服务器影响力不如 Red Hat调查公司 IDC 的分析师 Al Gillen 在追踪了全球范围内的服务器收入之后说,“Ubuntu 的服务器业务的利润可能只是 Red Hat 每年十几亿美元收入的零头。”Gillen 说:“Ubuntu 现在的服务器收入可能达不到亿美元级别,顶多每年赚几千万美元。我们不认为 Ubuntu 的服务器操作系统影响力很高,在我们的报表中它甚至并没有单列出来报道过。”Gillen 听到 Shuttleworth 说 Canonical 仅靠服务器和云业务就可以自给自足时感到惊讶,“仅靠这么两条产品线就可以盈利,让我们很惊讶。如果 Canonical 真的靠两个开源的产品就能盈利,那真是太令人惊讶了。”虽说Ubuntu 是用户使用 OpenStack 时的唯一选择,但是如果用户要用其他服务器的话,就必须要使用 Red Hat 的操作系统。这一方面,Ubuntu 竞争力并不高。而在今年 6 月的 Red Hat 年度大会上,Red Hat 发布了其自家的 OpenStack 解决方案,所以说 Ubuntu 在云服务器市场的前景并不乐观。因为Red Hat 已经在市场上站稳了脚跟,合作企业非常多,所以市场依旧会选择 Red Hat 而非 Ubuntu。所以说 Red Hat 搅局 OpenStack 肯定将 Canonical 早期的成就感一举浇灭。Red Hat 公司从去年就开始钻研 OpenStack,任命了 100 名员工全身心投入到 OpenStack 与 Red Hat 的兼容问题上。Red Hat 更新了 OpenStack 的代码基,这样一来,所有的 Linux 操作系统都可以运行 OpenStack 云构架。Red Hat 的贡献连 Shuttleworth 都感到赞叹,他说“Red Hat 的工作解决了 OpenStack 必须与 Ubuntu 一起使用的问题。”与此同时,Red Hat 在市场占有率上的优势也可以帮助其在开源的 OpenStack 上赚到更多的咨询和维护费用。Red Hat 技术总监 Stevens 说:“Red Hat 和 Ubuntu 最大的区别就在于,我们的技术人员对 OpenStack 的每一行代码都非常熟悉。Ubuntu 是一个非常出色的操作系统,它给企业带来了免费的技术,但是并没有因此产生服务和价值。软件是免费的,推广产品并没有带来价值,价值存在于客户关系中。”游戏开始了Shuttleworth 反驳了 Stevens 的话,说 Ubuntu 下的 OpenStack 可以支持 VMware、KVM、Xen 等虚拟化操作系统,而 Red Hat 的只支持 KVM。同时 Shuttleworth 还提到了 Red Hat 中也使用了 Canonical 发明的 cloud-init 虚拟机技术。我们成不了微软,也成不了 Red Hat。“Canonical 更像是一家发展型、技术型的企业,”Shuttleworth 说,“Canonical 将继续保持与大客户、服务器生产商、处理器生产商的良好关系,为企业提供一流的云基础设施。”在追逐桌面、企业和移动市场时,Shuttleworth 说“像是在追逐彩虹”。但是 Canonical 并不急于讨好世界级大企业来赚钱,而是专注于技术开发,在自己的一片小天地里赚点小钱。“我们成不了微软,也成不了 Red Hat。
5,如何在Ubuntu下安装Ubuntu for Android
分为五个步骤来完成Android开发环境的搭建。第一步:安装JDK。要下载Oracle公司的JDK可以百度“JDK”进入Oracle公司的JDK下载页面,选择自己电脑系统的对应版本即可。第二步:配置Windows上JDK的变量环境 。JAVA_HOME先设置这个系统变量名称,变量值为JDK在电脑上的安装路径:C:\Program Files\Java\jdk1.8.0_20。创建好后则可以利用%JAVA_HOME%作为JDK安装目录的统一引用路径。 PathPATH属性已存在,可直接编辑,在原来变量后追加:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 。 CLASSPATH 设置系统变量名为:CLASSPATH 变量值为:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 。注意变量值字符串前面有一个"."表示当前目录,设置CLASSPATH 的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包。第三步: 下载安装Eclipse(已上传附件,电脑打开可下载) 。Eclipse为Java应用程序及Android开发的IDE(集成开发环境)。Eclipse不需要安装,下载后把解压包解压后,剪切eclipse文件夹到你想安装的地方,打开时设置你的工作目录即可。第四步:下载安装Android SDK 。配置了JDK变量环境,安装好了Eclipse,这个时候如果只是开发普通的JAVA应用程序,那么Java的开发环境已经准备好了。我们要通过Eclipse来开发Android应用程序,那么我们需要下载Android SDK(Software Development Kit)和在Eclipse安装ADT插件,这个插件能让Eclipse和Android SDK关联起来。第五步:为Eclipse安装ADT插件。前面已经配置好了java的开发环境,安装了开发Android的IDE,下载安装了Android SDK,但是Eclipse还没有和Android SDK进行关联,也就是它们现在是互相独立的,就好比枪和子弹分开了。为了使得Android应用的创建,运行和调试更加方便快捷,Android的开发团队专门针对Eclipse IDE定制了一个插件:Android Development Tools(ADT)。
6,怎样在Ubuntu下安装Android SDK/ADB
Ubuntu电脑安装Android SDK/ADB
第一步,你要下载Linux版Android SDK的安装或文件包,然后你需要从Android SDK Manager内下载Platform Tools
Package
请从Google官方获取Android
SDK安装或文件包,通常情况,你下载的文件名为android-sdk_rxx-linux.tgz的形式,rxx代表版本,比如,r16版,即android-sdk_r16-linux.tgz,r24版,即android-sdk_r24-linux.tgz
请放置Android SDK安装或文件包在你的用户主目录
在你的Ubuntu电脑上打开终端窗口
解压Android SDK文件:
cd ~
tar -zxvf android-sdk_r16-linux.tgz
在~/android-sdk-linux/tools字目录,有一个叫做android的可执行文件,尽管名字是android,但它实际上是Android
SDK Manager
运行Android SDK Manager:
./~/android-sdk-linux/tools/android
选择Android SDK
Tools与Android SDK Platform-tools项,点Install
packages安装Platform Tools
Package工具包。包括ADB与Fastboot可执行的文件在内的工具包都会被下载,由于下载的文件较多而需要一定的时间,你能去喝点东西
你下载的Platform Tools
Package工具包文件将位于新创建的~/android-sdk-linux/platform-tools目录
第二步,修改ADB与Fastboot可执行文件的默认PATH路径环境。PATH环境变量可以是在~/.profile(或~/.bash_profile)或者~/.bashrc文件内修改,~/.profile文件是读取所有交互式Shell的登录,~/.bashrc文件读取所有非交互式Shell的登录(如sftp),在大多数默认情况下,~/.profile文件导入所有~/.bashrc文件的设置。PATH命令设定的改变必须包括/android-sdk-linux/tools与/android-sdk-linux/platform-tools目录
kevdog的PATH命令设定通过Ubuntu系统内初始的默认编辑器Gedit在~/.bashrc文件底部增加了一行:
export
PATH=${PATH}:${HOME}/android-sdk-linux/tools:${HOME}/android-sdk-linux/platform-tools
第三步,我们需要为Ubuntu创建udev设备管理规则,从而让设备在通过USB端口连接到电脑时能被正确地识别
将设备连接到电脑,然后执行命令:
lsusb
你会看到类似于下面的输出信息:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation
2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004
Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001:
ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 063: ID 04e8:6860
Samsung Electronics Co., Ltd
由于kevdog的设备是Samsung的某款设备,因此你能看到相应的识别信息:
Bus 001 Device 063: ID
04e8:6860 Samsung Electronics Co., Ltd
我们来解释下上面的识别信息:
Bus 001 Device
063,设备端的名称是/dev/bus/usb/001/063,即这个信息可以帮助我们确定设备端的名称
04e8,vendorID,即供货商编号
6860,productID,即产品编号
使用设备端的名称/dev/bus/usb/001/063可以让我们查询设备的属性,查询这些属性有时很有必要,因为udev设备管理匹配设备是基于特定标准的。为此,我们需要一个正确的udev设备匹配规则集,这个过程的第一步就是查询能被连接或插入到我们规则集的准则,这可以通过udevadm程序来实现,并且有两种方式现,它们生成的输出信息为我们的设备构建udev设备管理规则:
udevadm查询udev设备管理规则方法1:
udevadm info -q all -n <name of device
node>
根据原作者的实际情况,设备端名称是/dev/bus/usb/001/063,因此命令是:
udevadm info -q all -n /dev/bus/usb/001/063
你会看到类似于下面的输出信息:
$ udevadm info -q all -n /dev/bus/usb/001/063
P:
/devices/pci0000:00/0000:00:1d.7/usb1/1-8
N: bus/usb/001/063
S:
libmtp-1-8
S: GalaxyNexus
E: UDEV_LOG=3
E:
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb1/1-8
E: MAJOR=189
E:
MINOR=62
E: DEVNAME=/dev/bus/usb/001/063
E: DEVTYPE=usb_device
E:
DRIVER=usb
E: PRODUCT=4e8/6860/216
E: TYPE=0/0/0
E: BUSNUM=001
E: DEVNUM=063
E: SUBSYSTEM=usb
E: ID_MTP_DEVICE=1
E:
ID_MEDIA_PLAYER=samsung_galaxy-s2
E: ID_VENDOR=samsung
E:
ID_VENDOR_ENC=samsung
E: ID_VENDOR_ID=04e8
E: ID_MODEL=Galaxy
E:
ID_MODEL_ENC=Galaxy
E: ID_MODEL_ID=6860
E: ID_REVISION=0216
E:
ID_SERIAL=samsung_Galaxy_0146B06501005018
E:
ID_SERIAL_SHORT=0146B06501005018
E: ID_BUS=usb
E:
ID_USB_INTERFACES=:ffff00:ff4201:
E: DEVLINKS=/dev/libmtp-1-8
/dev/GalaxyNexus
E: TAGS=:udev-acl:
我们使用的规则从有E:(E=ENV=Device
Property设备属性值)的行开始
udevadm查询udev设备管理规则方法2:
udevadm info -a -p $(udevadm info -q path
-n )
根据原作者的实际情况,设备端名称是/dev/bus/usb/001/063,因此命令是:
udevadm info -a -p
$(udevadm info -q path -n /dev/bus/usb/001/063)
你会看到类似于下面的输出信息:
$ udevadm info -a -p $(udevadm info -q path -n /dev/bus/usb/001/063)
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found,
all possible attributes in the udev rules key format.
A rule to match, can
be composed by the attributes of the device
and the attributes from one
single parent device.
looking at device
'/devices/pci0000:00/0000:00:1d.7/usb1/1-8':
KERNEL=="1-8"
SUBSYSTEM=="usb"
DRIVER=="usb"
ATTR{configuration}==""
ATTR{bNumInterfaces}==" 2"
ATTR{bConfigurationValue}=="1"
ATTR{bmAttributes}=="80"
ATTR{bMaxPower}=="500mA"
ATTR{urbnum}=="29"
ATTR{idVendor}=="04e8"
ATTR{idProduct}=="6860"
ATTR{bcdDevice}=="0216"
ATTR{bDeviceClass}=="00"
ATTR{bDeviceSubClass}=="00"
ATTR{bDeviceProtocol}=="00"
ATTR{bNumConfigurations}=="1"
ATTR{bMaxPacketSize0}=="64"
ATTR{speed}=="480"
ATTR{busnum}=="1"
ATTR{devnum}=="63"
ATTR{devpath}=="8"
ATTR{version}==" 2.00"
ATTR{maxchild}=="0"
ATTR{quirks}=="0x0"
ATTR{avoid_reset_quirk}=="0"
ATTR{authorized}=="1"
ATTR{manufacturer}=="samsung"
ATTR{product}=="Galaxy"
ATTR{serial}=="0146B06501005018"
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bMaxPower}==" 0mA"
ATTRS{urbnum}=="1403"
ATTRS{idVendor}=="1d6b"
ATTRS{idProduct}=="0002"
ATTRS{bcdDevice}=="0300"
ATTRS{bDeviceClass}=="09"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{speed}=="480"
ATTRS{busnum}=="1"
ATTRS{devnum}=="1"
ATTRS{devpath}=="0"
ATTRS{version}==" 2.00"
ATTRS{maxchild}=="8"
ATTRS{quirks}=="0x0"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="Linux 3.0.0-14-generic
ehci_hcd"
ATTRS{product}=="EHCI Host Controller"
ATTRS{serial}=="0000:00:1d.7"
ATTRS{authorized_default}=="1"
looking at parent device '/devices/pci0000:00/0000:00:1d.7':
KERNELS=="0000:00:1d.7"
SUBSYSTEMS=="pci"
DRIVERS=="ehci_hcd"
ATTRS{vendor}=="0x8086"
ATTRS{device}=="0x27cc"
ATTRS{subsystem_vendor}=="0x103c"
ATTRS{subsystem_device}=="0x3010"
ATTRS{class}=="0x0c0320"
ATTRS{irq}=="20"
ATTRS{local_cpus}=="ff"
ATTRS{local_cpulist}=="0-7"
ATTRS{dma_mask_bits}=="32"
ATTRS{consistent_dma_mask_bits}=="32"
ATTRS{broken_parity_status}=="0"
ATTRS{msi_bus}==""
ATTRS{companion}==""
looking at
parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
我们使用的规则从有ATTRS(ATTRS=Device
Attributes设备属性)的行开始
不管是ENV,还是ATTRS,我们可以构建一个udev设备管理规则集。规则集的名称可以随意,根据原作者的意图,我们叫做51-android.rules:
你能这样建立规则集文件:
gksu gedit /etc/udev/rules.d/51-android.rules
之后,请在规则集文件中加入相关的规则,以原作者的规则来看,注意是一行一个:
SUBSYSTEM=="usb",
ENV{ID_VENDOR_ID}=="04e8", ENV{ID_MODEL}=="Galaxy", MODE="0666",
SYMLINK+="GalaxyNexus"
SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="04e8",
ENV{ID_MODEL_ID}=="6860", MODE="0666", SYMLINK+="GalaxyNexus"
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860",
ATTR{product}=="Galaxy" MODE="0666", SYMLINK+="GalaxyNexus"
如上面所加的规则,这些规则匹配准则是SUBSYSTEM,
ENV,ATTR,它只会修改设备的模式MODE(0666=rw-rw-rw-)与创建链接于/dev/GalaxyNexus的GalaxyNexus标识。当然,更多的指令可以分配给设备,如插入或移除设备时的执行命令,你能这样指定指令:
ACTION=="add", RUN+=""
ACTION==”remove”,
RUN+=""
例如,我们要设定设备在插入或弹出时播放一个声音或MP3文件,可以如下指令设定:
ACTION=="add", RUN+="/usr/local/bin/NexusMount.sh"
ACTION==”remove”, RUN+="/usr/local/bin/NexusUnmount.sh"
需要注意的是,每个ACTION指令设定必须在它自己的命令行;目录必须正确;指令可以是多重设定
一旦规则构建完成,我们需要保存/etc/udev/rules.d/51-android.rules规则文件
在你执行规则集前,测试一下通常是一个好主意,因为那样你能很容易地找出编写规则集的错误:
你能使用udevadm工具简单地完成规则集的测试:
udevadm info -q path -n d=<device
name>
根据原作者的设备端名/dev/bus/usb/001/063,测试行为:
udevadm test --action="SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="04e8",
ENV{ID_MODEL}=="Galaxy" MODE="0666", SYMLINK+="GalaxyNexus"" $(udevadm info -q
path -n /dev/bus/usb/001/063)
虽然测试输出行相当长,两行输出信息正确地识别规则集的指令设定:
udev_rules_apply_to_event: MODE 0666
/etc/udev/rules.d/51-android.rules:1
udev_rules_apply_to_event: LINK
'GalaxyNexus' /etc/udev/rules.d/51-android.rules:1
一旦你确认了规则集正确,请重启udev设备管理服务:
sudo service udev restart
第四步,退出电脑的登录,然后重新登录回
在设备插入的情况下,执行ADB命令,如确认设备连接:
$ adb devices
你会看到设备识别号信息,根据原作者的设备,它是
0146B06501005018 device
如果你的设备已启动在Fastboot模式,许多设备不启动可能也行,你能执行Fastboot命令,如标准的Fastboot设备:
$
fastboot devices
7,linux和Ubuntu有什么区别
一、概念不同:1、linux:linux是一套免费使用和自由传播的类Unix操作系统2、Ubuntu:Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu"一词,意思是“人性”“我的存在是因为大家的存在",是非洲传统的一种价值观。二、特点不同:1.linux:是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。2、Ubuntu:Ubuntu基于Debian发行版和Gnome桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity。由于Ubuntu Linux是开放源代码的自由软件,用户可以登录Ubuntu Linux的官方网址免费下载该软件的安装包。用户在使用过程中,没有人对该软件进行技术维护,用户只能自己解决遇到的技术故障。扩展资料Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:Unix操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet网络。Linux与其他操作系统相比 ,具有开放源码、没有版权、技术社区用户多等特点 ,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈 ,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。参考资料来源:百度百科-linux参考资料来源:百度百科-ubuntu
8,ubuntu linux 系统不同版本有什么区别
ubuntu desktop:ubuntu的桌面版,个人用户一般选择此版本,包含X-window(即图形界面),易用性较强;ubuntu server:ubuntu的服务器版,作为服务器的操作系统,一般不安装X-window,文字界面;ubuntukylin desktop:ubuntu的衍生版中的一个,与ubuntu desktop没什么区别;ubuntukylin server:服务器版,同样与ubuntu server没什么区别。