国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

            手機站
            千鋒教育

            千鋒學習站 | 隨時隨地免費學

            千鋒教育

            掃一掃進入千鋒手機站

            領取全套視頻
            千鋒教育

            關注千鋒學習站小程序
            隨時隨地免費學習課程

            當前位置:首頁  >  技術干貨  > 制作YAFFS2文件系統(tǒng)

            制作YAFFS2文件系統(tǒng)

            來源:千鋒教育
            發(fā)布人:wjy
            時間: 2022-12-28 11:59:47 1672199987

              如果開發(fā)板只有Nand Flash,那么選擇最合適的文件系統(tǒng)為YAFFS文件系統(tǒng)。mini2440 只有 Nand Flash 沒有 Nor Flash,因此選擇的文件系統(tǒng)為 YAFFS2 文件系統(tǒng)。

              1.制作文件系統(tǒng)時準備的源代碼

              關于內核源代碼和交叉編譯器,讀者可以根據自己的實際情況選擇具體的對應版本, yaffs2.tar.gz 源碼是必需的。

            制作 YAFFS2 文件系統(tǒng)179

              2.解壓源碼

              解壓內核源碼和交叉編譯器的源碼,并將 yaffs2.tar.gz 復制到內核源碼的 fs 目錄下進行解壓。如果是第一次使用交叉編譯器,那么應該在環(huán)境變量中添加交叉編譯器的路徑或者在/etc/profile 中添加交叉編譯器路徑,并重新啟動計算機。文件/etc/profile 中的交叉編譯 器的設置,例如:

              # Path manipulation

              if [ "$EUID" = "0" ]; then

              pathmunge /sbin

              pathmunge /usr/sbin

              pathmunge /usr/local/sbin

              pathmunge /usr/local/arm/4.3.2/bin

              fi

              3.修改內核頂層Makefile

              在 Makefile 中設置目標平臺為 arm,交叉編譯器為 arm-linux。

              # vi Makefile

              ARCH ?= $(SUBARCH)

              CROSS_COMPILE ?=

              修改為

              ARCH ?=arm

              CROSS_COMPILE ?=arm-linux-

              4.修改機器碼

              在 vivi 啟動時如果機器碼與設置的不一致會出現提示,在文件 arch/arm/tools/mach-types

              中進行下面的修改。

              # vi arch/arm/tools/mach-types

              s3c2440 ARCH_S3C2440 S3C2440 362

              修改為

              s3c2440 ARCH_S3C2440 S3C2440 782

              5.修改時鐘頻率

              修改 arch/arm/mach-s3c2440/mach-smdk2440.c 中的時鐘為 12MHz,具體修改如下:

              static void __init smdk2440_map_io(void)

              {

              s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));

              //s3c24xx_init_clocks(16934400);

              s3c24xx_init_clocks(12000000);//將頻率設置為 12MHz

              s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));

              }

              6.使內核支持YAFFS2

              解壓 yaffs2.tar.gz 后進入 YAFFS2 目錄,在 YAFFS2 目錄下有可執(zhí)行文件 patch-ker.sh,

              執(zhí)行如下命令:

              # ./patch-ker.sh c /usr/local/arm/linux-2.6.29.6

              執(zhí)行該命令后,就會在 fs 的 Kconfig 和 Makefile 中增加對 YAFFS2 的編譯選項的支持。

              在 fs/Kconfig 會自動添加:

              # Patched by YAFFS

              source "fs/yaffs2/Kconfig"

              在 fs/Makefile 中會自動添加:

              # Patched by YAFFS

              obj-$(CONFIG_YAFFS_FS) += yaffs2/

              注意:這兩部分內容也可以進行手動添加。添加的目的是在內核的文件系統(tǒng)選項中增加 對 YAFFS2 的支持選項。

              回到內核的一級目錄下運行 make menuconfig,對內核進行配置,配置中多了對 YAFFS2 文件系統(tǒng)支持的選項。進入內核配置界面后,依次選擇命令 File systems ---> Miscellaneous filesystems --->,進入 Miscellaneous filesystems 配置窗口,選擇對 YAFFS2 文件系統(tǒng)的支持

            制作 YAFFS2 文件系統(tǒng)1783

              7.使內核支持Mini2440

              在內核的 System Type-->ARM system type 選項下,選擇 Samsung S3C24xx 系列。如果讀者的開發(fā)板不是 mini2440,那么就應該選擇對應的處理器類型。然后 在 S3C2440 Machines 中選擇 Mini2440 支持選項。

            制作 YAFFS2 文件系統(tǒng)1943

              8.編譯內核映像文件

              執(zhí)行 make zImage 生成內核的映像文件,如果遇到下面的錯誤可以執(zhí)行 make distclean 進行清理,然后重新生成映像文件。

              # make distclean

              # make zImage

              9.編譯Busybox

              編譯 Busybox 的配置細節(jié)可以參考制作 《Ramdisk 文件系統(tǒng)》。這里可以將 Busybox 交叉編譯安裝在 _install 文件中,

            制作 YAFFS2 文件系統(tǒng)2151

              在/usr/local 目錄下新建 yaffs_root 文件夾,將 Busybox 的安裝目錄_install 中的文件 bin、linuxrc、sbin、usr 復制到 yaffs_root 目錄下。

              # mkdir /usr/local/yaffs_root

              # cd /usr/local/busybox-1.21.1/_install

              # cp –rf bin linuxrc sbin usr /usr/local/yaffs_root

              10.為YAFFS文件系統(tǒng)準備lib庫

              將交叉編譯器目錄下的庫文件全部復制到 lib 庫目錄下,-d 表示復制的時候包括鏈接 文件一起復制過來。

              #cp -d /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib/*so* ./lib

              11.制作etc目錄下必要的文件

              etc 目錄是文件系統(tǒng)中最重要的目錄,系統(tǒng)配置的啟動信息都在該目錄下,下面分別給出必要的幾個文件。

              (1)/etc/inittab 文件。

              ::sysinit:/etc/init.d/rcS #調用系統(tǒng)初始化文件

              s3c2410_serial0::askfirst:-/bin/sh #文件 drivers/serial/s3c2410.c 中指定了串口驅動名字 s3c2410_serial

              ::ctrlaltdel:/sbin/reboot #重啟

              ::shutdown:/bin/umount -a -r #關機

              該文件為 init 進程的配置文件。

              (2)etc/init.d/rcS 文件。

              #!/bin/sh

              PATH=/sbin:/bin:/usr/sbin:/usr/bin

              runlevel=S

              prevlevel=N

              umask 022

              export PATH runlevel prevlevel

              mount -a

              mkdir /dev/pts

              mount -t devpts devpts /dev/pts

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

              mdev -s

              mkdir -p /var/lock

              /bin/hostname -F /etc/sysconfig/HOSTNAME

              該文件為可執(zhí)行文件,完成后還要修改其權限為可執(zhí)行。該文件功能包括指定環(huán)境變量、運行級別和掛載設備等。

              (3)etc/profile 文件。

              USER="`id -un`"

              LOGNAME=$USER

              PS1='[Yaffs_LiuG]# '

              PATH=$PATH

              HOSTNAME='/bin/hostname'

              export USER LOGNAME PS1 PATH

              如果不配置 profile,移植完文件系統(tǒng)后,進入系統(tǒng)命令行頭為空,效果如下:

              # ls

              bin home lost+found proc sys var

              dev lib mnt root tmp

              etc linuxrc opt sbin usr

              配置 profile 文件后,其效果如下:

              ]# ls

              bin home lost+found proc sys var

              dev lib mnt root tmp

              etc linuxrc opt sbin usr

              (4)etc/sysconfig/HOSTNAME 文件。

              Yaffs@LiuG #指定 HOSTNAME,rcS 中調用該文件

              (5)etc/fstab 文件。

              proc /proc proc defaults 0 0

              tmpfs /tmp tmpfs defaults 0 0

              sysfs /sys sysfs defaults 0 0

              tmpfs /dev tmpfs defaults 0 0

              var /dev tmpfs defaults 0 0

              該文件指明需要掛載的文件系統(tǒng)。

              12.制作YAFFS映像文件

              解壓制作文件系統(tǒng)工具 mkyaffs2image.tar,解壓后該工具自動安裝在目錄 usr/sbin/下。 使用 mkyaffs2image 將上面制作的文件系統(tǒng)制作成映像文件。

              # tar xvf mkyaffs2image.tar

              # mkyaffs2image yaffs_root yaffs_root.img

              本文摘自《linux系統(tǒng)移植(第2版)》

            tags:
            聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
            10年以上業(yè)內強師集結,手把手帶你蛻變精英
            請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
            免費領取
            今日已有369人領取成功
            劉同學 138****2860 剛剛成功領取
            王同學 131****2015 剛剛成功領取
            張同學 133****4652 剛剛成功領取
            李同學 135****8607 剛剛成功領取
            楊同學 132****5667 剛剛成功領取
            岳同學 134****6652 剛剛成功領取
            梁同學 157****2950 剛剛成功領取
            劉同學 189****1015 剛剛成功領取
            張同學 155****4678 剛剛成功領取
            鄒同學 139****2907 剛剛成功領取
            董同學 138****2867 剛剛成功領取
            周同學 136****3602 剛剛成功領取
            相關推薦HOT