# 自动化脚本 **Repository Path**: junlangit/automated-script ## Basic Information - **Project Name**: 自动化脚本 - **Description**: 本仓库主要提供一些高效的,自动化脚本相关的源码,包括嵌入式Linux开发环境的自动搭建等。 - **Primary Language**: Shell - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 2 - **Created**: 2022-02-23 - **Last Updated**: 2023-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 自动化脚本 #### 介绍 本仓库主要提供一些高效的,自动化脚本相关的源码,包括嵌入式Linux开发环境的自动搭建等。 有意参与贡献,提出建议者,请邮件至 jl_junzhu@163.com 或者 QQ:2710199791 #### 使用说明 1. embeded_linux.sh (1)总述:嵌入式Linux开发环境自动化搭建,本脚本实现了对Linux内核源码级的下载,配置,编译,安装,替换或使用。 (2)功能 1)自动化将当前使用的Linux系统内核更换至最新版本 2)自动化搭建基于qemu运行Cortex-A9的嵌入式Linux开发环境 (3)系统与语言: **_Ubuntu18.04_** shell 【Note:对于非Ubuntu18.04版本的系统同样可以适用,可能需要对脚本参数做微调整,欢迎各位积极交流,共同贡献,迭代更新】 (4)版本说明 目前 embeded_linux-20220307.sh为最新版本,完成嵌入式Cortex-A9内核在qemu上运行整体的开发环境搭建自动化过程。 持续更新。 (5)使用步骤 1)基于qemu运行Cortex-A9的嵌入式Linux开发环境 1--下载:通过git或者其他方式下载 embeded_linux-20220307.sh,拷贝至 Ubuntu 系统相应的位置 2--打开脚本,根据需求修改如下相应的参数,并保存 A.模块选择 busybox_install_is="no" arm_linux_kernel_make_is="no" 对于第一次使用该脚本安装,将上述两处"no",更改为"yes",关于busybox是用来制作嵌入式Linux内核的文件系统部分,arm_linux_kernel即我们需要使用的嵌入式Linux内核。后续,若这两个部分已经完成,可通过将这两个变量的参数修改成"no",则脚本执行的过程中,不会再重复进行busybox_install和arm_linux_kernel_make。 ![输入图片说明](img/image.png) B.在命令行终端运行脚本,关于执行过程如下描述 a.网络检测,若系统不通外网,则脚本会在10s内进行重复检测,若10s后仍然不通,则会自动结束执行 使用者在执行脚本之前,务必要保证网络的正常,否则会影响过程中相关软件包的下载。 ![输入图片说明](img/network_check.png) b.系统软件包是否需要更新,建议第一次进行开发环境搭建时,进行相应的更新,即输入"Y"/"y" 根据提示输入"Y"/"y"(需要更新)或者"N"/"n"(不需要更新) ![输入图片说明](img/update_select.png) c.确认软件包是否需要重新下载 该部分在第一次不会出现,在第二次开始重新执行时,脚本会检测当前目录下(与脚本相同的目录)是否已经下载相应的软件包。 根据提示输入"Y"/"y"(需要更新)或者"N"/"n"(不需要更新),一般建议如果已经下载并且正常使用,可以选择"N"/"n",不需反复的下载,重复操作。 关于此项软件包是否需要重复下载有两处,后续不再重复表述,分别如下图位置所示: 位置1:linux kernel: ![输入图片说明](img/linux_select.png) 位置2:busybox: ![输入图片说明](img/busybox_select.png) d.选择相应的的编译器 此处需要注意,我们需要采用 gcc-5 这个版本对Linux内核进行相应的编译,否则在后续编译或者使用的过程中可能会出现相应的问题。因此,确定是否如下图一样的选择,在选项 “1 /usr/bin/arm-linux-gnueabi-gcc-5 5 manual mode” 前面有*,则表示已经正确选择该编译器,一般第一次设置后,后续不需要再进行重复设置,因此,请按照如下方式进行选择性操作: 第一次:输入 1 后续操作:直接敲入回车即可 ![输入图片说明](img/gcc_select.png) e.内核配置 在第一次进行Linux编译时,需要对内核参数进行相应的配置 ![输入图片说明](img/linux_config.png) 配置1:配置initramfs,在initramfs source file填入_install ![输入图片说明](img/initranfs.png) 配置2:把Default kernel command string清空 ![输入图片说明](img/commond_string.png) 配置3:配置memory split为“3G/1G user/kernel split” ![输入图片说明](img/mem_split.png) 配置4:打开高端内存 ![输入图片说明](img/high_mem.png) f.成功后,进入运行在qemu模拟器上的基于Cortex-A9的嵌入式Linux系统中 注意如下图所示,qemu系统提示需要敲回车才可进入 ![输入图片说明](img/enter_con.png) 3--整体成功后,将会自动进入到Cortex-A9内核的Linux系统中,如下图所示 ![输入图片说明](img/linux_a9.png) #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request