<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.casparant.com/styles/feedsky0.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:flickr="urn:flickr:" version="2.0"><channel><atom:link href="http://feed.casparant.com" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/CasparAnt" type="application/rss+xml"></fs:self_link><lastBuildDate>Fri, 20 Aug 2010 08:38:21 GMT</lastBuildDate><title>Caspar Ant</title><description>Linux, Open Source, Programming.</description><image><url>http://www.feedsky.com/feed/CasparAnt/sc/gif</url><title>Caspar Ant</title><link>http://www.CasparAnt.com</link></image><link>http://www.CasparAnt.com</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Fri, 20 Aug 2010 08:47:30 GMT</pubDate><item><title>libfprint finally supports Thinkpad T410</title><link>http://www.CasparAnt.com/libfprint-finally-supports-thinkpad-t410.html</link><content:encoded>&lt;div class='fp'&gt;I have been keeping tracking of &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=504399&quot; target=&quot;_blank&quot;&gt;this RHBZ&lt;/a&gt; for long, and I am happy to see libfprint finally supports my fingerprint reader on T410. Seems that the original author Daniel(dsd) was very busy so that another developer in Red Hat, Bastien Nocera, took this project instead. He moved the libfprint git repo to freedesktop.org, with the newest patches applied. You can find the new git repo &lt;a href=&quot;http://cgit.freedesktop.org/libfprint/libfprint/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;, and new libfprint release(0.2.0) &lt;a href=&quot;http://freedesktop.org/~hadess/libfprint-0.2.0.tar.bz2&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;. Bastien Nocera is also maintaining &lt;a href=&quot;http://www.reactivated.net/fprint/wiki/Fprintd&quot; target=&quot;_blank&quot;&gt;fprintd&lt;/a&gt;, &quot;a D-Bus daemon that offers libfprint functionality over the D-Bus interprocess communication bus&quot;. The git repo and new release are located &lt;a href=&quot;http://cgit.freedesktop.org/libfprint/fprintd/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://freedesktop.org/~hadess/fprintd-0.2.0.tar.bz2&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Besides the RHBZ mentioned above, you should be able to get more information from this &lt;a href=&quot;http://lists.reactivated.net/pipermail/fprint/2010-August/001530.html&quot; target=&quot;_blank&quot;&gt;message&lt;/a&gt; in fprint mailing list.&lt;/p&gt;
&lt;p&gt;I updated my gentoo overlay in github, too. You can emerge libfprint and fprintd after you synchronized &lt;a href=&quot;http://github.com/casparant/caspar-gentoo&quot; target=&quot;_blank&quot;&gt;this&lt;/a&gt; overlay.&lt;/p&gt;
&lt;/p&gt;
	&lt;h4&gt;Tags&lt;/h4&gt;&lt;a href=&quot;http://www.CasparAnt.com/tag/fprint&quot; title=&quot;fprint&quot; rel=&quot;tag&quot;&gt;fprint&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/gentoo&quot; title=&quot;Gentoo&quot; rel=&quot;tag&quot;&gt;Gentoo&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/t410&quot; title=&quot;t410&quot; rel=&quot;tag&quot;&gt;t410&lt;/a&gt;

	&lt;h4&gt;Related Posts&lt;/h4&gt;
	&lt;ul class=&quot;st-related-posts&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/install-and-configure-gentoo-milestone1.html&quot; title=&quot;折腾Gentoo Milestone1 (2009年03月22日)&quot;&gt;折腾Gentoo Milestone1&lt;/a&gt; (0)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/solved-some-problems-on-gentoo-and-new-ones-come-up.html&quot; title=&quot;Gentoo新老问题-Milestone2 (2009年03月26日)&quot;&gt;Gentoo新老问题-Milestone2&lt;/a&gt; (0)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/using-gentoo-milestone-3.html&quot; title=&quot;Gentoo折腾 Milestone3 (2009年06月16日)&quot;&gt;Gentoo折腾 Milestone3&lt;/a&gt; (13)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/back-to-gentoo-again.html&quot; title=&quot;重新装回Gentoo (2010年07月2日)&quot;&gt;重新装回Gentoo&lt;/a&gt; (3)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/gentoo-or-ubuntu.html&quot; title=&quot;Gentoo还是Ubuntu? (2008年08月18日)&quot;&gt;Gentoo还是Ubuntu?&lt;/a&gt; (8)&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/405042341/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/libfprint-finally-supports-thinkpad-t410.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042341/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042341/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=84e63016549c4fa16d57feeb008a3542&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=84e63016549c4fa16d57feeb008a3542&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.CasparAnt.com/libfprint-finally-supports-thinkpad-t410.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>I have been keeping tracking of this RHBZ for long, and I am happy to see libfprint finally supports my fingerprint reader on T410. Seems that the original author Daniel(dsd) was very busy so that another developer in Red Hat, Bastien Nocera, took this project instead. He moved the libfprint git repo to freedesktop.org, with [......&lt;img src=&quot;http://www1.feedsky.com/t1/405042341/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/libfprint-finally-supports-thinkpad-t410.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042341/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042341/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=84e63016549c4fa16d57feeb008a3542&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=84e63016549c4fa16d57feeb008a3542&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description><category>fprint</category><category>t410</category><category>Softwares</category><category>Gentoo</category><pubDate>Fri, 20 Aug 2010 16:38:21 +0800</pubDate><author>Ant</author><comments>http://www.CasparAnt.com/libfprint-finally-supports-thinkpad-t410.html#comments</comments><guid isPermaLink="false">http://www.CasparAnt.com/?p=368</guid><dc:creator>Ant</dc:creator><fs:srclink>http://www.CasparAnt.com/libfprint-finally-supports-thinkpad-t410.html</fs:srclink><fs:srcfeed>http://www.casparant.com/feed</fs:srcfeed><fs:itemid>feedsky/CasparAnt/~6986320/405042341/5070230</fs:itemid></item><item><title>Enable fingerprint in Thinkpad T410 under Gentoo</title><link>http://www.CasparAnt.com/enable-fingerprint-in-thinkpad-t410-under-gentoo.html</link><content:encoded>&lt;div class='fp'&gt;As I mentioned in the &lt;a href=&quot;http://www.casparant.com/back-to-gentoo-again.html&quot; target=&quot;_blank&quot;&gt;previous post&lt;/a&gt;, I couldn't get my fingerprint reader work in Gentoo. Now this problem has been solved. &lt;img src='http://www.CasparAnt.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /&gt; &lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Before starting, here're some useful links may help those who are suffering from similar fingerprint issues like me:&lt;/p&gt;
&lt;p&gt;If you're using a fingerprint with USB id &quot;147e:2016&quot;, you can have a look at &lt;a href=&quot;http://www.thinkwiki.org/wiki/Integrated_Fingerprint_Reader&quot; target=&quot;blank&quot;&gt;this thinkwiki link&lt;/a&gt;, The &quot;147e:2016&quot; item is updated recently: a Red Hat Bugzilla URL added.&lt;/p&gt;
&lt;p&gt;This &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=504399&quot; target=&quot;blank&quot;&gt;RHBZ&lt;/a&gt; link tried to enable TCRD4C devices, but seemed that my fingerprint was another different type since it still did not work after applied all the patches attached.&lt;/p&gt;
&lt;p&gt;------&gt;8------ Cutting, Let's enable T410 fingerprint ------&gt;8------&lt;/p&gt;
&lt;p&gt;Using &lt;a href=&quot;http://www.n-view.net/Appliance/fingerprint/&quot; target=&quot;_blank&quot;&gt;Fingerprint-GUI&lt;/a&gt; and &lt;a href=&quot;http://www.upek.com/solutions/pc_and_networking/sdks/linux/&quot; target=&quot;_blank&quot;&gt;UPEK SDK&lt;/a&gt; can easily enable fingerprint reader in T410. Fingerprint-GUI provides an integration of setup GUI, authentication plugin, PAM module and the UPEK library, all of the GUI parts are written with QT4 (I don't like it :-\), released under GPL-v3 licence. However, UPEK SDK library is EULA copyrighted and seems never to release the code to us.&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-365&quot;&gt;&lt;/span&gt;Notice that you still need have &lt;a href=&quot;http://reactivated.net/fprint/wiki/Libfprint&quot; target=&quot;_blank&quot;&gt;libfprint&lt;/a&gt; installed, what's more, a version &gt;= 1.0_pre is necessary, according to the manual of Fingerprint.&lt;/p&gt;
&lt;p&gt;Since A PAM module is integrated in Fingerprint-GUI so that your fingerprint driver can work in GDM, sudo, gnome-screensave, etc, you must remove other fingerprint PAM modules like pam_fprint or pam_thinkfinger.&lt;/p&gt;
&lt;p&gt;Here's a picture showing how Fingerprint-GUI works:&lt;/p&gt;
&lt;p&gt;&lt;a href='http://www.tuhigh.com/photo/p/1765496'&gt;&lt;img src='http://photo.tuhigh.com/pics/1032/0805/270072t-1081134842_o.jpg'&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For Gentoo users, I have finished two ebuilds for this application. You can find them in &lt;a href=&quot;http://github.com/casparant/caspar-gentoo&quot; target=&quot;_blank&quot;&gt;my github repo&lt;/a&gt;, fprint is also included in the repo.&lt;/p&gt;
&lt;p&gt;I'm not good at writing ebuilds, any suggestions are welcomed.&lt;/p&gt;
&lt;p&gt;P.S. Is there anybody know how to assert the existence of a kernel module in a ebuild? I need to judge whether `uinput.ko' exists or not among current kernel modules. Thanks.&lt;/p&gt;
&lt;/p&gt;
	&lt;h4&gt;Tags&lt;/h4&gt;&lt;a href=&quot;http://www.CasparAnt.com/tag/thinkpad&quot; title=&quot;thinkpad&quot; rel=&quot;tag&quot;&gt;thinkpad&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/upek&quot; title=&quot;upek&quot; rel=&quot;tag&quot;&gt;upek&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/fingerprint&quot; title=&quot;fingerprint&quot; rel=&quot;tag&quot;&gt;fingerprint&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/fprint&quot; title=&quot;fprint&quot; rel=&quot;tag&quot;&gt;fprint&lt;/a&gt;

	&lt;h4&gt;Related Posts&lt;/h4&gt;
	&lt;ul class=&quot;st-related-posts&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/back-to-gentoo-again.html&quot; title=&quot;重新装回Gentoo (2010年07月2日)&quot;&gt;重新装回Gentoo&lt;/a&gt; (3)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/libfprint-finally-supports-thinkpad-t410.html&quot; title=&quot;libfprint finally supports Thinkpad T410 (2010年08月20日)&quot;&gt;libfprint finally supports Thinkpad T410&lt;/a&gt; (0)&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/405042342/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/enable-fingerprint-in-thinkpad-t410-under-gentoo.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042342/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042342/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=fbcdd80d46bbe76583efac15ae964fd2&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=fbcdd80d46bbe76583efac15ae964fd2&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.CasparAnt.com/enable-fingerprint-in-thinkpad-t410-under-gentoo.html/feed</wfw:commentRss><slash:comments>4</slash:comments><description>As I mentioned in the previous post, I couldn't get my fingerprint reader work in Gentoo. Now this problem has been solved. Before starting, here're some useful links may help those who are suffering from similar fingerprint issues like me: If you're using a fingerprint with USB id &quot;147e:2016&quot;, you can have a look at [......&lt;img src=&quot;http://www1.feedsky.com/t1/405042342/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/enable-fingerprint-in-thinkpad-t410-under-gentoo.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042342/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042342/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=fbcdd80d46bbe76583efac15ae964fd2&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=fbcdd80d46bbe76583efac15ae964fd2&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description><category>fprint</category><category>upek</category><category>fingerprint</category><category>Softwares</category><category>thinkpad</category><pubDate>Fri, 06 Aug 2010 00:34:53 +0800</pubDate><author>Ant</author><comments>http://www.CasparAnt.com/enable-fingerprint-in-thinkpad-t410-under-gentoo.html#comments</comments><guid isPermaLink="false">http://www.CasparAnt.com/?p=365</guid><dc:creator>Ant</dc:creator><fs:srclink>http://www.CasparAnt.com/enable-fingerprint-in-thinkpad-t410-under-gentoo.html</fs:srclink><fs:srcfeed>http://www.casparant.com/feed</fs:srcfeed><fs:itemid>feedsky/CasparAnt/~6986320/405042342/5070230</fs:itemid></item><item><title>重新装回Gentoo</title><link>http://www.CasparAnt.com/back-to-gentoo-again.html</link><content:encoded>&lt;div class='fp'&gt;最近到手T410，先是折腾了几天把里面的正版Win7 Pro通过无损分区移到角落里，然后是装了个RHEL6.0用来做测试，最后重新开始折腾Gentoo。&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;这次没有纠结于选择哪个桌面环境上，我一点也不嫌弃GNOME的臃肿，于是装了个gnome-light。USE Flag把以前用过的拿过来修改了一下，顺便提一句，在我不用Gentoo的这段时间听说hal被干掉了，所以我也追风把hal标记给去掉了。&lt;/p&gt;
&lt;p&gt;启动的时候使用grub2，本来打了915resolution补丁来使grub宽屏显示，但是打的补丁和grub-1.98似乎不是特别搭配，导致启动grub前后各有5秒停滞时间，加上grub启动过后仍然会有一个分辨率只有640x480的屏幕，我干脆就不用915resolution补丁了。使用grub2，配上ext4分区，就可以不使用initramfs了，关键在两点，一是内核中ACHI选项要编译进内核，二是kernel行参数中不要使用UUID。&lt;/p&gt;
&lt;p&gt;说一下一些Thinkpad相关的配置：&lt;/p&gt;
&lt;p&gt;一是声卡驱动。Thinkpad T410的声卡应该是CONEXANT的，但是选择这个驱动后内核还是不认我的声卡。最后只好选择了通用驱动。&lt;/p&gt;
&lt;p&gt;二是hdaps，所谓的硬盘防震保护系统。portage里面相关的三个包，一个是hdaps模块，一个是GNOME的Applet，还有一个是OpenGL绘制的小程序，用来展示你的笔记本目前的水平状态。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-362&quot;&gt;&lt;/span&gt;三是Thinkpad相关的快捷键。目前键盘上展示的快捷键基本上都能用，除了Fn+F6的“摄像头、耳机”、Fn+F8的“触摸板、小红点切换”还有麦克风静音三个按钮不能工作。根据Thinkwiki的&lt;a href=&quot;http://www.thinkwiki.org/wiki/How_to_get_special_keys_to_work&quot; target=&quot;_blank&quot;&gt;这里&lt;/a&gt;说，Fn+F8可以通过thinkpad-acpi或者tps使之工作，其他两个目前还没办法。不过我连Fn+F8都没搞定，只是自己写了个脚本，用来切换触摸板的开关（用小红点的时候肯定很讨厌触摸板开着）：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #007800;&quot;&gt;status&lt;/span&gt;=&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;synclient &lt;span style=&quot;color: #660033;&quot;&gt;-l&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;grep&lt;/span&gt; TouchpadOff &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;awk&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'{print $3}'&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$status&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-eq&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;
    synclient &lt;span style=&quot;color: #007800;&quot;&gt;TouchpadOff&lt;/span&gt;=&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;
    notify-send &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Touchpad is disabled!&amp;quot;&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;elif&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$status&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-eq&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;
    synclient &lt;span style=&quot;color: #007800;&quot;&gt;TouchpadOff&lt;/span&gt;=&lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt;
    notify-send &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Touchpad is enabled&amp;quot;&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;把它保存为脚本，加上x权限，通过GNOME的键盘快捷键来控制，比如Win+Space。&lt;/p&gt;
&lt;p&gt;另外我给蓝牙设置了一个快捷键。笔记本上那个蓝色的ThinkVantage按钮没用到，就把它绑定了一个ACPI事件，设置为给蓝牙控制开关。事件代码如下：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #007800;&quot;&gt;event&lt;/span&gt;=ibm&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;hotkey HKEY 00000080 00001018
&lt;span style=&quot;color: #007800;&quot;&gt;action&lt;/span&gt;=&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;home&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;caspar&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;.local&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bluetooth.sh&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;上述代码保存为ACPI事件文件，如/etc/acpi/events/bluetooth。快捷键对应的KEY CODE可以到Thinkwiki上面去找，也可以看内核的:Documentation/laptop/thinkpad-acpi.txt文档。至于用于控制的bluetooth.sh脚本，则如下(代码来源仍旧是ThinkWiki，看&lt;a href=&quot;http://www.thinkwiki.org/wiki/How_to_setup_Bluetooth&quot; target=&quot;_blank&quot;&gt;这里&lt;/a&gt;)：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #007800;&quot;&gt;NAME&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;tpacpi_bluetooth_sw&amp;quot;&lt;/span&gt;
&amp;nbsp;
find_by_name&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #007800;&quot;&gt;NAME&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;$1&amp;quot;&lt;/span&gt;
    &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;test&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-z&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #007800;&quot;&gt;${NAME}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;
    &lt;span style=&quot;color: #007800;&quot;&gt;SYSFS_NAME&lt;/span&gt;=$&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;find&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-P&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;sys &lt;span style=&quot;color: #660033;&quot;&gt;-name&lt;/span&gt; name &lt;span style=&quot;color: #660033;&quot;&gt;-path&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;*/rfkill/*&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-exec&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;grep&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-l&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #007800;&quot;&gt;${NAME}&lt;/span&gt;&amp;quot;&lt;/span&gt; \&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;\&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt; + &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;head&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-n&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;!&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-z&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #007800;&quot;&gt;${SYSFS_NAME}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-r&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #007800;&quot;&gt;${SYSFS_NAME/%name/state}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;
        &lt;span style=&quot;color: #007800;&quot;&gt;RESULT&lt;/span&gt;=&lt;span style=&quot;color: #800000;&quot;&gt;${SYSFS_NAME%%/name}&lt;/span&gt;
        &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$RESULT&lt;/span&gt;
        &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;
    &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;
&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #007800;&quot;&gt;SYSFS&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #007800;&quot;&gt;$(find_by_name &amp;quot;${NAME}&amp;quot;)&lt;/span&gt;&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;!&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-z&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #007800;&quot;&gt;${SYSFS}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-r&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #007800;&quot;&gt;${SYSFS}&lt;/span&gt;/state&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;case&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #007800;&quot;&gt;$(cat &amp;quot;${SYSFS}/state&amp;quot;)&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;in&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #007800;&quot;&gt;${SYSFS}&lt;/span&gt;/state&amp;quot;&lt;/span&gt;
            &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;;;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #007800;&quot;&gt;${SYSFS}&lt;/span&gt;/state&amp;quot;&lt;/span&gt;
            &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;;;&lt;/span&gt;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;esac&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;重启ACPI服务就可以看到蓝牙可以被ThinkVantage按钮控制了。&lt;/p&gt;
&lt;p&gt;目前还不能工作的设备有：指纹识别器，从lshw中看到似乎还有HECI控制器(Intel似乎不想管这个咚咚了？）、温度检测设备(Thermal Subsystem)和一个Ricoh的外围设备。&lt;/p&gt;
&lt;p&gt;最后向使用Thinkpad的同学严重推荐&lt;a href=&quot;http://www.thinkwiki.org&quot; target=&quot;_blank&quot;&gt;ThinkWiki&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;P.S. 设置充电阈值：据说如果电池不怎么经常使用的话，充电不充满有利于延长电池寿命（Win7下的配套软件是这么说的），所以可以设置一个充电阈值，把下面命令放到/etc/conf.d/local.start去：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;95&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;sys&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;devices&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;platform&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;smapi&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;BAT0&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;stop_charge_thresh&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;/p&gt;
	&lt;h4&gt;Tags&lt;/h4&gt;&lt;a href=&quot;http://www.CasparAnt.com/tag/gentoo&quot; title=&quot;Gentoo&quot; rel=&quot;tag&quot;&gt;Gentoo&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/thinkpad&quot; title=&quot;thinkpad&quot; rel=&quot;tag&quot;&gt;thinkpad&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/hotkey&quot; title=&quot;hotkey&quot; rel=&quot;tag&quot;&gt;hotkey&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/acpi&quot; title=&quot;acpi&quot; rel=&quot;tag&quot;&gt;acpi&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/thinkvantage&quot; title=&quot;thinkvantage&quot; rel=&quot;tag&quot;&gt;thinkvantage&lt;/a&gt;

	&lt;h4&gt;Related Posts&lt;/h4&gt;
	&lt;ul class=&quot;st-related-posts&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/solved-some-problems-on-gentoo-and-new-ones-come-up.html&quot; title=&quot;Gentoo新老问题-Milestone2 (2009年03月26日)&quot;&gt;Gentoo新老问题-Milestone2&lt;/a&gt; (0)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/install-and-configure-gentoo-milestone1.html&quot; title=&quot;折腾Gentoo Milestone1 (2009年03月22日)&quot;&gt;折腾Gentoo Milestone1&lt;/a&gt; (0)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/libfprint-finally-supports-thinkpad-t410.html&quot; title=&quot;libfprint finally supports Thinkpad T410 (2010年08月20日)&quot;&gt;libfprint finally supports Thinkpad T410&lt;/a&gt; (0)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/stop-trying-gentoo.html&quot; title=&quot;咱先不折腾了 (2008年09月3日)&quot;&gt;咱先不折腾了&lt;/a&gt; (17)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/enable-fingerprint-in-thinkpad-t410-under-gentoo.html&quot; title=&quot;Enable fingerprint in Thinkpad T410 under Gentoo (2010年08月6日)&quot;&gt;Enable fingerprint in Thinkpad T410 under Gentoo&lt;/a&gt; (4)&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/405042343/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/back-to-gentoo-again.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042343/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042343/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=f6547b85b6c764866157e1cfdf9f9d6e&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=f6547b85b6c764866157e1cfdf9f9d6e&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.CasparAnt.com/back-to-gentoo-again.html/feed</wfw:commentRss><slash:comments>3</slash:comments><description>最近到手T410，先是折腾了几天把里面的正版Win7 Pro通过无损分区移到角落里，然后是装了个RHEL6.0用来做测试，最后重新开始折腾Gentoo。 这次没有纠结于选择哪个桌面环境上，我一点也不嫌弃GNOME的臃肿，于是装了个gnome-light。USE Flag把以前用过的拿过来修改了一下，顺便提一句，在我不用Gentoo的这段时间听说hal被干掉了，所以我也追风把hal标记给去掉了。 启动的时候使用grub2，本来打了915resolution补丁来使grub宽屏显示，但是打的补丁和grub-1.98似乎不是特别搭配，导致启动grub前后各有5秒停滞时间，加上grub启动过后仍然会有一个分辨率只有640x480的屏幕，我干脆就不用915resolution补丁了。使用grub2，配上ext4分区，就可以不使用initramfs了，关键在两点，一是内核中ACHI选项要编译进内核，二是kernel行参数中不要使用UUID。 说一下一些Thinkpad相关的配置： 一是声卡驱动。Thinkpad T410的声卡应该是CONEXANT的，但是选择这个驱动后内核还是不认我的声卡。最后只好选择了通用驱...&lt;img src=&quot;http://www1.feedsky.com/t1/405042343/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/back-to-gentoo-again.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042343/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042343/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=f6547b85b6c764866157e1cfdf9f9d6e&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=f6547b85b6c764866157e1cfdf9f9d6e&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description><category>thinkvantage</category><category>Z-Turn</category><category>hotkey</category><category>Gentoo</category><category>acpi</category><category>thinkpad</category><pubDate>Fri, 02 Jul 2010 17:22:31 +0800</pubDate><author>Ant</author><comments>http://www.CasparAnt.com/back-to-gentoo-again.html#comments</comments><guid isPermaLink="false">http://www.CasparAnt.com/?p=362</guid><dc:creator>Ant</dc:creator><fs:srclink>http://www.CasparAnt.com/back-to-gentoo-again.html</fs:srclink><fs:srcfeed>http://www.casparant.com/feed</fs:srcfeed><fs:itemid>feedsky/CasparAnt/~6986320/405042343/5070230</fs:itemid></item><item><title>ya-bupt-thesis-bachelor-1.0-Alpha-1 Released</title><link>http://www.CasparAnt.com/ya-bupt-thesis-bachelor-1-0-alpha-1-released.html</link><content:encoded>&lt;div class='fp'&gt;这个东西总算是做了一大半了。因为拖了两个星期，论文还没开始写，接下来只能一边写论文一边改模板了。&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;简要介绍一下这个模板。&lt;/p&gt;
&lt;p&gt;缘起是@yegle曾经推荐过他的同学梵高(cnMuggle)的一个&lt;a href=&quot;http://code.google.com/p/buptthesis-bachelor/&quot; target=&quot;_blank&quot;&gt;北邮本科毕业论文模板&lt;/a&gt;，我看了一下觉得不太符合我的需求，最主要是他用了CTeX，这玩意儿在我的机子上水土不服。作为一个Linux+XeTeX+xeCJK党，我就自己动手开始写。&lt;/p&gt;
&lt;p&gt;期间参考了梵高同学的模板，当然也参考了&lt;a href=&quot;http://wangxu.me&quot; target=&quot;_blank&quot;&gt;@gnawux(apt)&lt;/a&gt;同学&lt;a href=&quot;http://code.google.com/p/latex-bupt/&quot; target=&quot;_blank&quot;&gt;的&lt;/a&gt;，还有DazzleZhang在apt的基础上改进&lt;a href=&quot;http://code.google.com/p/buptthesis/&quot; target=&quot;blank&quot;&gt;的&lt;/a&gt;，还有老牌的&lt;a href=&quot;http://sourceforge.net/projects/thuthesis/&quot; target=&quot;_blank&quot;&gt;ThuThesis&lt;/a&gt;。当然最主要还是依靠Google和CTeX论坛，把一些稀奇古怪的问题给解决了。&lt;/p&gt;
&lt;p&gt;今天又解决了几个大问题，同时也把插入图片、插入表格、插入公式的格式整理了一下，所以就发布Alpha-1版本了。地址在&lt;a href=&quot;http://code.google.com/p/yet-another-bupt-thesis-bachelor/&quot; target=&quot;_blank&quot;&gt;Google Code&lt;/a&gt;上。接下来要完成的主要工作就是参考文献的排版。我一看其他模板的bst文件，几千行的代码，吓坏了。下次再搞好了。&lt;/p&gt;
&lt;p&gt;欢迎提Bug~&lt;/p&gt;
&lt;/p&gt;
	&lt;h4&gt;Tags&lt;/h4&gt;&lt;a href=&quot;http://www.CasparAnt.com/tag/bupt&quot; title=&quot;bupt&quot; rel=&quot;tag&quot;&gt;bupt&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/latex&quot; title=&quot;Latex&quot; rel=&quot;tag&quot;&gt;Latex&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/thesis&quot; title=&quot;thesis&quot; rel=&quot;tag&quot;&gt;thesis&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/template&quot; title=&quot;template&quot; rel=&quot;tag&quot;&gt;template&lt;/a&gt;

	&lt;h4&gt;Related Posts&lt;/h4&gt;
	&lt;ul class=&quot;st-related-posts&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/using-latex.html&quot; title=&quot;开始学习LaTeX (2008年04月7日)&quot;&gt;开始学习LaTeX&lt;/a&gt; (0)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/know-how-to-make-a-latex-beamer-template.html&quot; title=&quot;搞定LaTeX Beamer模板 (2010年04月3日)&quot;&gt;搞定LaTeX Beamer模板&lt;/a&gt; (18)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/latex-resume-templates.html&quot; title=&quot;LaTeX Resume Templates (2009年04月23日)&quot;&gt;LaTeX Resume Templates&lt;/a&gt; (5)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/xetex-makes-cjk-and-fonts-easier-to-use.html&quot; title=&quot;使用XeTeX，CJK无忧，字体无忧 (2009年04月22日)&quot;&gt;使用XeTeX，CJK无忧，字体无忧&lt;/a&gt; (2)&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/405042344/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/ya-bupt-thesis-bachelor-1-0-alpha-1-released.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042344/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042344/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=e19c45f7d3d16dc3c34f321918f79535&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=e19c45f7d3d16dc3c34f321918f79535&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.CasparAnt.com/ya-bupt-thesis-bachelor-1-0-alpha-1-released.html/feed</wfw:commentRss><slash:comments>3</slash:comments><description>这个东西总算是做了一大半了。因为拖了两个星期，论文还没开始写，接下来只能一边写论文一边改模板了。 简要介绍一下这个模板。 缘起是@yegle曾经推荐过他的同学梵高(cnMuggle)的一个北邮本科毕业论文模板，我看了一下觉得不太符合我的需求，最主要是他用了CTeX，这玩意儿在我的机子上水土不服。作为一个Linux+XeTeX+xeCJK党，我就自己动手开始写。 期间参考了梵高同学的模板，当然也参考了@gnawux(apt)同学的，还有DazzleZhang在apt的基础上改进的，还有老牌的ThuThesis。当然最主要还是依靠Google和CTeX论坛，把一些稀奇古怪的问题给解决了。 今天又解决了几个大问题，同时也把插入图片、插入表格、插入公式的格式整理了一下，所以就发布Alpha-1版本了。地址在Google Code上。接下来要完成的主要工作就是参考文献的排版。我一看其他模板的bst文件，几千行的代码，吓坏了。下次再搞好了。 欢迎提Bug~ TagsLatex, bupt, template, thesis Related Posts 开始学习LaTeX (0) 搞定LaTeX Beamer...&lt;img src=&quot;http://www1.feedsky.com/t1/405042344/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/ya-bupt-thesis-bachelor-1-0-alpha-1-released.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042344/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042344/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=e19c45f7d3d16dc3c34f321918f79535&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=e19c45f7d3d16dc3c34f321918f79535&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description><category>Latex</category><category>template</category><category>Programming</category><category>bupt</category><category>thesis</category><pubDate>Sun, 16 May 2010 20:30:55 +0800</pubDate><author>Ant</author><comments>http://www.CasparAnt.com/ya-bupt-thesis-bachelor-1-0-alpha-1-released.html#comments</comments><guid isPermaLink="false">http://www.CasparAnt.com/?p=358</guid><dc:creator>Ant</dc:creator><fs:srclink>http://www.CasparAnt.com/ya-bupt-thesis-bachelor-1-0-alpha-1-released.html</fs:srclink><fs:srcfeed>http://www.casparant.com/feed</fs:srcfeed><fs:itemid>feedsky/CasparAnt/~6986320/405042344/5070230</fs:itemid></item><item><title>Red Hat 内核测试组 DUP测试职位急招</title><link>http://www.CasparAnt.com/dup-testing-in-red-hat.html</link><content:encoded>&lt;div class='fp'&gt;The Quality Engineering team at Red Hat is looking for engineers to search for, analyze, report, track defects and verify bug fixes. This position will primarily focus on testing and verifying proper operation of driver updates to the linux kernel. Responsibilities include developing test scripts for automated testing, executing test cases, debugging software problems, and operating automated test tools.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Job Requirements:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
- College degree in a technical field and/or relevant experience.&lt;br /&gt;
- Strong skills and background in Linux.&lt;br /&gt;
- Strong debugging, troubleshooting, analytical skills.&lt;br /&gt;
- Intermediate scripting skills.&lt;br /&gt;
- Intermediate written and spoken English skills.&lt;br /&gt;
- Must be a flexible self-starter who can come up to speed quickly with new technologies and can adapt to a growing and evolving team.&lt;br /&gt;
- Strong passion and desire for testing and examining how things work internally.&lt;br /&gt;
- Direct experience testing software under Unix/Linux.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;有意者发中英文简历到：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;ZW5nLWNoaW5hLXJlY3J1aXRAcmVkaGF0LmNvbQo&lt;/span&gt;= &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; base64 &lt;span style=&quot;color: #660033;&quot;&gt;-d&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;P.S. 实习亦可。邮件标题请注明应聘实习还是应聘正式员工。&lt;/p&gt;
&lt;p&gt;P.P.S 内核测试组实习生项目链接： &lt;a href=&quot;http://jobs.zhaopin.com/P4/CC1362/4353/J902/501/CC136243538J90250171000.htm&quot; target=&quot;_blank&quot;&gt;http://jobs.zhaopin.com/P4/CC1362/4353/J902/501/CC136243538J90250171000.htm&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;
	&lt;h4&gt;Tags&lt;/h4&gt;&lt;a href=&quot;http://www.CasparAnt.com/tag/red-hat&quot; title=&quot;Red Hat&quot; rel=&quot;tag&quot;&gt;Red Hat&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/job&quot; title=&quot;job&quot; rel=&quot;tag&quot;&gt;job&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/hiring&quot; title=&quot;hiring&quot; rel=&quot;tag&quot;&gt;hiring&lt;/a&gt;

	&lt;h4&gt;Related Posts&lt;/h4&gt;
	&lt;ul class=&quot;st-related-posts&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/signed-the-labour-contract.html&quot; title=&quot;卖身给Red Hat成功，非主流求职经历分享 (2010年01月7日)&quot;&gt;卖身给Red Hat成功，非主流求职经历分享&lt;/a&gt; (17)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/first-day-at-work.html&quot; title=&quot;第一天上班 (2009年07月13日)&quot;&gt;第一天上班&lt;/a&gt; (17)&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/405042345/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/dup-testing-in-red-hat.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042345/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042345/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=8be378838e289fec9a6e3952989f19a5&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=8be378838e289fec9a6e3952989f19a5&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.CasparAnt.com/dup-testing-in-red-hat.html/feed</wfw:commentRss><slash:comments>3</slash:comments><description>The Quality Engineering team at Red Hat is looking for engineers to search for, analyze, report, track defects and verify bug fixes. This position will primarily focus on testing and verifying proper operation of driver updates to the linux kernel. Responsibilities include developing test scripts for automated testing, executing test cases, debugging software problems, and [......&lt;img src=&quot;http://www1.feedsky.com/t1/405042345/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/dup-testing-in-red-hat.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042345/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042345/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=8be378838e289fec9a6e3952989f19a5&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=8be378838e289fec9a6e3952989f19a5&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description><category>Red Hat</category><category>hiring</category><category>job</category><category>No Category</category><pubDate>Mon, 19 Apr 2010 14:43:51 +0800</pubDate><author>Ant</author><comments>http://www.CasparAnt.com/dup-testing-in-red-hat.html#comments</comments><guid isPermaLink="false">http://www.CasparAnt.com/?p=355</guid><dc:creator>Ant</dc:creator><fs:srclink>http://www.CasparAnt.com/dup-testing-in-red-hat.html</fs:srclink><fs:srcfeed>http://www.casparant.com/feed</fs:srcfeed><fs:itemid>feedsky/CasparAnt/~6986320/405042345/5070230</fs:itemid></item><item><title>生活在信息膨胀的社会</title><link>http://www.CasparAnt.com/how-to-organize-your-information.html</link><content:encoded>&lt;div class='fp'&gt;现在上网的，没下列东东都不好意思说自己是混互联网的：&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
&lt;a href=&quot;http://www.casparant.com&quot;&gt;个人博客&lt;/a&gt;（BSP/独立的至少得有一个吧），&lt;a href=&quot;http://twitter.com/casparant&quot; target=&quot;_blank&quot;&gt;twitter&lt;/a&gt;（以及其他各种围脖们），&lt;a href=&quot;http://www.douban.com/people/casparant/&quot; target=&quot;_blank&quot;&gt;豆瓣&lt;/a&gt;，&lt;a href=&quot;http://www.facebook.com/casparant&quot; target=&quot;_blank&quot;&gt;facebook&lt;/a&gt;，&lt;a href=&quot;https://www.google.com/reader/shared/casparant&quot; target=&quot;_blank&quot;&gt;Google Reader&lt;/a&gt;（或者其他rss订阅工具），&lt;a href=&quot;http://feeds.feedburner.com/casparant&quot; target=&quot;_blank&quot;&gt;feedburner&lt;/a&gt;/&lt;a href=&quot;http://feed.feedsky.com/casparant&quot; target=&quot;_blank&quot;&gt;feedsky&lt;/a&gt;，&lt;a href=&quot;http://www.flickr.com/photos/ant-veil/&quot; target=&quot;_blank&quot;&gt;flickr相册&lt;/a&gt;(或者picasaweb,或者国内的oo和xx），&lt;a href=&quot;http://cn.last.fm/user/casparant&quot; target=&quot;_blank&quot;&gt;lastfm&lt;/a&gt;, youtube订阅，friendfeed……
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;在这个信息膨胀的社会，如何获取信息是个头疼的问题。下面列一下自己是如何把这些信息来源整合起来的，以供参考：&lt;/p&gt;
&lt;p&gt;整合所有信息的核心就是feed/rss，所以首先要把博客搞一个托管，或者干脆直接用自带的feed（前者的好处是，换了博客可以不用通知别人修改你的rss地址）。我主要采用feedburner，在wordpress里用了&lt;a href=&quot;http://vonye.com/projects/feedred&quot;&gt;feedred&lt;/a&gt;这个插件，把自带的feed重定向到了feedburner上。因为很久很久以前feedburner被墙了，所以feedsky也用过。&lt;/p&gt;
&lt;p&gt;然后就是Twitter，作为一个重度Twitter患者，巴不得把自己博客更新、Google Reader分享、豆瓣新鲜事、新拍的照片等一堆东西同步到Twitter上。这里有两种解决方案：&lt;/p&gt;
&lt;p&gt;1. 使用&lt;a href=&quot;http://twitterfeed.com&quot;&gt;TwitterFeed.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2. 使用FeedBurner。&lt;/p&gt;
&lt;p&gt;前者自己摸索就好了，我更推荐后者，因为自己有种感觉FeedBurner同步速度很快，莫非它采用了每分钟轮询的策略？Orz……在FeedBurner管理界面的&quot;Publicize&quot;中有个&quot;Socialize&quot;，里面可以设置把当前feed同步到Twitter上。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-354&quot;&gt;&lt;/span&gt;因此只要你的信息源有feed，就可以同步到Twitter上。&lt;/p&gt;
&lt;p&gt;接下来是facebook、校内这类社交网站，把twitter同步到facebook/校内上。&lt;/p&gt;
&lt;p&gt;校内的话，狗狗&lt;a href=&quot;http://yegle.net/2009/04/21/use-bash-to-update-xiaonei-status-and-blog/&quot; target=&quot;_blank&quot;&gt;写过一个脚本&lt;/a&gt;，请自行取用。facebook的话，也有两种方式：&lt;/p&gt;
&lt;p&gt;1. 使用friendfeed（已被facebook收购鸟），&lt;/p&gt;
&lt;p&gt;2.使用facebook app&lt;/p&gt;
&lt;p&gt;后者据&lt;a href=&quot;http://twitter.com/luopf&quot; target=&quot;_blank&quot;&gt;lpf&lt;/a&gt;同学反映，密码老是不对。我自己是很早很早以前设置的，忘了。建议有问题的同学使用第一种方案。friendfeed因为被facebook收购了，也就更好地集成在了facebook中（不好意思我忘了怎么集成了，自己摸索一下吧&gt;_&lt;）。需要注意的是friendfeed除了可以从twitter同步，还可以从其他源同步，这些源可能会和你之前设定的Twitter集成重复。&lt;/p&gt;
&lt;p&gt;其他的，比如同步到&lt;a href=&quot;http://www.williamlong.info/archives/1962.html&quot; target=&quot;_blank&quot;&gt;新浪围脖&lt;/a&gt;，请自行查阅。&lt;/p&gt;
&lt;p&gt;还有什么需要补充，欢迎留言。&lt;/p&gt;
&lt;/p&gt;
	&lt;h4&gt;Tags&lt;/h4&gt;&lt;a href=&quot;http://www.CasparAnt.com/tag/friendfeed&quot; title=&quot;friendfeed&quot; rel=&quot;tag&quot;&gt;friendfeed&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/twitter&quot; title=&quot;twitter&quot; rel=&quot;tag&quot;&gt;twitter&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/facebook&quot; title=&quot;facebook&quot; rel=&quot;tag&quot;&gt;facebook&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/feedburner&quot; title=&quot;feedburner&quot; rel=&quot;tag&quot;&gt;feedburner&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/feed&quot; title=&quot;feed&quot; rel=&quot;tag&quot;&gt;feed&lt;/a&gt;

	&lt;h4&gt;Related Posts&lt;/h4&gt;
	&lt;ul class=&quot;st-related-posts&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/migrate-feedburner-account-to-google-succeeded.html&quot; title=&quot;完成feedburner到Google帐户的迁移 (2008年09月5日)&quot;&gt;完成feedburner到Google帐户的迁移&lt;/a&gt; (7)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/feed-test-in-new-host.html&quot; title=&quot;博客搬家后Feed测试 (2009年11月6日)&quot;&gt;博客搬家后Feed测试&lt;/a&gt; (5)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/a-collection-of-twitter-clients.html&quot; title=&quot;Twitter客户端一箩筐 (2009年05月1日)&quot;&gt;Twitter客户端一箩筐&lt;/a&gt; (8)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/grnotify-100-rc1-released.html&quot; title=&quot;[推荐]grnotify-1.0.0-RC1 released (2008年05月13日)&quot;&gt;[推荐]grnotify-1.0.0-RC1 released&lt;/a&gt; (0)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/twitvim-a-good-twitter-client-under-vim.html&quot; title=&quot;VIM里的Twitter: TwitVIM (2009年02月25日)&quot;&gt;VIM里的Twitter: TwitVIM&lt;/a&gt; (12)&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/405042346/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/how-to-organize-your-information.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042346/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042346/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=23b6378240836ad6b496ae5ae4f38a29&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=23b6378240836ad6b496ae5ae4f38a29&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.CasparAnt.com/how-to-organize-your-information.html/feed</wfw:commentRss><slash:comments>4</slash:comments><description>现在上网的，没下列东东都不好意思说自己是混互联网的： 个人博客（BSP/独立的至少得有一个吧），twitter（以及其他各种围脖们），豆瓣，facebook，Google Reader（或者其他rss订阅工具），feedburner/feedsky，flickr相册(或者picasaweb,或者国内的oo和xx），lastfm, youtube订阅，friendfeed…… 在这个信息膨胀的社会，如何获取信息是个头疼的问题。下面列一下自己是如何把这些信息来源整合起来的，以供参考： 整合所有信息的核心就是feed/rss，所以首先要把博客搞一个托管，或者干脆直接用自带的feed（前者的好处是，换了博客可以不用通知别人修改你的rss地址）。我主要采用feedburner，在wordpress里用了feedred这个插件，把自带的feed重定向到了feedburner上。因为很久很久以前feedburner被墙了，所以feedsky也用过。 然后就是Twitter，作为一个重度Twitter患者，巴不得把自己博客更新、Google Reader分享、豆瓣新鲜事、新拍的照片等一堆东西同步到Twitter上。这里有两种解决方案： 1. 使用TwitterF...&lt;img src=&quot;http://www1.feedsky.com/t1/405042346/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/how-to-organize-your-information.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042346/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042346/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=23b6378240836ad6b496ae5ae4f38a29&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=23b6378240836ad6b496ae5ae4f38a29&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description><category>twitter</category><category>feed</category><category>Z-Turn</category><category>friendfeed</category><category>feedburner</category><category>facebook</category><pubDate>Wed, 07 Apr 2010 20:35:13 +0800</pubDate><author>Ant</author><comments>http://www.CasparAnt.com/how-to-organize-your-information.html#comments</comments><guid isPermaLink="false">http://www.CasparAnt.com/?p=354</guid><dc:creator>Ant</dc:creator><fs:srclink>http://www.CasparAnt.com/how-to-organize-your-information.html</fs:srclink><fs:srcfeed>http://www.casparant.com/feed</fs:srcfeed><fs:itemid>feedsky/CasparAnt/~6986320/405042346/5070230</fs:itemid></item><item><title>当系统调用不存在……</title><link>http://www.CasparAnt.com/when-the-system-call-does-not-exist.html</link><content:encoded>&lt;div class='fp'&gt;最近在一个项目上卡了几天，整理出来主要碰到的问题，以备自己查阅。&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;具体的问题抽象出来就是这么一种情况：&lt;/p&gt;
&lt;p&gt;有一堆分层的目录，里面全是系统调用的相关测试代码+Makefile，结构大致如下：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
├── wait4&lt;br /&gt;
│   ├── Makefile&lt;br /&gt;
│   ├── wait401.c&lt;br /&gt;
│   └── wait402.c&lt;br /&gt;
├── waitid&lt;br /&gt;
│   ├── waitid01&lt;br /&gt;
│   │   ├── Makefile&lt;br /&gt;
│   │   └── waitid01.c&lt;br /&gt;
│   ├── waitid02&lt;br /&gt;
│   │   ├── Makefile&lt;br /&gt;
│   │   └── waitid02.c&lt;br /&gt;
├── waitpid&lt;br /&gt;
│   │   ├── Makefile&lt;br /&gt;
│   │   └── waitpid_err_test.c&lt;br /&gt;
.....&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;span id=&quot;more-353&quot;&gt;&lt;/span&gt;现在要把这堆系统调用的测试代码移植到各硬件平台和各发行版上，因此要考虑内核版本、glibc版本等等问题。比如说getcpu这个东东只在2.6.19及以后版本中存在并且只有x86_64 and i386架构才可用。而编译这堆系统调用使用的Makefile大致如下：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;MAKEFILES_FOR_TESTCASES = $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;shell &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;find&lt;/span&gt; testcases &lt;span style=&quot;color: #660033;&quot;&gt;-name&lt;/span&gt; Makefile&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
TESTCASES_BY_MAKE = $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;addsuffix &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;test&lt;/span&gt;,$&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;dir&lt;/span&gt; $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;MAKEFILES_FOR_TESTCASES&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
$&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;TESTCASES_BY_MAKE&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;:
        $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;MAKE&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-C&lt;/span&gt; $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;dir&lt;/span&gt; $&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;test&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;因此可能的解决方案有如下几种：&lt;/p&gt;
&lt;h4&gt;1. 修改Makefile，禁止编译会出错的测试用例&lt;/h4&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;FILTER_OUT_CASES = testcase1 testcase2 testcase3
ALL_MAKEFILES = $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;shell &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;find&lt;/span&gt; testcases &lt;span style=&quot;color: #660033;&quot;&gt;-name&lt;/span&gt; Makefile&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
FILTER_OUT_MAKEFILES = $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;wildcard $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;foreach filename,$&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;FILTER_OUT_CASES&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;,testcases&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;$&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;filename&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;Makefile&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
MAKEFILES_FOR_TESTCASES = $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;filter-out $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;FILTER_OUT_MAKEFILES&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;,$&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;ALL_MAKEFILES&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
TESTCASES_BY_MAKE = $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;addsuffix &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;test&lt;/span&gt;,$&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;dir&lt;/span&gt; $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;MAKEFILES_FOR_TESTCASES&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
$&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;TESTCASES_BY_MAKE&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;:
        $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;MAKE&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-C&lt;/span&gt; $&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;dir&lt;/span&gt; $&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;test&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;代码很平淡无奇，之所以贴出这段代码是为了温习一下Makefile中wildcard,filter-out和foreach的用法 &lt;img src='http://www.CasparAnt.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;h4&gt;2.修改c代码，使用预处理判断是否存在&lt;/h4&gt;
&lt;p&gt;这种办法在&lt;a href=&quot;ltp.sf.net/&quot; target=&quot;_blank&quot;&gt;ltp&lt;/a&gt;上应用十分广泛，ltp中自动从configure文件中生成include/config.h，生成的config.h包含了一系列预处理，例如：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #ff0000; font-style: italic;&quot;&gt;/* Define to 1 if you have the &amp;lt;sys/signalfd.h&amp;gt; header file. */&lt;/span&gt;
&lt;span style=&quot;color: #339900;&quot;&gt;#undef HAVE_SYS_SIGNALFD_H&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #ff0000; font-style: italic;&quot;&gt;/* Define to 1 if you have the &amp;lt;sys/stat.h&amp;gt; header file. */&lt;/span&gt;
&lt;span style=&quot;color: #339900;&quot;&gt;#define HAVE_SYS_STAT_H 1&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;当内核版本不同导致系统调用不存在时，可以设置undef预处理；如果系统调用存在，则define一下。&lt;/p&gt;
&lt;p&gt;接下去可以修改源代码，在可能会在不同内核版本上出现分歧的代码前后加上：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
9
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #339900;&quot;&gt;#ifdef HAVE_SYS_SIGNALFD_H&lt;/span&gt;
...
&lt;span style=&quot;color: #339900;&quot;&gt;#else&lt;/span&gt;
&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; main&lt;span style=&quot;color: #008000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span style=&quot;color: #008000;&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span style=&quot;color: #0000dd;&quot;&gt;printf&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;quot;syscall not exists in this platform&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\&amp;quot;&lt;/span&gt;);
  return 1;
}
#endif&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;同时ltp还在C代码中判断内核版本，内核版本在&lt;sys/utsname.h&gt;中有声明。&lt;/p&gt;
&lt;p&gt;如果不使用configure文件，可以自己写一个shell脚本来生成，例如：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#!/bin/sh&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #007800;&quot;&gt;CONFIG_PATH&lt;/span&gt;=.&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;include&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;config.h
&lt;span style=&quot;color: #007800;&quot;&gt;KVER&lt;/span&gt;=&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;uname&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-r&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;cut&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-d&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'-'&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-f&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;KMAJVER&lt;/span&gt;=&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$KVER&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;cut&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-d&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'.'&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-f&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;-&lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;KMINVER&lt;/span&gt;=&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$KVER&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;cut&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-d&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'.'&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-f&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #007800;&quot;&gt;$KMAJVER&lt;/span&gt;&amp;quot;&lt;/span&gt; = &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;2.6&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$KMINVER&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-ge&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;19&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;
	&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'#define HAVE_SYS_EPOLL_H 1'&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$CONFIG_PATH&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;else&lt;/span&gt;
	&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'#ifdef HAVE_SYS_EPOLL_H'&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$CONFIG_PATH&lt;/span&gt;
	&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'#  undef HAVE_SYS_EPOLL_H'&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$CONFIG_PATH&lt;/span&gt;
	&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'#endif'&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$CONFIG_PATH&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;/p&gt;
	&lt;h4&gt;Tags&lt;/h4&gt;&lt;a href=&quot;http://www.CasparAnt.com/tag/pre-define&quot; title=&quot;pre define&quot; rel=&quot;tag&quot;&gt;pre define&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/makefile&quot; title=&quot;makefile&quot; rel=&quot;tag&quot;&gt;makefile&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/ltp&quot; title=&quot;ltp&quot; rel=&quot;tag&quot;&gt;ltp&lt;/a&gt;

	&lt;h4&gt;Related Posts&lt;/h4&gt;
	&lt;ul class=&quot;st-related-posts&quot;&gt;
	&lt;li&gt;No related posts&lt;/li&gt;
	&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/405042347/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/when-the-system-call-does-not-exist.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042347/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042347/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=aa473138a9609547fcfa495f21ba3b2e&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=aa473138a9609547fcfa495f21ba3b2e&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.CasparAnt.com/when-the-system-call-does-not-exist.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>最近在一个项目上卡了几天，整理出来主要碰到的问题，以备自己查阅。 具体的问题抽象出来就是这么一种情况： 有一堆分层的目录，里面全是系统调用的相关测试代码+Makefile，结构大致如下： ├── wait4 │   ├── Makefile │   ├── wait401.c │   └── wait402.c ├── waitid │   ├── waitid01 │   │   ├── Makefile │   │   └── waitid01.c │   ├── waitid02 │   │   ├── Makefile │   │   └── waitid02.c ├── waitpid │   │   ├── Makefile │   │   └── waitpid_err_test.c ..... 现在要把这堆系统调用的测试代码移植到各硬件平台和各发行版上，因此要考虑内核版本、glibc版本等等问题。比如说getcpu这个东东只在2.6.19及以后版本中存在并且只有x86_64 and i386架构才可用。而编译这堆系统调用使用的Makefile大致如下： 1 2 3 [......&lt;img src=&quot;http://www1.feedsky.com/t1/405042347/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/when-the-system-call-does-not-exist.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042347/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042347/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=aa473138a9609547fcfa495f21ba3b2e&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=aa473138a9609547fcfa495f21ba3b2e&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description><category>pre define</category><category>makefile</category><category>Programming</category><category>ltp</category><pubDate>Wed, 07 Apr 2010 19:57:58 +0800</pubDate><author>Ant</author><comments>http://www.CasparAnt.com/when-the-system-call-does-not-exist.html#comments</comments><guid isPermaLink="false">http://www.CasparAnt.com/?p=353</guid><dc:creator>Ant</dc:creator><fs:srclink>http://www.CasparAnt.com/when-the-system-call-does-not-exist.html</fs:srclink><fs:srcfeed>http://www.casparant.com/feed</fs:srcfeed><fs:itemid>feedsky/CasparAnt/~6986320/405042347/5070230</fs:itemid></item><item><title>搞定LaTeX Beamer模板</title><link>http://www.CasparAnt.com/know-how-to-make-a-latex-beamer-template.html</link><content:encoded>&lt;div class='fp'&gt;过一段时间公司和学校都得做presentation，所以现在就得好好开始准备slides。以前我就用Beamer做过一次slide，而且是匆匆忙忙用了默认模板搞定的。这次借着再做slides的机会，我得自己搞个模板。&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;需求如下，非常简单：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;1. 要在合适的位置打上Logo（一般是左上角或者右上角）;&lt;br /&gt;
2. 要能自定义页脚&lt;br /&gt;
3. 首页要有背景&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;经过半个白天加一个晚上的折腾，基本上解决了上述问题：&lt;/p&gt;
&lt;p&gt;要打Logo，并且自定义位置，可以使用如下语句：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;latex&quot; style=&quot;font-family:monospace;&quot;&gt; &lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\logo&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\pgfputat&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\pgfxy&lt;/span&gt;(#1,#2)&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\pgfbox&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #C08020; font-weight: normal;&quot;&gt;center,base&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;]{&lt;/span&gt;&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\includegraphics&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #C08020; font-weight: normal;&quot;&gt;height=0.5cm&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;]{&lt;/span&gt;#3&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}}}}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;事先要包含pgf宏包，#1,#2是Logo坐标，#3是Logo路径。关于坐标，我发现用pdflatex编译和用xelatex编译时坐标表示的实际位置是不同的，反正自己手工慢慢调就是了。也可以把上述代码加个\newcommand，做成一个带参数的命令直接调用。&lt;/p&gt;
&lt;p&gt;自定义页脚，我参考了beamer guide和beamer里面的某个宏包的写法：&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-352&quot;&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;latex&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #2C922C; font-style: italic;&quot;&gt;%% Custom footer&lt;/span&gt;
&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\usefoottemplate&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;
    &lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\hbox&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\tinycolouredline&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;structure&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;
    &lt;span style=&quot;color: #C00000; font-weight: normal;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #0000D0; font-weight: normal;&quot;&gt;beamercolorbox&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}[&lt;/span&gt;&lt;span style=&quot;color: #C08020; font-weight: normal;&quot;&gt;wd=0.22&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\paperwidth&lt;/span&gt;,ht=2.4ex,dp=1.2ex,left&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;]{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;author in head/foot&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #2C922C; font-style: italic;&quot;&gt;%&lt;/span&gt;
        &lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\usebeamerfont&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;author in head/foot&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\insertshortauthor&lt;/span&gt;
    &lt;span style=&quot;color: #C00000; font-weight: normal;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000D0; font-weight: normal;&quot;&gt;beamercolorbox&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #2C922C; font-style: italic;&quot;&gt;%&lt;/span&gt;
    &lt;span style=&quot;color: #C00000; font-weight: normal;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000D0; font-weight: normal;&quot;&gt;beamercolorbox&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}[&lt;/span&gt;&lt;span style=&quot;color: #C08020; font-weight: normal;&quot;&gt;wd=0.5&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\paperwidth&lt;/span&gt;,ht=2.4ex,dp=1.2ex,center&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;]{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;title in head/foot&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #2C922C; font-style: italic;&quot;&gt;%&lt;/span&gt;
        &lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\usebeamerfont&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;title in head/foot&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\insertshorttitle&lt;/span&gt;
    &lt;span style=&quot;color: #C00000; font-weight: normal;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000D0; font-weight: normal;&quot;&gt;beamercolorbox&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #2C922C; font-style: italic;&quot;&gt;%&lt;/span&gt;
    &lt;span style=&quot;color: #C00000; font-weight: normal;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000D0; font-weight: normal;&quot;&gt;beamercolorbox&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}[&lt;/span&gt;&lt;span style=&quot;color: #C08020; font-weight: normal;&quot;&gt;wd=0.28&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\paperwidth&lt;/span&gt;,ht=2.4ex,dp=1.2ex,right&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;]{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;date in head/foot&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #2C922C; font-style: italic;&quot;&gt;%&lt;/span&gt;
        &lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\usebeamerfont&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;date in head/foot&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\insertshortdate&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;}&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\hspace*&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;0.8em&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;
        &lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\insertframenumber&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;} / &lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\inserttotalframenumber&lt;/span&gt;&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\hspace*&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;4.5ex&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;
    &lt;span style=&quot;color: #C00000; font-weight: normal;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000D0; font-weight: normal;&quot;&gt;beamercolorbox&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}}}&lt;/span&gt;&lt;span style=&quot;color: #2C922C; font-style: italic;&quot;&gt;%&lt;/span&gt;
&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;需要说明的是，我始终搞不懂\tinycolouredline的第一个参数structure还能用什么代替，而且上述方案有个及其大的BUG，在页脚最左边的那列的左边有1em的空白，如果要给这列填充了和那个空白区与不一样的背景色，就会很难看。我也没找到消除那列空白的代码。&lt;/p&gt;
&lt;p&gt;首页加背景就太简单了，我直接用wallpaper宏包，然后在第一页加入：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;latex&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\ThisCenterWallPaper&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;inc/cover&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;不管是加Logo也好，加墙纸也好，它们都很容易被colortheme中定义的背景色覆盖，这可以通过\setbeamercolor来去掉背景色，基本语法如下：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;latex&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\setbeamercolor&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;background canvas&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;bg=&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;
&lt;span style=&quot;color: #800000; font-weight: normal;&quot;&gt;\setbeamercolor&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}{&lt;/span&gt;&lt;span style=&quot;color: #2020C0; font-weight: normal;&quot;&gt;fg=black, bg=lightgray!80!white&lt;/span&gt;&lt;span style=&quot;color: #E02020; &quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;最后放出模板，&lt;a href=&quot;https://docs.google.com/leaf?id=0B-GDvj9JsmanZjUzZDI4M2MtYzE3MS00YTNjLWEyZjUtYjFhMzY5MzY5NWVi&amp;#038;hl=zh_CN&quot;&gt;点此下载&gt;&gt;&gt;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;
	&lt;h4&gt;Tags&lt;/h4&gt;&lt;a href=&quot;http://www.CasparAnt.com/tag/latex&quot; title=&quot;Latex&quot; rel=&quot;tag&quot;&gt;Latex&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/footer&quot; title=&quot;footer&quot; rel=&quot;tag&quot;&gt;footer&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/beamer&quot; title=&quot;beamer&quot; rel=&quot;tag&quot;&gt;beamer&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/logo&quot; title=&quot;logo&quot; rel=&quot;tag&quot;&gt;logo&lt;/a&gt;, &lt;a href=&quot;http://www.CasparAnt.com/tag/template&quot; title=&quot;template&quot; rel=&quot;tag&quot;&gt;template&lt;/a&gt;

	&lt;h4&gt;Related Posts&lt;/h4&gt;
	&lt;ul class=&quot;st-related-posts&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/latex-resume-templates.html&quot; title=&quot;LaTeX Resume Templates (2009年04月23日)&quot;&gt;LaTeX Resume Templates&lt;/a&gt; (5)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/xetex-makes-cjk-and-fonts-easier-to-use.html&quot; title=&quot;使用XeTeX，CJK无忧，字体无忧 (2009年04月22日)&quot;&gt;使用XeTeX，CJK无忧，字体无忧&lt;/a&gt; (2)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/ya-bupt-thesis-bachelor-1-0-alpha-1-released.html&quot; title=&quot;ya-bupt-thesis-bachelor-1.0-Alpha-1 Released (2010年05月16日)&quot;&gt;ya-bupt-thesis-bachelor-1.0-Alpha-1 Released&lt;/a&gt; (3)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.CasparAnt.com/using-latex.html&quot; title=&quot;开始学习LaTeX (2008年04月7日)&quot;&gt;开始学习LaTeX&lt;/a&gt; (0)&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/405042348/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/know-how-to-make-a-latex-beamer-template.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042348/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042348/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=a690d9c33b9a93d3314f7759f7b34e9b&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=a690d9c33b9a93d3314f7759f7b34e9b&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.CasparAnt.com/know-how-to-make-a-latex-beamer-template.html/feed</wfw:commentRss><slash:comments>18</slash:comments><description>过一段时间公司和学校都得做presentation，所以现在就得好好开始准备slides。以前我就用Beamer做过一次slide，而且是匆匆忙忙用了默认模板搞定的。这次借着再做slides的机会，我得自己搞个模板。 需求如下，非常简单： 1. 要在合适的位置打上Logo（一般是左上角或者右上角）; 2. 要能自定义页脚 3. 首页要有背景 经过半个白天加一个晚上的折腾，基本上解决了上述问题： 要打Logo，并且自定义位置，可以使用如下语句： \logo{\pgfputat{\pgfxy(#1,#2)}{\pgfbox[center,base]{\includegraphics[height=0.5cm]{#3}}}} 事先要包含pgf宏包，#1,#2是Logo坐标，#3是Logo路径。关于坐标，我发现用pdflatex编译和用xelatex编译时坐标表示的实际位置是不同的，反正自己手工慢慢调就是了。也可以把上述代码加个\newcommand，做成一个带参数的命令直接调用。 自定义页脚，我参考了beamer guide和beamer里面的某个宏包的写法： %% Custom footer \usefoottemplate{ \hbox{\tinycolouredline{structure}{ \begin{beamercolorbox}[wd=0.22\paperwidth,ht=2.4ex,dp...&lt;img src=&quot;http://www1.feedsky.com/t1/405042348/CasparAnt/feedsky/s.gif?r=http://www.CasparAnt.com/know-how-to-make-a-latex-beamer-template.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/CasparAnt/405042348/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/CasparAnt/405042348/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;fsflare&quot;&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/CasparAnt?a=a690d9c33b9a93d3314f7759f7b34e9b&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/CasparAnt?i=a690d9c33b9a93d3314f7759f7b34e9b&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description><category>Latex</category><category>footer</category><category>logo</category><category>beamer</category><category>template</category><category>Programming</category><pubDate>Sat, 03 Apr 2010 17:37:17 +0800</pubDate><author>Ant</author><comments>http://www.CasparAnt.com/know-how-to-make-a-latex-beamer-template.html#comments</comments><guid isPermaLink="false">http://www.CasparAnt.com/?p=352</guid><dc:creator>Ant</dc:creator><fs:srclink>http://www.CasparAnt.com/know-how-to-make-a-latex-beamer-template.html</fs:srclink><fs:srcfeed>http://www.casparant.com/feed</fs:srcfeed><fs:itemid>feedsky/CasparAnt/~6986320/405042348/5070230</fs:itemid></item><item><title>泥房</title><link atom:type="text/html">http://www.flickr.com/photos/ant-veil/4471518721/</link><id xmlns="http://www.w3.org/2005/Atom">tag:flickr.com,2005:/photo/4471518721</id><dc:date.Taken>2010-02-08T15:03:23-08:00</dc:date.Taken><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/people/ant-veil/&quot;&gt;Caspar Zhang&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/ant-veil/4471518721/&quot; title=&quot;泥房&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4011/4471518721_c09967331c_m.jpg&quot; width=&quot;240&quot; height=&quot;161&quot; alt=&quot;泥房&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>Caspar Zhang</name><uri>http://www.flickr.com/people/ant-veil/</uri><flickr:nsid>26039452@N07</flickr:nsid><flickr:buddyicon>http://farm3.static.flickr.com/2189/buddyicons/26039452@N07.jpg?1260633538#26039452@N07</flickr:buddyicon></author><content:encoded>&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/people/ant-veil/&quot;&gt;Caspar Zhang&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/ant-veil/4471518721/&quot; title=&quot;泥房&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4011/4471518721_c09967331c_m.jpg&quot; width=&quot;240&quot; height=&quot;161&quot; alt=&quot;泥房&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><enclosure url="http://farm5.static.flickr.com/4011/4471518721_b42f95f8a4_o.jpg" type="image/jpeg"></enclosure><category domain="http://www.flickr.com/photos/tags/">travel</category><pubDate>Mon, 29 Mar 2010 11:11:23 +0800</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/4471518721</guid><dc:creator>Caspar Zhang</dc:creator><fs:srclink>http://www.flickr.com/photos/ant-veil/4471518721/</fs:srclink><fs:srcfeed>http://api.flickr.com/services/feeds/photos_public.gne?id=26039452@N07&amp;lang=en-us&amp;format=atom</fs:srcfeed><fs:itemid>feedsky/CasparAnt/~7918001/347476956/5070230</fs:itemid><fs:burntype>photo</fs:burntype></item><item><title>Streaming</title><link atom:type="text/html">http://www.flickr.com/photos/ant-veil/4471518713/</link><id xmlns="http://www.w3.org/2005/Atom">tag:flickr.com,2005:/photo/4471518713</id><dc:date.Taken>2010-02-08T13:54:42-08:00</dc:date.Taken><content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/people/ant-veil/&quot;&gt;Caspar Zhang&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/ant-veil/4471518713/&quot; title=&quot;Streaming&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4054/4471518713_f789d723e9_m.jpg&quot; width=&quot;240&quot; height=&quot;161&quot; alt=&quot;Streaming&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content><author xmlns="http://www.w3.org/2005/Atom"><name>Caspar Zhang</name><uri>http://www.flickr.com/people/ant-veil/</uri><flickr:nsid>26039452@N07</flickr:nsid><flickr:buddyicon>http://farm3.static.flickr.com/2189/buddyicons/26039452@N07.jpg?1260633538#26039452@N07</flickr:buddyicon></author><content:encoded>&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/people/ant-veil/&quot;&gt;Caspar Zhang&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/ant-veil/4471518713/&quot; title=&quot;Streaming&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4054/4471518713_f789d723e9_m.jpg&quot; width=&quot;240&quot; height=&quot;161&quot; alt=&quot;Streaming&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><enclosure url="http://farm5.static.flickr.com/4054/4471518713_4552db6aca_o.jpg" type="image/jpeg"></enclosure><category domain="http://www.flickr.com/photos/tags/">travel</category><pubDate>Mon, 29 Mar 2010 11:11:23 +0800</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/4471518713</guid><dc:creator>Caspar Zhang</dc:creator><fs:srclink>http://www.flickr.com/photos/ant-veil/4471518713/</fs:srclink><fs:srcfeed>http://api.flickr.com/services/feeds/photos_public.gne?id=26039452@N07&amp;lang=en-us&amp;format=atom</fs:srcfeed><fs:itemid>feedsky/CasparAnt/~7918001/347476957/5070230</fs:itemid><fs:burntype>photo</fs:burntype></item></channel></rss>