在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            從 EPROM 引導(dǎo) Linux

            作者: 時(shí)間:2011-03-12 來(lái)源:網(wǎng)絡(luò) 收藏
            從 EPROM 引導(dǎo) Linux

            本文簡(jiǎn)要介紹從486單板機(jī)的EPROM引導(dǎo)Linux。提供了一種在無(wú)硬盤(pán)的系統(tǒng)上運(yùn)行Linux的方法。我們要介紹的應(yīng)用程序是一個(gè)顯示器上的Operator Interface,它的顯示系統(tǒng)是由Boeing Flight Test開(kāi)發(fā)的。飛行環(huán)境需要一種可以防止突然性的電源中斷的機(jī)制。為了滿(mǎn)足這樣的要求,我們決定在無(wú)硬盤(pán)的系統(tǒng)上實(shí)現(xiàn)Operator Interface。
            概況

            基本的問(wèn)題包括從EPROM的SSD(solid state disk)引導(dǎo),將root文件系統(tǒng)從EPROM拷貝至一個(gè)RAM disk,從客戶(hù)機(jī)加載Operator Interface軟件并且執(zhí)行它。本文主要討論系統(tǒng)工作機(jī)制的細(xì)節(jié)以及它所使用的開(kāi)發(fā)技巧。

            我們所選用的硬件為一臺(tái)擁有16M RAM、一個(gè)能夠容納4M

            EPROM的PC104 SSD和其他一些PC104板的基于VME的單板機(jī)。它的BIOS支持SSD的使用。系統(tǒng)使用一個(gè)可編程的鍵盤(pán)和一塊標(biāo)準(zhǔn)的VGA顯示卡。

            系統(tǒng)操作

            引導(dǎo)時(shí)我們需要考慮兩個(gè)選項(xiàng):

            * 在DOS下使用loadlin(可以加在Autoexec.bat文件中)引導(dǎo)Linux

            * 安裝LILO直接引導(dǎo)Linux

            第二種選項(xiàng)的好處是引導(dǎo)所用的時(shí)間較小。我們采用第一種方案,因?yàn)槲覀兪褂靡粋€(gè)可編程的鍵盤(pán)——在DOS運(yùn)行為鍵盤(pán)編程的軟件。

            為了使系統(tǒng)工作,我們需要kernel-hacking。Ramdisk.c代碼被改成可以從任意的塊設(shè)備加載而不僅僅是從軟盤(pán)。另外,我們寫(xiě)一個(gè)從EPROM設(shè)備的新的塊設(shè)備驅(qū)動(dòng)程序。

            實(shí)現(xiàn)EPROM設(shè)備驅(qū)動(dòng)程序的第一種思想是在EPROM中生成一個(gè)磁盤(pán)映像。這會(huì)為我們提供一個(gè)同EPROM相同大小的RAM disk,在這種情況下大小為3.5M(SSD的DOS分區(qū)占1/2M)。為了得到一個(gè)大的RAM disk,我們使用一個(gè)壓縮的磁盤(pán)映像。壓縮的思想很簡(jiǎn)單,相同的扇區(qū)之存貯一次。這樣的好處是磁盤(pán)映像的空白區(qū)域不占用EPROM空間。

            為了自動(dòng)運(yùn)行Operator interface程序,我們需要一個(gè)程序來(lái)替代getty。

            這個(gè)程序(dboot.c)應(yīng)該運(yùn)行登錄程序,可以為指定的虛擬終端設(shè)置stdin,stdou和stderr。

            引導(dǎo)的過(guò)程是這樣的:

            l 加電后進(jìn)行內(nèi)存檢測(cè)
            l 加載運(yùn)行AUTOEXEC.BAT的DOS
            l 運(yùn)行鍵盤(pán)應(yīng)用程序
            l 運(yùn)行LOADLIN——從DOS分區(qū)中讀取Linux內(nèi)核執(zhí)行
            l 由linux內(nèi)核接管系統(tǒng)
            l 從EPROM中加載RAM disk
            l 轉(zhuǎn)換root文件系統(tǒng)到RAM disk
            l init讀取inittab,注意inittab執(zhí)行dboot 而不是getty
            l 啟動(dòng)Operator interface

            開(kāi)發(fā)

            下一階段的任務(wù)是將EPROM的磁盤(pán)內(nèi)容組織在一起。我們使

            用如下分區(qū)的輔助盤(pán)來(lái)完成這項(xiàng)任務(wù):

            * /dev/hda1 – 80M linux system
            * /dev/hda2 - 6M EPROM
            * /dev/hda3 - 20M DOS分區(qū)
            * 使用Lilo引導(dǎo)
            直接對(duì)EPROM進(jìn)行編程時(shí)很費(fèi)時(shí)間的事。所以,我們大部分的開(kāi)發(fā)使用輻助盤(pán)來(lái)進(jìn)行。

            磁盤(pán)映像的開(kāi)發(fā)首先確定需求。首先完成一個(gè)最小的系統(tǒng),然后再將operator interface所需的項(xiàng)目加到系統(tǒng)中。由于我不是Unix專(zhuān)家,所以這個(gè)最小系統(tǒng)的完成是個(gè)試驗(yàn)、糾錯(cuò)的過(guò)程。我不斷的試驗(yàn),直到系統(tǒng)正常運(yùn)行。

            下一步將Linux分區(qū)的內(nèi)容拷貝到6M分區(qū)中,然后在DOS下進(jìn)行如下操作:
            loadlin zimage root=/dev/hda2 ro

            如果系統(tǒng)穩(wěn)定,則將6M分區(qū)載入到RAM disk。這同從EPROM中加載是相似的。為了避免對(duì)EPROM編程而測(cè)試系統(tǒng),在DOS下進(jìn)行如下操作:
            loadlin zimage root=/dev/hda2 ramdisk=6144 ro

            因?yàn)閷?duì)ramdisk.c進(jìn)行了修改,/dev/hda2磁盤(pán)映像被加載到RAM中,然后root分區(qū)轉(zhuǎn)換為RAM disk。我們需要不斷地修改disk image直到它正常工作為止。

            對(duì)EPROMs編程

            首先使用tar將小的disk image打包,然后解壓縮到一個(gè)干凈的文件系統(tǒng)。

            為了打包disk image。我們從Linux引導(dǎo),然后加載6M分區(qū)。不要對(duì)proc文件系統(tǒng)執(zhí)行tar命令。我們使用以下的命令:
            mount –t ext2 /dev/hda2 /mnt
            cd /mnt
            tar –cpf /tmp/eprom.tar *

            為了生成disk image,我使用另一擁有6M RAM disk的計(jì)算機(jī)和如下的命令行:
            dd if=/dev/zero of=/dev/ram count=12288
            mke2fs /dev/ram 6144
            mount –t ext2 /dev/ram /mnt
            cd /mnt
            tar –xpf ~/eprom.tar
            dd if=/dev/ram of=~/eprom.dsk count=12288

            這生成一個(gè)eprom.dsk文件,我們使用med.c程序?qū)isk image(eprom.dsk)寫(xiě)入EPROMs(即對(duì)EPROMs編程)。
            Med ~/eprom.dsk ~/eprom.img

            然后EPROM程序員將EPROM image刻入EPROM中。
            DOS boot SSD
            SBC的SSD功能幫助我們構(gòu)建disk image。DOS SSD disk最少需要如下的文件:DOS引導(dǎo)文件,command.com,autoexec.bat,鍵盤(pán)加載程序,loadlin與zImage。

            結(jié)論
            輔助盤(pán)上的開(kāi)發(fā)工作量很大,我們需要采取措施來(lái)減少工作量。EPROM disk在我們的應(yīng)用程序中工作的很好。

            linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)


            評(píng)論


            相關(guān)推薦

            技術(shù)專(zhuān)區(qū)

            關(guān)閉