分类 硬件折腾 下的文章

这个月初入手一台二手的Kohjinsha(工人舍) SA1F00WKR(白色韩国版)。装上Windows XP后,该机器无论作为上网本还是下载机,都很给力,只是作为MP4就有点力不从心了(播放RMVB会卡)。为了进一部挖掘其应用及性能,决定装个Ubuntu 10.10 Desktop上去。经过一番的折腾,记录一下安装过程:

第一,硬盘安装系统。

1)为什么是Desktop而不是Netbook?因为Netbook版体现不出什么优势(跟Android比差远了),反而Desktop版更方便。安装系统后,也可以通过软件管理器安装Netbook、Lubuntu等。
2)机器没有光驱,于是用硬盘安装。也可以外接USB光驱来装的,只是我没有该设备。
3)由于Ubuntu的安装程序图形界面在该机器上一片漆黑,所以外接了个显示器来安装。没有显示器的话,只能装Alternative版了。曾装了个10.04的Alternative版,也折腾了很久,而且软件装了一大堆,不知道哪些跟哪些。看到10.10出来了,顺便更新。

安装过程参考文章:http://www.maoegg.com/archives/926.html

安装步骤总结如下:

1)安装Grub(或者可以直接使用带Grub的、可启动的U盘)。
2)下载ubuntu-10.10-desktop-i386.iso,放到该机器硬盘上某分区的根目录下(我就放在第一个分区下)。并把iso文件里casper文件夹下的vmlinuz和initrd.lz两个文件解压,并与iso文件放在一起。
3)启动电脑,进入grub的启动界面,按c键进入命令编辑界面,输入以下命令:

grub > root (hd0,1)
grub > kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-10.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
grub > initrd /initrd.lz
grub > boot

4)进入ubuntu系统后,打开终端,输入以下命令:

sudo umount -l /isodevice

5)运行安装程序。由于是全中文,所以安装过程略过。由于安装过程非常漫长,建议在睡觉前进行,第二天醒来就装好了。

第二,配置显卡及显示屏。

这个比较麻烦,经过相当长的时间查资料及验证,才总结出来。也因为内核的驱动不断在更新,所以老版本的Ubuntu跟10.10上的配置不同。目前可以完美显示800x480分辨率,但1024x600还不能显示,其它可用分辨率包括:1024x768、800x600、600x480。

配置显卡及显示屏,把以下代码保存为xorg.conf文件,并存放到/etc/X11目录下。

Section "InputDevice"
Identifier  "Keyboard0"
Driver      "kbd"
EndSection

Section "InputDevice"
Identifier  "Mouse0"
Driver      "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
Option "Emulate3Buttons" "yes"
EndSection

Section "Monitor"
Identifier   "Monitor0"
VendorName   "Generic Vendor"
ModelName    "Generic Monitor"
Option       "DPMS"
HorizSync    28-50
VertRefresh  43-73
EndSection

Section "Device"
Identifier  "Geode"
VendorName  "Videocard vendor"
BoardName   "AMD Geode LX Video"
Driver "geode"
BusID       "PCI:0:1:1"
Option      "AccelMethod" "EXA"
Option      "EXANoComposite"
# Specify panel size for GeodeLX, corresponds ModeLine above:
Option      "PanelMode" "36940  800 832 912 1024  480 481 484 501"
EndSection

Section "Screen"
Identifier  "Screen0"
Device      "Geode"
Monitor     "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport  0 0
Depth     24
Modes     "1024x768" "1024x600" "800x600" "800x480" "640x480"
EndSubSection
SubSection "Display"
Viewport  0 0
Depth     16
Modes     "1024x768" "1024x600" "800x600" "800x480" "640x480"
EndSubSection
SubSection "Display"
Viewport  0 0
Depth     8
Modes     "1024x768" "1024x600" "800x600" "800x480" "640x480"
EndSubSection
EndSection

Section "ServerLayout"
Identifier     "X.org Configured"
Screen         "Screen0" 0 0
InputDevice    "Mouse0" "CorePointer"
InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

目前还存在的问题:

1)无线网卡。

新内核已经可以识别该机器的无线网卡了,但是还不能搜索到无线网络。但插上USB无线网卡后,却能马上找到无线网络。这个问题还没时间去搞。

2)声卡。

登录系统后是有登录声音的,只是播放MP3时没声音。这个问题还没找资料。

想为G1换个新电池(原电用了一年多,开始肿胀了),于是逛了一晚上的淘宝,但还是没找到好的。

本来计划好买个“烤鸭电池”(别人用电芯DIY出来的山寨电池,据说比原电耐用),但是看着样子太山寨了,于是想还是买个原电吧。

于是在信誉比较好的“淘宝商城”里搜了几家,都是50RM左右。看着图片还是不放心,问店主是不是HTC原装的,怎么鉴别之类。店主都说自己的是原装的,都可以通过客服(指的是国内多普达的客服)鉴定。但是当要求进一步提供鉴定材料(例如更清晰的实物照片)时,都说不能提供,而且都说是散装,没有外包装。淘宝真是个山寨厂商的宝地啊!看着店主都在闪烁其辞,我也心灰意冷了,还是明天再考虑那“烤鸭电池”吧。

PS. 明天又一个经常一起玩的同事离职了,他说要去深圳做网络产品的实施了。今晚聊起他的经历,还挺波折的。他是学电子商务专业的,毕业后去了一家广告公司上班。然后学会做网站,又跳到中山的一家网站公司,后来跳到我们公司做网管。考了几个证后,现在跳到深圳了。比较羡慕他有这么丰富的经历,我毕业后就在现在的公司上班了,都干了两年多,还没找到机会跳槽。

昨天,一星期难得一天的假期,全耗在usbnet上。最终还是没找到解决方法,我的G1还是不能在CentOS上通过USB共享无线网络。网上找到有讨论,说升级了内核后,就轻松连上了(该讨论的地址:https://www.centos.org/modules/newbb/viewtopic.php?topic_id=24127&forum=40#forumpost95581。虽然该帖讨论的是HTC Tattoo,但跟G1是一样的)。果然2.6.18的内核太年迈了,但我又不想更换内核,于是时间都白搭进去。

在找的过程中,发现有人讨论OpenVPN在Android(特别是在CyanogenMod Rom)上运行。相关讨论几文章如下:

1)CM的OpenVPN设定指南:CM的OpenVPN设定指南

讲述N1上设置内置的OpenVPN,被网友多处转帖。我用的CyanogenMod-4.2.15.1也集成OpenVPN的支持,就是一直没搞过。该设置最麻烦的地方是导入证书。Android只支持PKCS12格式的加密证书,于是需要转换格式。看过一些文章后,终于转换出.p12文件(参考:常见证书格式及相互转换)。导入格式还有个问题,原来CyanogenMod Rom只能导入文件名为certs.p12的证书,这个我看了源码才知道,杯具~~更杯具的是,发现我申请的OpenVPN没有提供用户证书及密钥,于是不能用这种方法进行设置。
导入证书的相关讨论:

2)安装OpenVPN Settings:Android G1 openVPN设置

该文章讲述得比较详细,不过由于TunnelDroid的作者改为直接支持OpenVPN Settings了,所以只要直接从Market下载并安装OpenVPN Settings就可以了。然后建立目录/sdcard/openvpn,把OpenVPN的相关配置文件放进去就可以了。

拿着手机“翻墙”很有Hacker味道,twitter、facebook、youtobe等都可以直接上了。不过我最高兴的是,可以直接访问http://developer.android.com/

PS. 1)OpenVPN最难的,还是找个免费的OpenVPN服务器

2)高中时发现个软件叫SoftEther的可以建立虚拟局域网的,现在该软件已经变成PacketiX VPN了。该软件由日本筑波大学开发的,据说具有优秀的防火墙穿透能力。官方网站:http://www.softether.co.jp/

经过多个晚上的搜索与实践,终于在今天上午把Arduino IDE装到CentOS 5.4上了。其实Arduino IDE是用Java写的,这个可以直接运行。但是是该IDE需要用到avr-gcc进行交叉编译,而且CentOS 5.4上没有rpm包直接安装,所以要自己动手编译。为了研究相关的设置和依赖包,费了很多时间。以下是安装过程的总结。

首先,安装binutils、avr-gcc和arv-libc

参考:

1)binutils-2.20.1

--Download: http://ftp.gnu.org/gnu/binutils/

执行以下命令:

tar jxvf binutils-2.20.1.tar.bz2
cd binutils-2.20.1
mkdir obj-avr
cd obj-avr
CC=gcc
export CC
../configure --target=avr --prefix=/usr/local/avr --disable-nls --enable-install-libbfd

make

make install

cd ../..

2)gcc-core-4.4.3、gcc-g++-4.4.3

---------------------- 注 意,开 始 ----------------------
安装avr-gcc前,先检查是否已经安装了GMP 4.1以上和MPFR 2.3.0以上。

GMP 4.1+

MPFR 2.3.0+

  • 源码地址:http://www.mpfr.org/
  • 由于没有rpm包,只能通过源码编译安装。
  • 安装完毕,要添加路径到/etc/ld.so.conf文件中。安装完毕后会有提示的。

---------------------- 注 意, 结 束 ----------------------

--Download: http://ftp.gnu.org/gnu/gcc/gcc-4.4.3/ 要下载gcc-core-4.4.3和gcc-g++-4.4.3,或者只下载gcc-4.4.3就可以了

执行以下命令:

tar jxvf gcc-core-4.4.3.tar.bz2
tar jxvf gcc-g++-4.4.3.tar.bz2
cd gcc-4.4.3
mkdir obj-avr
cd obj-avr
../configure --target=avr --prefix=/usr/local/avr --disable-nls --enable-languages=c,c++ --disable-libssp --with-mpfr=/usr/local/lib/mpfr

make

make install

cd ../..

3)avr-libc-1.6.4

--Download: http://savannah.nongnu.org/projects/avr-libc/

tar jxvf avr-libc-1.6.4.tar.bz2
cd avr-libc-1.6.4
PREFIX=/usr/local/avr
export PREFIX
CC=avr-gcc
export CC
PATH=/usr/local/avr/bin:${PATH}
export PATH
./configure --build=`./config.guess` --host=avr --prefix=/usr/local/avr

make

make install

cd ..

然后,安装FTDI USB驱动

--参考:http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1267186646/3#3

安装完Arduino开发环境和把板子插到电脑USB口上,看是否有/dev/ttyUSBx设备。可以执行以下命令查看:

ls -la /dev/ttyU*

如果没有该设备,则用root用户执行以下命令:

modprobe ftdi_sio

别忘了设置该/dev/ttyUSBx的访问权限。

终于下定决心卖个Arduino开发板了。于是前天(02-23)晚上去“淘宝“逛了一下,以150RMB买了个Mega,加上“面包板“(8RMB)和70条连接线(8RMB),还有两个热敏电阻(0.5RMB/个),一共167RMB。今天(02-25)东西都到手了!

回宿舍后,马上下个最新版的IDE(版本号0018)。读取出那个最基本的LED闪烁控制程序,编译后上传到开发板,结果正常!由于Mega板载一个可控制的LED,所以不用额外插个LED测试。而且已经有Bootloader,程序上传后即可运行。

Arduino Mega是目前最强大的Arduino开发板了。其芯片采用ATmega 1280-16au,CPU频率为16MHz,8KB SRAM,128KB闪存(其中4KB用于Bootloader),4KB EEPROM,还有54pin I/O接口……详细参数如下:

Microcontroller              ATmega1280
Operating Voltage            5V
Input Voltage (recommended)  7-12V
Input Voltage (limits)       6-20V
Digital I/O Pins             54  (of which 14 provide PWM output)
Analog Input Pins            16
DC Current per I/O Pin       40 mA
DC Current for 3.3V Pin      50 mA
Flash Memory                 128 KB of which 4 KB used by bootloader
SRAM                         8 KB
EEPROM                       4 KB
Clock Speed             16 MHz

这么好的东西,用来做个什么好呢?确实是个问题。

昨天凌晨订的蓝牙耳机今天到手了!本来预计是明天到的,弄得我喜出望外。

买个蓝牙耳机主要用来听歌的,毕竟手机上插根长长的耳机线很不方便,其实也由于看到同事用蓝牙耳机听歌很方便,于是就买了Nokia BH-214。买之前也找了一下,发现市面上提供3.5 毫米音频插孔、可以换耳塞的蓝牙耳机并不多,价格适合的更少。本来想买同事那款“索爱”的,但是经过测试,我的G1连不上他的蓝牙耳机。经过多番对比和参考,最后买了这个Nokia BH-214(其实可选择的真少,除非买山寨的)。

到手后买上拿来连G1听歌。第一个感觉是那原装的耳塞音质很一般,而且是我不喜欢也不习惯的入耳式。所以立马就换上我的SENNHEISER(森海塞尔) MX360,居然感觉比直插手机上好!然后又试着带着它上厕所,手机放座位上,实验证明在厕所门口就掉线了,可能隔了个墙,距离也有点远。最后把它夹在衣袖上,耳塞线从衣服里面穿过袖子,通过衣领挂到耳朵上——就跟我想象中那样,太棒了!这耳机从外观到做工都让我满意,非常喜欢。不过缺点是打电话时声音很空荡,就像在操场听广播。反正我的电话不多,所以也能接受。

从此,我的G1就可以摆脱经常被插的命运了。再一次以Intel当年宣传“迅驰”的广告来表达今天的喜悦——“无线你的无限”。

经过两天的研究,终于成功用G1发彩信了。在这激动人心的时刻,首先对中国移动(特别是广东分公司)送上伟大的神兽——草泥马,以表示此刻的心情。

我的sim卡是属于广东移动的神州行畅听卡,根据 Android中文论坛 里的教程设置APN后可以接收彩信,但发送总不成功。昨天收到一条短信,说我“使用GPRS产生CMNET流量77K,超出GPRS套餐内容,收取流量费用1.00元”。后来查了广东移动的网站(https://www.gd.chinamobile.com/easyown/operation/internet/02,52.shtml)才知道,广东移动的新GPRS套餐是CMWAP可以包月,但CMNET不能包月,且收费为1元/MB。恐怖~~于是马上把CMNET删了。

最后领悟出APN的设置,需要建立以下两个APN:

---------第一个---------

名称:cmwap
APN:cmwap
代理:10.0.0.172
端口:80
用户名:<未设置>
密码:<未设置>
服务器:<未设置>
MMSC:<未设置>
彩信代理:<未设置>
彩信端口:<未设置>
MCC:460
MNC:02
APN类型:default

---------第二个---------

名称:cmwap mms
APN:cmwap
代理:10.0.0.172
端口:80
用户名:<未设置>
密码:<未设置>
服务器:<未设置>
MMSC:http://mmsc.monternet.com
彩信代理:010.000.000.172
彩信端口:80
MCC:460
MNC:02
APN类型:mms

其中“名称”随便填,而“MNC”有的说移动的是00(零零),其实默认就可以了,我的“MNC”默认是02(零二)。以上配置没有配CMNET,所以不能上Internet。也因为广东移动的CMNET收费很变态,所以没有配CMNET。

总结一下实验结果吧。首先,虽然这个设置是没错,但是彩信发送的发送不能百分百成功。原因可能跟网络及彩信大小有关。彩信大小为1K,成功率较高,但白天在公司,彩信一条都发不出去。晚上发的话,成功率很高,发了几条,别人都能收到,我也给自己发了个照片,40K左右,发送和接收都很顺利。

PS. 人家玩G1都上3G(外国的),而我还在研究2.5G的使用……正如应老板说的:“脑残,就玩别人不玩的东西”。

还没买G1之前就看到网上有人说可以在G1上跑Debian。那时就想,能运行Debian,G1不就万能了吗?今天通过实践,证明了我的想法是正确的。

其实几天前就把Debian装到G1上了,也用apt-get来安装而了nginx。昨晚把nginx(一个俄罗斯的HTTP服务器,以小巧、占用资源少、高并发等优点著称)重新以编译源码方式安装,然后把它的HTML文件夹挂到SD卡上,以便把SD卡上的一些HTML文档挂上去。最终的目的是实现本地HTTP服务,并用系统自带的浏览器(Chrome Lite)来看HTML文档(由于Chrome Lite不支持查看本地文件系统中的HTML文档,而用HTML Viewer又没Chrome Lite那么强大)。虽然这做法非常Crazy,但实现后很有满足感。今天把G1连到公司的WiFi,然后用台式机访问其HTTP服务,感觉很炫。同事们看了,也十分惊讶。

后来萌生了个想法。由于G1上不能无线传送文件,那可不可以绕个圈子来实现呢?首先装个aNetShare,该软件可以使G1变成无线AP(同类的软件还有WiFi Tether)。这样其它机器就可以通过WiFi连我的G1,然后我只要提供个HTTP服务或者FTP服务,那就可以共享我的文件,别人就可以下载了。呃,好像好麻烦……不过挺好玩的。明天再借个笔记本试试,看我的想法可不可以实现。

近来就忙着玩G1,还比较认真地开始去看C语言,以致很多事情都来不及做了,希望这个周末能赶赶进度。

PS. 1.看着程序在G1上慢慢编译,是一种很写意的感觉,但编译过程中出现error的情况除外。

2.看了C语言,才知道,原来两个数交换可以不用再建个临时变量的,用“异或”就可以了。感觉很神奇,而且节省时间跟空间。例如:
一般做法是这样:

int a=111;
int b=222;
int tmp=0;
tmp=a;
a=b;
b=tmp;

用“异或”实现:

int a=111;
int b=222;
a=a^b;
b=a^b;
a=a^b;

终于,终于有机会触摸屏G2了!

今晚又跟表姐两夫妇去了Jack Magic Pea咖啡馆,这次还把表妹拉了出来。

废话少说,还是先说说表姐夫的G2。拿在手里,第一感觉是轻薄!对于拿惯了G1的我来说,是一种非常意外的惊喜!当初还担心没有键盘和滑盖,会让G2变得不方便,但是随着的Android系统的成熟,却没有想象中的难用。不过还是不喜欢那虚拟键盘,按键小(iPhone也是这样),容易按错。系统就不用多说了,而且以可随便刷,不错。

但是跟iPhone比起来(正好表姐夫有台iPhone,可以比较一下),还有一定的距离。首先是让全世界都遗憾的多点触控,虽然硬件上已经准备好,但由于版权问题,还是没有出现在系统中(网上已有了Android上支持“多点”的软件,但没玩过)。其次是动画效果,Cupcake(Android 1.5的代号)出来后,增加了很多过渡动画,但只是在读取下一个画面前插播一个动画,反而加长了读取时间,这跟iPhone的不同(所以我屏蔽了这些特别效果)。然后就是软件问题,虽然日渐丰富起来,但还是有点少,还有旧软件有不支持Cupcake的情况(或者说新系统不兼容旧软件)。

总的来说,G2还是非常不错的!G1给人的感觉是一款试验性产品,很适合开发人员使用,而G2则感觉是实用性产品,更接近于iPhone。

由于“五一”假期买了G1,所以这几天一直沉迷于此。

第一眼见到这家伙就觉得充满“苹果”的味道(黑色版和灰色版便没有这感觉了)!简洁的机身,白色的钢琴键烤漆,圆滑的边角,金属底盘的键盘,整齐的USB接口……这些都是APPLE经典设计!真让人爱不释手。其另类的侧滑风格,相信会成为又一经典。据说屏幕是夏普的,加入点距小,看起来清晰亮丽。

Android系统操作起来很舒服,果然是专为手机而设计的系统。将其升级到1.5(Androidin.net提供的1.5MOD3)后,对中文的支持堪称完美。安装Google拼音输入法后,完全解决了中文输入的问题,使得搜索条、短信等都变得更加可用!结合机子自带的触摸屏、GPS、重力感应、磁铁等硬件,可以开发出各种有趣的应用程序和游戏。例如有个叫“Metal Detector”的软件可以用来探测铁,很好玩!又如Google Map加上GPS定位,便成了导航系统。但是,目前还缺少许多基本的应用软件,给日常使用带来诸多不便。相信随着时间的推移,这情况将会得到改善。

最后不得不说的是电池问题。续航时间短是个致命伤(现在好象大部分的智能机都存在这个硬伤),经常用的话,一天可能要充两次电。今天测了一下,把电池的电全部耗光,直到机器自动关机,然后用电脑的USB充电,大概就花了4个小时才充满。

还有个问题,就是机子背面的盖做得非常不好!当要换sim卡时,打开机子的背盖比较麻烦,这个问题不知道G2有没有改进。