The transplant of Linux-2.6.39 on the Tiny6410

Source: Internet
Author: User

Linux kernel version number: Linux 2.6.39
Cross-compilation tool: ARM-LINUX-GCC 4.5.1
Linux kernel Download: www.kernel.org
Development Board: Friendly arm Tiny6410

First, unzip the kernel

tar xzvf linux-2.6. . tar. gz

Ii. Modification of Makefile

ARCH=? = $ (config_cross_compile:"%"=%)

Change to:

ARCH =? = arm-linux-

Third, enter the extracted linux-2.6.39 directory, copy the Arch/arm/configs/s3c6400_defconfig to the current directory and rename it to. config

CP Arch/arm/configs/s3c6400_defconfig./.config

Iv. Basic Configuration
Execute Make Menuconfig
1. Select the CPU model:

System Type---> * * * System MMU * * *││-*-s3c64xx dma││[] SMDK6400 ││[] A&w6410││[*] mini6410││[] REAL6410                                                                      ││[] SMDK6410                                                                             ││[] NCP ││[] Airgoo hmt││[] Sm ARTQ5││[] SMARTQ7  

Select only the MINI6410 other options.
2. Support Communication in Process

General Setup--->  ││          [*] System V IPC   

3, exit the kernel graphics configuration menu, execute make generate zimage image file, copy the Arch/arm/boot/zimage to the TFTP shared directory, TFTP server set up see paste http://www.cnblogs.com/ape-ming/p/5100449.html

V. Launch the Development Board to download the kernel image file via tftp and start the kernel, the following message appears:

Vfs:cannot Open Root Device"NFS"or Unknown-block (0,255) Please append a correct"root="boot option; Here is the available Partitions:kernel panic-Not syncing:VFS:Unable toMountRoot FS on Unknown-block (0,255)[<c002c680>] (unwind_backtrace+0x0/0xe4) from [<c01b2384>] (panic+0x50/0x16c)[<c01b2384>] (panic+0x50/0x16c) from [<c0008d64>] (mount_block_root+0x238/0x288)[<c0008d64>] (mount_block_root+0x238/0x288) from [<c0009074>] (prepare_namespace+0x160/0x1b4)[<c0009074>] (prepare_namespace+0x160/0x1b4) from [<c00089ec>] (kernel_init+0x100/0x13c)[<c00089ec>] (kernel_init+0x100/0x13c) from [<c00283d4>] (kernel_thread_exit+0x0/0x8)

This is not supported by the MTD partition or without file system support, first modify the next MTD partition:
Open arch/arm/mach-s3c64xx/mach-mini6410.c, and modify the partition

static struct mtd_partition mini6410_nand_part[] = {    [0] ={. Name="Uboot",. Size=sz_1m,. Offset=0,    },    [1] ={. Name="Kernel",. Size=sz_2m,. Offset=sz_1m,}, [2] ={. Name="File System",. Size=mtdpart_siz_full,. Offset= sz_1m +sz_2m,},};

Configuring the Kernel to support MTD:

Device Drivers---> <*> Memory technology Device (MTD) Support--->││---Memory Technology Device (MTD) support││[] Debugging ││< >MTD tests support││[*] MTD Partitioning support││< >redboot partition Table parsing││[*] Command Line partition table parsing││< >ARM Firmware Suite partition parsing││< >TI AR7 Partitioning support││User Modules and Translation Layers * * *││<*> DirectChardevice access to MTD devices││-*-Common interface to block layer forMtd'Translation Layers'││<*> Caching block device access to MTD devices

Configure Kernel Support DM9000:

[*] Networking Support--->Networking Options--->││<*> Packet Socket//Package Socket Interface││<*> Unix domain sockets//UNIX domain sockets││< >Pf_key sockets││[*] TCP/IP networking//TCP/IP network││[*] Ip:multicasting//IP Broadcast Protocol││[] ip:advanced Router//Advanced Routing││[*] Ip:kernel level Autoconfiguration//IP: Kernel-level automatic configuration││[*] IP:DHCP Support//DHCP support, which hangs on NFS when booting is required││[*] IP:BOOTP Support//Startup file that hangs on the launcher at startup││[*] Ip:rarp Support//Rarp Support, this and DHCP require appropriate server support in the network

Device Drivers--->    [*] Network device Support--->││---Network Device support││ [*] Ethernet (Tenor 100Mbit)--->││[] Ethernet ( +Mbit)--->││[] Ethernet (10000Mbit)--->││[] Wireless LAN--->        [*] Ethernet (Tenor 100Mbit)--->││---Ethernet (Tenor 100Mbit) ││< >ASIX AX88796 NE2000 clone support││< > SMC 91c9x/91c1xxx support││<*>DM9000 support││ (4) DM9000 Maximum debug level

Configure the kernel file System for NFS Network File system:

 File System---> [ *] Network File Systems---> <*> NFS client support││[ *] NFS client S Upport for  NFS version 3  ││[] NFS Client support  for
      The NFSv3 ACL protocol extension││[] NFS client Support  for  NFS version 4  ││[ *] Root file  system on NF S 

If there is no root file system on NFS in Network file systems, check that DHCP support is selected in the networking options.

Make a copy of the kernel image to the TFTP directory and start the system, and the basic porting of the Linux kernel on s3c6410 is completed.

A workaround for the following error message is encountered during system startup:
1. Machine ID is not recognized

Boot with Zimage  Do 50008000  done, booting the kernel. error:unrecognized0x000009d8).

During the kernel boot process, the system checks if the machine ID passed by the Uboot matches the kernel ID, and the mismatch will report the error. Find out if the CPU model is selected, if the CPU model is OK, open the arch/arm/mach-xxx/mach-xxx.c (determined by the selected CPU) to find
Machine_start (MINI6410, "MINI6410") function specified by the CPU model (MINI6410), and then found in the Arch/arm/tool/mach-types file Machine_ The CPU model specified by start:
mini6410mach_mini6410mini64102520
Modify the last Machine ID (2520) to change the value printed to the above error message (r1 = 0x000009d8).
2, Network File system failed to load:
In the case of the above configuration is not a problem, this error should be the NIC chip DM9000 driver has a problem, open arch/arm/mach-xxx/mach-xxx.c (determined by the selected CPU) to modify the network card device information:

/*DM9000AEP 10/100 Ethernet Controller*/static struct resource mini6410_dm9k_resource[]= {    [0] ={. Start=s3c64xx_pa_xm0csn1,. End= S3C64XX_PA_XM0CSN1 +1,. Flags=Ioresource_mem}, [1] ={. Start= S3C64XX_PA_XM0CSN1 +4,. End= S3C64XX_PA_XM0CSN1 +5,. Flags=Ioresource_mem}, [2] ={. Start= S3c_eint (7),. End= S3c_eint (7),. Flags= IORESOURCE_IRQ |Ioresource_irq_highlevel}};


Reference Links:
Http://blog.sina.com.cn/s/blog_752fa65f0100p6m4.html
http://blog.csdn.net/lqrensn/article/details/5533613

The transplant of Linux-2.6.39 on the Tiny6410

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.