1. 程式人生 > >linux4.10.8 內核移植(三)---裁剪內核

linux4.10.8 內核移植(三)---裁剪內核

conf .cn 需要 正常 多少 分享 內核 col make

一、裁剪內核

1.1 第一次修改

  現在的內核大小為2.8M左右,要裁剪到2.0M以下,畢竟給內核分區就只有2.0M。

  技術分享

  技術分享

  這兩個設備我們沒有,裁剪掉。

  進入make menuconfig中,搜索mousedev:

  技術分享

  進入裏面按需要進行裁剪。

  技術分享

  搜索 lp:

  技術分享

  hostname修改:

  技術分享

  文件系統再此修改:

  技術分享

  去掉如下選項:

  技術分享

  技術分享

  技術分享

  再次進入device driver,-》input device->touch creen

  配置上

  技術分享

  去掉:

  技術分享

  修改完後,保存。然後編譯執行,查看uImage的大小

  技術分享

  裁剪出來的大小為2.66M,還得繼續裁剪。

1.2 第二次修改

  查看.config文件,查看哪些能修改的。

  技術分享

  NETworking support->bluetooth

  藍牙設備,我們的開發板上沒有藍牙,去掉

  技術分享

  device driver->network device support

  技術分享

  無線WIFI也不支持,去掉。

  技術分享

  這個去不掉,放那裏了。

  編譯

  技術分享

  根本沒減少多少,只能現在內核自帶屬性越來越多了。只能修改分區了。

  修改兩個分區,u-boot分區和linux裏面的分區。

二、修改分區

2.1 修改u-boot分區

  u-boot 的分區在 include/configs/jz2440.h 中修改,修改為4M大小

  技術分享

  編譯,然後下載。使用openjtag下載

  技術分享

  分區:

  技術分享

  刪除原有的分區:

  mtdparts delall

  新建分區:mtdparts default

  技術分享

  分區已經建立好。

2.2 內核修改 

  Mach-mini2440.c (arch\arm\mach-s3c24xx)

  技術分享

  編譯。

  燒寫文件系統進去:

1 nfs 30000000 192.168.0.192:/home/ubuntu/work/nfs_root/fs_mini.yaffs2
2 nand erase.part rootfs
3 nand write.yaffs 30000000 260000 $filesize
4 set
bootargs console=ttySAC0,115200 root=/dev/mtdblock3

  燒寫內核,此次就直接燒寫進nand中了

1 nfs 30000000 192.168.0.192:/home/ubuntu/work/nfs_root/uImage
2 nand erase.part kernel
3 nand write 30000000 kernel

  u-boot中要設置啟動參數:

1 set nand read 30000000 kernel;bootm 30000000
2 set bootargs console=ttySAC0,115200 root=/dev/mtdblock3

  正常啟動。

四、制作補丁

  內核補丁制作:

1 cp .config config_jz2440
2 make distclean
3 cd ..
4 mv linux-4.10.8 linux-4.10.8_jz2440
5 tar -jxvf linux-4.10.8.tar.gz
6 diff -urN linux-4.10.8 linux-4.10.8_jz2440 > linux-4.10.8_jz2440.patch

  技術分享

  打補丁:

1 cd linux-4.10.8
2 patch -p1 < ../linux-4.10.8_jz2440.patch

     

  

  

  

  

  

linux4.10.8 內核移植(三)---裁剪內核