一、Linux内核源码编译


  

一、环境搭建

获取系统镜像文件:1.使用源码编译出来。2.源码由芯片厂家提供。

1. 检测是否安装交叉编译器

   这里我使用的是aarch64-linux-gcc编译器,输入:aarch64-linux-gcc -v 查看。 下图为安装成功。
在这里插入图片描述

2. 获取源码

将这四个文件拷贝到共享目录下,切记不要共享目录下解压!!
在这里插入图片描述

3. 在~(家)目录下创建文件夹work,将四个文件剪切到work文件中。在家目录/work路径下使用

mv /mnt/hgfs/Share/*.gz ./

4. 下载新版依赖包

sudo apt-get install build-essential libncurses5 libncurses5-dev android-tools-fsutils gawk g++-multilib gcc-multilib zlib1g-dev lib32z-dev

5. 在~/work中解压源码。

注:不要有中文路径,路径不能有空格!!

tar -xf lichee_helpera64_v2.tar.gz

6. 源码解压后,会在~/work下生成一个lichee的文件目录。

   将patch中的ubuntu_core_18.04_config 拷贝到共享目录下。再将共享目录下的该文件替换~/work/lichee/linux-3.10路径下的./config文件。 原.config文件在裁剪系统时,没有操作界面,只能通过vi编辑使用y/n去选择配置。在将新的文件替换后,可以使用界面选择去裁剪系统。

(1)在~work/lichee/linux-3.10执行下面的命令进行替换:

cp /mnt/hgfs/Share/ubuntu_core_18.04_config .config 

在这里插入图片描述

(2)替换后用 ls -al,查看是否替换成功,替换成功后文件的时间为替换时的时间。
在这里插入图片描述

7. 配置lichee系统文件

(1) 修改背光极性,不然开机时默认是很暗的背光。

修改sys_config.fex文件。
执行: vi /home/qjl/work/lichee/configs/v2/sys_config.fex
把 lcd_pwm_pol 改成 0。
在这里插入图片描述

(2) 修改开机logo及分区大小

a. 修改 logo 分区大小,不然 logo 太大会报错。
执行:vi /home/qjl/work/lichee/tools/pack/chips/sun50iw1p1/configs/default/sys_partition_dragonboard.fex
在这里插入图片描述

b. 修改 rootfs 分区大小
以下文件都属于rootfs分区内容,将rootfs分区改大一些。在这里插入图片描述
size 大小为 12582912(6G)(6 * 1024 * 1024 * 1024 / 512),单位是块,每块 512字节。
在这里插入图片描述

c. 修改开机logo:

 cd /home/qjl/work/lichee/tools/pack/chips/sun50iw1p1/configs/v2

以下bootlogo.bmp文件为开机logo,我们可以将自己喜欢的照片替换它即可。
步骤:
① 将喜欢的照片设置为.bmp格式,且分辨率不能超过1024*600。且位深为32。
② 把照片放在共享目录下,再把照片重命名为bootlogo.bmp,再将重命名好的照片拷贝到原logo目录下,覆盖原照片即可。在这里插入图片描述

注!!!: 我们屏幕分辨率为1024*600,所以要替换的照片不能超过屏幕的分辨率 。要替换的照片位深必须为32位!!
在这里插入图片描述

8. 替换 linux 内核里的 RAMFS,否则没有自动扩展磁盘空间。

将该文件复制到: /home/qjl/work/lichee/linux-3.10 下。

cp ~/work/rootfs.cpio.gz ~/work/lichee/linux-3.10/

在这里插入图片描述

9. 将~/work中的下面两个文件复制下述文件夹中

  将~/work中的下面两个文件复到/home/qjl/work/lichee/tools/buildroot/target/dragonboard 中。然后将这两个文件/home/qjl/work/lichee/tools/buildroot/target/dragonboard中解压。
在这里插入图片描述
在这里插入图片描述

10. 如果需要可以修改登录密码

(1)在 /home/qjl/work/lichee/tools/buildroot/target/dragonboard/rootfs下执行以下操作:

sudo chroot ./
passwd root

(2)如果出现以下错误:
在这里插入图片描述

(3)安装一个命令即可:

sudo apt-get install qemu-user-static

(4)修改完密码后退出 chroot 命令: exit 。

11. 修改开机脚本

 vi /home/qjl/work/lichee/tools/buildroot/target/dragonboard/extra/etc/init.d/rcS

(1)将以下文件注释或删掉!
在这里插入图片描述

(2)将insmod /lib/modules/3.10.65/r8152.ko添加到文件末尾。在这里插入图片描述

12. 更改 build.sh 脚本

vi /home/qjl/work/lichee/tools/buildroot/target/dragonboard/build.sh

(1)修改前:
在这里插入图片描述
(2)修改后:
在这里插入图片描述

13. 配置源码,只需配置一次即可

cd /home/qjl/work/lichee
./build.sh config

根据自己的配置进行选择,这里我选的的为以下配置。
在这里插入图片描述

14. 进行编译打包镜像文件

cd /home/qjl/work/lichee
./build.sh
./build.sh pack                     #在上一条命令编译成功后再进行打包。

15. 将镜像文件下载到开发板

  打包成功后会显示红色字体来提示文件所在位置,将该文件拷贝到共享目录下,再使用下载工具把镜像文件下载到开发板即可。
注:如出现以下情况,则为虚拟机空间太小导致!!
在这里插入图片描述

二、附加内容:如何修改照片位深

  1. 把照片拖进ps,按下Ctrl+Shift+s。配置好点保存。
    在这里插入图片描述
  2. 选择32位深度,点击确定。
    在这里插入图片描述
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Linux内核源码编译是将Linux内核源代码编译成可执行内核的过程。编译过程需要先安装必要的编译工具和依赖库,然后使用make命令进行编译编译完成后,可以将生成的内核镜像文件安装到系统中,以更新现有的内核版本或者创建新的内核版本。编译过程需要一定的技术和经验,建议在进行编译前先了解相关知识和文档。 ### 回答2: Linux内核是一个开放源代码的操作系统,它的内核源码可以通过网络从github等网站下载,因此也允许用户对源码进行修改。当用户对内核源代码进行修改之后,需要编译新的内核并将其安装到系统中,以应用修改所带来的变化。 首先,下载内核源码,可以通过以下指令在Linux终端中下载 ``` $ git clone https://github.com/torvalds/linux.git ``` 下载完成之后,进入源码根目录 ``` $ cd linux ``` 然后,在终端中运行make menuconfig命令,进入配置界面。在这个界面,可以选择需要编译内核中的功能、驱动和选项,也可以取消需要的功能等选项。完成之后,保存并退出配置界面。 接下来就是正式编译的过程。 先清除上次编译的结果 ``` $ make clean ``` 编译时可以指定对应的平台,可以通过以下命令指定: ``` $ ARCH=arm make xyz ``` 其中xyz指的是编译的目标,比如all表示编译全部内容,zImage表示编译内核文件,modules表示编译驱动模块, bzImage表示编译完整的内核文件等等。 编译完成之后,安装内核驱动模块等文件: ``` $ sudo make modules_install && sudo make install ``` 这个命令会将编译好的内核镜像文件bzImage复制到/boot目录下,并为其设置一个名为config-<版本号>的配置文件。 最后,重新启动计算机,新的内核就会生效了。 编译内核源码需要一定的编程知识和经验,一些依赖包等也需要提前安装。此外,除非你确实需要修改内核,否则,在编译之前最好想清楚是否真的需要对内核源代码进行多大的修改。 ### 回答3: Linux内核是开源软件,它的源代码是公开且可自由使用的。编译Linux内核源代码就是将源代码翻译成计算机可以执行的机器语言的过程。 Linux内核源代码编译主要包括以下几个步骤: 1. 下载内核源码:从官方网站或其他可靠资源中获取内核源码,根据需要选择合适的版本。 2. 配置内核:使用make menuconfig工具打开Kernel Configuration Utility,根据系统硬件和需要进行内核的配置。配置完成后,保存并退出。 3. 编译内核:使用make命令编译内核,这个过程可能需要一些时间,过程中会生成一些文件(包括压缩镜像文件和应用程序的固件二进制文件等)。 4. 安装内核:使用make install命令将编译后的内核安装到系统中,建议在安装前进行备份。 5. 更新启动引导程序:重新载入启动引导程序(如Grub),以确保新内核可以正常启动。 在编译内核时,需要注意以下问题: 1. 建议使用最新版的编译器。 2. 系统要求:要求系统已经安装了必要的开发工具和库文件,如GCC编译器、make、ncurses和zlib等库文件。 3. 如果编译失败,请查看编译日志,根据错误提示解决问题。 总之,Linux内核源码编译需要一定的技术水平和耐心,但是掌握这个技能对于研究和开发Linux操作系统具有重要的价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值