91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何移植linux kernel及含busybox的yaffs2文件系統鏡像

發布時間:2021-10-22 10:09:18 來源:億速云 閱讀:193 作者:柒染 欄目:互聯網科技

這篇文章給大家介紹如何移植linux kernel及含busybox的yaffs2文件系統鏡像,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

一、建立根文件系統目錄  

進入到/opt/studyarm目錄,新建建立根文件系統目錄的腳本文件create_rootfs_bash,使用命令chmod +x create_rootfs_bash改變文件的可執行權限,./create_rootfs_bash運行腳本,就完成了根文件系統目錄的創建。

#!/bin/sh

echo "------Create rootfs directons start...--------"
mkdir rootfs
cd rootfs

echo "--------Create root,dev....----------"
mkdir root dev etc boot tmp var sys proc lib mnt home usr
mkdir etc/init.d etc/rc.d etc/sysconfig  
mkdir usr/sbin usr/bin usr/lib usr/modules

echo "make node in dev/console dev/null"
mknod -m 600 dev/console c 5 1
mknod -m 600 dev/null    c 1 3
mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
mkdir var/lib var/lock var/run var/tmp

chmod 1777 tmp
chmod 1777 var/tmp


echo "-------make direction done---------"

改變了tmp目錄的使用權,讓它開啟sticky位,為tmp目錄的使用權開啟此位,可確保tmp目錄底下建立的文件,只有建立它的用戶有權刪除。盡管嵌入式系統多半是單用戶,不過有些嵌入式應用不一定用root的權限來執行,因此需要遵照根文件系統權限位的基本規定來設計。

二、建立動態鏈接庫

cd rootfs/lib
cp -fr /home/working/arm-linux-gcc/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/* ./

將交叉編譯器下的:相應庫文件,拷貝到 rootfs/lib 下

注:本用的交叉編譯器是:arm-linux-gcc 4.3.2

三、交叉編譯Bosybox

Bosybox是一個遵循GPL v2協議的開源項目,它在編寫過程總對文件大小進行優化,并考慮了系統資源有限(比如內存等)的情況,使用Busybox可以自動生成根文件系統所需的bin、sbin、usr目錄和linuxrc文件.

1、解壓busybox cd /mnt/hgfs/share 

tar –zxvf busybox-1.13.3.tar.tgz –C /opt/studyarm 2、進入源碼,修改Makefile文件: cd /opt/studyarm/busybox-1.13.3 修改:  CROSS_COMPILE ?=arm-linux-   //第164行  ARCH    ?=arm   //第189行 3、配置busybox

輸入make menuconfig進行配置

 (1)、Busybox Settings--->    

    General Configuration--->    

         [*] Show verbose applet usage messages 

         [*] Store applet usage messages in compressed form    

         [*] Support –install [-s] to install applet links at runtime    

         [*] Enable locale support(system needs locale for this to work)    

         [*] Support for –long-options    

         [*] Use the devpts filesystem for unix98 PTYs     

         [*] Support writing pidfiles    

         [*] Runtime SUID/SGID configuration via /etc/busybox.config    

         [*]  Suppress warning message if /etc/busybox.conf is not readable 

    Build Options--->

         [*] Build BusyBox as a static binary(no shared libs)     

         [*] Build with Large File Support(for accessing files>2GB)

    Installation Options->

        Applets links (as soft-links) --->      

          (./_install) BusyBox installation prefix

   Busybox Library Tuning --->

         (6)Minimum password legth     

          (2)MD5:Trade Bytes for Speed     

          [*]Fsater /proc scanning code(+100bytes)     

         [*]Command line editing     

         (1024)Maximum length of input     

         [*] vi-style line editing commands

         (15) History size     

         [*] History saving     

          [*] Tab completion     

         [*]Fancy shell prompts     

         (4) Copy buffer size ,in kilobytes  

         [*]Use ioctl names rather than hex values in error messages 

         [*]Support infiniband HW

 (2)、Linux Module Utilities--->

         (/lib/modules)Default directory containing modules    

         (modules.dep)Default name of modules.dep 

          [*] insmod 

          [*] rmmod 

          [*] lsmod 

          [*] modprobe 

          -----options common to multiple modutils [ ] support version 2.2/2.4 Linux kernels 

          [*]Support tainted module checking with new kernels 

          [*]Support for module .aliases file 

          [*] support for modules.symbols file

(3)、在busybox中配置對dev下設備類型的支持

dev的創建有三種方法: 

手動創建:在制作根文件系統的時候,就在dev目錄下創建好要使用的設備文件,系統掛接根文件系統后,就可以使用dev目錄下的設備文件了。 使用devfs文件系統:這種方法已經過時,具有不確定的設備映射、沒有足夠的主/次設備號、devfs消耗大量的內存。 

udev:它是個用戶程序,能根據系統中硬件設備的狀態動態的更新設備文件,包括設備文件的創建、刪除等。它的操作相對復雜,但靈活性很高 

mdev是busybox自帶的一個簡化版的udev,適合于嵌入式的應用埸合。其具有使用簡單的特點。它的作用,就是在系統啟動和熱插拔或動態加載驅動程序時,自動產生驅動程序所需的節點文件。在以busybox為基礎構建嵌入式linux的根文件系統時,使用它是最優的選擇。下面的選項將增加對mdev的支持。

Linux System Utilities  --->                     

          [*]Support /etc/mdev.conf               

         [*]Support command execution at device addition/removal 

4、 編譯busybox 

編譯busybox到指定目錄: cd /opt/studyarm/busybox-1.13.3 

make CONFIG_PREFIX=/opt/studyarm/rootfs install 

在rootfs目錄下會生成目錄bin、sbin、usr和文件linuxrc的內容。

四、建立etc目錄下的配置文件

1、etc/mdev.conf文件,內容為空。 

2、拷貝主機etc目錄下的passwd、group、shadow文件到rootfs/etc目錄下。 

3、etc/sysconfig目錄下新建文件HOSTNAME,內容為”MrFeng”。 

4、etc/inittab文件:

#etc/inittab
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r

5、etc/init.d/rcS文件:

#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
echo "----------munt all----------------"
mount -a
echo /sbin/mdev>/proc/sys/kernel/hotplug mdev -s
echo "***********************************************"
echo "****************BENJAMIN ARM*********************"
echo "Kernel version:linux-2.6.32.2"
echo "Student:Benjamin"
echo "Date:2015.12.02"
echo "***********************************************"
/bin/hostname -F /etc/sysconfig/HOSTNAME

使用以下命令改變rcS的執行權限: Chmod +x rcS

6、etc/fstab文件:

#device    mount-point     type     option     dump   fsck   order
proc          /proc        proc     defaults    0        0
none          /tmp        ramfs    defaults    0        0
sysfs         /sys          sysfs    defaults    0        0
mdev          /dev        ramfs    defaults    0        0

7、 etc/profile文件:

#Ash profile
#vim:syntax=sh
#No core file by defaults
#ulimit -S -c 0>/dev/null 2>&1
USER="id -un"
LOGNAME=$USER
PS1='[\u@\h]\$ '
PATH=$PATH
HOSTNAME='/bin/hostname'
export USER LOGNAME PS1 PATH
alias ll="ls -l"
mknod -m 600 /dev/console c 5 1
mknod -m 600 /dev/null    c 1 3

五、制作根文件系統映像文件 

使用以下命令安裝好yaffs文件系統制作工具:  cd /mnt/hgfs/share 

tar –zxvf mkyaffs2image.tgz –C / 

在/opt/studyarm目錄下,使用命令mkyaffs2image rootfs rootfs.img生成根文件系統映像文件

注:本人用的 mkyaffs2image-128M 工具

關于如何移植linux kernel及含busybox的yaffs2文件系統鏡像就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金寨县| 建宁县| 武乡县| 靖宇县| 长沙市| 西平县| 淄博市| 大冶市| 肥西县| 桐庐县| 临漳县| 巧家县| 舒城县| 红原县| 兴国县| 民丰县| 萍乡市| 红河县| 临猗县| 宁津县| 永昌县| 济阳县| 岑溪市| 共和县| 葫芦岛市| 淮南市| 嵊州市| 宜章县| 增城市| 荥经县| 云浮市| 凤山县| 海口市| 建瓯市| 沛县| 呼和浩特市| 手游| 江口县| 大余县| 多伦县| 安岳县|