麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

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

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

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

當前位置:首頁  >  技術干貨  > 制作YAFFS2文件系統

制作YAFFS2文件系統

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

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

  1.制作文件系統時準備的源代碼

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

制作 YAFFS2 文件系統179

  2.解壓源碼

  解壓內核源碼和交叉編譯器的源碼,并將 yaffs2.tar.gz 復制到內核源碼的 fs 目錄下進行解壓。如果是第一次使用交叉編譯器,那么應該在環境變量中添加交叉編譯器的路徑或者在/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 目錄下有可執行文件 patch-ker.sh,

  執行如下命令:

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

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

  在 fs/Kconfig 會自動添加:

  # Patched by YAFFS

  source "fs/yaffs2/Kconfig"

  在 fs/Makefile 中會自動添加:

  # Patched by YAFFS

  obj-$(CONFIG_YAFFS_FS) += yaffs2/

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

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

制作 YAFFS2 文件系統1783

  7.使內核支持Mini2440

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

制作 YAFFS2 文件系統1943

  8.編譯內核映像文件

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

  # make distclean

  # make zImage

  9.編譯Busybox

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

制作 YAFFS2 文件系統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文件系統準備lib庫

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

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

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

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

  (1)/etc/inittab 文件。

  ::sysinit:/etc/init.d/rcS #調用系統初始化文件

  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

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

  (3)etc/profile 文件。

  USER="`id -un`"

  LOGNAME=$USER

  PS1='[Yaffs_LiuG]# '

  PATH=$PATH

  HOSTNAME='/bin/hostname'

  export USER LOGNAME PS1 PATH

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

  # 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

  該文件指明需要掛載的文件系統。

  12.制作YAFFS映像文件

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

  # tar xvf mkyaffs2image.tar

  # mkyaffs2image yaffs_root yaffs_root.img

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

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師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
主站蜘蛛池模板: 天天躁夜夜躁很很躁| 日本不卡在线观看免费v| 日韩一卡2卡3卡4卡| 美女的尿口无遮掩的照片| 五十路六十路绝顶交尾| 中文字幕在线视频在线看| 女人脱裤子让男生桶的免费视频| 优优里番acg※里番acg绅士黑| 99re在线视频免费观看| 久久无码精品一区二区三区 | 久久精品免费一区二区三区| 国产一区二区三区在线观看免费| 波多野结衣黑丝| 开嫩苞破呦处| 中文理论片| 在线观看三级激情视频| 又色又爽又黄的视频网站| 94久久国产乱子伦精品免费| 欧美一区二区三区久久久人妖| 欧美一级亚洲一级| 久久亚洲私人国产精品va | 亚洲国产欧洲综合997久久| 欧美色欧美亚洲高清在线视频 | 女人与狥交下配a级正在播放| 国产91精品久久| 韩日黄色片| 宝宝看着我是怎么进去的视频| 亚洲精品在线观看视频| 99久久99久久精品国产片果冻| 久久精品日日躁夜夜躁欧美| 波多野结衣厨房被强电影| 国内xxxx乱子另类| 美女被网站大全在线视频| 一人上面一个吃我电影| 久草免费福利资源站| 欧美午夜久久| 成人免费看www网址入口| 美女被扒开胸罩| 伊人第一路线| 丁香狠狠色婷婷久久综合 | 亚洲国产视频网|