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

一、裁剪内核

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

     

  

  

  

  

  

时间: 2024-12-19 12:11:32

linux4.10.8 内核移植(三)---裁剪内核的相关文章

linux4.10.8 内核移植(一)---环境搭建及适配单板。

一.环境搭建 源码包下载:git clone https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.10.8.tar.gz 或者直接去kernel.org上面进行下载. 交叉编译工具链制作: 这个已经在u-boot移植中已经做过了:http://www.cnblogs.com/kele-dad/p/6910040.html 二.内核启动过程 2.1 Windows 和 Linux 系统的启动区别 由bootloader确定启动哪块单板. 2.2

【转】 linux内核移植和驱动添加(三)

原文网址:http://blog.chinaunix.net/uid-29589379-id-4708909.html 原文地址:linux内核移植和驱动添加(三) 作者:genehang 四,LED驱动的添加 1, 将led.c驱动文件拷贝到linux-3.1.4/drivers/char/目录下 [email protected]# pwd /change/linux-3.1.4/drivers/char [email protected]#  cp /mnt/hgfs/fh/driver/

liunx内核移植(三)——内核、驱动、应用程序、根文件系统的关系

一:驱动属于内核的一部分 (1)驱动就是内核中的硬件设备管理模块 (2)驱动工作在内核态. (3)驱动程序故障可能导致整个内核崩溃 (4)驱动程序漏洞会使内核不安全 二:应用程序和内核的关系 (1)应用程序不属于内核,而是在内核之上的 (2)应用程序工作在用户态,是受限制的. (3)应用程序故障不会导致内核崩溃 (4)应用程序通过内核定义的API接口来调用内核工作,也就是说应 用程序依赖于内核,比如C语言的标准库就属于一个应用程序,所以在 内核当中不能使用C标准库,而是要使用liunx内核中的库

基于tiny4412的Linux内核移植 -- 设备树的展开

作者信息 作者: 彭东林 邮箱:[email protected] QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4

【转】 linux内核移植和网卡驱动(二)

原文网址:http://blog.chinaunix.net/uid-29589379-id-4708911.html 一,内核移植步骤: 1, 修改顶层目录下的Makefile ARCH            ?= $(SUBARCH) CROSS_COMPILE   ?= $(CONFIG_CROSS_COMPILE:"%"=%) 修改为: ARCH :=arm CROSS_COMPILE :=/usr/local/arm/4.4.3/bin/arm-linux- 2, 拷贝配置文

【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)

深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,如果对这个课程有兴趣的,可以加我的QQ2059055336和我联系. 课程内容简介 本课程重点是给大家讲解嵌入式linux系统移植的开发方法,采用理论与实践,硬件与软件相结合的方法. 1.在每节开始之前先简单回顾上一节所讲的主要内容,并对本节所讲的内容先进行概述,讲解概念.技术要点,设计实现思路等内容,最后总结本次课程的要掌握的要点. 2.在讲课的过程中对关键技术

linux内核移植(一)——linux内核简介

一:linux的起源 Linux是一种开源电脑操作系统内核.它是一个用C语言写成,符合POSIX标准的类Unix操作系统,Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的.该计划开始于1991年,在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助. 二:linux内核版本 (1)linux0.01.初版,紧接着是0.02.0.03.0.10.0.11.0.12.0.95.0.96.0

linux 内核移植和根文件系统的制作

1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1  Linux版本 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中: VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 29 EXTRAVERSION = .1 其 中的“VERSION”和“PATCHLEVEL”组成主版本号,比如2.4.2.5

【FL2400】Linux3.0 内核移植 一

接触arm + Linux已经将近两年了,之前都是站在大神的肩膀上来移植linux内核,对很对要求移植的东西都不是很懂!为了进一步深入对内核的了解,我决定重新从头开始对linux内核进行移植.这次移植完全是从一个新手的角度进行移植,包括可能出现的问题,以及出现的问题如何解决. 环境: 操作系统: CentOS 6.2 编译环境:gcc version 4.3.6 (Buildroot 2011.11) 开发板    : 飞凌2440(s3c2440)(arm920t) u-boot    :u-