始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

没那么神秘:Linux下生存实录(6)

发布时间:  2012/9/8 15:13:08

三、上网冲浪

问:宅男最怕失去啥?答:网络(谁说苍老师?@_@!)。网络在给我们带来无限乐趣的同时,也在不断地改变着人类生活方式。

1、无线上网。目前无线上网形式包括:adsl+无线路由器方式、wlan方式、3g上网卡方式。第一种是大家平时最常见的方式,找运营商开通宽度,自己买个无线路由器,将宽度帐号和密码设置进路由器,加电即用,该方式上网速度快,但受空间限制较大,一旦超过路由器信号覆盖就无法上网了;第二种方式需要先联系电信运营商开通wlan业务,联网后在运营商提供的页面输入帐号和密码即可上网,这种方式上网速度还是不错,但,费用高(按流量收费)、择区域(只有在热点附近才能使用wlan业务,通常小城市热点非常少,即便大城市也往往只有机场、星巴克等场所才有);第三种方式,3g上网卡方式,网速基本可接受(可在线观看非高清视频),包月费用约100rmb,将上网卡插入电脑,随时随地即可高速上网,这里为大家详细介绍下这种方式。3g上网卡有两个概念普及下,a)当前中移动、中电信、中联通等三家运营商均有提供各自3g上网卡,分别采用td、cdma2000、wcdma等三种网络制式,网速、费用、稳定性各不相同;b)华为、中兴两家是主流的卡设备提供商。运营商、设备请按个人情况选择,我用的是华为中移动g3上网卡,下文将以此为例进行介绍。

华为g3上网卡官方仅发布了windows驱动,linux下咋办?前面介绍升级内核时我提过,windows与linux对驱动的管理模式差异,windows需用户针对各个硬件单独下载、安装驱动,而linux在内核中已经集成了(绝大部分)硬件设备驱动程序,包括,这里说的华为中移动g3上网卡驱动。

大致原理如下:linux能识别g3上网卡,但默认将其视为usb存储设备,我们需要告诉系统(QQ:小默862693539)说"它是一个网络拨号moden,不是u盘",一旦系统(QQ:小默862693539)接受了该设备模式转换请求,后续只需用某种拨号程序执行拨号操作即可。

先准备两个命令行程序:usb_modeswitch、wvdial,直接从软件仓库中安装。另外,必须先关闭系统(QQ:小默862693539)自带的网络管理程序,在opensuse中,你可以这样:yast->network devices->network settings->globa options->network setup methods->traditional method with ifup (instead of network manager)

以下操作均在命令行中执行,全流程步骤如下:

  1)获取g3上网卡usb信息。执行:

  1. lsusb | grep "huawei" 

系统(QQ:小默862693539)显示类似如下

  1. bus 002 device 003: id 12d1:1da1 huawei technologies co., ltd. 

记录下你对应12d1:1da1位置的信息;

  2)g3上网卡模式转换。

  a)指定要进行模式转换的设备。用如下信息换/etc/usb_modeswitch.conf内容:

  1. defaultvendor=0x12d1 
  2. defaultproduct=0x1da1 
  3. targetvendor=0x12d1 
  4. targetproduct=0x1da1 
  5. huaweimode=1 

b)进行模式转换操作。执行:

  1. usb_modeswitch -c /etc/usb_modeswitch.conf 

显示如下信息 

  1. looking for target devices ... 
  2. found devices in target mode or class (1) 
  3. ... 
  4. scsi inquiry data (for identification) 
  5. ------------------------- 
  6. vendor string: huawei 
  7. model string: mobile cmcc cd 
  8. revision string: 1.25 
  9. ------------------------- 
  10. usb description data (for identification) 
  11. ------------------------- 
  12. manufacturer: huawei mobile 
  13. product: huawei mobile system solution 
  14. serial no.: 111111-11-111111 
  15. ------------------------- 
  16. sending huawei control message ... 
  17. ok, huawei control message sent 
  18. -> run lsusb to note any changes. bye. 

注,这一步执行过程可能僵死,重新插入上网卡重新执行该步骤;

c)确认转换完成。执行第一步命令显示如下信息

  1. bus 002 device 009: id 12d1:1d09 huawei technologies co., ltd. 

如果先前的1da1变为1d09那么恭喜你,关键一步已经成功了;

d)查看设备信息。执行:

  1. ls /dev/ttya* 

输出信息为

  1. ttyacm0 ttyacm1 ttyacm2 

那就转换成功了;

3)拨号上网。

a)生成g3上网卡拨号配置文件。执行: 

  1. wvdialconf 

输出

  1. editing `/etc/wvdial.conf'. 
  2. scanning your serial ports for a modem. 
  3. modem port scan<*1>: s0 s1 s2 s3 
  4. wvmodem<*1>: cannot get information for serial port. 
  5. ttyacm0<*1>: atq0 v1 e1 -- ok 
  6. ttyacm0<*1>: atq0 v1 e1 z -- ok 
  7. ttyacm0<*1>: atq0 v1 e1 s0=0 -- ok 
  8. ttyacm0<*1>: atq0 v1 e1 s0=0 &c1 -- ok 
  9. ttyacm0<*1>: atq0 v1 e1 s0=0 &c1 &d2 -- ok 
  10. ttyacm0<*1>: atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 -- ok 
  11. ttyacm0<*1>: modem identifier: ati -- manufacturer: huawei 
  12. ttyacm0<*1>: speed 4800: at -- ok 
  13. ttyacm0<*1>: speed 9600: at -- ok 
  14. ... 
  15. ttyacm0<*1>: speed 230400: at -- ok 
  16. ttyacm0<*1>: speed 460800: at -- ok 
  17. ttyacm0<*1>: max speed is 460800; that should be safe. 
  18. ttyacm0<*1>: atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 -- ok 
  19. wvmodem<*1>: cannot get information for serial port. 
  20. ttyacm1<*1>: atq0 v1 e1 -- ok 
  21. ttyacm1<*1>: atq0 v1 e1 z -- ok 
  22. ttyacm1<*1>: atq0 v1 e1 s0=0 -- ok 
  23. ttyacm1<*1>: atq0 v1 e1 s0=0 &c1 -- ok 
  24. ttyacm1<*1>: atq0 v1 e1 s0=0 &c1 &d2 -- ok 
  25. ttyacm1<*1>: atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 -- ok 
  26. ttyacm1<*1>: modem identifier: ati -- manufacturer: huawei 
  27. ttyacm1<*1>: speed 4800: at -- ok 
  28. ttyacm1<*1>: speed 9600: at -- ok 
  29. ttyacm1<*1>: speed 19200: at -- ok 
  30. ttyacm1<*1>: speed 38400: at -- ok 
  31. ttyacm1<*1>: speed 57600: at -- ok 
  32. ttyacm1<*1>: speed 115200: at -- ok 
  33. ttyacm1<*1>: speed 230400: at -- ok 
  34. ttyacm1<*1>: speed 460800: at -- ok 
  35. ttyacm1<*1>: max speed is 460800; that should be safe. 
  36. ttyacm1<*1>: atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 -- ok 
  37. wvmodem<*1>: cannot get information for serial port. 
  38. ttyacm2<*1>: atq0 v1 e1 -- ok 
  39. ttyacm2<*1>: atq0 v1 e1 z -- ok 
  40. ttyacm2<*1>: atq0 v1 e1 s0=0 -- ok 
  41. ttyacm2<*1>: atq0 v1 e1 s0=0 &c1 -- ok 
  42. ttyacm2<*1>: atq0 v1 e1 s0=0 &c1 &d2 -- ok 
  43. ttyacm2<*1>: atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 -- ok 
  44. ttyacm2<*1>: modem identifier: ati -- manufacturer: huawei 
  45. ttyacm2<*1>: speed 4800: at -- ok 
  46. ... 
  47. ttyacm2<*1>: speed 460800: at -- ok 
  48. ttyacm2<*1>: max speed is 460800; that should be safe. 
  49. ttyacm2<*1>: atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 -- ok 
  50. found an usb modem _disibledevent=0 &c1 &d2 +fclass=0
  51. ttyacm1<info>: speed 460800; init "atq0 v1 e1 s0=0 &c1 &d2 +fclass=0
  52. ttyacm2<info>: speed 460800; init "atq0 v1 e1 s0=0 &c1 &d2 +fclass=0

b)修改拨号配置文件。将/etc/wvdial.conf文件内容替换为

  1. [dialer defaults] 
  2. init1 = atz 
  3. init2 = atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 
  4. password = any 
  5. phone = *99***1# 
  6. modem type = usb modem 
  7. stupid mode = 1 
  8. baud = 460800 
  9. new pppd = yes 
  10. modem = /dev/ttyacm0 
  11. isdn = 0 
  12. username = any 

c)执行拨号联网。执行:

  1. wvdial 

输出

  1. --> wvdial: internet dialer version 1.60 
  2. --> cannot get information for serial port. 
  3. --> initializing modem. 
  4. --> sending: atz 
  5. atz 
  6. ok 
  7. --> sending: atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 
  8. atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 
  9. ok 
  10. --> modem initialized. 
  11. --> sending: atdt*99***1# 
  12. --> waiting for carrier. 
  13. atdt*99***1# 
  14. connect 2800000 
  15. --> carrier detected. starting ppp immediately. 
  16. --> starting pppd at mon jun 22 11:11:50 2009 
  17. --> pid of pppd: 4134 
  18. --> using interface ppp0 
  19. --> local ip address 10.140.162.111 
  20. --> remote ip address 192.200.1.21 
  21. --> primary dns address 221.130.33.60 
  22. --> secondary dns address 221.130.33.52 
  23. --> connected... press ctrl-c to disconnect 

4)其他说明。

a)如果是第一次使用3G上网卡,那么需要依次执行以上每步,后续只需执行wvdial命令即可拨号联网(有时3G信号不稳定,需要重复多次执行wvdial命令);

b)系统(QQ:小默862693539)自带的网络管理程序NetworkManager与wvdial命令有冲突,如果通过无线路由器上网,请手工运行NetworkManager命令,如果使用g3上网卡,需要先杀掉NetworkManager相关进程(包括NetworkManager、dhclient、dhcpcd),再执行wvdial拨号。下图演示了如何杀NetworkManager相关进程:

(杀NetworkManager)

2、网页浏览。浏览器是互联网入口,各大互联网公司必争之地。firefox,源至linux下的著名浏览器,凭借其高安全性和可扩充性赢得大量忠实用户。

  • 软件名称:firefox
  • 界面截图:

(firefox)

  • 设置调整:你对firefox的任何需求,几乎都可以通过其丰富的插件资源得到满足(另一个有如此庞大插件资源的软件当数vim了,后面有介绍)。进入tools->add-ons即可在线查找需要的插件,找到后点击在线安装即可,安装完成需重启浏览器以让新装插件生效。下面介绍多款我觉得非常有用的插件:

a)下载管理-download statusbar;

b)链接拖拽-quickdrag;

c)鼠标手势-all-in-one gestures;

d)双击关闭tab-close tab by double click;

e)侧边显示-all-in-one sidebar;

f)网页代理-phzilla;

g)vi模式-pentadactyl;

3、资源下载。作为一个linux狂热用户,也不得不承认,要让电脑完全满足我日常需求,或多或少还是要借助windows。有些linuxer认为引入windows程序会玷污linux的纯洁性,宁愿放弃某些应用,也不愿和windows沾边。个人认为,任何事情不要走极端,我们玩linux,是为了享受它带来的开放、自由、创新,但同时,也不要人为丢弃windows提供的特有服务,毕竟,我们使用电脑是为了解决实际问题,而不是向谁证明“我是一名纯正的linuxer”,否则只会顾此失彼。当然,如果有功能类似的软件,肯定会优先选用linux版本,这点无须质疑。

我们需要借助windows,这倒不是linux系统(QQ:小默862693539)本身不够完善,而是某些应用软件开发商只发布了windows版本,且那些软件又掌握着其所在领域的垄断权(两个特征:采用私有协议、用户规模大),以至于第三方即便有心也无力在linux下开发类似软件。对我而言,有几类应用让我离不开windows:网上购物和资源下载。先说说下载,网购后文有提及。

在冏朝,说起下载,一定会想到迅雷,离线下载、高速通道、多协议支持等等特性是其他任何下载软件无法提供的,特别是对冷门资源的下载非常有效。遗憾的是,迅雷仅提供windows版本,在linux下你是无法(直接)使用迅雷的。

有什么办法能解决“linux下如何使用windows程序”的问题?目前有两类解决方式:转换层方式和虚拟机方式。在介绍这两类方式前,先了解下为什么会存在这样的移植性问题。之所以windows程序不能在linux下运行,主要因为操作系统(QQ:小默862693539)api不同所致,类似迅雷这类应用程序,由于对性能要求高、功能要求严,导致开发时必须与操作系统(QQ:小默862693539)非常紧密联系,采用了大量系统(QQ:小默862693539)提供的独有api,最终成为windows上的“原生应用程序”,一旦“原生应用程序”找不对应的操作系统(QQ:小默862693539)就找不到api,当然也就无法正常运行了。好了,根结就在api上。

我们说的第一类解决方式,是在linux中部署一套为windows api转换层,我们让应用程序在转换层中运行,应用程序继续调用windows提供的api,转换层接收到api请求后将具体执行操作传递给linux系统(QQ:小默862693539),linux执行完后返回的转换层,转换层将请求执行结果反馈给windows应用程序,完成一次api请求,这样重复往返多次不同api调用,最终模拟完成整个应用程序执行过程。这种方式虽然可行,但也不完美:a)操作系统(QQ:小默862693539)本身几乎就是由大量api组合而成,如果实现了所有windows api那就实现了windows系统(QQ:小默862693539),从工作量和复杂度上来说,这不是哪个开源社区能够负担得起的,所以,目前做得最好的转换层(wine,收费版本CrossOver)也仅实现了部分api,这意味着,不是所有windows程序都可以在转换层中运行,这是一个问题;b)既然是模拟api,那么从执行效率(实时性)、执行结果(正确性)上看,肯定与直接在windows中执行存在明显差距,时常会出现程序异常退出、运行缓慢等等问题,这对实时性要求较高的应用(在线3d游戏)来说,是用户无法接受的。正因为此,不推荐该方式。

第二类解决方式是安装虚拟机,在虚拟机中安装一个windows操作系统(QQ:小默862693539),这就像和你直接安装的windows一样,这样就有了一整套完整的windows api,所有应用程序均可正常运行。virtualbox就是一款著名的虚拟机。

  • 软件名称:virtualbox
  • 界面截图:

  • 下载安装:切勿从软件仓库中安装,仓库中的版本无法识别usb设备,官网提供了完整版(https://www.virtualbox.org/wiki/linux_downloads);
  • 设置调整:要像使用真正windows那样使用装在virtualbox中的windows,必须注意以下几点:

a)内核管理。virtualbox对内核版本非常敏感,一旦有内核升级,必须对virtualbox核心模块进行重新编译。别担心,不需要你具备程序员的能力,virtualbox会自动执行,你,负责为它准备相关编译工具--gcc、make、

kernel-dev。第一个是编译器,第二个是代码管理工具,第三个是编译内核需要的头文件,这三个工具均可通过软件仓库安装。一旦准备好相关工具,用root权限执行"/etc/init.d/vboxdrv setup"命令即可;

b)显卡与usb管理。要让virtualbox中的windows支持3d显卡加速、识别usb等等增强功能,必须安装在windows中安装virtualbox自带的增强包。增强包只能在windows的安全模式下才能安装完整,windows虚拟机启动时按f8进入安全模式,进入virtualbox菜单devices->install guest additions进行增强包的安装;

c)网卡管理。通常主操作系统(QQ:小默862693539)(linux)配有无线网卡、有线网卡、3g上网卡,必须先映射到客操作系统(QQ:小默862693539)(windows)后,在windows系统(QQ:小默862693539)中才能正常上网。进入setting->network,将adapter1采用nat方式映射,将adapter2采用bridged adapter方式映射到eth0(有线网卡设备编号)、将adapter3采用bridged adapter方式映射到wlan0(无线网卡设备编号),进入windows,在"更改适配器设置"中将看到这三个网卡映射,依次将adapter1命名为"3g直连"、adapter2为"有线桥接"、adapter3为"无线桥接",这样,启停不同网卡实现不同上网方式的切换。在windows虚拟机中看到的三张网卡如下(是的,下图反映了我正在用3G上网):

(映射到windows虚拟机中的网卡)

  • 使用问题:高版本迅雷(v7)在虚拟机中运行会报c++运行时库溢出的错误,暂时只能安装低版本迅雷(V5)才可正常运行。网上找迅雷5,下载安装。这时先别急着下载资源,迅雷有自动升级机制,一旦联网,将强制升级,若取消升级则程序会退出,若升级则又变成高版而导致报错,唯一的方式是暴力破坏迅雷5的自动升级程序thunderliveud.exe,在迅雷所在的安装盘搜索在程序,找到后全量删除之;
  • 其他说明:这部分内容是以迅雷为例介绍了在linux下"运行"windows应用程序的通用方法,其他应用,可以此参考。

4、网上购物。网上购物涉及两类操作,网银支付和在线交流,前者就是各大银行的在线支付程序,后者指的是淘宝旺旺软件,典型的两类windows原生应用,请参考上例在windows虚拟机中安装对应软件即可。唯一需要注意的u盾的识别,插入u盾后,先到virtualbox中setting->usb,勾选enable usb controller,再到windows虚拟机中devices->usb devices列表中选中对应u盾,这样,windows就能正确识别u盾了。其他usb设备的识别与之类似;

罗嗦两句网银支付。目前看来,朝内绝大部分银行仅支持win+ie平台在线支付,完全忽视非windows用户的存在,强烈谴责"为保障您的资金安全,我行建议您在windows操作系统(QQ:小默862693539)中完成交易",举着安全大旗招摇过市(windows安全?你银行服务器莫非装的是windows server 2K3?),相反,国外各大银行遵循标准化,支持在各类操作系统(QQ:小默862693539)、各自浏览器上进行网上交易,如,美国花旗、汇丰,更有甚者(德国的银行业),银行外对开放API,允许用户自行开发交易程序,怎么没见这些银行发生安全事故!当然,不是所有朝内银行都是"如此重视安全",浦发银行是少数几家支持跨平台交易的银行,大家风范,值得推荐(不过营业网点有限,二三线城市较少)。http://www.openbanks.info/是一个专注于探讨网银跨平台主题的网站,有兴趣可以逛逛。

5、即时通讯。常用的im工具包括飞信、qq、msn,这三个im都有对应的linux版本,但,不论是官方发布的还是第三方通过逆向工程实现的,从功能完整性、运行稳定性、界面友好性来看,均与windows原生版本存在巨大差距,实际使用效果并不理想。如果的确要用,建议参照上例,在windows虚拟机中安装运行。

或许是冏朝的linux用户量过少(linux在全球桌面领域占有率仅为2%,且主要分布在万恶的欧美等资本主义国家),国内软件开发商基本采用忽略态度,即便发布了linux版的程序,要么长年不更新(qq for linux从2009年1月发布后从未更新过,http://im.qq.com/qq/linux/download.shtml)、要么不对外发布(aliwangwang for linux,仅用于淘宝公司内部测试,http://ge.tt/8sppgia),在此呼吁各大开发商,请对linux予以正确的认识和重视,尊重我们选择操作系统(QQ:小默862693539)的权利。


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线