2012年2月27日 星期一

ubuntu 11.10下配置IPV6访问几个常用的被禁网站

在墙外GFWBlog上找到的,记录备忘

1.先装gw6c


jim@jim-laptop:~$ sudo apt-get install gw6c miredo


2.修改ufw配置文件:

jim@jim-laptop:~$ sudo gedit /etc/default/ufw

将其中的

IPV6=no

改为

IPV6=yes

3.设置DNS
如果是ADSL之类的拨号上网,需要修改(每次重启后都要改)

jim@jim-laptop:~$ sudo gedit /etc/resolv.conf

添加DNS

nameserver 8.8.8.8
nameserver 8.8.8.4


如果用的是路由器拨号上网,可以在路由器后台管理页面里设置路由器DNS(这是一劳永逸的)

4.修改host文件

jim@jim-laptop:~$ sudo gedit /etc/hosts

文件可以在这里下载
ipV6hosts.txt

5.重启网络

jim@jim-laptop:~$ sudo /etc/init.d/networking restart
[sudo] password for jim:
* Reconfiguring network interfaces... [ OK ]


6.最后测试一下

jim@jim-laptop:~$ ping6 www.youtube.com
PING www.youtube.com(services.google.com) 56 data bytes
64 bytes from services.google.com: icmp_seq=1 ttl=57 time=553 ms
64 bytes from services.google.com: icmp_seq=2 ttl=57 time=609 ms
^C
--- www.youtube.com ping statistics ---
3 packets transmitted, 2 received, 33% packet loss, time 2001ms
rtt min/avg/max/mdev = 553.040/581.214/609.389/28.184 ms

ok,youtube通了。

2012年2月25日 星期六

装上ubuntu 11.10后的体会

这几天重做了系统,把原来gnome2界面的ubuntu 10.10换成了ubuntu 11.10。

新的界面还真不太适应。

试用了几小时,有了点体会


1.因为全局菜单的原因,可显示内从区域比gnome2大了很多,显示的内容更多了。
2.没有了主菜单还是挺不适应的。
3.速度比以前慢了很多,简直无法忍受,也许是因为电脑太老了,该升级换代的缘故。


还是喜欢gnome2,起码比较快。

2012年2月24日 星期五

ubuntu 11.10装了黑屏,附解决办法

笔者笔记本是Lenovo E390,比较老的一款笔记本。
使用ubuntu 11.10 liveusb启动时live ubuntu后黑屏。

具体表现是


1.笔记本电池灯处于充电状态,即使把电池卸下仍然如此。
2.屏幕虽然是黑的,但仔细看实际上屏幕上是可以看到显示图像的,给我的感觉更像是屏幕背光给关掉了。
3.按下ctrl+alt+f1也是什么都看不到(问题同2)


在grub启动参数中增加了acpi=off参数后可以正常启动,但是安装到电脑硬盘上后ubuntu 11.10启动后仍然黑屏。而在较低版本的ubuntu 10.10和11.04中没有问题。

经过笔者反复测试,发现是因为ubuntu 11.10默认使用对是3.0.0-16内核,这个内核启用的ACPI模块(高级电源管理)和部分bios兼容对不好(这样说或许不准确,应该是部分电脑对bios不符合标准,而ACPI模块是基于标准的,所以才出现了这个问题)。
解决的办法:

1.使用稍低的2.x.x.x内核。
2.在grub启动项中增加参数noapic nolapic acpi=off,关闭acpi特性。
3.打上一个ACPI补丁(好像网上有牛人作了不同bios的标准acpi补丁,可以解决此问题,我没试过)

需要注意的是

1.此问题在所有使用了3.0.x内核的linux上都存在
2.在grub增加参数noapic nolapic acpi=off后可能造成主板集成网卡不工作,但是PCMIC网卡是可以工作的。


如果你装了ubuntu 11.04,升级安装后建议不要清除旧版本内核,这样如果出现黑屏,你仍然可以使用旧版本内核启动系统。

2012年2月21日 星期二

本人的linux 分区方案

这几天准备把用了很久的ubuntu 10.10换成xubuntu11.10,计划把分区重新整一下
硬盘是640G,实际可用容量是596.17G

目前的分区是这样的


/dev/sda6 188G 18G 161G 10% /
/dev/sda1 229M 33M 185M 15% /boot
/dev/sda7 397G 276G 102G 73% /home


其中/dev/sda7是个加密分区,基本上所有的代码,文档,资料,电影,游戏都在这个分区。

每次重装都得弄个移动硬盘来回倒腾数据,光倒腾数据就得花个一两天,准备把分区调整成下面的样子


/ 100G左右,我不是很喜欢把/usr,/var分成单独的分区,个人用也不需要太多讲究。
/home 加密分区,大约180G,用来存放程序和版本控制文件和vmdk文件,一个160G移动硬盘就能备份出来
/data 其余的大部分容量用来存放电影,游戏,软件、电子书之类的低安全性的内容
还有一部分空间就分给/swap和/boot分区


这样分区的好处是

1.安全性比较合理,只加密需要加密的内容,对于安全性较低的东西就不加密了。
2.性能有保证,因为加密/解密是对性能有损失的
3.重装机器只需要备份/home分区的内容就可以了,其余内容不需要备份,只要在重装时不格式化就可以了,这样重装系统更省事。

2012年2月16日 星期四

InstantObjects组件不好用,建议不要用

InstantObjects是一个Delphi下的开源ORM组件,类似java中的hibernate。

先前做过一个小项目,为了图省事就用了这个东东,在设计阶段和开发阶段效率非常高,我对它也很满意,随着项目开发完成,进入维护阶段后,问题就逐渐暴露出来了

问题如下


1.貌似字段都是null,再怎么设置都不管用,难以进行性能优化
2.设置了对象和对象的引用关系,数据库中没有建立外键约束。
3.只对sqlserver和interbase支持的比较好,对其余的数据库支持的较差,不要以为通过ADO+ODBC的方式可以支持别的数据库,本人做过这方面的尝试,当时是通过ADO+ODBC访问mysql,结果遇到了问题,最后还是换成了sqlserver。具体什么问题时间太久记不得了,没有试过BDE,不好评价。


以上几个问题限制了对数据库的选择,并且让你很难优化数据表,如果数据量大了的话,查询会变得其慢无比。

结论是,如果很小的项目或者是为原型产品提供数据支持,用用也无妨,如果正式上线后数据量会超过2000,最好就不要用它了。

2012年2月15日 星期三

blogger的新界面不好用

前几天体验了一下blogger的新界面,整体风格变得很漂亮,功能也增强了,但是原来很好用的自动追加换行的功能没有了。

像是我喜欢在html状态输入代码的blogger来说,非常不方便,什么渠道可以反应一下?

2012年2月14日 星期二

为S3C2401交叉编译ssh

去年前写的一篇嵌入式arm-linux开发板设备上交叉编译ssh的文章,因为当时被墙就扔一边了,今天找出来了,放博客上备忘。

手头有块这块开发板只支持telnet但不支持ssh,决定编译一个。
网上有不少介绍如何交叉编译的文章,本人照方抓药,成功编译运行。我参考的是ctbinzi的文章 将Open SSH Server 移植到ARM Linux成功,ctbinzi的这篇文章写的详细无比,特此向他表示感谢。

不过在最后ssh连接的时候遇到了点小麻烦,记下来备忘。
环境


os : Linux Industech 2.6.21.5-cfs-v19 #177 Sat Nov 6 13:18:50 CST 2010 armv5tejl unknown
开发板型号:S3C2401
gcc : arm-linux-gcc4.2.2
zlib: zlib-1.2.5
openssl : openssl-1.0.0c
openssh : openssh-5.6p1


在交叉编译之前一定要先把交叉编译环境准备好。
1.准备编译环境
1.1.下载源码
需要的源码可以在下面下载到
libz:http://www.zlib.net/
openssl:http://www.openssl.org/source
openssh:http://www.openssh.com/portable.html
1.2.准备编译目录
工程目录:/home/jim/source/c/arm-linux-eabi-sdk/env/openssh (所有的源码、输出文件都在这里)
编译的库目录:/home/jim/source/c/arm-linux-eabi-sdk/env/openssh(编译的中间库,比如zlib,openssl)
输出目录:/home/jim/source/c/arm-linux-eabi-sdk/env/bin(最终的输出文件)

为了表示方便,工程目录用<openssh_home>表示

2.编译zlib-1.2.5
将压缩包解压到
<openssh_home>/source/zlib-1.2.5


jim@jim-laptop:~ /source/c/arm-linux-eabi-sdk/env/openssh/source/zlib-1.2.5$ ./configure --prefix=/work/ssh/install/zlib-1.2.3

jim@jim-laptop:~ chmod 775

jim@jim-laptop:~ ./configure --host=arm-9tdmi-linux-gnu --with-libs --with-zlib=/work/ssh/install/zlib-1.2.3
--with-ssl-dir=/work/ssh/install/openssl-0.9.8e
--disable-etc-default-login CC=arm-9tdmi-linux-gnu-gcc AR=arm-9tdmi-linux-gnu-ar

jim@jim-laptop:~ ./configure --host=arm-9tdmi-linux-gnu --with-libs --with-zlib=/work/ssh/install/zlib-1.2.3 --with-ssl-dir=/work/ssh/install/openssl-0.9.8e --disable-etc-default-login CC=arm-9tdmi-linux-gnu-gcc AR=arm-9tdmi-linux-gnu-ar

//注意:openssh不需要make

jim@jim-laptop:~ ./configure --host=arm-unknown-linux-gnu --with-zlib=/home/jim/source/c/arm-linux-eabi-sdk/env/openssh/install/zlib-1.2.5 --with-ssl-dir=/home/jim/source/c/arm-linux-eabi-sdk/env/openssh/install/openssl-1.0.0c --disable-etc-default-login CC=arm-unknown-linux-gnueabi-gcc-4.2.2 AR=arm-unknown-linux-gnueabi-ar

moduli ssh_config sshd_config ssh_host_dsa_key ssh_host_dsa_key.pub ssh_host_key ssh_host_key.pub ssh_host_rsa_key ssh_host_rsa_key.pub 拷贝到目标板 /usr/local/etc

ssh-keygen -t rsa1 -f ssh_host_key -N ""
ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
ssh-keygen -t dsa -f ssh_host_dsa_key -N ""



将主机上 /etc/目下的 passwd, shadow, group 三个文件copy到目标板的 /etc目录下, 同时记得将passwd的最后 /bin/bash 该为 /bin/sh 其实可以删除不需要的一些用户。
注意:前提条件是主机上用OpenSSH服务器,加入没有OpenSSH服务器,passwd文件里面没有sshd用户记录也是没用的,建议手动添加sshd用户