posts - 8, comments - 7, trackbacks - 0, articles - 64

2006年7月26日

posted @ 2006-07-26 21:40 YGB.Grushy 阅读(290) | 评论 (0)编辑 收藏

2006年6月10日

最近工作比较忙,已好久没更新了。以后争取多写点东西吧。Linux的学习也暂停一段时间吧,因为还有其他更急迫的事情需要做。

posted @ 2006-06-10 13:39 YGB.Grushy 阅读(198) | 评论 (0)编辑 收藏

2006年6月6日

posted @ 2006-06-06 19:52 YGB.Grushy 阅读(223) | 评论 (0)编辑 收藏

2006年4月7日

<LINUX内核情景分析>下载地址
http://www.joyfire.net/compress/linuxqjfx1.pdf
http://www.joyfire.net/compress/linuxqjfx2.pdf

posted @ 2006-04-07 18:54 YGB.Grushy 阅读(422) | 评论 (0)编辑 收藏

2006年1月3日

      要学习嵌入式,首先得要理解Linux的内核,因此这段时间都是在学习Linux内核的过程中,由其是元旦放假的这三天。教材就是《linux内核源代码情景分析》和《Linux内核完全注释-1.9.5》。这是一个必经的过程,没有其它的捷径可走,只能坚持再坚持。然后按照bootloader+device driver+application这条线学习,由其是其中的device driver。就是最牛的嵌入式开发了

posted @ 2006-01-03 16:01 YGB.Grushy 阅读(394) | 评论 (0)编辑 收藏

2005年12月17日

FC4装好后:
第一:如果感觉它自带的字体不爽,可使用Windows下的字体。
    方法见: FC4的中文字体美化
第二:装输入法。
    方法见:Fcitx 3.x在 Fedora core 4的安装和配置,我使用的版本是fcitx-3.1.1.tar.bz2,推荐使用此版本,这是最新稳定版。
第三:配置嵌入式开发环境。可参考 使用SkyEye仿真[转贴]
1.装Skyeye,这个比较有难度。
    到http://gro.clinux.org/projects/skyeye/下载skyeye-20051204.tar.bz2包:
    在FC4下推荐使用skyeye-20051204.tar.bz2,因为它支持gcc-4.x,而 FC4中gcc正是此版本,若用其它版本的首先看它的Readme确定是否支持在gcc-4.x下编译,而kyeye- 20051204.tar.bz2是我发现的目前唯一支持在gcc-4.x下编译的。
    解开此包:
    tar jxvf skyeye-20051204.tar.bz2
    为文件skyeye-v1,进入文件夹里,运行make命令,在binary下生成二进制文件skyeye,此文件便是可执行文件,把该文件的目录地址加入到环境变量PATH里,方法是用户在家目录下的.bashrc 中加入一行
export PATH=$PATH:DIR

或者直接添加链接
ln -s DIR/skyeye /usr/local/bin/skyeye
而/usr/local/bin路径必须存在于PATH环境变量里。
DIR为skyeye的目录路径。
最后就可在有skyeye.conf的目录下运行测试了:
# skyeye -e linux -c skyeye.conf
此命令一定要带 -c skyeye.conf 参数,其它版本或系统或许不用带,但在FC4,以及此版本的skyeye下一定要带,否则在加载的过程中就会停在
Loaded RAM ./initrd.img这一行不动了。
原因:
skyeye的启动命令
然后就可以测试skyeye了,下载skyeye-testsuit-2.0.tar.bz2,解压后直接进到带有skyeye.conf目录里执行skyeye命令就行了。若想测试GUI,则可使用testsuite/2.0/ep7312/ep7312_with_framebuffer_touchscreen_minigui 这个目录中的代码进行测试,前提是要使用startx进到xwindow再执行skyeye命令。
便弹出了一个320x240的窗口,而且那个xwindow的命令窗口里也出现了armlinux的启动界面. 键入/bin/same/same,出现了miniGui启动的提示,但速度很慢,慢慢等吧.N久以后,就可以玩那个游戏了,其实游戏的反应速度也非常慢,没什么好玩的...

2.装arm-elf交叉编译器。
下载arm-elf-tools-20030314.sh
ftp://166.111.68.183/pub/embed/uclinux/soft/tools/arm
或到
ftp://166.111.8.229/OS/Embeded

执行:
chmod a+x arm-elf-tools-20030314.sh
然后:
./arm-elf-tools-20030314.sh

ls /usr/local/bin/

你应能看到以arm-elf开头的可执行文件,其中arm-elf-gcc就是用来编译你目标平台的编译器的,当然还有一些小工具。这些工具以后开发的过程中都会用到。

posted @ 2005-12-17 15:43 YGB.Grushy 阅读(813) | 评论 (0)编辑 收藏

2005年12月14日

时间:12月11日
 
      昨天白天下了一天的FC4-i386-DVD.iso都没下载下来,痛苦呀。害得我到了晚上九点都还呆在公司痛苦的下载中,且连晚饭都还没吃。唉,看来今天是没法下载完了,也太晚了,必须得回去了,肚子又饿。于是我让电脑开着,让它下一个通宵,就不信明天再来他还没下完。然后就很郁闷的离开了。
        昨天公司有培训,所以就起得比较早。今天可什么事都没有,因此早上就自然睡到自然醒了,真痛快。当然,今天最关心的是不知FC4-i386-DVD.iso下完没有,如果下完了,就最好今天就装好,不然明天一上班就又没时间了。所以醒来后就匆忙的洗漱然后直奔公司。
       哈哈,还好,到公司一看,已经下完了,这可是今天遇到的第一件高兴的事。接下来便是安装了。安装很顺利,倒是再设置GRUB for DOS进行引导Linux时遇到了大困难。安装方法见昨天发的《准备安装Linux》此处不再重复,此处主要说一下我遇到的困难以及最后的解决方法。
       由于我使用了GRUB for DOS,因此在安装的过程中就没有选择再安装GRUB(有了GRUB for DOS就没必要再装GRUB了,对于双系统,其中有一个系统是Windows,我由其推荐使用GRUB for DOS。在重装Windows前先备份一下这个GRUB for DOS,当装好后再拷回去,它就能够继续引导Linux。非常方便,不用再担心重装系统后想重新引导Linux而所要做的一切麻烦事了。当然对于高手其实也不麻烦。因此这种方法推荐菜鸟使用。呵呵,说得有点啰唆了),这也给我后面遇到的困难埋下了种子。在分区时,我选的是自动分区。它分出来的区如下所示:
设备       挂载点          类型
hda7                           ext3
hda8     VolGroup00      LVMPV
对于首次接触LVMPV的,可能就看不懂,怎么分的区与以前的不一样了,交换分区,根目录跑哪儿去了。当时我也没注意就继续装下去了。结果到后面我在配置GRUB for DOS的menu.lst时却给我带来了很多麻烦,浪费了大量的时间在上面。我最初的配置如下:
title Run-Fedora Core 4 on (hd0,6)
kernel (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 root=/dev/hda8 ro
initrd (hd0,6)/initrd-2.6.11-1.1369_FC4.img
其实最初我连内核名,以及版本号都没查到。要查内核名就必须要查看(hd0,6)/boot/目录,但现在连Linux都进不去怎么查呢,有两种方法,一种是在Windows用可查看Linux文件的软件去查看,另一种则是重新运行安装程序,它会提示让你去找安装文件在哪儿,这个时候你就可以通过这个进入到(hd0,6)/下去查看了。令我惊讶的是当我进入到(hd0,6)/下进,居然没发现boot目录,而内核文件就直接在(hd0,6)/下。哈哈,这终于让我发现了问题的所在了。真是一举两得,不但找到了内核名,同时也发现了解决问题的希望所在了。问题是出在分区上,此时的分区与以前有点不同了,于是我就开始研究它自动分的区,也研究一下LVMPV是怎么一回事。
      后来通过大量的上网查资料,并不断的配置menu.lst,不断的重启电脑最后终于搞定。
原来交换分区,根目录都包含在VolGroup00里。即VolGroup00下又分为LogVol00和LogVol01,而LogVol00就是根目录,LogVol01就是交换分区所用。而hda7就是/boot,但它却没有挂载在/boot上,因此(hd0,6)下根本就没boot这个目录,所以你叫GRUN去哪里找内核呀。这样搞得通过最初的那个配置怎么也找不到内核,然后后面跟的参数也要因为LVMPV而要改变了。最后正确的配置如下:
title Run-Fedora Core 4 on (hd0,6)
kernel (hd0,6)/vmlinuz-2.6.11-1.1369_FC4 root=/dev/VolGroup00/LogVol00 ro
initrd (hd0,6)/initrd-2.6.11-1.1369_FC4.img
重启,搞定。哈哈,最后剩下的就是在FC4里畅游了。

posted @ 2005-12-14 12:59 YGB.Grushy 阅读(424) | 评论 (0)编辑 收藏

时间:12月10日
 
      今天周末,不用上班,但早上公司要进行培训,没办法,又得要起早了。
      培训从早上九点到中午12点。培训完后,早就饿了,于是便先吃饭再说。既然来了,吃完饭后便决定暂不回宿舍了,就在公司上网,并且这段时间正打算学习嵌入式。那今天就用剩下的时间安装Linux吧。
      首先是选择版本,我选的是FC4,哈哈,刚出的,并且是RedHat的,使用的人也比较多,在网上也比较容易找到相关的资料,所以就决定选它了。选定好之后,就是去下载安装程序,这可是件痛苦的事,光是选择下载的网站都差不多花了一个小时。时间便到了14:00,然后就开始下了。下载速度非常之慢,到现在15:00了,还是在下载中,但也没其他办法,唯一的就只有等待了。
     好了,趁下载等待的这段时间,就先学习一下有关Linux的一些知识,以方便后面的安装,使用,学习。
     首先是Linux下硬盘分区的表示方法:
    

一块硬盘最多可以分成四个主分区,原因是在硬盘的起始引导扇区MBR中只能记录四个分区的信息,其中一个比较让从windows下转过来人容易误解的是扩展分区也是属于一个MBR主记录的分区之一。这也就是说,如果你把一个硬盘分四个主分区,那么就不能分扩展分区了;如果你要分一个扩展分区,那你就只能最多分三个主分区了。

因此,我们只能分四个主分区,并且只有一个分区是活动的,它是系统开机读入MBR之后默认访问的分区,从这个分区的引导扇区读入引导该分区操作系统的信息并引导该系统,但是像LINUX的lilo和GRUB进驻MBR后,MBR的引导方式又多了一种,那就是可以直接指定一个分区,并从中加载指定分区的引导扇区并引导这个分区的操作系统。

顺带说一下扩展分区,众所周知,可以在扩展分区里划分多个逻辑分区。扩展分区的信息由MBR记录,而逻辑分区的信息则是由扩展分区的引导扇区记录的。

这一部分很重要,下面的将重点使用这部分知识:
在LINUX中,硬盘的分区是这样命名.
如果你只有一个硬盘,并把它装在IDE1上,那么你的硬盘名在LINUX中称为hda,在硬盘中的分区规则则是:从1开始划分主分区(注意,这里的主分区包括了扩展分区,下面提到的主分区也是如此理解),比如,你在硬盘里划分了三个主分区,第一个称1,第二个称2,第三个称3,以此类推。那逻辑分区呢?因为一块硬盘只能有四个主分区,那命名规则中把1,2,3,4分给了主分区,那么逻辑分区只能从5开始命名,这就是为什么我们看到逻辑分区总是从5开始的原因了。好了,这样,我们就可以唯一的给我们的硬盘命名了,举个例子,你的第一块硬盘的第一个分区称为hda1,第一块硬盘的第二个分区称为hda2........,第二块硬盘的第一个分区称为hdb1,第三块硬盘的第二个分区称hdc3,以此类推。但是如果你的第一块硬盘分二个区,第二个分区(hda2)是扩展分区,并在扩展分区里分了两个逻辑分区,那么你的命名方式将是这样的:
第一分区为:hda1
第二分区(即扩展分区):hda2
第二分区第一逻辑分区:hda5
第二分区第二逻辑分区:hda6
这时你用fdisk -l,查看分区信息时将会有类似如下显示:
Device Boot Start End Blocks Id System
/dev/hda1 * 1 638 5124703+ 83 Linux
/dev/hda2 639 7476 39560062+ 5 Extended
/dev/hda5 7477 2615 514048+ 82 Linux swap
/dev/hda6 2616 3890 10241406 83 Linux

grub的硬盘命名方式和LINUX中稍微有所不同:
对IDE1主盘,IDE1从盘,IDE2主盘,IDE2从盘命名为hd0,hd1,hd2,hd3,也就是用0-3代替了a-d,对每个硬盘里的分区用也是以0开始的数字代替了原本以1开始的LINUX下的命名,而扩展分区的逻辑分区是从4开始命名的,这样,在LINUX下的命名在GRUB可是要减1了,由上举个例子,第三个硬盘的第二个分区将命名为hd2,1上述的例子中的分区对应如下:
/dev/hda1 ------- (hd0,0)
/dev/hda2 ------- (hd0,1)
/dev/hda5 ------- (hd0,4)
/dev/hda6 ------- (hd0,5)

       然后举一个例子说一下如何安装包含有Linux操作系统的多操作系统安装:

分区考虑:
安装的难点是FreeBSD和WindowsXP都必需要安装在主分区内,这样就需要我们对硬盘的分区有所考虑。
在一块40G的硬盘里作为例子,可以更加的说明问题:
既然FreeBSD和WindowsXP都必须要安装在主分区内,而LINUX可以安装在扩展分区中,也可以安装在主分区中。那么,这意味着我们必须要分至少三个主分区,其中一个为扩展分区,另外两个分区分别给FreeBSD和WindowsXP,扩展分区里的逻辑里安装LINUX。但我不想厚此薄彼,干脆就分四个主分区,其中包括了一个扩展分区,里面分两个逻辑分区,这样,我们的分区方案(以LINUX的命名方式描述)就定下来了:

/dev/hda1 第一主分区
/dev/hda2 第二主分区
/dev/hda3 第三主分区
/dev/hda4 第四主分区(即扩展分区)
/dev/hda5 扩展分区第一逻辑分区
/dev/hda6 扩展分区第二逻辑分区

3.2 对硬盘格式化,使用fdisk进行低级格式化(即常说的分区):
我这里选用Dos下的fdisk,你也可以使用其他的分区工具,比如LINUX下的fdisk,但建议只用一种分区工具对硬盘分区,因为使用多种分区工具的话可能会产生兼容上问题,而使分区表无法使用。你可以根据自己的实际需要划分分区的大小。但有一个比较好的建议是在扩展分区里划分一个小的大约是内存的大小两倍的逻辑分区给LINUX用作SWAP分区,而活动分区随便,不作要求,这全得益于GRUB的引导方式不是只能从活动分区引导操作系统,而是它能定位特定分区并启动该分区的操作系统。这里不打算详细写出分区步骤,这方面的参考资料太多了,用google搜一下,跳出的网页足以让你看上一个星期。(夸张了一点点)

3.3 安装步骤的选择:
可以先安装FreeBSD或是Windows,再安装LINUX,原因是LINUX现在都有自带GRUB的安装,我们要使用GRUB引导三个系统,就可以在最后安装LINUX时把GRUB安装在MBR上,而不会给FreeBSD和Windows的引导程序覆盖掉。在这里我选择先安装FreeBSD.

3.3.1 安装FreeBSD
在FreeBSD下将主分区称为SLICE,命名方式IDE第一块硬盘里的四个主分区称为wd0s1,wd0s 2,wd0s3,wd0s4。
LINUX里的命名方式来述说,把FreeBSD放在/dev/hda1分区里,用光盘安装,插入FreeBSD安装盘,光盘启动之后有一些交互的安装,安装指导请参阅其他相关资料,到了分区界面下时,选择wd0s1安装FreeBSD,然后按T改变这个分区的类型,165是FreeBSD的分区类型FFS的代号,然后按w写入完成,在选择引导程序里,可以选:BOOTMANAGER,最后退出,接下来安装下面的步骤,此处省略。

3.3.2 安装WindowsXP
这个步骤要说明的就是把它安装在第二个主分区,即/dev/hda2中,在分区界面里选择第二个分区,建议使用FAT32格式化该分区,这样可以使LINUX可读可写该分区,用NTFS则在LINUX下不可写入,只能读。下面的安装步骤都不用说了,是地球人都会按NEXT了。

3.3.3 安装LINUX并配置GRUB
这个步骤安装LINUX,安装LINUX的文章更多,有许多非常优秀的文章,如果你还不会安装LINUX,可以先去看这些文章再读本文,我这里只讲一些要点,在分区界面里,把第三个分区,即/dev/hda3用做LINUX的安装分区,同时你在扩展分区里划了准备用作SWAP的分区的话,记得把它一起加上格式化。OK!!,可以了,在下面的步骤里,你要选择把GRUB安装到MBR中,必须要这样做。安装在其他地方是不可以用GRUB来引导的,可能安装这些时GRUB并不能识别你在第一分区的FreeBSD,或者在你硬盘里的其他一些操作系统,不要紧,我们可以对GRUB做一些修改,使它引导这些操作系统。在这里给出在本例中的GRUB配置。
一般来说,Windows是可以被检测到的,但FreeBSD可能会有些问题。

在GRUB的配置中,主要是对/etc/grub.conf作修改:
可能安装好LINUX后的/etc/grub.conf文件和下面的很类似:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,5)
# kernel /boot/vmlinuz-version ro root=/dev/hda6
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,2)/boot/grub/splash.xpm.gz
title Linux (2.4.20-8)
root (hd0,2)
kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/1
initrd /boot/initrd-2.4.20-8.img
title Dos
rootnoverify (hd0,1)
chainloader +1

我对主要的行作一些解释,以#打头的是注释行,可以不用理它。
default=0 是指默认选项是第一个title标记的操作系统将引导,这里是LINUX
timeout=10 指十秒之内用户没有作出选择的话,将以默认的选项操作系统引导
title Linux (2.4.20-8) 这行是title标记,后面的内容在GRUB菜单中被显示
root (hd0,2) 这行是指从哪个分区引导操作系统,即GRUB定位分区操作系统
kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/1 这行是从指定分区中给出内核的路径,以便引导系统
rootnoverify (hd0,1)和chainloader +1表示从特定分区使用链式的引导方式,本例来说即GRUB定位hd0,1这个分区里,找到该分区的操作系统的引导程序,启用它,让它来引导该分区的操作系统。一般来说,windows系列就是这样引导的。

另外我们这里title Dos标记引导的是WindowsXP了。

现在这个40G的硬盘里的三个操作系统可以引导两个了(如果你的WindowsXP不能引导的话,把/etc/grub.conf改成上面类似的样子,再进行下面的步骤);
接下来要修改/etc/grub.conf以使它可以引导FreeBSD,
加入下面的内容到/etc/grub.conf中:
title FreeBSD
rootnoverify (hdx,y)
chainloader +1
要是你理解了上面以Dos为标记的引导块的语句,就不难理解这个FreeBSD的引导块的语句了。上面的意思是定位到hdx,y分区(本例中为hd0,0,这正是我们安装FreeBSD的分区),然后启用该分区的引导程序,由该引导程序来引导FreeBSD。
还有一种方法也可以实现FreeBSD的引导,你也可以尝试一下,但不一定都成功。
加入以下几行至/etc/grub.conf
titile FreeBSD
root(hd0,x,y)
kernel /boot/loader
其中,x为你的FreeBSD的分区,y为FreeBSD/所在的SLICE.

OK!保存修改。如果一切顺利的话,重新启动机器,将看见有三个可选项,LINUX,FreeBSD和Dos,试着进入每个系统,所有配置正确的话将看见每个系统都可以进入。如果你发现有某个系统不能进入,请找到一些GRUB的资料,它将给你详细的指导。

 

下面介绍一下硬盘安装的方法:

1.下载 iso文件:下载的是DVD版本,呵呵,这样就只有一个ISO文件,比较方便。下面是下载地址:

http://mirrors.kernel.org/fedora/core/4/i386/iso/FC4-i386-DVD.iso
放在一个 fat32 或ext3分区上,我是:Windows Xp+ Fedora Core 4 双启动,下载完ISO文件放在一个Fat32分区上(最好不要放在NTFS分区上),然后用 WinRAR 提取ISO文件里的isolinux 目录一个分区上(如:可以在Windows Xp 里面用WINRAR提取 把光盘镜像里 isolinux 目录提取到C:\下)。
2.下载:Grub For Dos :
http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=geninfo&did=3725

解压到C:\下,编辑 boot.ini 文件,加入:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\grldr="GRUB For Dos/Windows "
编辑C:\boot\grub\menu.lst 加入:
title Install-Fedora Core 4
kernel (hd0,0)/isolinux/vmlinuz
initrd (hd0,0)/isolinux/initrd.img


3.重新启动电脑,依次选择: GRUB For Dos/Windows > Install-Fedora Core 4
进入安装程序,在安装过程中当进行到选择安装介质时,选 硬盘安装。
4.按提示一步步安装,直到完成重启!
5.安装完成后运行 yum update 更新系统
#rpm -import /usr/share/rhn/RPM-GPG-KEY-fedora
#yum update
6.安装中文输入法Fcitx
下载 Fcitx-3.1:http://www.linuxfans.org/nuke/modul...geninfo&did=360
安装: #rpm -ivh fcitx-3.1-1mgc.i686.rpm
7.在/etc/X11/xinit/xinput.d下面创建一个自己的输入法的脚本 fcitx 内容为:
XIM=fcitx
XIM_PROGRAM=fcitx
GTK_IM_MODULE=fcitx
gnome-im-settings-daemon >/dev/null
添加配置:
#alternatives –install /etc/X11/xinit/xinput.d/zh_CN xinput-zh_CN /etc/X11/xinit/xinput.d/fcitx 100
#alternatives --auto xinput-zh_CN
重启X Window 生效!
8.安装Mp3播放器XMMS( FC4中默认是没有XMMS的)

#yum install xmms
2.安装mp3 插件:xmms-mp3-1.2.10-2.2.p.1.fc2.fr.i386.rpm :
http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=geninfo&did=3060
#rpm -ivh xmms-mp3-1.2.10-2.2.p.1.fc2.fr.i386.rpm
3.安装Realplayer:http://www.linuxfans.org/nuke/modul...eninfo&did=3166
#rpm -ivh RealPlayer-10.0.4.750-20050401.i586.rpm
至此,主要的就已安装完毕!!!!!!

posted @ 2005-12-14 12:57 YGB.Grushy 阅读(531) | 评论 (0)编辑 收藏