国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于busybox1.15.0的yaffs2文件系統移植TE2440II開發板

發布時間:2011-3-23 13:41    發布者:techshare
首先說一下各個知識點:

使用的busybox是1.15.0。什么是busybox呢,busybox是很多標準linux一個單個可執行實現,很多標準linux工具都可以共享很多共同的元素。例如,很多基于文件的元素(比如grep和find)都需要在文件中搜索文件的代碼。當這些工具被合并到一個可執行程序中時,他們就可以共享這些相同的元素,這樣可以產生更小的可執行程序。實際上,busybox可以將大約3.5M的工具包裝成大約200KB大小。這就為引導盤和嵌入式linux設備提供了更多的工具。我們可以對2.4或2.6版本的linux內核使用這個工具。

幾個常用的make選項:

make clean 清除源代碼樹

make distclean 徹底清除源代碼樹

make menuconfig N-curses(基于菜單的)配置工具

make defconfig 啟用默認的(通用)配置

make config 基于菜單的配置工具

uClibc與glibc。CC的標準就是glibc這個庫,里邊有GCC各種標準函數的實現,使用uClibc,這是一個對大小進行優化過的C庫,它為嵌入式系統開發。

根文件系統前面加一個“根”字,說明它是加載其他文件系統的根,既然是根,那么如果沒有這個根,其他文件系統就沒法加載。他包括系統引導和其他文件系統掛載所必須的文件,根文件系統包括Linux啟動所必須的目錄和關鍵性的文件,例如Linux啟動時都需要有init目錄下的相關文件,在Linux掛載分區時Linux一定會找到/etc/fstab這個掛載文件等,根文件系統還包括了應用程序bin目錄等。

1)Jffs2

JFFS嵌入式系統文件系統最早是由瑞典 Axis Communications公司基于Linux2.0的內核為嵌入式系統開發的文件系統。JFFS2是RedHat公司基于JFFS開發的閃存文件系統,最初是針對RedHat公司的嵌入式產品eCos開發的嵌入式文件系統,所以JFFS也可以用于Linux,uCLinux中。

Jffs2:日志閃存嵌入式系統文件系統版本2(Journalling Flash FileSystem v2)主要用于NOR型閃存,基于MTD驅動層,特點是,可讀寫的,支持數據壓縮的,基于哈希表的日志型文件系統,并提供了崩潰/掉電安全保護,提供“寫平衡”支持等。缺點主要是當文件系統已經滿或接近滿時,因為垃圾收集的關系而使jffs2的運行速度大大放慢。

2)Yaffs Yet Another Flash File System

Yaffs/yaffs2是專門為嵌入式系統使用NAND型閃存而設計的一種日志型文件系統。與jffs2相比,它減少一些功能(例如不支持數據壓縮),所以速度更快,掛載時間更短,對內存的占用較小。另外他是跨平臺的文件系統,除了Linux和eCos,還支持WinCE,pSOS和ThreadX等。

Yaffs/yaffs自帶NAND芯片驅動,并且為嵌入式提供了直接訪問文件系統的API,用于可以不使用Linux中的MTD與VFS,直接對文件系統操作。

3)Cramfs

Cramfs是Linux的創始人Linux Torvalds參與開發的一種只讀的壓縮文件系統。他也基于MTD驅動程序。在cramfs文件系統中,每一頁(4KB)被壓縮,可以隨機頁訪問,其壓縮比高達2:1,為嵌入式系統節省了大量的Flash存儲空間,使系統可通過更低容量的FLASH存儲相同的文件,從而降低系統成本。Cramfs文件系統以壓縮方式存儲,在運行時解壓縮。

4)NFS

NFS是由Sun開發并發展起來的一項不同機器,不同操作系統之間通過網絡共享文件的技術



然后開始操作:

一.

給內核打上補丁,使內核對yaffs2文件系統支持。
下載最新的驅動http://www.aleph1.co.uk/cgi-bin/ ... fs2.tar.gz?view=tar

解壓:

tar zxvf yaffs2.tar.gz

cd yaffs2

./patch-ker.shc/home/hacker/linux-2.6.30.4

成功后打印信息:

1. Updating /file/fl/linux-2.6.33/fs/Kconfig

2. Updating /file/fl/linux-2.6.33/fs/Makefile

進入linux-2.6.30.4目錄,把s3c2410的默認配置寫入config文件。

1. make s3c2410_defconfig

配置文件系統選項
配置yaffs2文件系統
修改配置如下:

1. File systems--->

2.    Miscellaneous filesystems--->

3.   <*> YAFFS2 file system support

4.     -*- 512 byte / page devices

5.     -*- 2048 byte (or larger) / page devices

6.          Autoselect yaffs2 format

7.        Cache short names in RAM

二:

編譯busybox生成文件系統所需要的應用程序

1.解壓busybox源碼,修改Makefile使之編譯成ARM平臺:

#tar-jxvf busybox-1.15.0.tar.tar
#cdbusybox-1.15.0
#gedit Makefile

修改CROSS_COMPILE ?= arm-linux- ARCH = arm

2.配置busybox,下面是一個人配置的busybox 1.13.0,借來參考,基本差不多。

make menuconfig

Busybox Settings --->
General Configuration --->
Buffer allocation policy (Allocate with Malloc) --->
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.conf
Suppress warning message if /etc/busybox.conf is not readable
(/proc/self/exe) Path to BusyBox executable
Build Options --->
Build BusyBox as a static binary (no shared libs)
Build with Large File Support (for accessingfiles> 2 GB)
Installation Options --->
[ ] Don't use /usr
Applets links (as soft-links) --->
(./_install) BusyBox installation prefix
Busybox Library Tuning --->
(6) Minimum password length
(2) MD5: Trade Bytes for Speed
Faster /proc scanning code (+100 bytes)
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
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 module.symbols fileLinux System Utilities --->

3.編譯和安裝busybox:

make;make install

安裝好后會在busybox-1.15.0/_install/目錄下生成:bin,linuxrc,sbin,usr。

4.開始構建文件系統

1)創建一個root_2.6.30.4目錄,把busybox-1.15.0/_install/目錄下的復制過來,并在該目錄下創建文件系統所需要的其他目錄。

#mkdir root-2.6.30.4
#cp-rf busybox-1.15.0/_install/*root-2.6.30.4/
#cdroot-2.6.30.4/
#mkdir dev etc home lib mnt opt proc tmp var

2)添加必須的文件,文件和文件夾都用chmod 777 xxx,修改權限

"dev"目錄,創建兩個設備文件:

#mknodconsolec 5 1
#mknod null c 1 3

etc"目錄,創建各種配置文件并向里面添加內容,沒有列出的就不用添加:

group: 系統用戶組配置文件,內容如下:

root:*:0:
daemon:*:1:
bin:*:2:
sys:*:3:
adm:*:4:
tty:*:5:
disk:*:6:
lp:*:7:lp
mail:*:8:
news:*:9:
uucp:*:10:
proxy:*:13:
kmem:*:15:
dialout:*:20:
fax:*:21:
voice:*:22:
cdrom:*:24:
floppy:*:25:
tape:*:26:
sudo:*:27:
audio:*:29:
ppp:x:99:
500:x:500:plg
501:x:501:fa

inittab: 系統init進程配置文件,內容如下:

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

passwd: 系統密碼文件,內容如下:

root::0:0:root:/:/bin/sh
ftp::14:50:FTP User:/var/ftp:
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
nobody:*:99:99:Nobody:/:
hacker::502:502inux User,,,:/home/hacker:/bin/sh

sysconfig/HOSTNAME: 主機名稱文件,內容如下:

TE2440II

注意HOSTNAME是文件名,TE2440II是文件中的內容。

fstab: 系統掛載文件系統列表,內容如下:




# device mount-point type options dump fsck order
none/proc proc defaults0 0
none/dev/pts devptsmode=06220 0
tmpfs/dev/shm tmpfsdefaults0 0
[/table]


init.d/rcS: 系統啟動加載項,內容如下:




#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel

#
#Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
#
/bin/mount -t proc none /proc
/bin/mount -t tmpfs none /tmp
/bin/mount -t tmpfs none /var

/bin/mkdir -p /var/log

/bin/hostname -F /etc/sysconfig/HOSTNAME
[table]



profile: 用戶環境配置文件,內容如下:

# Ash profile
# vim: syntax=sh
# No corefilesby default
#ulimit -S -c 0 > /dev/null 2>&1
USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]\# '
PATH=$PATH:/usr/local/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATHLD_LIBRARY_PATH

resolv.conf: DNS配置文件,內容如下:

nameserver 61.144.56.100

"home"目錄:創建一個hacker目錄,與etc目錄passwd文件中的hacker相對應

"lib"目錄:這個里面放的都是庫文件,直接從交叉編譯器的庫文件目錄中拷貝過來:

#cp -f /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*so* lib/ -a

6. 使用yaffs制作工具編譯構建好的文件系統。使用mkyaffs2image,復制到/usr/sbin/目錄下,給予777權限。

然后mkyaffs2image root-2.6.30.4 root-2.6.30.4.bin

注意一個路徑是這樣的 /etc/init.d/rcS, rcS是文件

Kernel panic - not syncing: Attempted to kill init!
上網搜索了一些相關信息,找到了解決問題的途徑。 原因在于:編譯內核和busybox使用的編譯器是arm-linux-gcc 4.3.2,而這個編譯器默認是打開“EABI選項”的,這樣編譯出來的busybox就是EABI的。但是內核編譯的時候,默認是把“EABI選項”關掉的。所以busybox和內核無法正常配合。把“EABI選項”打開,重新編譯內核后,一切正常。
Kernel Features --->
Use the ARM EABI to compile the kernel
Allow old ABI binaries to run with this kernel (EXPERIMENTAL) (NEW)

這樣就搞定了,嘿嘿。


李萬鵬
本文地址:http://www.qingdxww.cn/thread-59523-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 你仿真過嗎?使用免費的MPLAB Mindi模擬仿真器降低設計風險
  • 我們是Microchip
  • 想要避免發生災難,就用MPLAB SiC電源仿真器!
  • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲aⅴ久久久噜噜噜噜 | 91精品福利久久久 | 爱爱插入视频 | 精品国产免费久久久久久婷婷 | 欧美在线成人午夜影视 | 国内自拍一区 | 成人亚洲天堂 | 毛片视频免费 | 一级做a爰片久久毛片人呢 一级做a爰片久久毛片免费看 | 成人欧美一区二区三区在线观看 | 久久久久久久国产精品毛片 | 高清国产精品久久久久 | 亚洲男人天堂 | 草莓香蕉绿巨人丝瓜榴莲18 | 中文字幕在线观看亚洲日韩 | 国产精品国产自线拍手机观看 | 亚洲国产高清人在线 | 日本不卡二 | 不卡在线| 亚洲精品不卡久久久久久 | 国产精品热久久毛片 | 蜜臀导航 | 香蕉视频网址 | 老子影院午夜伦手机不四虎 | 色啪视频| 美日韩毛片 | 朋友的妻子在线播放 | 国产亚洲欧美视频 | 在线视频区 | 隔壁的邻居在线观看在线 | 一级黄色a毛片 | 亚洲视频黄色 | 91免费国产在线观看 | 亚洲欧洲尹人香蕉综合 | 力王国语在线观看完整国语版免费 | 鲁一鲁噜噜噜 | 永久黄色免费网站 | 国产在线高清不卡免费播放 | 99精品视频在线观看免费播放 | 国产成人午夜视频 | 黄色大片久久 |