乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      轉(zhuǎn) 在s3c2410板上移植2.6 kernel_mmeelv

       imzjw 2007-07-27
      最近這幾天的晚上我在移植2.6的kernel。因?yàn)樗胶懿耍圆惶樌?br>     我用的是kernel是2.6.14.2, 這個內(nèi)核直接支持S3C2410的板子,不必打任何補(bǔ)丁。從www.下載了內(nèi)核。然后找來了3.4.1的GCC交叉編譯器(經(jīng)典的2.95.3編譯2.6內(nèi)核會出錯)。解開內(nèi)核開始修改。
      (該部分轉(zhuǎn)貼自:http://superlp.blogchina.com/blog/1391393.html 感謝superlp)
      1. 增加nand分區(qū)信息
           打開arch/arm/mach-s3c2410/devs.c
           增加頭文件
           #include <linux/mtd/partitions.h>
           #include <asm/arch/nand.h>
           #include <linux/mtd/nand.h>
           增加分區(qū)數(shù)據(jù)
           /*****************************add here***************************/
           static struct mtd_partition partition_info[] ={
           {
           name: "loader",
           size: 0x00020000,
           offset: 0,
           }, {
           name: "param",
           size: 0x00010000,
           offset: 0x00020000,
           }, {
           name: "kernel",
           size: 0x001c0000,
           offset: 0x00030000,
           }, {
           name: "root",
           size: 0x00200000,
           offset: 0x00200000,
           mask_flags: MTD_WRITEABLE,
           }, {
           name: "user",
           size: 0x03af8000,
           offset: 0x00400000,
           }
           };
          
           struct s3c2410_nand_set nandset ={
           nr_partitions: 5 ,
           partitions: partition_info ,
           };
          
           struct s3c2410_platform_nand superlpplatform={
           tacls:0,
           twrph0:30,
           twrph1:0,
           sets: &nandset,
           nr_sets: 1,
           };
           /********************************end add****************************/
           struct platform_device s3c_device_nand = {
           .name = "s3c2410-nand",
           .id = 0xec,
           .num_resources = ARRAY_SIZE(s3c_nand_resource),
           .resource = s3c_nand_resource,
           .dev = {
           .platform_data = &superlpplatform //***********add here*****
           }
           };
           (分區(qū)部分根據(jù)實(shí)際情況修改)
      2. 打開arch/arm/mach-s3c2410/mach-smdk2410.c
          把"&s3c_device_nand"添加到__initdata
      3. 打開drivers/mtd/nand/s3c2410.c
          把chip->eccmode = NAND_ECC_SOFT;改成chip->eccmode = NAND_ECC_NONE;
      4. 修改Makefile, 把設(shè)定SUBARCH := arm CROSS_COMPILE ?= arm-linux-(事先得安裝交叉
          編譯器)
      接著開始make menuconfig,并且載入arch/arm/configs/def_s3c2410config,保存后就make,如果編譯器沒有問題得話,應(yīng)該一次就能編譯成功。
           接下來編譯bootload, 我用vivi, 從www.下 載vivi的源代碼包,解開后make menuconfig, 載入arch/def-configs/smdk2410, 保存退出后修改arch/s3c2410/smdk.c,修改里面的分區(qū)信息和啟動參數(shù)。分區(qū)信息根據(jù)實(shí)際情況設(shè)置,啟動參數(shù)設(shè)置成“noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200 mac=00:0e:3a:aa:bb:cc”. 保存退出后make, 得到vivi的BIN.
           把vivi和kernel的BIN文件燒錄到FLASH后給板子上電,發(fā)現(xiàn)一個問題,vivi并沒有使用我設(shè)置好的分區(qū)信息和啟動參數(shù),而是使用一個默認(rèn) 的值,要使用命令param reset和part reset才可以重置我設(shè)置的值。vivi默認(rèn)的kernel分區(qū)大小是1M,而我的kernel的BIN文件有1.2M,開始嘗試了好多次都失敗。重置 了參數(shù)以后kernel可以執(zhí)行起來, 但是找不到根文件系統(tǒng),那是當(dāng)然的,因?yàn)槲疫€沒有燒錄文件系統(tǒng)。
         

      一. 準(zhǔn)備必要的文件

             我們首先去官方網(wǎng)站下載最新的 llinux 內(nèi)核

           http://www./pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2

      因?yàn)?/span> linux2.6.14 內(nèi)核需要更新版本的編譯器,所以我們需要下載交叉編譯器

      ftp://ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2

      注:這個編譯器已經(jīng)包含在光盤的 \DISK4\linux 相關(guān) \linuxtool 目錄下面。

      二. 安裝文件

             我們把 gcc 安裝在 /usr/local/arm/3.4.1 目錄下,安裝方法和安裝 gcc2.95.3 gcc3.3.2 是相同的,(

      cd /

      tar     jxvf arm-linux-gcc-3.4.1.tar.bz2

      vi ~/.bash_profile

      把a(bǔ)rm-linux-gcc的路徑/usr/local/arm/3.4.1/bin添加到PATH中)


      接下來需要解壓 linux 內(nèi)核,輸入命令:

      [root · localhost hfrk]# tar jxvf linux-2.6.14.tar.bz2

      內(nèi)核被解壓到 linux-2.6.14 目錄下。

      三. 修改 makefile 文件

             內(nèi)核的編譯是根據(jù) makefile 文件的指示進(jìn)行的, Makefile 文件來組織內(nèi)核的各模塊之間的關(guān)系,記錄了各個模塊之間的相互聯(lián)系和依賴關(guān)系。

             我們首先修改 linux-2.6.14 的根目錄下的 makfile 文件,我們須改的主要內(nèi)容是目標(biāo)代碼的類型和為編譯內(nèi)核指定一個編譯器。

         我們注釋掉以下內(nèi)容:

          #ARCH   ?= $(SUBARCH)

             #CROSS_COMPILE      ?=

             增加如下內(nèi)容:

             ARCH     : = arm

             CROSS_COMPILE =/usr/local/arm/3.4.1/bin/arm-linux-

      四. 修改相關(guān)的文件。

      1.        修改 arch\arm\mach-s3c2410\devs.c 文件

             增加頭文件定義

                    /***********add here***********/

                     #include <linux/mtd/partitions.h>

                    #include <asm/arch/nand.h>

                    #include <linux/mtd/nand.h>

                     /**************end add********/

        

                   增加 nand flash 分區(qū)信息

                    /***********add here***********/

                    static struct mtd_partition partition_info[] ={

                    {

                    name: "loader",

                    size: 0x00020000,

                    offset: 0,

                    }, {

                    name: "param",

                    size: 0x00010000,

                    offset: 0x00020000,

                    }, {

                    name: "kernel",

                    size: 0x001c0000,

                    offset: 0x00030000,

                    }, {

                    name: "root",

                    size: 0x00200000,

                    offset: 0x00200000,

                    mask_flags: MTD_WRITEABLE,

                    }, {

                    name: "user",

                    size: 0x03af8000,

                    offset: 0x00400000,

                    }

                    };

                    struct s3c2410_nand_set nandset ={

                    nr_partitions: 5 ,

                    partitions: partition_info ,

                    };

                    struct s3c2410_platform_nand superlpplatform={

                    tacls:0,

                    twrph0:30,

                    twrph1:0,

                    sets: &nandset,

                    nr_sets: 1,

                    };

                    /**************end add********/

                    struct platform_device s3c_device_nand = {

                    .name             = "s3c2410-nand",

                    .id           = -1,

                    .num_resources     = ARRAY_SIZE(s3c_nand_resource),

                    .resource = s3c_nand_resource,

                    /***********add here****************/

                    .dev = {

                    .platform_data = &superlpplatform

                    }

                    /**************end here************/

                    };

      2. 修改 arch\arm\mach-s3c2410\mach-smdk2410.c 文件

                    Startic struct platform_device *smdk2410_devices[] __initdata={

                           &s3c_device_usb,

                           &s3c_device_lcd;

                           &s3c_device_wdt,

                           &s3c_device_i2c;

                           &s3c_device_iis,

                           &s3c_device_nand, /*add here*/

                    };

      五. 我們做完以上修改以后,內(nèi)核編譯以后就可以在 hfrk2410 開發(fā)板上運(yùn)行了。

             打開終端窗口,切換到 linux-2.6.14 目錄下,輸入命令:

      # make smdk2410_defconfig

      #make menuconfig /*選擇nand flash模塊*/

      # make

      等編譯完成以后,會生成鏡像文件 arch/arm/boot/zImage ,把這個文件下載到開發(fā)板上,就會看到 linux2.6 的內(nèi)核啟動信息,我們邁出了 linux2.6 內(nèi)核移植的第一步!

      如果出現(xiàn)field `list‘ has incomplete type

      那是因?yàn)閜artitions.h中沒有定義head_list,在partitions.h的頭加上#include <linux/list.h>

      就ok了,哈哈

      Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1529788

      在華恒2410平臺上移植2.6內(nèi)核

      allbone 發(fā)表于 2006-4-7 16:57:00      第一次做linux的移植,走了很多彎路,也學(xué)到很多知識,僅把過程
      記錄下來,以備日后之用。

           手里這塊板是華恒的一個學(xué)習(xí)平臺,配置比較低:
           s3c2410, 8M Nor Flash(Intel 28F640), 16M SDRAM

           配套安裝的是2.4的內(nèi)核,根文件系統(tǒng)安裝在ramdisk上。我的想
      法很簡單,就是將2.6的內(nèi)核跑起來,掛上原來的文件系統(tǒng)。就是說
      只要系統(tǒng)啟動到shell提示符,我的目的就達(dá)到了,至于周邊設(shè)備的
      驅(qū)動移植則不在此行計劃內(nèi)。很自然的,整個過程大致分為兩個階段。

           一、內(nèi)核移植
         
           由于2.6內(nèi)核已經(jīng)正式支持2410這款cpu以及smdk2410這塊公板,
      只要配置得當(dāng),在不修改一行內(nèi)核代碼的情況下,內(nèi)核就可以運(yùn)行起來。
      所以我覺得這里再提移植就不恰當(dāng)了,而僅僅是個配置、交叉編譯內(nèi)
      核的過程。

      make ARCH=arm CROSS_COMPILE=arm-linux- smdk2410_defconfig
      make ARCH=arm CROSS_COMPILE=arm-linux- zImage

           為了接下來方便,可以直接在top level的Makefile中設(shè)置ARCH
      和CROSS_COMPILE變量。在2.6內(nèi)核中,console的名稱發(fā)生了變化,
      需要在bootloader或者內(nèi)核的配置中修改啟動參數(shù),例如

           2.4中啟動參數(shù)為 …… console=ttyS0,115200,
           在2.6中則應(yīng)改為 …… console=ttySAC0,115200

           現(xiàn)在用新內(nèi)核啟動,可以在串口接收到啟動信息,但由于還沒有
      安裝根文件系統(tǒng),所以中途會panic,這是我們在下一階段需要解決
      的問題,而第一階段工作結(jié)束。

           非常簡單的過程,我卻沒那么幸運(yùn)。開始用的是最新的2.6.16的
      kernel,經(jīng)過上述配置,啟動后收不到任何消息。折騰無數(shù)次后,抱
      著有病亂投醫(yī)的想法,嘗試了一下2.6.14,竟然順利啟動。翻了一遍
      2.6.16的changelog,也沒發(fā)現(xiàn)個所以然,等待高手解惑……

           二、安裝根文件系統(tǒng)
         
           首先對flash進(jìn)行分區(qū)。網(wǎng)上的經(jīng)典文章《Linux 2.6.10 以后版
      本對S3C2410的支持》僅提到了對Nand flash分區(qū)的方法,對Nor
      flash不適用。對Nor flash的分區(qū),是通過在
      linux/drivers/mtd/maps下增加特定mapping驅(qū)動程序來實(shí)現(xiàn)。該目
      錄下的驅(qū)動程序結(jié)構(gòu)相似,可以找一個來修改成自己的。我用的是
      cfi_flagadm.c這個。
         
           cp cfi_flagadm.c s3c2410.c

           將FLASH_PHYS_ADDR和FLASH_SIZE這兩個宏分別修改成自己板子
      的flash起始地址和大小。然后修改結(jié)構(gòu)體數(shù)組flagadm_parts添加自
      己的分區(qū)信息。

           接下來告訴內(nèi)核使用該驅(qū)動程序。修改maps目錄下的Kconfig文
      件,該文件決定出現(xiàn)在menuconfig中的項(xiàng)目,在config
      MTD_CDB89712之后添加

           config MTD_S3C2410
                  tristate "HuaHeng 2410 board"

           修改該目錄下的Makefile,添加如下內(nèi)容:

           obj-$(CONFIG_MTD_S3C2410)        += s3c2410.o

           現(xiàn)在make menuconfig時,在MTD項(xiàng)目中將出現(xiàn)HuaHneng 2410
      board選項(xiàng),選中它并重新編譯內(nèi)核就完成了分區(qū)工作,啟動時將看
      到分區(qū)信息。

           現(xiàn)在,內(nèi)核可以檢測到分區(qū),并找到了壓縮的RAMDISK,并試圖
      解壓縮。如果你使用smdk2410的默認(rèn)配置,這時會報錯,類似
      RAMDISK:incomplete 云云。解決辦法很簡單,將內(nèi)核配置中的
      BLK_DEV_RAM_SIZE的值從默認(rèn)的4096改為8192即可。

           原2.4內(nèi)核中對設(shè)備文件的管理是通過devfs完成的,所有設(shè)備文
      件均在啟動后檢測到設(shè)備時動態(tài)建立,所以我的RAMDISK中/dev目錄
      是空的。而2.6內(nèi)核從某個版本號后移除了devfs,取而代之的是udev。
      我一沒有啟用udev,二沒有手動建立任何設(shè)備文件,所以內(nèi)核警告無
      法初始化控制臺。手工添加設(shè)備文件即可:

           mknod /dev/console c 5 1

           為了避免再出現(xiàn)類似錯誤,我用原2.4內(nèi)核啟動,把devfs建立好
      的設(shè)備文件全部拷了出來,添加到RAMDISK當(dāng)中。

           到此為止內(nèi)核已經(jīng)啟動到VFS:freeing xxxK memory。但出現(xiàn)一
      行reboot(magic=000000)的信息,就沒有下文了。搜了一下,發(fā)現(xiàn)在
      配置內(nèi)核時必須選中Floating Point Emulator,否則就會導(dǎo)致這個
      錯誤。再次重新編譯內(nèi)核,重啟,終于出現(xiàn)了期待已久的#提示符。

           寫的比較亂,大家去粗取精的看吧 :) 主要參考資料為Linux
      Forum嵌入式版對2.6內(nèi)核移植的專題討論帖。
       
       
      移植2.6.17.13到s3c2410
       
      前一陣子移植了u-boot1.1.4之后,移植2.6.17.13走了一些彎路,采用了別人移植的2.6.14或2.6.11等方法都不成功,后來發(fā)現(xiàn)2.6.17比前幾個版本的內(nèi)核更容易。
      www.下載2.6.17.13.tar.bz2,解壓:
      #tar jxvf 2.6.17.13.tar.bz2
      1、重新編譯和修改u-boot
          以前移植u-boot用的是arm-linux-gcc 2.95.3,到移植2.6內(nèi)核的時候發(fā)現(xiàn)必須用gcc3.0以上的編譯器,沒辦法只好下載了個arm-linux-gcc3.4.4 +glibc2.3.5,怕由于編譯器不一致引起問題,重新編譯了一次u-boot,沒遇到任何錯誤。
         
      2、修改內(nèi)核頂層目錄的Makefile,找到ARCH和CROSS_COMPILE的地方,修改為
          ARCH                    ?= arm
          CROSS_COMPILE    ?= arm-linux-
          保存。
         
      3、    修改arch/arm/mach-s3c2410/common-smdk.c
          設(shè)置Nand Flash的分區(qū)和信息,下面是我的分區(qū)結(jié)構(gòu):
         
          static struct mtd_partition smdk_default_nand_part[] = {
          [0] = {
              .name    = "bootloader",
              .size    = SZ_1M,
              .offset    = 0,
          },
          [1] = {
              .name    = "kernel",
              .offset = SZ_1M,
              .size    = SZ_2M,
          },如果您是在公共場合使用計算機(jī),離開時
          [2] = {
              .name    = "root",
              .offset = SZ_1M*3,
              .size    = SZ_8M*5,
          },
          [3] = {
              .name    = "user",
              .offset    = SZ_1M*43,
              .size    = SZ_1M*21,
          },
      };
         
      static struct s3c2410_platform_nand smdk_nand_info = {
          .tacls        = 0,
          .twrph0        = 30,
          .twrph1        = 0,
          .nr_sets    = ARRAY_SIZE(smdk_nand_sets),
          .sets        = smdk_nand_sets,
      };
      說明:這里2.6.17的設(shè)置分區(qū)與其他版本如2.6.14或2.6.11有點(diǎn)區(qū)別,其他版本是修改
      arch/arm/machs3c2410/devs.c

      arch/arm/machs3c2410/machsmdk2410.
      2.6.17.13設(shè)置這些文件無效。
      4、禁止Flash ECC校驗(yàn)
          內(nèi)核都是通過u-boot寫數(shù)據(jù)到Nand Flash的, u-boot通過的軟件ECC算法產(chǎn)生ECC校驗(yàn)碼, 這與內(nèi)核校驗(yàn)的ECC碼不一樣, 內(nèi)核中的ECC碼是由S3C2410中Nand Flash控制器產(chǎn)生的. 所以, 我們在這里選擇禁止內(nèi)核ECC校驗(yàn)。   
          修改drivers/mtd/nand/s3c2410.c 文件,找到s3c2410_nand_init_chip()函數(shù),在該函數(shù)體最后加上一條語句:
          chip->eccmode = NAND_ECC_NONE;
      保存,退出。
      5、支持啟動時掛載devfs
          為了我們的內(nèi)核支持devfs以及在啟動時并在/sbin/init運(yùn)行之前能自動掛載/dev為devfs文件系統(tǒng),修改fs/Kconfig文件,找到
          menu "Pseudo filesystems"
      添加如下語句:
      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
         
      6、使用SMDK板子的config配置內(nèi)核
      #cp arch/arm/configs/smdk2410_defconfig .config
      #make menuconfig
      在smdk2410_defconfig的基礎(chǔ)上,增加了下面選項(xiàng):
      Loadable module support >
              [*] Enable loadable module support
              [*] Automatic kernel module loading
      System Type -->
              [*] S3C2410 DMA support
      Boot options -->
              Default kernel command string:
              noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200 mem=32M
                  #說明:mtdblock2代表第3個flash分區(qū),用來作根文件系統(tǒng)rootfs;
                  # console=ttySAC0,115200使kernel啟動期間的信息全部輸出到串口0上,波特率為115200;
                  # 2.6內(nèi)核對于串口的命名改為ttySAC0,但這不影響用戶空間的串口編程。
                  # 用戶空間的串口編程針對的仍是/dev/ttyS0等
                  # mem=32M表示內(nèi)存是32M,如果是64則設(shè)為64M
      Floating point emulation -->
              [*] NWFPE math emulation           
                  #This is necessary to run most binaries!!!
      #接下來要做的是對內(nèi)核MTD子系統(tǒng)的設(shè)置
      Device Drivers -->
              Memory Technology Devices (MTD) -->
                      [*] MTD partitioning support
                          #支持MTD分區(qū),這樣我們在前面設(shè)置的分區(qū)才有意義
                      [*] Command line partition table parsing
                          #支持從命令行設(shè)置flash分區(qū)信息,靈活
                      RAM/ROM/Flash chip drivers -->
                              <*> Detect flash chips by Common Flash Interface (CFI) probe
                              <*> Detect nonCFI AMD/JEDECcompatible flash chips
                              <*> Support for Intel/Sharp flash chips
                              <*> Support for AMD/Fujitsu flash chips
                              <*> Support for ROM chips in bus mapping
                      NAND Flash Device Drivers -->
                              <*> NAND Device Support
                              <*> NAND Flash support for S3C2410/S3C2440 SoC
              Character devices -->
                      [*] Nonstandard serial port support
                      [*] S3C2410 RTC Driver
              USB Support -->
                      <*> Support for Host-side USB
              MMC/SD Card Support -->
                      <*> MMC Support
                      <*> MMC block device  driver
                     
      #接下來做的是針對文件系統(tǒng)的設(shè)置,本人實(shí)驗(yàn)時目標(biāo)板上要上的文件系統(tǒng)是cramfs,故做如下配置
      File systems -->
              <> Second extended fs support #去除對ext2的支持
              Pseudo filesystems -->
                      [*] /proc file system support
                      [*] Virtual memory file system support (former shm fs)
                      [*] /dev file system support (OBSOLETE)
                      [*] Automatically mount at boot (NEW)
      #這里會看到我們前先修改fs/Kconfig的成果,devfs已經(jīng)被支持上了
              Miscellaneous filesystems >
                      <*> Compressed ROM file system support (cramfs)
                          #支持cramfs
              Network File Systems >
                      <*> NFS file system support
          保存退出,產(chǎn)生.config文件。
      7、編譯內(nèi)核,下載到板子上
      #make zImage
      生成zImage在arch/arm/boot/目錄下
      zImage下載到板子上之后可以直接用go來執(zhí)行,但是go啟動內(nèi)核的話會出現(xiàn)下面錯誤:
      random2410 # tftp 30008000 2.6.17.13
      TFTP from server 192.168.1.10; our IP address is 192.168.1.110
      Filename ‘2.6.17.13‘.
      Load address: 0x30008000
      Loading: #################################################################
               #################################################################
               #################################################################
               ########################
      done
      Bytes transferred = 1118644 (1111b4 hex)
      random2410 # go 30008000
      ## Starting application at 0x30008000 ...
      Uncompressing Linux.............................................................
      Error: unrecognized/unsupported machine ID (r1 = 0x31f07d30).
      Available machine support:
      ID (hex)        NAME
      000000c1        SMDK2410
      Please check your kernel config and/or bootloader.
      產(chǎn)生的原因是go啟動內(nèi)核的話,u-boot不會傳machiine ID給內(nèi)核,因?yàn)間o只是執(zhí)行普通的應(yīng)用程序,不考慮到傳遞參數(shù)給內(nèi)核的問題,沒有必要在乎它。如果只是想看看go能不能啟動內(nèi)核的話,修改方法有兩個:
          a、修改u-boot的common/cmd_boot.c的do_go()函數(shù):
              /*#if defined(CONFIG_I386)*/            <==注釋掉
                      DECLARE_GLOBAL_DATA_PTR;
              /*#endif*/                                        <==注釋掉
              ....
              #if !defined(CONFIG_NIOS)
              /*******************add here*******************************/
              if(argc==2)
                  rc = ((ulong (*)(int, char *[]))addr) (0, gd->bd->bi_arch_number);
              else
              /*********************add end *****************************/   
                  rc = ((ulong (*)(int, char *[]))addr) (--argc, &argv[1]);
          b、修改內(nèi)核的arch/arm/kernel/head.S,直接將s3c2410的參數(shù)賦給內(nèi)核
             
          __INIT
          .type    stext, %function
      ENTRY(stext)
      /****************add here*****************/
          mov    r0, #0
          mov    r1, #0xc1
          ldr    r2, =0x30000100
      /***************end add******************/
          msr    cpsr_c, #PSR_F_BIT | PSR_I_BIT | MODE_SVC @ ensure svc mode
                              @ and irqs disabled
         
      8、用bootm啟動內(nèi)核
      這個方法u-boot可以將machine ID傳給內(nèi)核,正常啟動,不過用u-boot的mkimage工具(在u-boot1.1.4/tools/目錄下)將前面生成的zImage加上一個信息頭(有關(guān)如何添加頭的命令和使用tftp在后面講述),之后下載到板子上,啟動控制臺信息如下:
      U-Boot 1.1.4 (Sep 20 2006 - 00:34:30)
      U-Boot code: 31F80000 -> 31F9628C  BSS: -> 31F9A578
      RAM Configuration:
      Bank #0: 30000000 32 MB
      Flash: 512 kB
      *** Warning - bad CRC, using default environment
      In:    serial
      Out:   serial
      Err:   serial
      random2410 # tftp 30008000 uImage2.6.17.13
      TFTP from server 192.168.1.10; our IP address is 192.168.1.110
      Filename ‘uImage2.6.17.13‘.
      Load address: 0x30008000
      Loading: #################################################################
               #################################################################
               #################################################################
               ########################
      done
      Bytes transferred = 1116720 (110a30 hex)
      random2410 # bootm 30008000
      ## Booting image at 30008000 ...
         Image Name:   linux-2.6.17.13
         Created:      2006-09-19  17:25:57 UTC
         Image Type:   ARM Linux Kernel Image (uncompressed)
         Data Size:    1116656 Bytes =  1.1 MB
         Load Address: 30008000
         Entry Point:  30008040
         Verifying Checksum ... OK
         XIP Kernel Image ... OK
      Starting kernel ...
      cleanup before linux...
      enter the Kerne....address is 30008040
      transfer params to linux kernel:
      machine ID: r1=c1, boot params addr: r2=30000100
      enter decompress_kernel...
      finished to arch_decomp_setup
      Uncompressing Linux......................................................................... done, booting the kernel.
      Linux version 2.6.17.13 (xzs@xzs-pc) (gcc version 3.4.4) #7 Wed Sep 20 01:23:13 CST 2006
      CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)
      Machine: SMDK2410
      Warning: bad configuration page, trying to continue
      Memory policy: ECC disabled, Data cache writeback
      CPU S3C2410A (id 0x32410002)
      S3C2410: core 202.800 MHz, memory 101.400 MHz, peripheral 50.700 MHz
      S3C2410 Clocks, (c) 2004 Simtec Electronics
      CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
      CPU0: D VIVT write-back cache
      CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
      CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
      Built 1 zonelists
      Kernel command line: noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200 mem=32M
      irq: clearing pending ext status 00000200
      irq: clearing subpending status 00000002
      PID hash table entries: 256 (order: 8, 1024 bytes)
      timer tcon=00500000, tcnt a509, tcfg 00000200,00000000, usec 00001e4c
      Console: colour dummy device 80x30
      Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
      Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
      Memory: 32MB = 32MB total
      Memory: 30080KB available (1856K code, 404K data, 92K init)
      Mount-cache hash table entries: 512
      CPU: Testing write buffer coherency: ok
      NET: Registered protocol family 16
      S3C2410: Initialising architecture
      usbcore: registered new driver usbfs
      usbcore: registered new driver hub
      NET: Registered protocol family 2
      IP route cache hash table entries: 256 (order: -2, 1024 bytes)
      TCP established hash table entries: 1024 (order: 0, 4096 bytes)
      TCP bind hash table entries: 512 (order: -1, 2048 bytes)
      TCP: Hash tables configured (established 1024 bind 512)
      TCP reno registered
      S3C2410 DMA Driver, (c) 2003-2004 Simtec Electronics
      DMA channel 0 at c2800000, irq 33
      DMA channel 1 at c2800040, irq 34
      DMA channel 2 at c2800080, irq 35
      DMA channel 3 at c28000c0, irq 36
      NetWinder Floating Point Emulator V0.97 (double precision)
      JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
      io scheduler noop registered
      io scheduler anticipatory registered (default)
      io scheduler deadline registered
      io scheduler cfq registered
      Console: switching to colour frame buffer device 80x25
      fb0: Virtual frame buffer device, using 1024K of video memory
      S3C2410 RTC, (c) 2004 Simtec Electronics
      s3c2410-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2410
      s3c2410-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2410
      s3c2410-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2410
      RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
      S3C24XX NAND Driver, (c) 2004 Simtec Electronics
      s3c2410-nand: Tacls=1, 9ns Twrph0=4 39ns, Twrph1=1 9ns
      NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
      NAND_ECC_NONE selected by board driver. This is not recommended !!
      Scanning device for bad blocks
      Bad eraseblock 629 at 0x009d4000
      Creating 4 MTD partitions on "NAND 64MiB 3,3V 8-bit":
      0x00000000-0x00100000 : "bootloader"
      mtd: Giving out device 0 to bootloader
      0x00100000-0x00300000 : "kernel"
      mtd: Giving out device 1 to kernel
      0x00300000-0x02b00000 : "root"
      mtd: Giving out device 2 to root
      0x02b00000-0x04000000 : "user"
      mtd: Giving out device 3 to user
      usbmon: debugfs is not available
      mice: PS/2 mouse device common for all mice
      ts: Compaq touchscreen protocol output
      TCP bic registered
      NET: Registered protocol family 1
      Reading data from NAND FLASH without ECC is not recommended
      No filesystem could mount root, tried:  cramfs romfs
      Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)
      這里因?yàn)槲覜]有添加任何應(yīng)用程序和文件系統(tǒng),所以出錯,不影響內(nèi)核已經(jīng)成功移植。
      9、使用mkimage給zImage添加信息頭
       mkimage -A arm -O linux -T kernel -C none -a 30008000 -e 30008040 -n linux-2.6.17.13 -d zImage uImage2.6.17.13
       
      -A arm     -------- 架構(gòu)是arm
      -O linux     -------- 操作系統(tǒng)是linux
      -T kernel     -------- 類型是kernel
      -C none     -------- 壓縮類型為無壓縮
      -a 30008000 ---- image的載入地址(hex)
      -e 30008040 ---- 內(nèi)核的入口地址(hex),因?yàn)樾畔㈩^的大小是0x40
      -n linux-2.6.17.13 --- image的名字
      -d zImage             ---- 無頭信息的image文件名
      uImage2.6.17.13    ---- 加了頭信息之后的image文件名
      10、使用tftp下載內(nèi)核
      a、安裝atftpd
      我現(xiàn)在用的linux是ubuntu6.06,安裝了atftpd,沒安裝的話使用
      #sudo apt-get install atftpd 
      安裝。
      b、接著建立/tftp目錄,并設(shè)置所有人都有讀寫運(yùn)行權(quán)限:
      #sudo mkdir /tftp
      #sudo chmod 777 tftp
      c、啟動tftp服務(wù):
      #sudo atftpd --daemon --user xzs --group root /tftp
      d、將zImage和uImage2.6.17.13復(fù)制到/tftp目錄下
      e、啟動minicom,復(fù)位板子,在minicom下輸入
      tftp 30008000 uImage2.6.17.13
      如果已經(jīng)板子和PC機(jī)已經(jīng)通過網(wǎng)線連接,IP也正確,則會出現(xiàn)一下信息:
      TFTP from server 192.168.1.10; our IP address is 192.168.1.110
      Filename ‘uImage2.6.17.13‘.
      Load address: 0x30008000
      Loading: #################################################################
               #################################################################
               #################################################################
               ########################
      done
      Bytes transferred = 1116720 (110a30 hex)
       
       
      linux 2.6.22.1 的在s3c2410板子上的移植

            -------------------作者:無貓
      ++++++++++++++++++++++++++++++++++++++++++++++
      ----------------------------------------------
      bootloader編譯環(huán)境:
      vivi版本:0.1.4
      交叉編譯器(CROSS-COMPILE)版本:2.95.3
       (下載地址略:網(wǎng)上很多搜下。)
      操作系統(tǒng):Fedora  7
      ======================================
      linux內(nèi)核編譯環(huán)境:
      內(nèi)核版本:linux2.6.22.1
      交叉編譯器(CROSS-COMPILE)版本: 4.2.0
      (下載地址:
        http://www./gnu_toolchains/arm/download.html
        注意:下載選項(xiàng),要選 ARM EABI 的選項(xiàng),和 IA32 GNU/linux
      操作系統(tǒng): Fedora  7
      ======================================
      文件系統(tǒng)編譯環(huán)境:
      busybox1.5.1,或1.4.2
      交叉編譯器(CROSS-COMPILE)版本: 3.3.2
      (下載地址:http://linux./pub/toolchain/
      操作系統(tǒng): Fedora  7
      ----------------------------------------------
      硬件:
          板子是北京恒頤高科技術(shù)有限公司的H2410EB
          內(nèi)存:     64MB SDRAM(2×16M×16位);
          CPU:      S3C2410 ARM處理器,
          Nor Flash:2MB的Nor Flash,用于固化測試程序(用來下載bootloader,內(nèi)核,或文件系統(tǒng));
          NANDflash: 64MB的Nand Flash,用于存儲Bootloader、Linux內(nèi)核及文件系統(tǒng)、應(yīng)用程序和數(shù)據(jù);
      ++++++++++++++++++++++++++++++++++++++++++++++
       
       
      ==================================================================================================
           一: 編譯環(huán)境搭建
      ==================================================================================================
      一:搭建交叉編譯環(huán)境
      說明:由于編譯交叉編譯環(huán)境比較繁瑣,建議大家用已經(jīng)編譯好的交叉編譯環(huán)境。
      下面以3.3.2的交叉編譯環(huán)境的搭建為例,其他的兩個的編譯器環(huán)境搭建一樣。
      1. 解壓文件命令:
              tar  jxvf   obsolete-gcc-3.3.2.tar.bz2
             (obsolete-gcc-3.3.2.tar.bz2下載地址:http://linux./pub/toolchain/
      2. 把解壓的文件夾中的 “3.3.2”文件夾拷貝到 /usr/local/arm目錄下
             (如果沒有arm目錄就新建arm目錄,但是一定要是拷貝到這個目錄,不然不能運(yùn)行)。
      3. 在命令窗口輸入
              export PATH=/usr/local/arm/3.3.2/bin:$PATH
      4. 如果輸入 arm- 然后按下tab鍵能自動補(bǔ)全命令 arm-linux- 說明搭建成功。
       
       
      ===================================================================================================
            二:     bootloader 編譯
      ===================================================================================================
      二:   bootloader的修改
      主要修改分區(qū)信息,如果要能下載yaffs文件系統(tǒng)還得另外打補(bǔ)丁,最近我會寫編這樣的文章。
      具體修改:
      1.     解壓vivi(具體命令略,如果你解壓都不會,移植可能對你來說有點(diǎn)困難)
             [root@localhost vivi]# ls
             arch     CVS            drivers  init  Makefile         Rules.make  test  vivi      vivi.map
             COPYING  Documentation  include  lib   Makefile.newSDK  scrīpts     util  vivi-elf
      2.     [root@localhost vivi]# vim ./arch/s3c2410/smdk.c
       修改 NAND flash 分區(qū)如下:
       ----------------------------------------------------------------------
       mtd_partition_t default_mtd_partitions[] = {
              {
                      name:           "bootloader",
                      offset:         0,
                      size:           0x00020000,
                      flag:           0
              }, {
                      name:           "param",
                      offset:         0x00020000,
                      size:           0x000E0000,
                      flag:           0
              }, {
                      name:           "kernel",
                      offset:         0x00100000,
                      size:           0x00300000,
                      flag:           0
              }, {
                      name:           "root",
                      offset:         0x00400000,
                      size:           0x01400000,
                      flag:           MF_BONFS
              }, {
                      name:           "user",
                      offset:         0x01800000,
                      size:           0x02C00000,
                      flag:           MF_BONFS
              }
       };
       -------------------------------------------------------------------------
      3. 修改Makefile
       [root@localhost vivi]# vim Makefile
       修改  ARCH    LINUX_INCLUDE_DIR   CROSS_COMPILE 如下:
       ------------------------------------------------------------------------
       
       ARCH := arm
       
       LINUX_INCLUDE_DIR       = /usr/local/arm/2.95.3/include/
       
       CROSS_COMPILE   = /usr/local/arm/2.95.3/bin/arm-linux-
      3. 編譯
       [root@localhost vivi]# make
       ------------------------------------------------------------------------
       會在 vivi目錄生成你要的 vivi 程序(bootloader)
       ------------------------------------------------------------------------
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       說明:我的nand falsh的一塊為16k,
       所以上面的分區(qū):
       **************************************
        分區(qū)信息
       **************************************
       bootloader:  128k
       param     :  896k
       kernel    :  3M
       root      :  20M
       user      :  40M
       **************************************
        bon 操作
       **************************************
       bon part 0 1M 4M:m 24M:m
       解釋一下上面的命令:
              第1個分區(qū)從0開始;
              第2個分區(qū)從0x30000(即192K)開始;
              第3個分區(qū)從0x200000(即2M)開始;
              第4個分區(qū)從0x400000(即4M)開始.
       
       ***********************************
        bon part info
       ***********************************
       bon part info
       BON info. (4 partitions)
       No: offset      size            flags     bad
       ---------------------------------------------
        0: 0x00000000  0x00100000      00000000    0    1M
        1: 0x00100000  0x00300000      00000000    0    3M
        2: 0x00400000  0x01400000      00000001    0   20M
        3: 0x01800000  0x027fc000      00000001    0   39M+1008k
       ***********************************
        part show
       ***********************************
       mtdpart info. (5 partitions)
       name              offset        size        flag
       ------------------------------------------------
       bootloader      : 0x00000000    0x00020000     0  128k
       param           : 0x00020000    0x000e0000     0  896k
       kernel          : 0x00100000    0x00300000     0    3M
       root            : 0x00400000    0x01400000     4   20M
       user            : 0x01800000    0x02c00000     4   44M
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       
      ===================================================================================================
            三:  內(nèi)核 編譯
      ===================================================================================================
      三: 內(nèi)核 編譯
       
       注意:用的編譯器是4.2.0的交叉編譯器
      1. 修改 Makefile
       [root@localhost porting]# cd linux-2.6.22
       [root@localhost linux-2.6.22]# vim Makefile
       
       修改 ARCH 和 CROSS_COMPILE
       --------------------------------------------------------------
       ARCH            ?= arm
       CROSS_COMPILE   ?=/usr/local/arm/4.2.0/bin/arm-none-eabi-
      2. 修改common-smdk.c文件
       [root@localhost linux-2.6.22]# vim arch/arm/plat-s3c24xx/common-smdk.c
       ------------------------------------------------------------------------------
       static struct mtd_partition smdk_default_nand_part[] = {
              [0] = {
                      .name   = "Boot",
                      .size   = SZ_128K,
                      .offset = 0,
              },
              [1] = {
                      .name   = "param",
                      .offset = MTDPART_OFS_APPEND,
                      .size   = SZ_1M - SZ_128K,
              },
              [2] = {
                      .name   = "kernel",
                      .offset = SZ_1M,
                      .size   = SZ_1M * 3,
              },
              [3] = {
                      .name   = "root",
                      .offset = MTDPART_OFS_APPEND,
                      .size   = SZ_2M * 10,
              },
       /*
            ,
              [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   = SZ_16M,
              }
       */
       };
       ---------------------------------------------------------------------------------
      3. 去掉nand flash 的ECC
       [root@localhost linux-2.6.22]# vim drivers/mtd/nand/s3c2410.c
       ---------------------------------------------------------------------------------
       1、打開drivers/mtd/nand/s3c2410.c
       2、搜索關(guān)鍵字NAND_ECC_SOFT,在s3c2410_nand_init_chip函數(shù)里
       3、修改NAND_ECC_SOFT為NAND_ECC_NONE
       ---------------------------------------------------------------------------------
      4. 支持啟動時掛載devfs
       為了我們的內(nèi)核支持devfs以及在啟動時并在/sbin/init運(yùn)行之前能自動掛載/dev為devfs文件系統(tǒng)。
       [root@localhost linux-2.6.22]# vi fs/Kconfig
       
       -----------------------------------------------------------------------------------
       找到menu "Pseudo filesystems"
       添加如下語句:
       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
       ----------------------------------------------------------------------------------
      5. 編譯內(nèi)核
       [root@localhost linux-2.6.22]# cp ./arch/arm/configs/s3c2410_defconfig  .config
       [root@localhost linux-2.6.21.5]#  make  xconfig
       
       ----------------------------------------------------------------------------------
       Userspace binary formats
               [ ]Kernel support for a.out and ECOFF binaries (BINFMT_AOUT) (去除該選項(xiàng))
       Boot options
        Default kernel command string
         改成:
         noinitrd root=/dev/mtdblock3 console=ttySAC0,115200 init=/linuxrc
       +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
       再選上你想選的選項(xiàng),如果編譯通不過,對照著錯誤,看下把哪些選項(xiàng)去除,或添加哪些選項(xiàng)。
       -----------------------------------------------------------------------------------
      6. 編譯
       [root@localhost linux-2.6.22]# make zImage

      ===================================================================================================
            四:    文件系統(tǒng)的制作
      ===================================================================================================
       
      四: 文件系統(tǒng)的制作
            注意:交叉編譯器 3.3.2,   busybox1.5.1,  靜態(tài)編譯
            編譯更詳細(xì)的內(nèi)容:http://bbs.ss.pku.edu.cn/ss/index.php/5836/action_viewspace_itemid_11825.html
      1. busybox的編譯
       
       -----------------------------------------------------------------------------
       一  修改busybox中的 Makefile文件
       找到  ARCH  和 CROSS_COMPILE 修改成如下
       ARCH            ?= arm
       CROSS_COMPILE   ?= /usr/local/arm/3.3.2/bin/arm-linux-
       二  配置
       [root@localhost busybox-1.4.2]# make defconfig
       [root@localhost busybox-1.4.2]# make xconfig
       =============================================
       修改配置 主要修改如下
       =============================================
       Busybox Settings
           Build Options
         [*]Build BusyBox as a static binary   
            //選此項(xiàng)靜態(tài)編譯。
       Miscellaneous Utilities
           []taskset    //選了就會出錯
       -------------------------------------------------
       三  編譯
       [root@localhost busybox-1.5.1]# make all install
       -----------------------------------------------------------------
       最后會在  busybox-1.5.1/_install/目錄生成你要的 bin sbin  usr 目錄
       ------------------------------------------------------------------
       
      2. 編寫linuxrc 文件
       -----------------------------------------------------------------
       #!/bin/sh
       #echo "mount /etc as ramfs"
       /bin/mount -n -t ramfs ramfs /etc
       /bin/cp -a /mnt/etc/* /etc
       echo "re-create the /etc/mtab entries"
       # re-create the /etc/mtab entries
       /bin/mount -f -t cramfs -o remount,ro /dev/mtdblock/3  /
       #mount some file system
       echo "mount  /dev/shm as tmpfs"
       /bin/mount -n -t  tmpfs tmpfs /dev/shm

       #掛載/proc為proc文件系統(tǒng)
       echo "mount /proc as proc"
       /bin/mount -n -t  proc none /proc
       #掛載/sys為sysfs文件系統(tǒng)
       echo "mount  /sys as sysfs" 
       /bin/mount -n -t  sysfs none /sys
       /bin/mount -f -t ramfs ramfs /etc
       echo "yaffs is mounted"
       /bin/mount -t yaffs /dev/mtdblock/1 /mnt/yaffs
       exec /sbin/init
       ---------------------------------------------------------------------
      3. 權(quán)限修改
       chmod  chmod 775 linuxrc
      4.  編寫 inittab文件
       
       ---------------------------------------------------------------------
       ::sysinit:/etc/init.d/rc
       
       ::askfirst:-/bin/sh
       tty2::askfirst:-/bin/sh
       tty3::askfirst:-/bin/sh
       tty4::askfirst:-/bin/sh
       tty0::askfirst:-/bin/sh
        
       ::restart:/sbin/init
             
       ::ctrlaltdel:/sbin/reboot
       ::shutdown:/bin/umount -a -r
       ::shutdown:/sbin/swapoff -a
       ----------------------------------------------------------------------
      5. rc文件
       ----------------------------------------------------------------------
       #!/bin/sh
       /bin/mount -a
       -----------------------------------------------------------------------
      6. fastab 文件
       ----------------------------------------------------------------------
       none  /proc  proc defaults 0 0
       none  /dev/pts devpts mode=0622 0 0
       tmpfs  /dev/shm tmpfs defaults 0 0
       ----------------------------------------------------------------------

      7. 各文件的關(guān)系
       ----------------------------------------------------------------------
       7.1 建立一個目標(biāo)板的空根目錄
       我們將在這里構(gòu)建構(gòu)建根文件系統(tǒng),創(chuàng)建基礎(chǔ)目錄結(jié)構(gòu). 存放交叉編譯后生成的目標(biāo)應(yīng)用程序
       (BUSYBOX,TINYLOGIN),存放庫文件等。
       [root@localhost rootfs]# mkdir my_rootfs
       [root@localhost rootfs]# pwd
       /home/arm/dev_home/rootfs/my_rootfs
       [root@localhost rootfs]# cd my_rootfs
       [root@localhost my_rootfs]#
       7.2 在my_rootfs中建立Linux目錄樹
       [root@localhost my_rootfs]#mkdir bin dev etc home lib mnt proc sbin sys tmp root usr
       [root@localhost my_rootfs]#mkdir mnt/etc
       [root@localhost my_rootfs]#mkdir usr/bin usr/lib usr/sbin
       [root@localhost my_rootfs]#touch linuxrc
       [root@localhost my_rootfs]#tree
       |bin
       |dev
       |etc
       |home
       |lib
       |linuxrc
       /* 此文件為啟動腳本,是一shell腳本文件。本文后面有專門介紹 */
       |mnt
       | `etc  
       |proc
       |sbin
       |sys
       |tmp
       |root
       `usr
       |bin
       |lib
       `sbin
      8. 把上面編譯出來的 busybox文件拷貝到 my_rootfs 文件系統(tǒng)
       
       ---------------------------------------------------------------
       把 busybox1.5.1/_install/目錄下的 bin  sbin  usr 覆蓋 my_rootfs
       文件夾里的空文件夾。
       --------------------------------------------------------------
      9. 把 5 生成的文件(rc)拷貝到 /mnt/etc/init.d/目錄(先在/mnt/etc/目錄新建格init.d目錄)
       把 4,6生成的文件(inittab和 fastab )放到 /mnt/etc/目錄
       把 2 生成的文件linuxrc 放到/目錄
               這里所提到的 /目錄即my_rootfs目錄。
      10. 新建/dev設(shè)備,在/dev目錄(即my_rootfs/dev/).
       mknod console c 5 1
      8. 生成cramfs文件
       
       ----------------------------------------------------------------
       下載mkfs.cramfs工具,然后用下面命令生成你要的cramfs文件系統(tǒng)
       ./mkfs.cramfs  ./my_rootfs    ./root.cramfs
       移植就這么簡單,剩下的就是下載,燒寫內(nèi)核,文件系統(tǒng)等。聰明的你不用我說怎么做了吧
       
       :)
       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多