使用的開發板:ok6410
環境:ubuntu 16.04.4 lts (核心: linux version 4.4.0-130-generic)
arm-linux-gnueabi-gcc 4.7.4(使用apt-get install)
busybox-1.28.2
yaffs2使用的飛凌linux-3.0.1中的原始碼編譯生成
1、mkyaffs2image執行提示找不到檔案或目錄
原因:具體原因沒有深究,可能是官網給的程式是32位,而我的ubuntu是64位導致的。
2、掛載檔案系統出錯:
vfs: mounted root (yaffs2 filesystem) on device 31:2.
devtmpfs: error mounting -2
freeing init memory: 176k
解決方案:在飛凌提供的linux核心原始碼中有yaffs的原始碼,簡單修改後利用生成的mkyaffs2image工具生成根檔案系統即可。
3、檔案系統燒寫完成後啟動開發板提示「kernel panic - not syncing: attempted to kill init!」。
待解決總結:這幾天一直在嘗試在ok6410上移植ubuntu系統,嘗試了多種方式後依然不能成功,嘗試的方案有:
3)、使用飛凌提供的uboot,linux核心映象,使用busybox生成簡單版的根檔案系統,然後利用mkyaffs2image工具生成yaffs2檔案系統;(在解決mkyaffs2image的相容問題後依然存在上面的問題3)
4)、使用飛凌提供的uboot,linux核心映象,以及飛凌的檔案系統中的bin資料夾、sbin資料夾、lib資料夾、linuxrc檔案,然後利用mkyaffs2image工具生成yaffs2檔案系統;(這種方式可以正常啟動)
從明天開始需要換一種方式來解決這種方式:從uboot移植開始一步步學習。
-----------------------------分割線--------------------------------------
環境:ubuntu 12.04 lts(核心:linux version 3.2.0-23-generic-pae)
arm-linux-gcc 4.2.2(飛凌提供)
busybox-1.20.0
yaffs2(根據飛凌提供的原始碼編譯生成mkyaffs2image)
今天在更換環境後生成的檔案系統就能正常啟動了。遇到了以下問題:
1、由於busybox中沒有ubi-user.h檔案,導致找不到變數的定義。
解決方案:將/usr/src/linux-headers-3.2.0-23/include/mtd/ubi-user.h拷貝到busybox資料夾下的include/mtd目錄下。
2、開發板啟動後提示「kernel panic - not syncing: no init found. try passing init= option to kernel. see linux documentation/init.txt for guidance.」
解決方案:原來的啟動引數是「root=/dev/mtdblock2 rootfstype=yaffs2 console=ttysac0,115200」,修改為「noinitrd root=/dev/mtdblock2 rootfstype=yaffs2 console=ttysac0,115200 init=/linuxrc」
3、開發板啟動後提示「failed to execute /linuxrc. attempting defaults...
kernel panic - not syncing: no init found. try passing init= option to kernel. see linux documentation/init.txt for guidance.」
檢視linuxrc依賴libm.so.6等庫,為了方便就將arm編譯器下的lib全部拷貝至檔案系統下的lib資料夾,然後重新生成yaffs2檔案系統,重新燒寫後便出現了:
vfs: mounted root (yaffs2 filesystem) on device 31:2.
devtmpfs: mounted
freeing init memory: 176k
can't run '/etc/init.d/rcs': no such file or directory
please press enter to activate this console.
/ # ls
[1;34mbin[0m [1;34mhome[0m [1;34mlost+found[0m [1;34mroot[0m [1;34mtmp[0m
[1;34mdev[0m [1;34mlib[0m [1;34mmnt[0m [1;34msbin[0m [1;34musr[0m
[1;34metc[0m [1;36mlinuxrc[0m [1;34mproc[0m [1;34msys[0m [1;34mvar[0m
至於dnw上出現的亂碼問題,暫時先放著。
linux核心檔案系統燒寫
1.製作並燒寫檔案系統 1 busybox的安裝 把busybox的壓縮包放到linux系統下 解壓縮 make menuconfig make make後會在 install下生成bin linuxrc sbin usr,把這些資料夾放到根系統中 2 把root mkfs的壓縮包解壓,然後修改ro...
通過uboot燒寫yaffs檔案系統
之前在sep4020上做開發的時候一直用的都是nfs檔案系統 今天嘗試在板子上燒寫cramfs以及yaffs檔案系統,按照手冊燒寫cramfs檔案系統時一切順利,沒有遇到什麼問題。在燒yaffs的時候,起初使用的是在啟動cramfs之後,再把yaffs的分割槽掛在到cramfs中,並把相關的檔案拷貝...
網路燒寫uImage和檔案系統
網路燒寫uimage和檔案系統 toc 記錄 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdow...