基於linux 3 10的yaffs2移植

2021-06-22 08:32:53 字數 4611 閱讀 5285

$ git clone git:

$ cd yaffs2/

$ ./patch-ker.sh c m ../linux3.10-mini2440

2. 然後在linux的源**fs中多了乙個yaffs2的資料夾,到此yaffs2檔案系統就已經新增到linux3.10中了。在linux核心源**根目錄執行:make menuconfig,移動上下按鍵進行配置:

file systems

---> miscellaneous filesystems

---> [*]yaffs2 file system support

並按空格選中它,這樣我們就在核心中新增了yaffs2檔案系統的支援,按「exit」退出核心配置。

3. 編譯linux源**。

$ make zimage

scripts/kconfig/conf --silentoldconfig kconfig

chk include/generated/uapi/linux/version.h

chk include/generated/utsrelease.h

make[1]: `include/generated/mach-types.h' is up to date.

call scripts/checksyscalls.sh

cc scripts/mod/devicetable-offsets.s

gen scripts/mod/devicetable-offsets.h

hostcc scripts/mod/file2alias.o

hostld scripts/mod/modpost

chk include/generated/compile.h

cc fs/yaffs2/yaffs_ecc.o

cc fs/yaffs2/yaffs_vfs.o

fs/yaffs2/yaffs_vfs.c: in function 'yaffs_proc_debug_write':

fs/yaffs2/yaffs_vfs.c:3304: warning: comparison of distinct pointer types lacks a cast

fs/yaffs2/yaffs_vfs.c: in function 'init_yaffs_fs':

fs/yaffs2/yaffs_vfs.c:3398: error: implicit declaration of function 'create_proc_entry'

fs/yaffs2/yaffs_vfs.c:3399: warning: assignment makes pointer from integer without a cast

fs/yaffs2/yaffs_vfs.c:3402: error: dereferencing pointer to incomplete type

fs/yaffs2/yaffs_vfs.c:3403: error: dereferencing pointer to incomplete type

fs/yaffs2/yaffs_vfs.c:3404: error: dereferencing pointer to incomplete type

make[2]: *** [fs/yaffs2/yaffs_vfs.o] error 1

make[1]: *** [fs/yaffs2] error 2

make: *** [fs] error 2

編譯fs/yaffs2/yaffs_vfs.c時出現錯誤,function 'create_proc_entry'沒有申明。google之後才知道原來這個介面在linux-3.10被刪除了,應該使用proc_create代替。

參考:what's coming in 3.10, part 2

4. 修改fs/yaffs2/yaffs_vfs.c

@@ -3384,12 +3384,6 @@ static struct file_system_to_install fs_to_install = 

}; +static const struct file_operations yaffs_fops = ;

+ static int __init init_yaffs_fs(void)

else

+#endif

- /* now add the file system entries */

fsinst = fs_to_install;

5. 修改之後儲存,然後再編譯就可以成功了。

$ make zimage

chk include/generated/uapi/linux/version.h

chk include/generated/utsrelease.h

make[1]: `include/generated/mach-types.h' is up to date.

call scripts/checksyscalls.sh

cc scripts/mod/devicetable-offsets.s

gen scripts/mod/devicetable-offsets.h

hostcc scripts/mod/file2alias.o

hostld scripts/mod/modpost

chk include/generated/compile.h

cc fs/yaffs2/yaffs_vfs.o

fs/yaffs2/yaffs_vfs.c: in function 'yaffs_proc_debug_write':

fs/yaffs2/yaffs_vfs.c:3304: warning: comparison of distinct pointer types lacks a cast

fs/yaffs2/yaffs_vfs.c: at top level:

fs/yaffs2/yaffs_vfs.c:3389: warning: initialization from incompatible pointer type

fs/yaffs2/yaffs_vfs.c:3390: warning: initialization from incompatible pointer type

cc fs/yaffs2/yaffs_guts.o

cc fs/yaffs2/yaffs_checkptrw.o

cc fs/yaffs2/yaffs_packedtags1.o

cc fs/yaffs2/yaffs_packedtags2.o

cc fs/yaffs2/yaffs_nand.o

cc fs/yaffs2/yaffs_tagscompat.o

cc fs/yaffs2/yaffs_tagsmarshall.o

cc fs/yaffs2/yaffs_mtdif.o

cc fs/yaffs2/yaffs_nameval.o

cc fs/yaffs2/yaffs_attribs.o

cc fs/yaffs2/yaffs_allocator.o

cc fs/yaffs2/yaffs_yaffs1.o

cc fs/yaffs2/yaffs_yaffs2.o

cc fs/yaffs2/yaffs_bitmap.o

cc fs/yaffs2/yaffs_summary.o

cc fs/yaffs2/yaffs_verify.o

ld fs/yaffs2/yaffs.o

ld fs/yaffs2/built-in.o

ld fs/built-in.o

link vmlinux

ld vmlinux.o

modpost vmlinux.o

gen .version

chk include/generated/compile.h

upd include/generated/compile.h

cc init/version.o

ld init/built-in.o

ksym .tmp_kallsyms1.o

ksym .tmp_kallsyms2.o

ld vmlinux

sortex vmlinux

sysmap system.map

objcopy arch/arm/boot/image

kernel: arch/arm/boot/image is ready

gzip arch/arm/boot/compressed/piggy.gzip

as arch/arm/boot/compressed/piggy.gzip.o

ld arch/arm/boot/compressed/vmlinux

objcopy arch/arm/boot/zimage

kernel: arch/arm/boot/zimage is ready

編譯Linux 3 10核心

2.解壓到本地 home zombie file linux 3.10.105 4.將 home zombie file linux 3.10.105 makefile 檔案中arch 和 cross compile值進行修改 如果編譯x86平台的應該可以不用設定,本人編譯的是arm的 原始內容如下...

基於Linux的Microsoft Edge瀏覽器

近年來隨著瀏覽器市場的變革,ie的地位越來越低,終於微軟在windows 10作業系統中推出了全新的edge瀏覽器,但是在剛開始的階段edge瀏覽器並不友好,很多人都無法適應edge的工作方式。而為了吸引更多使用者來使用 edge 瀏覽器,微軟終於決定將其 徹底大改版 將引擎替換成效能和相容性俱佳的...

基於Linux系統的病毒

儘管在linux裡傳播的病毒不多,但也是存在一些,我從一些 安全站點蒐集了一些資料。1 病毒名稱 類別 蠕蟲 病毒資料 感染系統 linux 不受影響系統 windows 3.x,windows 95,windows 98,windows nt,windows 2000,windows xp,win...