在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 制作ZedBoard上linux根文件系統(tǒng)(ramdisk)

            制作ZedBoard上linux根文件系統(tǒng)(ramdisk)

            作者: 時間:2017-10-13 來源:網(wǎng)絡(luò) 收藏

            Digilent的OOB設(shè)計給出了一個上完整的運行的系統(tǒng)所需要的所有文件,包括配置FPGA的bit文件、 配置ARM PS系統(tǒng)的First-Stage boot loader(FSBL)和引導需要的Second-Stage boot loader(SSBL)、Linux內(nèi)核zImage、設(shè)備樹文件devicetree_ramdisk.dtb 以及根文件系統(tǒng)ramdisk8M.image.gz。在運行時,加載這個ramdisk8M.image.gz鏡像文件到DDR3中來執(zhí)行實現(xiàn)根文件系統(tǒng)的建立,很多并不像在ubuntu中對文件系統(tǒng)操作那樣簡單。本小節(jié)介紹如何制作可運行的根文件系統(tǒng)ramdisk8M.image.gz鏡像文件,參照xilinx wiki 。

            本文引用地址:http://www.biyoush.com/article/201710/365703.htm

            通過本小節(jié)的學習,在以后的開發(fā)中,可以更加順利的修改文件系統(tǒng),給設(shè)計帶來方便。

            硬件平臺:Digilent

            開發(fā)環(huán)境:Windows XP 32 bit + Wmare 8.0 + Ubuntu 10.04 + arm-linux-xilinx-gnueabi交叉編譯環(huán)境

            Zedboard linux: Digilent OOB Design

            1、FHS(Filesystem Hierarchy Standard)標準介紹

            當我們在linux下輸入ls / 的時候,見到的目錄結(jié)構(gòu)以及這些目錄下的內(nèi)容都大同小異,這是因為所有的linux發(fā)行版在對根文件系統(tǒng)布局上都遵循FHS標準的建議規(guī)定。該標準規(guī)定了根目錄下各個子目錄的名稱及其存放的內(nèi)容:

            目錄名

            存放的內(nèi)容


            /bin

            必備的用戶命令,例如ls、cp等


            /sbin

            必備的系統(tǒng)管理員命令,例如ifconfig、reboot等


            /dev

            設(shè)備文件,例如mtdblock0、tty1等


            /etc

            系統(tǒng)配置文件,包括啟動文件,例如inittab等


            /lib

            必要的鏈接庫,例如C鏈接庫、內(nèi)核模塊


            /home

            普通用戶主目錄


            /root

            root用戶主目錄


            /usr/bin

            非必備的用戶程序,例如find、du等


            /usr/sbin

            非必備的管理員程序,例如chroot、inetd等


            /usr/lib

            庫文件


            /var

            守護程序和工具程序所存放的可變,例如日志文件


            /proc

            用來提供內(nèi)核與進程信息的虛擬文件系統(tǒng),由內(nèi)核自動生成目錄下的內(nèi)容


            /sys

            用來提供內(nèi)核與設(shè)備信息的虛擬文件系統(tǒng),由內(nèi)核自動生成目錄下的內(nèi)容


            /mnt

            文件系統(tǒng)掛接點,用于臨時安裝文件系統(tǒng)


            /tmp

            臨時性的文件,重啟后將自動清除


            制作根文件系統(tǒng)就是要建立以上的目錄,并在其中建立完整目錄內(nèi)容。其過程大體包括:

            編譯/安裝busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目錄
            利用交叉編譯工具鏈,構(gòu)建/lib目錄
            手工構(gòu)建/etc目錄
            制作根文件系統(tǒng)的鏡像文件
            下面就來詳細介紹這個過程。

            1、編譯安裝busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目錄

            首先下載BusyBox源碼,使用命令
            git clone git://git.busybox.net/busybox

            當然,和往常一樣,為了給上不了國外網(wǎng)站的同學們提供便利,這里提供一個國內(nèi)的下載鏈接:

            busybox下載

            下載后,切換到busybox目錄,并進行默認配置
            make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- defconfig

            使用命令
            make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- menuconfig

            打開可視化界面配置

            逐一進入
            BusyBox SetTIngs->InstallaTIon OpTIons->BusyBox installaTIon prefix

            將目錄設(shè)置為
            /home/devel/_rootfs

            保存后退出,并安裝busybox
            make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- install

            安裝好后,我們能夠在/home/devel/_rootfs目錄下看到生成了的bin sbin usr/bin usr/sbin 目錄,其下包含了我們常用的命令,這些命令都是指向bin/busybox的軟鏈接。

            3、安裝Dropbear
            我對dropbear的功能不是很明白,從百度上獲取到的信息是“dropbear實現(xiàn)完整的SSH客戶端和服務(wù)器版本2協(xié)議。它不支持SSH版本1 的向后兼容性,以節(jié)省空間和資源,并避免在SSH版本1的固有的安全漏洞。還實施了SCP的。SFTP支持依賴于一個二進制文件,可以通過提供的OpenSSH或類似的計劃。”由于xilinx wiki上有這樣的步驟,還是老老實實的做吧。

            下載dropbear,并解壓
            wget
            tar xfvz dropbear-0.53.1.tar.gz

            配置dropbear
            ./configure --prefix=/home/devel/_rootfs --host=arm-xilinx-linux-gnueabi --disable-zlib CC=arm-xilinx-linux-gnueabi-gcc LDFLAGS=-Wl,--gc-sections CFLAGS=-ffunction-sections -fdata-sections -Os

            編譯
            make PROGRAMS=dropbear dbclient dropbearkey dropbearconvert scp MULTI=1 strip

            安裝dropbear并創(chuàng)建符號鏈接
            make install
            ln -s /home/devel/_rootfs/usr/bin/scp

            4、利用交叉編譯工具鏈,構(gòu)建/lib目錄
            進入/home/devel/_rootfs,創(chuàng)建lib目錄
            cd /home/devel/_rootfs
            bash> mkdir lib

            將交叉編譯環(huán)境庫拷貝到這個目錄下
            cp /opt/14.2/ISE_DS/EDK/gnu/arm/lin64/arm-xilinx-linux-gnueabi/libc/lib/* lib -r

            同樣,將工具鏈拷貝到sbin/和usr/bin/下
            cp /opt/14.2/ISE_DS/EDK/gnu/arm/lin64/arm-xilinx-linux-gnueabi/libc/sbin/* sbin/ -r
            cp /opt/14.2/ISE_DS/EDK/gnu/arm/lin64/arm-xilinx-linux-gnueabi/libc/usr/bin/* usr/bin/ -r

            意:很多網(wǎng)友說,自己的電腦上沒有l(wèi)in64文件夾,只有nt文件夾。這個問題是由于在安裝ISE版本是,操作系統(tǒng)32位/64位決定的。我在XP(32位)下安裝時也只有nt文件夾,因而我選擇一個“懶”的方法:把OOB中的lib/、sbin/bin、 usr/bin文件夾直接拷貝出來,相應(yīng)替換掉。

            ?usr/bin目錄文件下載

            ?sbin目錄文件下載

            ?lib目錄文件下載

            5、創(chuàng)建其他目錄和相應(yīng)配置
            至此,幾個重要的目錄和文件都已經(jīng)創(chuàng)建完畢,需要安裝FHS要求把其他目錄和文件創(chuàng)建。切換到_rootfs目錄下,使用命令
            mkdir dev etc etc/dropbear etc/init.d mnt opt proc root sys tmp var var/log var/www

            創(chuàng)建etc/fstab文件,內(nèi)容如下
            LABEL=/ / tmpfs defaults 0 0
            none /dev/pts devpts gid=5,mode=620 0 0
            none /proc proc defaults 0 0
            none /sys sysfs defaults 0 0
            none /tmp tmpfs defaults 0 0

            創(chuàng)建etc/inittab文件,內(nèi)容如下
            ::sysinit:/etc/init.d/rcS
            # /bin/ash
            #
            # Start an askfirst shell on the serial ports
            ttyPS0::respawn:-/bin/ash
            # What to do when restarting the init process
            ::restart:/sbin/init
            # What to do before rebooting
            ::shutdown:/bin/umount -a -r

            創(chuàng)建etc/passwd文件,內(nèi)容如下
            root:$1$qC.CEbjC$SVJyqm.IG.gkElhaeM.FD0:0:0:root:/root:/bin/sh

            創(chuàng)建文件etc/init.d/rcS ,內(nèi)容如下
            #!/bin/sh

            echo Starting rcS...

            echo ++ Mounting filesystem
            mount -t proc none /proc
            mount -t sysfs none /sys
            mount -t tmpfs none /tmp

            echo ++ Setting up mdev

            echo /sbin/mdev > /proc/sys/kernel/hotplug
            mdev -s

            mkdir -p /dev/pts
            mkdir -p /dev/i2c
            mount -t devpts devpts /dev/pts

            echo ++ Starting telnet daemon
            telnetd -l /bin/sh

            echo ++ Starting http daemon
            httpd -h /var/www

            echo ++ Starting ftp daemon
            tcpsvd 0:21 ftpd ftpd -w /

            echo ++ Starting dropbear (ssh) daemon
            dropbear
            echo rcS Complete

            并設(shè)置其權(quán)限
            chmod 755 etc/init.d/rcS
            sudo chown root:root etc/init.d/rcS

            BTW,我們的后續(xù)設(shè)計中,為了實現(xiàn)應(yīng)用程序上電后自動啟動運行,可以修改rcS文件內(nèi)容,將應(yīng)用程序執(zhí)行命令寫入到rcS文件中。

            6、生成ramdisk鏡像文件

            至此,根文件系統(tǒng)所有需要的目錄和文件已經(jīng)準備完畢。查看_rootfs下的內(nèi)容

            這個根文件系統(tǒng)能夠被執(zhí)行,還需要將其制作成image鏡像文件,并壓縮。

            接下來的操作如果和xilinx wiki上操作一致,最終的文件系統(tǒng)并不能被識別,所以這里介紹的和xilinx wiki有少許不同。

            創(chuàng)建鏡像文件ramdisk8M.image,并設(shè)置大小為8M,文件系統(tǒng)格式為ext2:
            cd ~
            dd if=/dev/zero of=ramdisk8M.image bs=1024 count=8192
            mke2fs -F ramdisk8M.image -L ramdisk -b 1024 -m 0
            tune2fs ramdisk8M.image -i 0
            chmod 777 ramdisk8M.image

            大小可以按照需要自己調(diào)整,但是最好不要超過32M。

            創(chuàng)建ramdisk目錄,將ramdisk8M.image 掛載到該目錄下,
            mkdir ramdisk
            mount -o loop ramdisk8M.image ramdisk/

            接下來,只需要將_rootfs目錄下的內(nèi)容全部拷貝到ramdisk下即可
            cp -R /home/devel/_rootfs/* ramdisk

            注意,這里cp的參數(shù)一定是R而非r。

            這樣,這個鏡像文件的內(nèi)容就是_rootfs目錄下的內(nèi)容了。將其卸載就可
            umount ramdisk/

            到此,根文件系統(tǒng)鏡像文件ramdisk8M.image 制作完成,將其壓縮
            gzip -9 ramdisk8M.image

            生成ramdisk8M.image.gz文件,拷貝到SD上就可以了。

            busybox下載

            usr/bin目錄文件下載

            sbin目錄文件下載

            lib目錄文件下載



            關(guān)鍵詞: ZedBoard linux

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉