We read the world wrong and say that it deceives us.
标签类目:Linux
2011 - 10 - 08技术宅男

没有评论
402 views

Ubuntu 10.10安装Vmware Tools

VMware

      Kaisir的部落格是部署在Ubuntu 10.10之上的,而这个Ubuntu又是安装在Vmware Server 2.0之上的,一直觉得网页访问起来有些慢(难道因为校园网网速问题?)今天通过探针一查,发现虚拟出来的这个Ubuntu的eth0流量及虚拟机的内存占用都很大,于是登录Vmware控制台查看,发现运行这么长时间以来虚拟机上竟然没有安装Vmware Tools,于是挂载Vmware Tools,安装,安装过程是需要Linux内核源码的,可是所有的源码都在,可是依然编译不成功,查询了网络上的资料,有说安装的包不全,有说需要做几个软连接,可是尝试下来,都没有成功,最后终于在某国外站点上找到一篇日志,他提到了Open-Vm-Tools,大体讲因为Linux发行版众多,Vmware没有办法一一涵盖这些发行版,于是就有了这样一个小组,来提供编译好之后的Vmware Tools(以及源代码包),在Ubuntu下的使用方法很简单,用apt-get install 安装完成就好了,只需要执行下面两个命令:

   1: apt-get install --no-install-recommends open-vm-dkms

   2: apt-get install open-vm-tools

然后,reboot 你的Ubuntu , All Done.

Linux下自动ping指定ip,若出错自动重启网卡的脚本

某台服务器网卡总是莫名其妙的down掉,每次down掉总要下机房手动重启网卡,很是麻烦,对于Kaisir这样的懒人,怎么能允许这种事情发生呢?于是,就有了下面的脚本,系统尝试ping指定ip5次,若出错就显示出错信息并执行重启网卡的命令。

在这个例子中,符号“2>&1”表示“将标准错误发送至标准输出被重定向的任何位置。关于这种重定向的用法,可点击这里

#!/bin/sh
if ! ping -c 5 192.168.56.1 > /dev/null 2>&1
then
echo "The network is down! Now try restarting!" |  service network restart
fi

当然,仅仅有了这些代码还不够,我们需要他能定时执行,这里大家一定能想到corntab命令,这里就不用我多费口舌了吧 :)

自动词法分析器,LEX

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

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

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

%{
#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 word\n",yytext);
}
{num} {
printf("%d 行  ",lineno);
printf("%s	NUM\n",yytext);
}
","|";"|"("|")"|"+"|"-"|"*"|"/"|"=="|"<="|">="|"!="|"=" {printf("%d 行  ",lineno);
printf("%s	special symbol\n",yytext);
}
{id} {printf("%d 行  ",lineno);
printf("%s	ID\n",yytext);
}
{error_id} {printf("%d 行  ",lineno);
printf("error:	%s\n",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();
}

在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
}

2011 - 03 - 15技术宅男

没有评论
2,134 views

Ubuntu Server下建立VPN服务器

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

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

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

sudo apt-get install pptpd

嘿嘿 这样就搞定了,接下来的是一些配置,我们需要改三个文件,分别为: 继续阅读 »

安装Fedora出现Section does not end with %%end的解决方案

今天在Vmware虚拟机中安装Fedora,结果出现了“Section does not end with %%end”这个错误,如下图:

放狗搜了下,发现出现这个错误的原因竟然是我使用了Vmware的向导来安装Fedora。既然如此解决方法也便知道啦!

方法一:不使用Vmware自带的操作系统安装向导

方法二:将自动安装自己添加的光驱删掉,然后从头启动安装,如下图:

近期关于ARM学习的一点计划

前一阵入手了一块友善之臂的Mini6410开发板(基于ARM11),但我一直在忙着考试,没有时间把玩这块开发板,在今天汇编考试结束后,距离下次考试难得获得了一个一周的假期,嘿嘿,终于可以的空好好玩玩嵌入式开发了:)

不知道是从什么时候养成的习惯,我做事不喜欢没有计划了,现在做事之前一般先列一个List,之后再一步一步的去做。今天在这里,我就把我的计划来列一下。

1)移植Linux linux-2.6.36.2 到目标开发板。

2)移植文件系统(yaffs2)到目标开发板。

3)完善其他驱动,自己尝试写键盘驱动。

当然,按照惯例,我还是会把在把玩开发板过程中的方法、心得体会都记录在这个部落格里 :) 嘿嘿 话不多说,Let’S Go !!

当然,如果有哪位童鞋、朋友看了有兴趣,可以随时联系我,我们一起玩ARM哈!!

2010 - 12 - 14分享心得

3条评论
438 views

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

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

#linux打开友善之臂论坛方法
sudo vim /etc/sysctl.conf //在这个文件最下面加入下面这行
net.ipv4.tcp_rmem = 4096 87380 174760
 
#然后执行
sudo sysctl -p
#即可
2010 - 12 - 01胡思乱想

2条评论
489 views

Debian Vs ReadHat

甲:我觉得rh好,有rpm
乙:我觉得debain好,有deb

甲:我觉得rh好,比较稳定
乙:我觉得debain好,真的稳定谁比得过debain

甲:我觉得rh好,有fedora当小白,久经考验
乙:我觉得debain好,有ubuntu这么优秀的发行版

甲:我觉得rh好,没软件一个yum就搞定了
乙:我觉得debain好,你的那个yum跟apt差远了

甲:我看你就知道apt
乙:你他妈的别乱叫

甲:你丫有病啊
乙:nnd,打你丫的

迅雷下载到99.9%出错的另一种解决方案

这几天一直开着电脑想要把Fedora-14-x86_64-DVD版本给拖回来,于是趁大家都去上课的时候挂着狂下,这不,都下载了1天多,终于下载到99.9%了,可是继续挂着,虽然有速度,有资源,但是进度条就是不往前走了。而且我还用离线下载把这个文件给下载到迅雷服务器上了,而他就是死活不用那个资源下,无奈,想强制更改下载链接,把我这个在电驴的地址(ED2K)弄成离线下载的地址。网上查了查,有人说了普通http方式下载进行“乾坤大挪移”的方法,但是只字没提电驴用迅雷下不下来怎么换到其他软件继续下。很无语,只好自己动手咯。

起初更换迅雷离线下载服务器的想法被否决了。于是只好从别的地方下手了,幸好我找到了这个版本的BT种子(点此下载),既然有了种子我就又了另外一个想法,我可以把迅雷那个下载到99.9%的文件扔到BT下载软件中,让他进行散列检验,这样就能把出错的部分查找出来,然后用这个BT种子中的资源继续下载。嘿嘿,说干就干,把迅雷给临时文件加的扩展名去掉,只留下ISO,之后打开uTorrent,把种子加进去,下载地址指向刚才改名的那文件,点确定,嘿嘿,看到uTorrent很勤奋的开始散列检验了,1%,2%……最终停在了99.1%的位置上,之后开始下载,嘿嘿 Bingo,下载完成,至此,迅雷完成不了的电驴(eMule)资源,成功的被我用BT资源继续下载~~

嘿嘿 我要开始我的 Fedora之旅咯~~

2010 - 04 - 13技术宅男

6条评论
949 views

在RHEL上安装apt-get

还在搞P2V,昨天30多G的数据不知道拷贝到几点,反正我睡了~~嘿嘿…今天早上30多G的Tar又解了不知道多长时间~~反正我忙完手头的事情,他就解压缩完成了~~吼吼~~
配置不算很顺利,很多Linux必须的包都没有安装,以前玩Ubuntu,现在搞RHEL还真的有些不习惯~没有了apt-get,连tasksel的用法也变得不一样~~甚至连ipkg都没有~~哎哎 只好查了一下资料,找到了apt-get的安装方法~~~毕竟我大部分时间都不在机房的,那里噪音&辐射都很可观~~所以shell还是王道啊~~哈哈~~apt-get这种小工具可以极大的提高我的效率~~嘻嘻~~特将安装方法记录于下:

>>wget http://dag.wieers.com/packages/apt/apt-0.5.15lorg3.1-4.el4.rf.i386.rpm
>>rpm -ivh apt-0.5.15lorg3.1-4.el4.rf.i386.rpm
>>wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.4-1.el4.rf.i386.rpm
>>rpm -Uvh rpmforge-release-0.3.4-1.el4.rf.i386.rpm

Enjoy~~

返回顶部