Linux 3.4.103 kernel ported to s3c6410 Development Board
It was almost a week to get in here, and it was a very, very unworthy time to start feeling like a transplant. Want to fix it right away, and then read & coding quietly.
The thing about the pit daddy is that it's been one weeks and it hasn't worked.
I left my experience of transplant failure as a note to prepare for the next time. Let me do the transplant with the Tao friend less detours. We share experiences together to create a better development environment.
Check out a lot of information, here thank those bloger, thanks for your spirit of sharing.
I. Get a clean kernel from the website
https://www.kernel.org/
I chose the 3.4.103 here, (in fact, have tried a lot of version number of the Kernle, is a failure ah.) Heart Plugs ~. In fact, I am writing this blog is still trying to do it again, now this time I use the 3.4.103)
My Development Board is the s3c6410 of the Infineon. the kernel provided by the Development Board vendor is handled by them, so do not use the vendor's kernel source code. That basically doesn't make any experience.
two. Patching yaffs2 file System
In this process I also found that YAFFS2 recent version number is problematic, the source code is not compiled, there are errors
http://blog.csdn.net/cinmyheart/article/details/38747505
Change a version number is normal ~ (Pit Daddy ~source code Error!) )
Yaffs2-4e188b0.tar.gz
Patch the kernel to the YAFFS2 file system
After extracting the YAFFS2 source file, run a shell script under the YAFFS2 source folder
./patch-ker.sh C
The above command completes the following three things:
(1) Change kernel fs/kconfig
Add a line: source "Fs/yaffs2/kconfig"
(2) Change kernel fs/kconfig
Add one line: ojb-$ (CONFIG_YAFFS_FS) +=yaffs2/
(3) Create the YAFFS2 folder under the kernel fs/folder
Copy the Makefile.kernel file below the YAFFS2 source code folder to the kernel fs/yaffs2/makefie;
Copy the Kconfig file of the YAFFS2 source code folder to the kernel FS/YAFFS2 folder;
Copy the *.c *.h file under the YAFFS2 Source code folder to the kernel Fs/yaffs2 folder.
Three. Configure the kernel.
Clean kernel porting to arm platform or a variety of manual changes, trouble to say ~ Of course it also makes me more familiar with the role and relationship of Kconfig Makfile
Linux default kconfig and. config are not prepared for the arm platform so ...
Rt,copy Arm folder Kconfig and s3c6400_defconfig copy to. config (s3c6400 and s3c6410 are almost identical. So the kernel just gives a config)
execute make Menuconfig once and then add a little bit of stuff.
Follow this blog to do the following method. Complete MTD option
http://blog.csdn.net/cinmyheart/article/details/38754669
in order to add Devfs File Manager support, complete fs/kconfig
The file system we use is the devfs file Manager.
Change fs/kconfig,
Found it
Menu "Pseudo filesystems"
Add for example the following statement:
Config DEVFS_FS bool "/dev File system support (OBSOLETE)" default y config Devfs_mountbool "automatically Mount at boot ' default ydepends on Devfs_fs
Workaround for no YAFFS2 option in Menuconfig
The link given below, some of the details are actually part of the configuration kernel, not all to solve the problem of YAFFS2 option missing
http://blog.csdn.net/cinmyheart/article/details/38759549
Change the makefile under the root folder,
Then change the MTD partition (this step is not entirely correct.) It's very likely that's why I didn't have a successful transplant.
Samsung Chips, a series of products from the previous model slowly improve the derivative of the new product, so there will be s3c6410 and s3c2410 in some basic file configuration shared
Changes ./arch/arm/mach-s3c64xx/mach-smdk6410.c
Add the following code, for example:
Add header File
</pre></p><pre name= "code" class= "CPP" >
#include <plat/sdhci.h> #include <linux/mtd/partitions.h> #include <mtd/mtd-abi.h>struct s3c_ ts_mach_info {int delay;int presc;int oversampling_shift;intresol_bit;enum S3c_adc_types3c_adc_con;};
Gaze at the part of the gaze, and join the &s3c_device_nand
Change this function in/ARCH/ARM/PLAT-SAMSUNG/DEVS.C
Change the words that stare with added
Join the. Boot_params option
Change/drivers/mtd/nand/s3c2410.c
Replace all (except switch options) Assignment statements include Nand_ecc_soft as Nand_ecc_none
Kernel feature Configuration
Last Make Zimage
The last of the last: Unfortunately found a lot of blog, or failed to solve the problem.
Some say yes.
Copyright notice: This article blog original articles, blogs, without consent, may not be reproduced.
Linux 3.4.103 kernel ported to s3c6410 board porting failed (problem summary, Japan War again!) )