日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

【移植Linux 3.4.2内核第二步】之修改系统分区

發(fā)布時間:2023/12/10 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【移植Linux 3.4.2内核第二步】之修改系统分区 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天接著移植Linux 3.4.2內(nèi)核,接著上一篇文章(點擊查看:上一篇文章)我們完成了內(nèi)核的串口啟動打印輸出,但是無法掛載根文件系統(tǒng),我們看看啟動后顯示的是什么:

從打印結(jié)構(gòu)可以看出,我們的分區(qū)不對,在U-boot移植(點擊查看:Uboot分區(qū))中,我們已經(jīng)對整個系統(tǒng)進行分區(qū)了,現(xiàn)在打印說我們的分區(qū)不對,一定是內(nèi)核里也有分區(qū)的相關(guān)設(shè)置,我們需要去修改內(nèi)核:
在common-smdk.c中(具體怎么找到這個函數(shù),可以從串口打印找到關(guān)鍵字在內(nèi)核中搜索看看關(guān)鍵字符串在哪里出現(xiàn)過,這個技巧對于初不熟悉內(nèi)核架構(gòu)的人來說很管用),有如下函數(shù),對應的分區(qū)的設(shè)置:

/* NAND parititon from 2.4.18-swl5 */static struct mtd_partition smdk_default_nand_part[] = {[0] = {.name = "Boot Agent",.size = SZ_16K,.offset = 0,},[1] = {.name = "S3C2410 flash partition 1",.offset = 0,.size = SZ_2M,},[2] = {.name = "S3C2410 flash partition 2",.offset = SZ_4M,.size = SZ_4M,},[3] = {.name = "S3C2410 flash partition 3",.offset = SZ_8M,.size = SZ_2M,},[4] = {.name = "S3C2410 flash partition 4",.offset = SZ_1M * 10,.size = SZ_4M,},[5] = {.name = "S3C2410 flash partition 5",.offset = SZ_1M * 14,.size = SZ_1M * 10,},[6] = {.name = "S3C2410 flash partition 6",.offset = SZ_1M * 24,.size = SZ_1M * 24,},[7] = {.name = "S3C2410 flash partition 7",.offset = SZ_1M * 48,.size = MTDPART_SIZ_FULL,} };

將分區(qū)修改為如下這樣的:
0x00000000-0x00040000 : “bootloader”
0x00040000-0x00060000 : “params”
0x00060000-0x00260000 : “kernel”
0x00260000-0x10000000 : “root”
即改為:

/* NAND parititon from 2.4.18-swl5 */static struct mtd_partition smdk_default_nand_part[] = {[0] = {.name = "bootloader",.size = SZ_256K,.offset = 0,},[1] = {.name = "params",.offset = MTDPART_OFS_APPEND,//緊接著上一個分區(qū).size = SZ_128K,},[2] = {.name = "kernel",.offset = MTDPART_OFS_APPEND,.size = SZ_2M,},[3] = {.name = "rootfs",.offset = MTDPART_OFS_APPEND,.size = MTDPART_SIZ_FULL, //剩下的所有分區(qū)}};

注釋:如果我們之前使用的及其ID是set machid 7CF(本身使用的是set machid 16a,查看之前的文章看相關(guān)內(nèi)容:點擊查看之前的文章)那么我們需要修改的地方是:mach-mini2440.c文件(與common-smdk.c在同一個目錄)中的結(jié)構(gòu)體:

/* NAND Flash on MINI2440 board */static struct mtd_partition mini2440_default_nand_part[] __initdata = {[0] = {.name = "u-boot",.size = SZ_256K,.offset = 0,},[1] = {.name = "u-boot-env",.size = SZ_128K,.offset = SZ_256K,},[2] = {.name = "kernel",/* 5 megabytes, for a kernel with no modules* or a uImage with a ramdisk attached */.size = 0x00500000,.offset = SZ_256K + SZ_128K,},[3] = {.name = "root",.offset = SZ_256K + SZ_128K + 0x00500000,.size = MTDPART_SIZ_FULL,}, };

改為:

/* NAND Flash on MINI2440 board */static struct mtd_partition mini2440_default_nand_part[] __initdata = {[0] = {.name = "bootloader",.size = SZ_256K,.offset = 0,},[1] = {.name = "params",.offset = MTDPART_OFS_APPEND,//緊接著上一個分區(qū).size = SZ_128K,},[2] = {.name = "kernel",.offset = MTDPART_OFS_APPEND,.size = SZ_2M,},[3] = {.name = "rootfs",.offset = MTDPART_OFS_APPEND,.size = MTDPART_SIZ_FULL, //剩下的所有分區(qū)} };

我們這里一直使用的是set machid 16a這個機器ID。

好了:
重新編譯內(nèi)核用nfs掛載(具體方法看上一篇文章)內(nèi)核,啟動,顯示如下:

由此可知,我們的分區(qū)已經(jīng)正常了,只是還缺少文件系統(tǒng)沒有燒寫。
我們先燒寫一個簡單的文件系統(tǒng)看一下能否正常啟動系統(tǒng):
nfs 30000000 192.168.1.101:/work/nfs_root/fs_mini_mdev.yaffs2
nand erase.part rootfs
nand write.yaffs 30000000 260000 889bc0 (這個889bc0大小是文件系統(tǒng)的大小,根據(jù)實際情況修改)

燒寫文件系統(tǒng)后下載內(nèi)核啟動:
nfs 32000000 192.168.1.101:/work/nfs_root/uImage_new
bootm 32000000

發(fā)現(xiàn)還是啟動不了,顯示不支持yaffs2文件系統(tǒng),那么再試一下jffs文件系統(tǒng)是否可以:
nfs 30000000 192.168.1.101:/work/nfs_root/fs_mini_mdev.jffs2
nand erase.part rootfs
nand write.jffs2 30000000 260000 5b89a8

nfs 32000000 192.168.1.101:/work/nfs_root/uImage_new
bootm 32000000
顯示:

文件系統(tǒng)已經(jīng)掛載上去了,但是無法啟動init進程。

那么看來我們需要制作新的文件系統(tǒng)了!!!我們新的內(nèi)核不支持我們老的文件系統(tǒng)。

為了區(qū)分開,制作文件系統(tǒng),我們放到下一篇文章(點擊鏈接查看下一篇文章:點擊查看)

想一起探討以及獲得各種學習資源加我(有我博客中寫的代碼的原稿):
qq:1126137994
微信:liu1126137994
可以共同交流關(guān)于嵌入式,操作系統(tǒng),C++語言,C語言,數(shù)據(jù)結(jié)構(gòu)等技術(shù)問題。

總結(jié)

以上是生活随笔為你收集整理的【移植Linux 3.4.2内核第二步】之修改系统分区的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 疯狂少妇 | 欧美日韩中文字幕一区二区三区 | 精品人妻无码一区二区三区换脸 | 国产一区二区三区精品在线观看 | 激情四射婷婷 | 亚洲欧美在线一区 | 国产视频在线观看免费 | 香蕉视频在线视频 | 欧美日韩中文字幕在线观看 | 特黄三级又爽又粗又大 | 狠狠干女人 | 午夜电影网一区 | 91字幕网 | 国产91精品欧美 | 成人动漫在线观看 | 亚洲欧美高清在线 | 国产精品jizz在线观看无码 | 久色综| 精品久久久久中文慕人妻 | 亚洲午夜无码久久 | 99爱精品| 黄色性视频网站 | 91极品尤物| 日韩三级视频在线播放 | 97超碰资源站 | 极品美女扒开粉嫩小泬 | 丁五月| 97香蕉视频 | 黄色网战在线观看 | 久久99久久99精品免视看婷婷 | 小黄网站在线观看 | 九九热精品视频在线播放 | 在线观看麻豆av | 秋霞成人| 欧美成人手机在线视频 | 日韩成人一区 | 高潮网| 日韩黄色片免费看 | 色人综合| 激情婷婷综合 | 日韩精品三级 | 人妻互换一二三区激情视频 | 日本美女性高潮 | 亚洲天堂视频在线 | 黄色一级在线 | 欧美不在线 | 成人mv | 精品视频99 | 欧美精品日韩在线 | 在线观看亚洲免费视频 | 国产午夜精品一区二区三区 | 1024视频污| 欧美性极品 | 国产18一19sex性护士 | 日韩电影一区二区在线观看 | 成人1区| 国产综合精品一区二区三区 | 国产无遮挡18禁无码网站不卡 | 动漫av网站 | 日韩在线亚洲 | 天天上天天干 | 成人免费在线电影 | 精品人妻无码一区 | 欧美美女一区二区三区 | 少妇又紧又色又爽又刺激视频 | 日韩欧美亚洲在线 | 国产精品久久久久久久久久小说 | 国产粉嫩一区二区三区 | 成人在线播放av | 国产激情片 | 国产又爽又黄的激情精品视频 | 青娱乐超碰在线 | 韩国毛片网站 | 亚洲精品在线观看av | 在线看的av网站 | 成人靠逼视频 | 国产成人精品一区二区三 | 手机av中文字幕 | 亚洲av永久无码国产精品久久 | 哪个网站可以看毛片 | 亚洲欧洲成人精品久久一码二码 | 黄色污污视频 | 超碰在线最新 | 国产欧美在线精品日韩 | 久久午夜无码鲁丝片午夜精品 | 午夜福利视频 | 欧美黄色录像视频 | 日韩国产精品一区二区 | 欧美福利电影 | 丰满岳跪趴高撅肥臀尤物在线观看 | 欧美精品久久久久久久久久 | 美女扒开屁股让男人桶 | 9191在线视频 | 影音av资源 | 91精品国产色综合久久不卡电影 | 阿v天堂在线观看 | 污污视频网站免费观看 | 欧美a网站 | 久精品免费视频 |