Ubuntu 安装 VMware Tools 报“无法找到kernel header path”的解决方案

(本文转自danieluk的专栏

经测试,本文同样支持Ubuntu 12.04

1. 更新或安装linux headers

sudo apt-get update && sudo apt-get install build-essential linux-headers-$(uname -r)

2. 关联文件,就是因为找不到这个几个文件,vmware tools才认为路径无效的。

cd /lib/modules/$(uname -r)/build/include/linux
sudo ln -s ../generated/utsrelease.h
sudo ln -s ../generated/autoconf.h
sudo ln -s ../generated/uapi/linux/version.h

3. 再次执行安装就ok啦,运行vmware-config-tools.pl 也没问题了

sudo ./vmware-install.pl

解决UBUNTU 虚拟机迁移过程中找不到网卡的故障

这几天一直在忙着ESX下面的虚拟机的迁移,大部分都很顺利,ESX的HA特性决定了他几乎可以在不停机的情况下直接迁移主机跟存储~但是有一台Ubuntu的主机迁移过来之后却认不到网卡,从百度搜索了一下,在“懒人小G的微博”找到了解决方案,现粘贴记录如下:

重启网络报:eth0:ERROR while getting interface flags: No such device

之前重启系统后网络没问题,后来因为做了虚拟机拷贝之后重启系统就找不到网卡了。

原因:

因为直接拷贝虚拟机后,启动系统时会问是copy还是move,选move没事。假如不是选move就会因为网卡mac地址不一样导致系统找不到。

继续阅读“解决UBUNTU 虚拟机迁移过程中找不到网卡的故障”

自动词法分析器,LEX

编译原理作业——编制一个词法分析器。

显然做这个作业有两种途径,
1)自己编
2)google+biadu+others.

昨天Simon童鞋给我说他们让搞lex,好吧那我也正好凑凑热闹,嘿嘿。结果别说,还让我整出来了,lex简单应用语法还是很简单的,附上我的lex源程序,kaisir.l
(我这个wp的代码高亮不支持lex,大家凑合着看吧  我懒……)

[codesyntax lang=”c”]

%{
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
int lineno=1;
%}
letter [A-Z,a-z]
digit [0-9]
id ({letter}|_)({letter}|{digit}|_)*
error_id ({digit})+({letter})+
num {digit}+
whitespace [t]+
enter [n]+
%%
"int"|"if"|"else"|"return"|"void"|"while" {Upper(yytext,yyleng);
printf("%d 行  ",lineno);
printf("%s	reserved wordn",yytext);
}
{num} {
printf("%d 行  ",lineno);
printf("%s	NUMn",yytext);
}
","|";"|"("|")"|"+"|"-"|"*"|"/"|"=="|"<="|">="|"!="|"=" {printf("%d 行  ",lineno);
printf("%s	special symboln",yytext);
}
{id} {printf("%d 行  ",lineno);
printf("%s	IDn",yytext);
}
{error_id} {printf("%d 行  ",lineno);
printf("error:	%sn",yytext);
}
{whitespace} {
}
{enter} {lineno++;
}
%%
Upper(char *s,int l){
int i;
for(i=0;i<l;i++)
{s[i]=toupper(s[i]);}
}
//Main
main(void)
{
  char filename[400];
  printf("file name:");
  scanf("%s",&filename);
  yyin=fopen(filename,"r");
  printf("Starting..n");
  return yylex();
}

[/codesyntax]

在ubuntu下使用

flex kaisir.l

顺利通过,之后使用gcc对flex生存的lex.yy.c进行编译,结果报错如下:

kaisir@Kaisir-ubuntu:~$ gcc -g lex.yy.c -o a.out
test.txt: In function 鈓ain?
test.txt:49: warning: format ?s?expects type 鈉har *? but argument 2 has type 鈉har (*)[400]?
/tmp/ccmK1ARZ.o: In function `yylex’:
/home/kaisir/lex.yy.c:902: undefined reference to `yywrap’
/tmp/ccmK1ARZ.o: In function `input’:
/home/kaisir/lex.yy.c:1237: undefined reference to `yywrap’
collect2: ld returned 1 exit status

大体看了下说是yylex这个函数找不到,baidu了下,编译的时候增加参数“–lfl” 顺利编译通过,写了个Test.C进行词法分析,No Problem!

kaisir@Kaisir-ubuntu:~$ ./a.out hellolex.c
file name:hellolex.c
Starting..
1 行  VOID      reserved word
1 行  main     ID
1 行  ( special symbol
1 行  ) special symbol
{3 行  INT      reserved word
3 行  a        ID
3 行  ; special symbol
4 行  a ID
4 行  = special symbol
4 行  10        NUM
4 行  ; special symbol
5 行  printf    ID
5 行  ( special symbol
5 行  a ID
5 行  ) special symbol
5 行  ; special symbol
}

Ubuntu Server下建立VPN服务器

对于想要在外部访问内部的网络,除了在防火墙上开启相应服务器所对应的端口,最好的方法应该是建立VPN-Server,使得用户可以在外网任何一台计算机上拨入到内网中进行操作,而且VPN可以记录详细的日志,出现问题也便于追查相应的责任人。

我们知道,VPN有很多种,比如Windows Server系列自己就带了VPN服务器,安装配置都非常简单,而今天我要在日志中介绍部署的,是Linux下的VPN-Server,基于PPTP协议。Ubuntu系统是基于Debian构造的一版发行版,交流社区非常活跃,而且因为基于Debian,他自己带的包管理器能很好的处理依赖关系,方便我们安装软件。

其实在Ubuntu下安装VPN-Server是非常非常Easy的,一句话就能搞定:

[codesyntax lang=”bash”]

sudo apt-get install pptpd

[/codesyntax]

嘿嘿 这样就搞定了,接下来的是一些配置,我们需要改三个文件,分别为: 继续阅读“Ubuntu Server下建立VPN服务器”

Ubuntu下部分网站不能正常访问的解决方法

最近在玩嵌入式,购入一块友善之臂的Mini6410,在Ubuntu下进行交叉编译,却发现友善之臂的官方论坛怎么都打不开,搜索了下下,大家都遇到了这个问题,再次搜索,终于找到Ubuntu中文社区pirate310童鞋给出的解决方案:

[codesyntax lang=”bash”]

#linux打开友善之臂论坛方法
sudo vim /etc/sysctl.conf //在这个文件最下面加入下面这行
net.ipv4.tcp_rmem = 4096 87380 174760

#然后执行
sudo sysctl -p
#即可

[/codesyntax]

解决ubuntu下网页打开慢的问题

昨天心血来潮装上了ubuntu10.04 很有纪念意义的一个版本。毕竟版本号跟我的生日是在同一天哈~嘿嘿。可是在这版系统连接网络的时候,我能明显的感觉到很慢。但是一旦建立起连接,下载的速度还是可以接受的。使用火狐浏览网页时发现,连接缓慢时,火狐左下角一直有在显示“Looking up xx.com…. ”或者“ Connecting to xx.com” 由此可以判断出这个版本ubuntu慢的原因是由于域名解析缓慢导致的。使用dig命令进行域名解析,观察返回时间,也充分证明了这个观点。

既然知道了原因,想要解决也变得很简单咯,在本地架设一个DNS Server就好咯,然后设置解析DNS地址为本地。这样可能第一次连接网站时还是缓慢的,但是以后由于可以直接命中本地的缓存,所以应该可以大大加快域名解析的速度。Ok说动手就动手,这里我们使用了一款轻量级的DNS Server——pdnsd,当然,如果你要是有兴趣的话,完全可以使用Bind这样的软件来架设DNS服务器,由于这里并发数不大,我就用轻量级的Server软件好了~~

1.安装

pdnsd已经加入源里了,安装非常简便:
sudo apt-get install pdnsd
安装过程中,它会问你选择何种配置,此处选择manual。

继续阅读“解决ubuntu下网页打开慢的问题”

关于Ubuntu的种种

前几天,Kaisir呆在学校无聊于是溜回了家。这几天算是把Ubuntu给从头到尾折腾了一遍。以前的时候家里的台式机一直跑着WinXP.可是由于家里的台式机有一段历史了(P4 1.7G intel i845主板 512 SDRAM)跑XP开得程序一多就会相当难用。恰好前几天突然觉得Linux下的编程很好玩。于是心一狠,直接就让最新的Ubuntu 9.10代替了XP.

安装的过程虽然是轻车熟路,但也不是一帆风顺。我是通过硬盘安装Ubuntu的,虽然Ubuntu本身提供了一个硬盘…

前几天,Kaisir呆在学校无聊于是溜回了家。这几天算是把Ubuntu给从头到尾折腾了一遍。以前的时候家里的台式机一直跑着WinXP.可是由于家里的台式机有一段历史了(P4 1.7G intel i845主板 512 SDRAM)跑XP开得程序一多就会相当难用。恰好前几天突然觉得Linux下的编程很好玩。于是心一狠,直接就让最新的Ubuntu 9.10代替了XP.

安装的过程虽然是轻车熟路,但也不是一帆风顺。我是通过硬盘安装Ubuntu的,虽然Ubuntu本身提供了一个硬盘安装工具Wubi,但是个人觉得那个安装出来的Ubuntu实在是鸡肋(尤其是硬盘性能…下降不是一点半点)于是便下载了Grub4Dos,让Grub来引导Ubuntu的安装。

方法很简单:
1)将下载的grub解压缩在C盘根目录,然后将下载的Ubuntu镜像复制到D盘根目录。并将镜像中casper目录下的initrd.gz和vmlinuz这两个文件也解压至C盘根目录。
2)编辑C盘根目录的menu.lst(如没有请新建)写入如下内容:

title Install Ubuntu
root (hd0,4)
kernel (hd0,4)/vmlinuz boot=casper iso-scan/filename=/Ubuntu-9.04-desktop-i386.iso ro quiet
splash locale=zh_CN.UTF-8
initrd (hd0,4)/initrd.gz

请注意我文中用红色加粗的文字标出的内容。这些需要按照实际情况进行修改。
小知识:大家知道(hd0,4)的含义么?这个表示的是第一块磁盘的第一个逻辑分区,为什么第一个会从第四个开始呢,因为0-3这四个数表示主分区,而主分区数量最多为四个。所以从4开始表示逻辑分区。

3)编辑C盘根目录的boot.ini,在最后加入

C:grldr=”GRUB”

请注意,boot.ini可能具有系统,隐藏,只读属性。如不能修改,请去掉只读属性再进行修改。

4)重启,会出现启动选单,选择GRUB,之后选择Install Ubuntu,熟悉的Ubuntu LiveCD就出来了~还等什么~快安装吧~~

注意:安装之前请先打开终端,执行 sudo umount -l /isodevice  (千万看好了iso前面的斜杠不要忘记 我在这卡了好一会,最后通过mount命令查看了系统所有的挂载点才找出来的)之后就可以双击桌面的安装进行安装了。还有一点需要说明的是,安装的过程中一定要断网,不然安装过程中系统会自己去网上下载一些语言包及更新,就会使安装过程变得十分漫长….

经过了一段时间的等待~~终于看到Ubuntu的界面了,吼吼~~可是这时候你会发现语言变得很混乱,这个地方是中文,那个地方是英文的。这时候系统也会弹出提示说语言包不完整,让你点Install安装。这时候你可别傻傻的点了哈。不然你所面对的又得是漫长的等待。我们要先更新一下我们的“源”目前在咱们国内,继163.com之后,sohu也开始为ubuntu提供了高速源。更换源的方法如下:

1)打开终端,输入:

sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup 

将我们默认的源列表先备份下,之后输入:

sudo gedit /etc/apt/sources.list

这时候会弹出一个Gedit编辑器。你所需要做的,就是把里面所有的内容都删掉,然后参照我之前的一篇日志Ubuntu 9.10 高速源【转自Wiki@Ubuntu】把里面的内容原封不动的粘贴进编辑器内,保存。然后输入:

sudo apt-get update

刷新软件包。你会发现那速度叫一个快哇~~这时候你再点install安装语言包,能节约数十倍的时间喔~~

我想,这个时候,你的Ubuntu已经比较完美了,我们接下来需要玩一点“眩”的~不知道大家是否对Ubuntu的3D桌面是否有所耳闻。其实启动的方法很简单,在安装好显卡驱动的情况下,只要在“系统–首选项–外观”中找到“视觉效果”,选择“扩展”就OK啦,拖动一下窗口看看~~是不是很有趣 跟果冻一样吧 嘿嘿。。

 899EF11AB71D5F4431B57ACE110456A3

 

接下来我们需要安装三个特效管理器:
compizconfig-settings-manager
emerald
fusion-icon

安装方法很简单,到“系统管理–新立得软件包管理器”中查找安装。安装好后会在“系统–首选项”中多出一个“CompizConfig设置管理器”在里面可以很方便的启用“桌面立方体”“旋转立方体”这样操作完成以后,就可以按住ctrl+alt时拖动鼠标来玩这个桌面立方体了哈~

EE439B5C1B71C3F5F1B8123B11BC4329

不知道大家有没有注意到我的桌面立方体里竟然还有一条条的小鱼,嘿嘿,这也是这个一个插件喔~不过Ubuntu9.10的新立得并没有提供这个包的下载,在这里我给大家提供了哈 : )

compiz-fusion-plugins-unsupported.deb

装好这个包以后,再次去“CompizConfig设置管理器”就可以找到“Cude Atlantis”以及“飞雪”咯~~
启动飞雪,再按Super+F3(Super=Win键)你就会看到桌面上飘落了一朵朵雪花哈~~嘿嘿 是不是很漂亮~?

C17EB67FD3A2730834D50C26DAD9EE54

好了,现在美化基本做完了~~有没有觉得很累?我们听会歌看看电影吧,打开Rhythmbox用它来听歌,它会让你添加你的歌曲文件,添加完成后它会要求你安装相应的解码器,安装就好拉~~一会,动听的歌声便从音箱中飘了出来…(什么,没声音?你开音箱电源没?没?#@¥#%!)

5C99F68E6E4C1661277B411FD45E8B83 

前面不是说到我心血来潮对Linux下的编程感兴趣么,现在我再来说说如何在Ubuntu下编译自己编写的程序。
方法也是简单的很~
1)首先用文本编辑软件编写你的程序,之后保存,这里我假设为test.c
2)打开终端,cd到test.c所在的目录,执行 cc test.c 如果没有错误,则会生成a.out文件
3)使用./a.out来执行,就能看到你的程序的结果啦~这里的a.out文件是二进制文件,CPU可以直接运行喔~~

当然,你也可以安装IDE环境来编写程序,这里我使用了Eclipse For C/C++.一款使用Java编写的IDE.当然,使用他之前需要配置java环境:

1)打开终端,使用 sudo apt-get install sun-java6-jdk 来安装jdk.这个命令的好处在于他会自动安装jre.
2)配置环境变量:
使用命令 sudo gedit /etc/environment 
并在打开的文件中添加两行:
CLASSPATH=.:/usr/lib/jvm/java-6-sun/lib
JAVA_HOME=/usr/lib/jvm/java-6-sun

之后执行Eclipse目录中的Eclipse就可以了哈~~

最后,我想再提及一下Ubuntu下的LAMP环境的搭建,其实那是简单的很哇
一句话:
sudo tasksel install lamp-server

而你如果想安装一些常见的服务器项目,更可以使用
sudo tasksel
进行图形化安装~~
注意:lamp配置好后,wwwroot默认在/var/www/文件夹下

关于Ubuntu更多的种种,可以参考如下网址:
Ubuntu 论坛 http://forum.ubuntu.org.cn
Ubuntu Wiki http://wiki.ubuntu.org.cn

 

Ubuntu 9.10 高速源【转自Wiki@Ubuntu】

Ubuntu高速源

deb http://mirrors.163.com/ubuntu/ jaunty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jaunty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jaunty-updates main…

11月 13日 更新

deb http://mirrors.sohu.com/ubuntu/ karmic main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ karmic-security main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ karmic-updates main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ karmic-proposed main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ karmic-backports main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ karmic main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ karmic-security main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ karmic-updates main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ karmic-proposed main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ karmic-backports main restricted universe multiverse