2008年12月28日星期日

重装Hiweed(ubuntu)之前的准备

等不及Hiweed 2.0正式版了,先安装RC3。下面是安装前的准备工作。
  1. 备份已安装的软件列表,以便在新系统中快速重装原来那些自己钟爱的软件
    dpkg --get-selections > installed-software.log
    在新系统中还原时可以用下面的命令导入软件列表,再利用 dselect 工具安装软件
     dpkg --set-selections < installed-software.log
  2. 备份/etc/apt/sources.list,以后可以采用相同的源。当然,需要改版本号。
  3. 备份/etc/X11/xorg.conf。这个文件包括了键盘鼠标显卡监视器字体等等设置,非常重要。尤其是新系统不能自动启动x服务器(即不能进入图形界面)情况下,可以参考旧文档修改新系统生成的xorg.conf。
  4. 使用mount查看分区情况,以便安装时采用相同的挂载方式。下面是我这里的情况
    esn@esn-laptop:~/Tools$ mount
    /dev/hda10 on / type ext3 (rw,errors=remount-ro)
    proc on /proc type proc (rw)
    /sys on /sys type sysfs (rw)
    varrun on /var/run type tmpfs (rw)
    varlock on /var/lock type tmpfs (rw)
    procbususb on /proc/bus/usb type usbfs (rw)
    udev on /dev type tmpfs (rw)
    devpts on /dev/pts type devpts (rw,gid=5,mode=620)
    devshm on /dev/shm type tmpfs (rw)
    lrm on /lib/modules/2.6.15-23-386/volatile type tmpfs (rw)
    /dev/hda3 on /home type ext3 (rw)
    /dev/hda9 on /usr type ext3 (rw)
    tmpfs on /tmp type tmpfs (rw,size=32m)
    /dev/hda1 on /windows/hda1 type vfat (rw,noexec,nosuid,nodev,utf8,umask=0)
    /dev/hda5 on /windows/hda5 type vfat (rw,noexec,nosuid,nodev,utf8,umask=0)
    /dev/hda6 on /windows/hda6 type vfat (rw,noexec,nosuid,nodev,utf8,umask=0)
    /dev/hda7 on /windows/hda7 type vfat (rw,noexec,nosuid,nodev,utf8,umask=0)
    fusesmb on /home/esn/Desktop/smb-shared type fuse (rw,nosuid,nodev,max_read=32768,user=esn)
  5. 其中我标记为红色的部分需要记录下来,尤其是home和windows分区的位置要记清楚,千万不要把系统装在这些分区,否则丢失数据就只能哭了。
  6. 保险起见,备份重要数据文件。
  7. 搜索安装方法,别人安装时出现的问题及解决办法,以及网络设置方法等。后者很重要,尤其是手头没有其他电脑备用的情况下。万一装完之后网络没有自动设置好,无法上网查资料可就抓瞎了。从windows下安装的看这里
  8. 下载安装镜像,沏一杯茶,开始安装


[......]

仪表箱?邮箱?

上周网上购物,收到一份留言如下:非常抱歉,把包裹放在左边的仪表箱里了。

打开门外的仪表箱,果然如此。
通常,如果我不在,快递人会留条,背面详细说明了如何通过自动应答电话、网站、快递人的手机来预约下次送货时间。头一回遇到把仪表箱当邮箱用的,还真有创意,呵呵。

日本的治安在发达国家里是最好的,尤其是小偷比较少见。通常人们放东西比较随意,比如钱包直接插到裤子后兜,半截还露在外边,摩托车头盔直接挂在车把上,信箱也不上锁。

货物放在仪表箱里应该不会丢,但是占用公共空间毕竟不合规矩
[......]

2008年12月25日星期四

杀死狐狸

耐心等待Hiweed 2.0的同时,Firefox 2.0出来捣乱,时不时罢工。没有精力搞清原因,只是简单粗暴对应之:首先将其杀死,然后令其重生。

单纯用xkill(在Hiweed 1.0中,默认的快捷键为Ctrl+Alt+Esc),只能杀死图形界面,后台的程序仍然在运行,此时无法重新启动Firefox。要将相关进程全部杀掉,可以使用下面的步骤:
  1. 列出相关进程
    esn@esn-laptop:~$ ps aux | grep firefox
    esn 9429 0.0 0.3 4192 1696 ? Ss Dec27 0:00 /bin/sh /usr/bin/firefox
    esn 9440 0.0 0.3 4232 1724 ? S Dec27 0:00 /bin/sh /opt/mozilla.org/firefox/run-mozilla.sh /opt/mozilla.org/firefox/firefox-bin
    esn 9445 3.8 30.6 301040 158212 ? Sl Dec27 46:00 /opt/mozilla.org/firefox/firefox-bin
    esn 13415 0.0 0.1 2880 792 pts/1 R+ 11:16 0:00 grep firefox
  2. 按照上面列出的进程号,顺次杀掉各进程
    kill 9429 9440 9445
  3. 重启Firefox
进一步简化,把前两步合在一起
ps aux | grep firefox | awk '{print $2}' | xargs kill
其实有直接的命令
killall firefox-bin
注意这里的命令对象为firefox-bin,而下面的命令并没有杀死全部相关进程
killall firefox
再遇到不听话的程序,就采用上面的杀手锏重锤出击!

[......]

2008年12月24日星期三

解决在pythonxy 2.1 里使用SPE时的错误

Pythonxy 2.1 (windows xp)环境里使用SPE,会遇到下面的错误:
This application requires a version of wxPython greater than or equal to 2.5.4.1, but a matching version was not found.
You currently have these version(s) installed:
Would you like to download a new version of wxPython?
在Pythonxy的google code上有关于此bug的说明:Issue 37 - pythonxy - Google Code。安装新的wxPython插件就可以解决问题。

另外,建立一个这样的快捷方式,可以方便地启动SPE
C:\pythonxy\python\pythonw.exe C:\_spe\SPE.pyw

[......]

2008年12月22日星期一

缩短链接长度


现在的网页地址,或者由于是动态网页而带着很多参数,如Google Maps的北京链接,
http://maps.google.com/maps?f=q&hl=en&
geocode=&q=Carrboro,+NC&ie=UTF8&ll=
35.912932,-79.077401&spn=0.018665,0.03253&z=15
或者为了保密随机生成,如Pisaca网络相册中我的logo
http://lh4.ggpht.com/_7_lDiEMxqxM/SUSfISbqoSI/
AAAAAAAAA30/CojQFiZMOa0/favicon3d.png
会变得够长够不便。能缩短点就好了……有需求就有供应,至少有两个网站提供缩短链接的服务:
tr.imTinyURL
单击上面任意一个,就可以得到本页的一个缩短链接。
我得到:
  • tr.im: http://tr.im/2jp8,比原始链接短——勉为其难哈,但似乎不能定制,不过可以方便地发给twitter,也可以自己删除此短链接。
  • TinyURL: http://tinyurl.com/7gj2z2,可以定制,但必须6位以上,得到http://tinyurl.com/esnesn
如果使用FireFox,Safari 或 Opera,可以把上面的链接拖到浏览器工具栏或收藏夹,IE6可以添加到收藏夹,在需要时,单击就可以得到当时页面的缩短链接。

关于有效时间,tr.im的FAQ这样说:
How long does a tr.im URL last for?

We only ever reclaim a tr.im URL if it does not belong to anybody, and it has never been used. URLs that are created via our application programming interface, without a username and password, for example, are not owned by anybody.

If you create a tr.im URL within your tr.im account, we will never delete it, whether it has ever been visited or not. Once you create it, you own it. Simple.

大意是有主的是永久有效,例如注册用户创建的链接,反之则会删除,例如用其API创建但未提供用户名和密码。

更新(2009.1.2):在薛瑞尼的博客上看到另外两个缩短链接的网站


[......]

对付摄像头


现在很多笔记本都装备了摄像头,可以很方便地视频聊天。但是操作系统程序员会怎么看此问题呢?上图就是答案。

Valerie在她的文章A band-aid solution谈到,作为一个OS程序员,可以想出种种入侵方式将摄像头作为监视器用,即使那个显示状态的LED也可能被控制而无效,所以她将其封起,并测试确认效果——就不转贴被留言者称为好桌面的黑块了。正如题目所言,Valerie没有用胶布封,而是用创可贴(这里有各式户外妙用,呵呵),这样不会损坏镜头,以备日后不时之用。

文章后面的留言互动也有趣,讨论LED与摄像头的连接方式,还引申至麦克、无线网络被滥用的可能性。

其实她这样的高手无须担忧,普通人则需注意,在电脑前要本份点,说不定它正盯着你。

[......]

2008年12月21日星期日

学习心肺复苏术

日本车站中的自动体外心脏去颤器
心肺复苏术两个月前,研究所安装了一台自动体外心脏去颤机(AED)。左图是日本车站中的AED。上周五,又组织学习了心肺复苏术(CPR)。首先看了DVD,然后又使用仿真人体模型实际操作了一番。其实我三年前参加过类似的培训,这一次最大收获是:发现除了记住心肺复苏术对于提高生存率非常重要以外,操作步骤全部忘掉。这里做个笔记,顺便宣传:简单操作就可以挽救生命。

首先看看重要性。从这篇文章的图一可以看到心跳呼吸停止之后的10分钟内,存活几率急剧下降。这个时候一分一秒都非常宝贵。日本平均的急救车到达时间是6分钟。据2005年统计,在到达医院之前,由专业人员在3分钟之内开始实施心肺复苏术的存活率是10分钟之后才开始的2.5倍,由普通人实施是未实施的1.4倍。

下面简述心肺复苏术步骤:
  1. 看到有人倒地,首先确定周围是否安全。
  2. 轻拍其肩膀,确认是否有意识。
  3. 看、听、感觉,确认其是否有呼吸。
  4. 大声呼喊,请附近的人叫救护车,取AED。
  5. 清理呼吸道。
  6. 人工呼吸两次,胸部按压30次(按压速度为100次/分钟),循环往复,直到AED或救护车到来。如果多人在场,可以轮流实施,以防止因疲劳按压质量下降。
AED有语音及图示帮助,比较简单,具体使用方法请看维基百科。而这里则对心肺复苏术有非常详细的介绍,还有录像,实施范围包括成人,幼儿,婴儿,及至猫狗
[......]

2008年12月20日星期六

以当前时间发布帖子的Greasemonkey脚本@Blogger

在Blogger上发帖,帖子的时间默认为帖子建立的时间,而不是发布的时间。

比如,11月10日新建一个帖子,但是当时没有完成,于是保存为草稿;11月20日对此草稿进行修改,然后发布。如果没有修改选项,页面上帖子的时间显示为11月10日。可能11月10日至20日之间已经发布了很多帖子,那么这个新帖子就不会出现在首页上,不会引起读者的注意。

帖子的时间是可以修改的。在新建或修改帖子的界面里,单击文本框下面的“帖子选项”,就可以修改时间。
修改帖子时间
这个Greasemonkey脚本可以增加一个按钮,以当前时间发布帖子,免去手动修改时间的麻烦。但是由于中文时间格式与英文不同,导致此脚本在中文界面下不能正常工作。

我对此脚本做了一些修改,包括时间格式和按钮文字。
创建帖子界面
修改帖子界面
如果你已安装了Greasemonkey,可以直接点击安装修改后的脚本。下面是源程序:
[......]

在vim中修改 python 程序的缩进方式

我自己的 VIM 里为 python 设置的缩进为4个空格,但是从网上找到的程序有时是一个空格或两个空格。可以在VIM中用下面的命令改为4空格缩进:
1转4的情况:
:%s/\(^\s*\)\@<=\s\s/    /
2转4的情况
:%s/\(^\(\s\s\)*\)\@<=\s\s/    /
注意:上述命令中,最后的两个斜杠中间是4个空格

这两个命令用到了正则表达式,下面以第一个命令为例进行说明。
  • 这条命令的作用
将每一行开头的每个空格分别替换为4个空格。
  • VIM中替换命令的基本结构
:范围s/被替换掉的字符串/替换为的字符串/选项
其中s表示substitute
  • 具体说明
% 表示整个文件内容
^ 匹配一行的开头
\s 匹配空格
* 表示此符号前面的部分出现0次或多次,例如 \s* 匹配0个或多个空格
\(...\) 表示分组
\@<= 表示此符号之前的部分必须位于匹配结果之前(不准确),称为“向前查看”。 \(^\s*\)\@<= 意为所匹配结果到此行开头什么都没有或只有空格
在Vim中使用“:help regex”可以查看关于正则表达式的帮助信息,非常详细。也可以使用这样的命令“:help \@<=”直接找到相关的帮助信息。当然也可以搜索google

另外,网上有大量关于perl的正则表达式教程,原理基本相同。其中(?=)即对应为Vim中的\@<=,另一个区别是
# Perl的写法
(?<=查看内容)匹配内容

# Vim的写法
\(查看内容\)\@<=匹配内容
[......]

2008年12月18日星期四

安装Python-visual 4.0beta

Vpython
为了使用 Python-visual 的新特性——表面材质(Surface Texture),更多的框架特性,灯光等等,在 hiweed2rc 上安装了最新的 4.0beta。
sudo apt-get install libboost-python-dev ftgl-dev libgtkglextmm-x11-dev libgle3-dev libgtkmm-dev libglademm-2.4-dev  scons
tar xjf visual-4.beta26.tar.bz2
  • 修改visual-4.beta26/src/core/util/errors.cpp,在开头加入“#include <stdlib.h>”,否则make时会出现下面的错误:
./core/util/errors.cpp: In function 'void cvisual::write_note(std::string, int,
std::string)':
./core/util/errors.cpp:40: error: 'getenv' was not declared in this scope
这是gcc-4.3的问题
  • 编译
cd ./visual-4.beta26
./configure; make
  • 安装
sudo make install
  • 测试
cd ./example
python texture_and_lighting.py
一切正常的话,就可以看到文章开头那样的动画。
[......]

2008年12月17日星期三

永不放弃-趣图集


这个网页,Dark Roasted Blend: Never Give Up! - Funny Pics, Part 9,汇集了79张有趣的图片。我笑得肚子疼。但是笑过之后,一丝悲哀无奈潜滋暗长起来。不知你看了是什么感觉……

图放在一起才有最大效果,而且图片之间的文字也很幽默,直接到上面的链接去看吧。这里摘出开头的文字:
Some nutty, outrageous creativity comes out of ordinary people when circumstances get tight around them. Shortages of cash, tools, supplies and sheer logical reasoning do not seem to stop people from inventing wacky SOLUTIONS to their problems. Whatever needs to be done, will be done - and all critics be damned!
尝试翻译如下:
当环境变得恶劣,普通人会表现出出人意料的怪异创造力。缺钱,缺工具,缺供给,缺绝对逻辑推理,好像都不能阻挡人们找出解决问题的古怪方法。无论需要做什么,都会做到 ——所有的批评都见鬼去吧。

心中发虚,尤其“sheer logical reasoning”译得很生硬。有什么建议或发现不妥的地方,请一定告诉我,谢谢!

这是此系列的第九篇,全部链接在这里

最后做个无聊练习:如何快速得到此页面的图片数(无关图片除外)?我是通过下面的步骤得到的。
  1. 在Firefox内选中正文部分,包括所有相关图片,当然也包括了附近的文字,单击右键,在弹出菜单中单击“查看选中部分的源码”。
  2. 将新打开的窗口中选中的代码复制粘贴到Gvim中。
  3. 用此命令“:s/<img/&/g”即可得到图片数。
你有更简单的方法吗?请告诉我,谢谢!
[......]

2008年12月15日星期一

Blogger's Spellcheck Does not Know Me

On Apr 26 2006, 7:22 pm, Fred Stutzman listed the Words Blogger's Spellcheck Thinks are Wrong. I tried again just now, but the below 4 /6 words are still beyond Blogger's dictionary.
bloggers
blogosphere
blogospheres
blogspot
Blogger has known his own name and his new boss's name, but not very well, such as the above bloggers, and I also found that he does not recognize them from their possessive forms:
blogger's
google's
Undoubtedly, he does not know about me, either.
[......]

2008年12月14日星期日

制作Favicon

Favicon 3D注意到地址栏前的图标有什么不同吗:) 刚才在favicon.cc上制作了几个Favicon。这个3D图片是个副产品,网站自动生成,出售以此为图案的圆领汗衫。下面的小图标才是实际使用的Favicon。

艺术细胞匮乏,不知如何搭配颜色,所以干脆使用三原色。矮子里拔壮丁,目前使用下面第二个图标

如果你认为其他的更好,或有修改建议,请留言。谢谢!

有关Favicon的问题,请参考电脑玩物文章

Use E S N to make a chinese character KAI (pronouced in Chinese Pinyin)
From: zesn
ZoomOriginal
Use E S N to make a chinese character KAI (pronouced in Chinese Pinyin)
From: zesn
ZoomOriginal
Use E S N to make a chinese character KAI (pronouced in Chinese Pinyin)
From: zesn
ZoomOriginal
use E S N to make a chinese character KAI (pronouced in Chinese Pinyin)
From: zesn
ZoomOriginal
[......]

2008年12月13日星期六

使用CoLinux(2):解决CoLinux无法启动的问题

重启机器后 CoLinux 就无法启动,报下面的错误:
colinux: manager open: last error: The system cannot find the file specified.
daemon: exit code 82a0a80e
daemon: can't access CoLinuxDriver, please check status driver!


CoLinux邮件列表里找到此文,其中有两张图片,是德文的,但也能看明白,就不重新抓图了。单击图片,可以查看原始文件。在硬件管理里把CoLinuxDriver 重新激活。记得在视图里选中“显示隐藏设备”,否则看不到此硬件。补充一下,此硬件是 CoLinux 的虚拟网卡。


[......]

2008年12月12日星期五

使用CoLinux(1):安装

CoLinux运行速度超快早已名声在外,今天试了一下。

参考文1和,文2文3
  • 文1比较旧,是关于0.6版的,尤其是其配置文件还是xml文件,而最新的0.7.3版已改用纯文本文件,但是有图,比较详细。
  • 文2比较新,讲了不使用现有的镜像文件而是安装自己的系统的方法,缺点是不够详细,对初学者有些难度。
  • 文3则是官方的wiki,非常详细,甚至包括在虚拟系统中如何使用nano修改配置。
文3提到的小工具toporesize非常有用,使用方法在这里。这是 e2fsprogs的图形界面,可以用来生成ext2和ext3镜像文件或无损修改现有镜像文件大小。在作者的页面上提到,使用此工具时请确保没有其他基于cygwin的程序在运行。

安装完CoLinux后,推荐看看自带的Readme文件,内容也很丰富。其中提到测试安装是否成功的方法:在windows的命令行,进入安装目录,例如,c:\colinux,输入下面的命令,可以启动BuzyBox,体验简单的Linux:
colinux-daemon kernel=vmlinux initrd=initrd.gz root=/dev/ram0
看到“Please press Enter to activate this console”时,记得敲回车键。
另外在启动文件中加入下面这一行,可以实现“自动关闭电源”,当然,这里只是关闭命令行窗口。
COLINUX_CONSOLE_EXIT_ON_DETACH=1
[......]

2008年12月11日星期四

解决 Firefox 段错误的问题

今天忽然无法启动Firefox。在终端下启动,得到下面的错误信息
esn@esn-laptop:~$ firefox
/opt/mozilla.org/firefox/run-mozilla.sh: line 131: 5262 段错误 "$prog" ${1+"$@"}

查看run-mozilla.sh的131行,不知所然。

终端下的浏览器实在不好用,于是启动VirtualBox里的hiweed2RC,放狗搜出此帖子,但与我的问题无关。正在无所适从时,VirtalBox报错,硬盘无空间!Bingo!于是狂删一通,再次启动Firefox,顺利!

事情有时就是如此简单,简单得让人苦笑不得。
[......]

2008年12月2日星期二

感冒进行时

这两天感冒得如火如荼,放狗搜了一下,下面是比较有代表性的网页:
  1. 感冒会自愈 ,但要防并发症
  2. 感冒 到底该怎么治
  3. 《中医内科学》第一节感冒
西医看法:一般感冒都是病毒性的,无有效治疗方法;没有并发症的情况下,多喝水,多休息——也许补充维C有点作用——7至10天可自愈,不必服用抗生素。可能的并发症主要有:
  • 窦性炎症:面部或眼部周围如有疼痛
  • 耳炎:耳疼持续不减 ,又有低烧
  • 气管炎:感冒延续 10天以上,咳嗽时吐出黄绿色痰,还感到有点发烧
此外,有些疾病的表现与感冒相似,例如, 喉炎,过敏,肺炎。肺炎发展很快,一有怀疑应立即就医,尤其老人、儿童更应警惕。

中医认为感冒的病因为“风邪”,与西医相同,也认为轻型感冒可不药而愈,重症感冒却能影响工作和生活,甚至可危及小儿、老年体弱者的生命。不同于西医对感冒一视同仁——当然有轻重之分,中医认为感冒分为风热,风寒,暑湿等不同类型,需对症治疗。

详细内容请查询上面列出的网址,及时就医,不要延误

小时候经常感冒,每次都被奶奶刮痧,真是疼啊;如果发烧,就会在额头上拔火罐,顶个“红太阳”,呵呵。
高中在外地,住在中医院毕业的姨妈家,每个冬天都会感冒一两次,姨妈就给我开点通便的药,肚子爽了,感冒也好了。
现在很少感冒,打几个喷嚏也就过去了。
上周出差比较疲劳,出差的地方气温25度左右,回来只有10度,受了凉。反应比较强。不过自己身强体壮,症状比较清楚,准备不吃药,记录下变化,以备日后参考——可惜不会看舌苔号脉,无法记录。
  • 上周四:坐在办公室里浑身发冷,开始打喷嚏
  • 周五:开始流清鼻涕,喉咙有点疼
  • 周六:开始鼻塞
  • 周日:鼻涕变稠
  • 周一:黄绿鼻涕,口鼻干渴,喉咙痒,咳嗽,痰少
  • 今天:鼻涕依然浓稠,喉咙没了感觉
好转中,过两三天就应该没事了。喝滚热的姜汤去!

更新:今天,12月7日,基本好了。差不多10天,病去如抽丝啊。。。

题外话感冒在日语中的名字为“风邪”,中药为“汉方”。
[......]

Howto:在 Ubuntu 上 使用 Canon powershot A70

很多相机都支持 “USB Mass Storage”标准,直接连上 linux 电脑可以使用,很方便。我有一台二手的佳能 powershot A70 相机,够沉够强大。但是 不支持此标准,连接上我的Thinkpad T41——操作系统是 Hiweed 1.0(基于ubuntu6.06),没有任何反应。所幸 A70 支持 PTP 标准,安装 gphoto2 后即可使用。

  • 安装gphoto2
esn@esn-laptop:~$ sudo apt-get install gphoto2
下面的命令列出可用的端口,可以测试安装是否正常:
esn@esn-laptop:~$ gphoto2 --list-ports
找到设备:33
路径 描述
-------------------------------------------
serial:/dev/ttyS1 串口 1
serial:/dev/ttyS2 串口 2
serial:/dev/ttyS3 串口 3
serial:/dev/ttyS4 串口 4
serial:/dev/ttyS5 串口 5
serial:/dev/ttyS6 串口 6
serial:/dev/ttyS7 串口 7
serial:/dev/ttyS8 串口 8
serial:/dev/ttyS9 串口 9
serial:/dev/ttyS10 串口 10
serial:/dev/ttyS11 串口 11
serial:/dev/ttyS12 串口 12
serial:/dev/ttyS13 串口 13
serial:/dev/ttyS14 串口 14
serial:/dev/ttyS15 串口 15
serial:/dev/ttyS16 串口 16
serial:/dev/ttyS17 串口 17
serial:/dev/ttyS18 串口 18
serial:/dev/ttyS19 串口 19
serial:/dev/ttyS20 串口 20
serial:/dev/ttyS21 串口 21
serial:/dev/ttyS22 串口 22
serial:/dev/ttyS23 串口 23
serial:/dev/ttyS24 串口 24
serial:/dev/ttyS25 串口 25
serial:/dev/ttyS26 串口 26
serial:/dev/ttyS27 串口 27
serial:/dev/ttyS28 串口 28
serial:/dev/ttyS29 串口 29
serial:/dev/ttyS30 串口 30
serial:/dev/ttyS31 串口 31
serial:/dev/ttyS32 串口 32
usb: Universal Serial Bus
此命令列出所有可用端口——没注意自己的机器上有这么多 ttys !

  • 下载照片
将A70 接入 usb 口,打开开关,并设置于“浏览”状态,然后运行下面的命令,即可将相机上所有照片下载到当前目录:
esn@esn-laptop:~$ gphoto2 -P
  • 删除照片
下面的命令删除相机上的所有照片:
esn@esn-laptop:~$ gphoto2 -D
然后关闭相机,拔掉连线,欣赏照片吧——不过,gphoto2 还可以做很多事情,请继续看下面的介绍:
  • 列举支持的相机型号:
esn@esn-laptop:~$ gphoto2 --list-cameras
支持相机数量 :619
已支持相机:
"Achiever Digital Adc65"
"AEG Snap 300"
"Agfa ePhoto 1280"
……
"ViviCam5B" (正在试用)
"Vivitar Vivicam 55" (正在试用)
"WWF"
"Yahoo!Cam" (正在试用)
列表太长,中间部分省略了。我们来看看支持多少种佳能相机以及是否支持 A70:
esn@esn-laptop:~$ gphoto2 --list-cameras | grep -i canon | wc -l
150
esn@esn-laptop:~$ gphoto2 --list-cameras | grep -i "canon.*a70"
"Canon PowerShot A70"
"Canon PowerShot A70 (PTP)"
  • 查看是否能自动检测到相机:
esn@esn-laptop:~$ gphoto2 --auto-detect
型号 端口
-----------------------------------
Canon PowerShot A70 usb:
一切正常。
  • 查看相机状态概要。
esn@esn-laptop:~$ gphoto2 --summary
已监测到一个“Canon:PowerShot A70”。
相机概要:

相机标识:
型号:Canon:PowerShot A70
所有者:

电源状态:使用电池 (电力充足)

闪存磁盘信息:
驱动器 D:
共计 511,256 字节
可用 507,704 字节

时间:2008-13-32 25:28:06 (主机时间 +0 秒)
查看支持哪些功能:
esn@esn-laptop:~$ gphoto2 --abilities
相机功能 :Canon PowerShot A70
串口支持 :否
USB 支持 :是
捕捉选项 :
:图像
:预览
支持配置 :是
支持删除相机内文件 :是
支持文件预览 (缩略图):是
文件上载支持 :否
正如所料,不支持上载,不能当u盘用。上面显示似乎可以进行抓拍,但是我没有成功,估计是因为 A70 有两个模式的缘故。如果你成功了,请一定告诉我。
  • 列出相机上所有文件:
esn@esn-laptop:~$ gphoto2 --list-files
已监测到一个“Canon:PowerShot A70”。
文件夹“/”中没有文件。
文件夹“/DCIM”中没有文件。
文件夹“/DCIM/100CANON”中有 9 个文件:
#1 IMG_0001.JPG rd 932 KB image/jpeg
#2 IMG_0002.JPG rd 866 KB image/jpeg
#3 IMG_0003.JPG rd 545 KB image/jpeg
#4 IMG_0004.JPG rd 229 KB image/jpeg
#5 IMG_0005.JPG rd 231 KB image/jpeg
#6 IMG_0006.JPG rd 169 KB image/jpeg
#7 IMG_0007.JPG rd 161 KB image/jpeg
#8 IMG_0008.JPG rd 90 KB image/jpeg
#9 IMG_0009.JPG rd 215 KB image/jpeg
文件夹“/DCIM/CANONMSC”中没有文件。
文件夹“/MISC”中没有文件。
上面几个命令,都是长格式,便于理解。正如最前面使用的下载和删除命令,gphoto2 也提供短命令格式:
esn@esn-laptop:~$ gphoto2 --help | grep "^ -"
-q --quiet 少量输出 (默认为大量)
-v --version 显示版本号并退出
-h --help 显示该求助屏幕
-a --abilities 显示相机功能
-f --folder folder 指定相机文件夹 (默认为 “/”)
-R --recurse 递归 (下载时默认)
-l --list-folders 列出文件夹中的文件夹
-L --list-files 列出文件夹中的文件
-m --mkdir name 创建目录
-r --rmdir name 删除目录
-n --num-files 显示文件的数量
-p --get-file range 获取给定范围的文件
-P --get-all-files 从文件夹中获取所有文件
-t --get-thumbnail range 获取给定范围的缩略图
-T --get-all-thumbnails 从文件夹中获取所有缩略图
-d --delete-file range 删除给定范围中的文件
-D --delete-all-files 删除文件夹中的所有文件
-u --upload-file filename 将一个文件上载到相机
-F --frames count Set number of frames to capture (default=infinite)
-I --interval seconds Set capture interval in seconds
其他命令可以参考帮助信息。
喜欢图形界面的朋友,还可以安装 gtkam。
gtkam我没用过,略过不表。
另外,推荐安装 gphotofs,是一个 FUSE 模块,可以将相机文件系统挂载到操作系统上,然后就可以像操作本机目录一样操作了:
# 安装
esn@esn-laptop:~$ sudo apt-get install gphotofs
# 检测
esn@esn-laptop:~$ gphoto2 --auto-detect
型号 端口
-----------------------------------
Canon PowerShot A70 usb:
# 挂载
esn@esn-laptop:~$ cd temp/pic
esn@esn-laptop:~/temp/pic$ ls -l
drwxr-xr-x 2 esn esn 4096 2008-12-02 21:04 canon
esn@esn-laptop:~/temp/pic$ gphotofs ./canon
# 一般的文件操作
esn@esn-laptop:~/temp/pic$ cd ./canon/
esn@esn-laptop:~/temp/pic/canon$ ls
DCIM MISC
esn@esn-laptop:~/temp/pic/canon$ du
93 ./DCIM/100CANON
0 ./DCIM/CANONMSC
93 ./DCIM
0 ./MISC
93 .
esn@esn-laptop:~/temp/pic/canon$ cp DCIM/100CANON/IMG_0001.JPG ~/temp/
esn@esn-laptop:~/temp/pic/canon$ ls /home/esn/temp/IMG_0001.JPG
/home/esn/temp/IMG_0001.JPG
# 卸载
esn@esn-laptop:~/temp/pic/canon$ cd ..
esn@esn-laptop:~/temp/pic$ fusermount -u canon/
如果你认为上面的介绍有用,或发现了任何错误,请留言,谢谢!
[......]