九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
linux2.6.33內(nèi)核移植(1)

參考:http://bbs.witech.com.cn/thread-468-1-1.html

宿主機(jī):Redhat 9.0

目標(biāo)機(jī):s3c2440_fl2440

交叉編譯器:arm-linux-gcc-3.4.1

交叉編譯器路徑:/home/thk8246/fl/file

要移植的內(nèi)核版本:linux-2.6.33

文件系統(tǒng)類(lèi)型: yaffs2 (目前使用光盤(pán)中l(wèi)inux-2.6.28的文件系統(tǒng)touch.yaffs)

個(gè)人體會(huì):第一次移植linux內(nèi)核沒(méi)有加驅(qū)動(dòng),但是成功了,有點(diǎn)小高興!雖然參考了飛凌的官方資料,里面有詳細(xì)的步驟,但是某些方面還是不懂,比如nandflash驅(qū)動(dòng),原始值為2,為什么要改成1等等,但是我相信,久而久之,我就知其然,又知其所以然的。因?yàn)檫@linux學(xué)習(xí)不是一朝一夕之功呀!貴在堅(jiān)持嗎!

1、 下載內(nèi)核linux-2.6.33.tar.gz(http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.tar.gz  中可以找到),然后還需要下載yaffs2文件系統(tǒng),目的是為了給內(nèi)核打補(bǔ)丁。下載地址為:http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2.tar.gz?view=tar

2、 將下載的文件存放在/home/thk8246/fl/source中。

3、 分別解壓縮:

[root@localhost  source]# tar xzf linux-2.6.33.tar.gz -C ../file

[root@localhost  source]# tar xzf yaffs2.tar.gz -C ../fil

4、 為內(nèi)核增加yaffs2補(bǔ)丁

[root@localhost  source]# cd ../file

[root@localhost  file]# cd yaffs2

[root@localhost  yaffs2]# ./patch-ker.sh c ../linux-2.6.33/

打印出信息如下,表示內(nèi)核打補(bǔ)丁成功。

Updating ../linux-2.6.33//fs/Kconfig

Updating ../linux-2.6.33//fs/Makefile

5、 修改機(jī)器碼。進(jìn)入內(nèi)核目錄,修改機(jī)器碼跟bootloader的機(jī)器碼一致(FL2440為193)

[root@localhost  yaffs2]# cd ../linux-2.6.33

[root@localhost  linux-2.6.33]#vi arch/arm/tools/mach-types

首先注銷(xiāo)以下行:

#s3c2410                 ARCH_S3C2410            S3C2410                 182

然后將以下行:

s3c2440                 ARCH_S3C2440            S3C2440                 362

修改為:

s3c2440                 ARCH_S3C2440            S3C2440                 193

6、 指定目標(biāo)板machine、編譯器和編譯器路徑。修改Makefile文件,注意將CROSS_COMPILE對(duì)應(yīng)到你系統(tǒng)中交叉編譯器地址

[root@localhost  linux-2.6.33]# vi Makefile

將兩行:

ARCH            ?= $(SUBARCH)

CROSS_COMPILE   ?=

修改為以下兩行:

ARCH            ?= arm

CROSS_COMPILE   ?=/home/thk8246/fl/file/3.4.1/bin/arm-linux-         

7、 增加devfs文件管理器的支持。修改fs/Kconfig。

找到以下行:

menu "Pseudo filesystems"

在此行后面增加以下內(nèi)容:

config DEVFS_FS

         bool "/dev file system support (OBSOLETE)"

         default y    

config DEVFS_MOUNT

         bool "Automatically mount at boot"

         default y

depends on DEVFS_FS

8、 修改晶振頻率( 可解決打印信息亂碼問(wèn)題 )。修改文件arch/arm/mach-s3c2440/mach-smdk2440.c

將如下行:

s3c24xx_init_clocks(16934400);

修改為:

s3c24xx_init_clocks(12000000);

9、 修改MTD分區(qū)。打開(kāi)文件arch/arm/plat-s3c24xx/common-smdk.c,此處注意兩個(gè)地方:一、必須跟bootloader分區(qū)一樣,二、文件系統(tǒng)fs_yaffs必須在第4個(gè)分區(qū),即索引號(hào)為3。其他一些分區(qū)信息可以不要,如下:找到static struct mtd_partition smdk_default_nand_part[]的結(jié)構(gòu)體,將內(nèi)容修改為:

1 static struct mtd_partition smdk_default_nand_part[] =

2  {

3         [0] = {

4                 .name        = "Boot",

5                 .size        = 0x00100000,

6                 .offset = 0

7           },

8         [1] = {

9                 .name        = "MyApp",

10                 .size        = 0x003c0000,

11                 .offset = 0x00140000,

12          },

13         [2] = {

14                 .name        = "Kernel",

15                 .size        = 0x00300000,

16                 .offset = 0x00500000,

17           },

18         [3] = {                                                 //與bootleader一致,否則掛載不上文件系統(tǒng)

19                 .name        = "fs_yaffs",

20                 .size        = 0x03c00000,         

21                 .offset = 0x00800000,

22          },       

23         [4] = {

24                 .name        = "WINCE",

25                 .size        = 0x03c00000,

26                 .offset = 0x04400000,

27          }

28 };

10、 關(guān)閉ECC校驗(yàn)。修改文件drivers/mtd/nand/s3c2410.c

將以下行:

chip->ecc.mode      = NAND_ECC_SOFT;

修改為:

chip->ecc.mode      = NAND_ECC_NONE;

11、 修改nandflash驅(qū)動(dòng),支持K9F1G08的nandflash。文件為:drivers/mtd/nand/nand_bbt.c

將以下兩個(gè)部分進(jìn)行修改

static struct nand_bbt_descr largepage_memorybased = {

        .options = 0,

        .offs = 0,

        .len = 1, //原始值為2,改成1

        .pattern = scan_ff_pattern

};

static struct nand_bbt_descr largepage_flashbased = {

        .options = NAND_BBT_SCAN2NDPAGE,

        .offs = 0,

        .len = 1, //原始值為2,改成1

        .pattern = scan_ff_pattern

};

12、 把s3c2410的默認(rèn)配置寫(xiě)入config文件。

[root@localhost  linux-2.6.33]# make s3c2410_defconfig

  HOSTCC  scripts/basic/fixdep

  HOSTCC  scripts/basic/docproc

  HOSTCC  scripts/basic/hash

  HOSTCC  scripts/kconfig/conf.o

  HOSTCC  scripts/kconfig/kxgettext.o

  SHIPPED scripts/kconfig/zconf.tab.c

  SHIPPED scripts/kconfig/lex.zconf.c

  SHIPPED scripts/kconfig/zconf.hash.c

  HOSTCC  scripts/kconfig/zconf.tab.o

  HOSTLD  scripts/kconfig/conf

#

# configuration written to .config

#

下面,開(kāi)始配置內(nèi)核。

配置內(nèi)核,注意System Type中,S3C2440中只選擇以下內(nèi)容即可。

[root@ localhost  linux-2.6.33]# make menuconfig

配置CPU選項(xiàng)(記得與S3C2440 Machines平級(jí)的以及它的子項(xiàng)都不選,否則編譯時(shí)會(huì)出現(xiàn)錯(cuò)誤的)

System Type  ---> 

    S3C2440 Machines  ---> 

        [*] SMDK2440

        [*] SMDK2440 with S3C2440 CPU module

配置yaffs2選項(xiàng)

File systems  ---> 

    [*] Miscellaneous filesystems  --->

        <*>   YAFFS2 file system support 

            -*-     512 byte / page devices

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

                [*]       Autoselect yaffs2 format 

                [*]     Cache short names in RAM

13、 最后等著基本內(nèi)核大功告成把。

[root@localhost  linux-2.6.33]# make zImage


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
新內(nèi)核移植示例
linux-2.6內(nèi)核移植
Linux 內(nèi)核移植和根文件系統(tǒng)制作
基于S3C2440的Linux內(nèi)核移植和yaffs2文件系統(tǒng)制作 -- fafen's B...
采用busybox的嵌入式Linux根文件系統(tǒng)的的制作方法
在掛載yaffs2 文件系統(tǒng)出現(xiàn)的問(wèn)題和解決辦法
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服