搜索此博客

显示标签为“Linux”的博文。显示所有博文
显示标签为“Linux”的博文。显示所有博文

2011年7月17日星期日

X41任务之Reloaded

草稿
1. dock/undock
  ultrabase
    /sys/module/acpi/parameters/immediate_undock
    /etc/modprobe.d/myfilename.conf - options dock immediate_undock=0
  ultrabay
usb devices
2. suspend to disk
dock/undock when suspended
3. wireless sometimes assign to eth0 (done)
 udev rules
4. xdg-open
5. picasa 3.8 for linux (done)
 use wine version
6. ... ...

2011年5月29日星期日

Linux世界地图,付翻译


红冠联邦 (Redhat)
移根山 (chroot)
GPL海
RPM海峡
摩比邻联邦 (Moblin)
牛洋 (GNU)
飞渡拉独立共和国 (Fedora)
米果岛 (Meego)
斯拉奎王国 (Slackware)
油泥地 (Unity)
圣徒西亚 (CentOS)
安卓海
克兰邦公国 (CrunchBangLinux)
科学群岛
林纳斯湾
范海 (Canonical)
大编 (Compile)
亚科兰 (Arch)
法轮湾 (ChakraLinux)
泯涕之地 (Mint)
哥诺母山 (Gnome)
大乌斑图共产帝国
迷途大漠 (Noob)
真途禁地 (Gentoo)
晋权角 (sudo)
沙巴永海 (SabayonLinux)
曼垂沃兰 (Mandrival)
PCLINUXOS海
朱斑提亚 (Xubuntu)
马克群岛 (?)
福斯海峡 (?)
德宾共和国 (Debian)
酷斑图斯坦 (Kubuntu)
太阴斯坦 (MoonOS)
蜥蜴岛 (Gecko)
素子湖 (SuSE)
KDE海
吧嗒斯坦 (PardusLinux)
平盖斯坦 (PinguyOS)
初之邦 (ElementaryOS)
尊德罗斯圣国 (Xandros)
麦比西亚 (MepisLinux)
斯托曼海

2011年1月16日星期日

Picasa 3.8 for Linux

作为一个习惯把一切都托付给Google的网民(这不是什么明智的选择,我知道,但是已经习惯了),我能容许自己错过Picasa吗?然而时至今日,Picasa for Linux最高版本依然是3.0 beta。Windows版已经是3.8了啊。我想用Picasa for Linux,而且我想用3.8。3.8比3.0有什么新功能吗?不知道,肯定是有的吧?
Picasa for Linux并不是原生Linux程序,她是Wine的。那我Wine一个3.8的P4W再拿整个目录覆盖掉P4L的不久行了吗?说起来简单,实际上么,好像也就这么简单。那么我直接用Wine的P4W不就行了,有什么不同?不知道,我就是没想那么用。

  1. 下载P4W 3.8,装上
  2. 下载P4L 3.0 beta,装上
  3. cp -r ~/.wine/drive_c/Program Files/Google/Picasa3 ~/.google/picasa/3.0/drive_c/Program\ Files/Google/
妥了,跑下看看吧。好么?不好,没汉字!P4L带了一个字体配置工具,只要配置一下字体Link就行了。给Tahoma加一个中文字体的Link。看看,好了吧。
常用的功能都没有啥问题。位置标签不能用,打开会死。kill掉Picasa.exe,重新再起动,依然死。解决方案:
  1. 打开~/.google/picasa/3.0/user.reg,搜索active_metadata_tab。
  2. 把该行等号后面的引号里面的内容清空。存退。
  3. 妥了
这回真妥了。真妥了?毛病肯定是有的,不然官方为什么不出呢,既然这么简单?

2010年12月23日星期四

X41装完Ubuntu后必装软件备忘

排名不分先后
  • aptitude
  • tp-smapi-dkms
  • chromium
  • picasa
  • wine
  • vim
  • w32codec
  • gpointing-device-settings
  • amule
不定期更新中……

2009年10月15日星期四

[Thinkpad X41/Ubuntu Karmic/2.6.31 kernel]破解WEP,失败

下载


在网上下载了ieee80211-1.2.18、ipw2200-1.2.1以及他们的inject patch。

编译


sudo make;
sudo make install

编译时出现了问题,说struct net_device没有叫做hard_start_xmit的成员。调查了一下,原来这个东西在我用的2.6.31内核上已经换了地方了。
struct net_device
{
……
const struct net_device_ops *netdev_ops;
//现在那个hard_start_xmit在这个成员里
……
};

struct net_device_ops
{
……
netdev_tx_t (*ndo_start_xmit) (struct sk_buff *skb, struct net_device *dev);
//而且还改了名字
……
};

ieee80211和ipw2200的source里边有很多类似的地方,原来struct net_device里面的东西,现在又封装了一层。

改好了以后还是不过,这回说有个的东西叫proc_net没有定义。网上搜了一下据说要改成init_net.proc_net。一样还是有多处。

再编译还是不过,这回是SET_MODULE_OWNER没有定义。网上说直接干掉。

OK了这回。

破解


据说关键在于要让网卡在key off状态下保持与AP的关联。
sudo modprob –r ipw2200
sudo modprob ipw2200 rtap_iface=1 channel=[CHANNEL]

sudo iwconfig [ethX] essid [ESSID] key [s:ANY-KEY] mode managed
sleep 3
sudo iwconfig [ethX] key off

sudo airodum-ng --ivs -c [CHANNEL] -i [rtapX] -w [CAP_FILE]

sudo aireplay-ng -3 -b [BSSID] -h [MAC] -i [rtapX] [ethX]

sudo aircrack-ng [CAP_FILE]*

好像依然不能注入攻击。一个AP抓不到IVS,另一个20小时才两万。

2009年8月7日星期五

Dos/Mac文本文件转换成Unix格式

sed –e'$!s/\r$//g' –e's/\r/\n/g' -i filename

有个问题,Dos格式转换完最后一行会有两个“\n”。如果去掉“$!”的话,Mac格式就有问题了,最后一行没有“\n”。

2009年7月26日星期日

X41任务2——充电控制和HDAPS(内核模块编译)

一、编译内核模块:

下载tp-smapi-source,Jaunty源里的比较旧了,俺用karmic的包。然后编译:

sudo apt-get install module-assistant
export HDAPS=1
sudo m-a -t a-i tp-smapi
sudo modprobe tp_smapi
sudo modprobe hdaps

这时候看syslog应该能看到有关smapi和hdaps的内容了。


二、电池阀


下面的命令需要root权限。
echo 50 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
echo 80 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh

还是sysfs,我爱sysfs。


三、HDAPS


sudo apt-get install hdaps-utils hdapsd

hdaps-utils用来看加速传感器是否工作了,运行“$ hdaps-gl”可以看到动画效果。然后就是启动hdapsd,结果他说什么什么unload_head文件不能写?研究中。要调整一些参数的话,可以以root身份编辑/etc/default/hdapsd。


三、下一个任务


下一个任务是“底座热插拔”。

2009年7月21日星期二

X41任务1——Track Point(HAL与sysfs)

一、滚动


新的发行版,比如说Ubuntu 8.10和Fedora 10已经开始使用udev和HAL来配置输入设备了,不再需要修改xorg.conf了。以root身份创建“/etc/hal/fdi/policy/mouse-wheel.fdi”:
 <match key="info.product" string="TPPS/2 IBM TrackPoint">
<merge key="input.x11_options.EmulateWheel" type="string">true</merge>
<merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
<merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
<merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
<merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
<merge key="input.x11_options.EmulateWheelTimeout" type="string">200</merge>
</match>

立即生效,重启就没了。装了sysfsutils的话就可以每次重启都配置一次。其他的设定:






















































































Name Type Default Notes
sensitivityInteger128Sensitivity
speedInteger97Cursor speed
inertiaInteger6Described as "negative inertia." It acts more like friction. High values cause the cursor to snap backward when the Trackpoint is released
reachInteger10Backup for Z-axis press
draghysInteger255Drag hysteresis (how hard it is to drag with Z-axis pressed)
mindragInteger20Minimum amount of force needed to trigger dragging
threshInteger8Minimum value for a Z-axis press
upthreshInteger255Used to generate a 'click' on Z-axis
ztimeInteger38How sharp of a press
jenksInteger135Minimum curvature for double click
press_to_selectBoolean0Press to select
skipbackBoolean0Supress movement after drag release
ext_devBoolean0Disable external device

2009年7月14日星期二

用 split 命令分割文件

今天看了个syslog,40M的gz,用vim愣是打不开。俺的内存是1G的啊。用gzip解开,640多MB。网上若干同仁(估计是互相抄的)都说用dd,1次只能拆一段,而且还得自己算偏移量。正常的方法应该用split命令。manpage我就不抄了,写几个例子。

  • split -l 10000 bigfile
  • split -b 10M bigfile
  • zcat bigfile.gz | splite -a 3 -d - BIG

文件名后面的是前缀,-a是后缀,-d表示序号按数字排,默认是字母。-l是按行数分割,-b是按字节数。

“ls *.tmp”是啥意思?

想列出目录里所有“.tmp”结尾的文件,很自然就会想到“ls *.tmp”,觉得ls就是干这个用的。到最近才忽然明白,这样做虽然能达到目(通常情况下),但实际并不是这么回事!

启发我的问题是这样的。当时目录里充满的垃圾文件,我用rm去删除,“rm *.tmp”,但是根本不起作用,shell提示说命令行超长了。bash的命令行最大长度是4096byte。当输入“rm *.tmp”时,bash会先进行通配符展开。把“*.tmp”展开,也就是把所有“.tmp”文件的文件名链接到“rm”后面。一旦文件有多,文件名又长,整个命令行就超标了,bash拒绝接受!

解决问题的方法:

  1. echo *.tmp | xargs rm
  2. find –name '*.tmp' –delete

要注意的是,“rm *.tmp”和“echo *.tmp | xargs rm”不会删除“.tmp”的子目录,删子目录需要“-r”,而find会删除子目录,除非加上“-type f”参数。

对于“echo *.tmp | xargs rm”,我还是有疑问的。难道echo *.tmp就不会有通配符展开的问题了吗?不知道,echo是bash内建的命令,而且反正echo也是把匹配的文件名写出来而已,也许真的不用展开。

好了,现在回到“ls *.tmp”的话题上来。和上面一样,命令执行时先通配符展开——好了,实际上我要做的事情并不是ls做的,而是bash,通配符展开的时候“.tmp”文件就已经被bash找出来了。最终执行的命令应该象是这样“ls 1.tmp 2.tmp 3.tmp … …”。

2009年5月8日星期五

用vino远程共享桌面

如果用VNC server的话,会在远程服务器端新建一个Display,客户端连接接后开始一个新的Session。但是我想要的是把“调试机”当前的Session共享到“业务机”上。Gnome桌面是带这个功能的,叫做vino。但是“调试机”上是IceWM。

vino包含几个部分。vino-preferences、vino-session和/usr/lib/vino/vino-server。前两个不知道干啥用的,可能跟Gnome有关。我只是把/usr/lib/vino/vino-server在“调试机”上运行起来,就可以用vnc-iewer在“业务机”远程连接到“调试机”的当前本地Session(display:0)上了。


Powered by ScribeFire.

2009年4月24日星期五

Vim修改括号内文字的“ci(”

这些命令能以很简单的修改被括号之类的东西包装起来的文字。

  • ci(、ci[、ci{、ci<:修改各种括号内的内容(相当于“f(”再“l”再“ct)”)。
  • ci"、ci'、ci`:修改各种引号内的能容。
  • cit:修改HTML/XML tag 内的内容。

Powered by ScribeFire.

2009年3月31日星期二

用inotify监视Linux文件系统事件

没事写点东西。

用inotify监视Linux文件系统事件
  • 一、引言
  • 二、inotify介绍
  • 三、inotify的用法——inotify C API
  • 四、一个例子
  • 五、inotify的实现原理
  • 六、总结
  • 七、参考资料

PDF:用inotify监视Linux文件系统事件.pdf

文中例子代码:inotify.c

2008年7月16日星期三

Vim的2html脚本

用Vim直接转HTML,很方便。

:runtime! syntax/2html.vim

Windows版要把“/”反过来写成“\”。

2008年7月11日星期五

Vim显示ecpg语法高亮

要使用Vim编写ecpg代码(*.pgc),可以这样做。建立一个名为~/.vim/ftdetect/ecpg.vim的文件,内容如下:


" ecpg
au BufRead,BufNewFile *.pgc set filetype=esqlc

用Cscope帮助Vim浏览代码


  1. 建立cscope.out的脚本makecs.sh,makecs.sh 。

  2. #/bin/bash

    TEMPLATE=cscope.XXXXXX

    if [ -n "$1" ]; then
    cd "$1";

    TEMP_FILE=$(mktemp "$TEMPLATE")
    find -regex '.*\.\([ch]\|[ch][px][px]\|pgc\)' | grep -v '.svn' > "$TEMP_FILE"
    cscope -b -i "$TEMP_FILE"

    rm "$TEMP_FILE"
    else
    echo "makecs <dir>"
    exit 1
    fi

  3. Cscope插件

  4. autoload_cscope,放在./vim/plugin/或者/usr/share/vim/vim70/plugin/。我下的是0.3,78行的“find c”改成了“find s”,在175、176行加入了*.pgc。
  5. 用法

  6. C-] = 查定义

    C-\, s = 查引用

    C-\, c = 查调用