晋江住房和城乡建设局网站,sem工作内容,“跨年”等关键词搜索达年内峰值,wordpress 子夜面源码获取
源码获取和操作流程
1.下载liunux下的系统制作脚本#xff0c;可以烧录系统和构建镜像
git clone https://github.com/friendlyarm/sd-fuse_s5p6818.git
如果出现git错误可使用如下方法#xff1a;
git config --global http.sslverify false
2.阅读该工具rea…源码获取
源码获取和操作流程
1.下载liunux下的系统制作脚本可以烧录系统和构建镜像
git clone https://github.com/friendlyarm/sd-fuse_s5p6818.git
如果出现git错误可使用如下方法
git config --global http.sslverify false
2.阅读该工具readme sd-fuse_s5p6818 简介 sd-fuse 提供一些工具和脚本, 用于制作SD卡固件, 具体用途如下: 制作分区镜像文件, 例如将rootfs目录打包成rootfs.img将多个分区镜像文件打包成可直接写SD卡的单一镜像文件简化内核和uboot的编译, 一键编译内核、第三方驱动, 并更新rootfs.img中的内核模块其他语言版本: English 运行环境 在电脑主机端使用推荐的操作系统: Ubuntu 18.04及以上64位操作系统推荐运行此脚本初始化开发环境: https://github.com/friendlyarm/build-env-on-ubuntu-bionic支持的内核版本 sd-fuse 使用不同的git分支来支持不同的内核版本, 当前支持的内核版本为: 4.4.y其他内核版本, 请切换到相应的git分支 支持的目标板OS lubuntufriendlycorefriendlycore-arm64friendlycore-lite-focalfriendlycore-lite-focal-arm64androidandroid7friendlywrt这些OS名称是分区镜像文件存放的目录名, 在脚本内亦有严格定义, 所以不能改动, 例如要制作friendlycore-arm64的SD固件, 可使用如下命令: ./mk-sd-image.sh friendlycore-arm64 获得打包固件所需要的素材 制作固件所需要的素材有: 内核源代码: 在网盘的 “07_源代码” 目录中, 或者从此github链接下载, 分支为nanopi2-v4.4.yuboot源代码: 在网盘的 “07_源代码” 目录中, 或者从此github链接下载, 分支为nanopi2-v2016.01分区镜像文件: 在网盘的 “03_分区镜像文件” 目录中, 或者从此http链接下载文件系统压缩包: 在网盘的 “06_文件系统” 目录中, 或者从此http链接下载如果没有提前准备好文件, 脚本亦会使用wget命令从http server去下载, 不过因为http服务器带宽不足的关系, 速度可能会比较慢。 脚本功能 fusing.sh: 将镜像烧写至SD卡mk-sd-image.sh: 制作SD卡镜像mk-emmc-image.sh: 制作eMMC卡刷固件(SD-to-eMMC)build-boot-img.sh: 将指定目录打包成boot镜像(boot.img)build-rootfs-img.sh: 将指定目录打包成文件系统镜像(rootfs.img)build-kernel.sh: 编译内核,或内核头文件build-uboot.sh: 编译uboot如何使用 重新打包SD卡运行固件 注: 这里以friendlycore-arm64系统为例进行说明 下载本仓库到本地, 然后下载并解压friendlycore-arm64系统的分区镜像文件压缩包, 由于http服务器带宽的关系, wget命令可能会比较慢, 推荐从网盘上下载同名的文件: git clone https://github.com/friendlyarm/sd-fuse_s5p6818 -b master sd-fuse_s5p6818
cd sd-fuse_s5p6818
wget http://112.124.9.243/dvdfiles/s5p6818/images-for-eflasher/friendlycore-arm64-images.tgz
tar xvzf friendlycore-arm64-images.tgz 解压后, 会得到一个名为friendlycore-arm64的目录, 可以根据项目需要, 对目录里的文件进行修改, 例如把rootfs.img替换成自已修改过的文件系统镜像, 或者自已编译的内核和uboot等, 准备就绪后, 输入如下命令将系统映像写入到SD卡 (其中/dev/sdX是你的SD卡设备名): sudo ./fusing.sh /dev/sdX friendlycore-arm64 或者, 打包成可用于SD卡烧写的单一镜像文件: ./mk-sd-image.sh friendlycore-arm64 命令执行成功后, 将生成以下文件, 此文件可烧写到SD卡运行: out/s5p6818-sd-friendly-core-xenial-4.4-arm64-YYYYMMDD.img 重新打包 SD-to-eMMC 卡刷固件 注: 这里以friendlycore-arm64系统为例进行说明 下载本仓库到本地, 然后下载并解压分区镜像文件压缩包, 这里需要下载friendlycore-arm64和eflasher系统的文件: git clone https://github.com/friendlyarm/sd-fuse_s5p6818 -b master sd-fuse_s5p6818
cd sd-fuse_s5p6818
wget http://112.124.9.243/dvdfiles/s5p6818/images-for-eflasher/friendlycore-arm64-images.tgz
tar xvzf friendlycore-arm64-images.tgz
wget http://112.124.9.243/dvdfiles/s5p6818/images-for-eflasher/emmc-flasher-images.tgz
tar xvzf emmc-flasher-images.tgz 再使用以下命令, 打包卡刷固件, autostartyes参数表示使用此固件开机时,会自动进入烧写流程: ./mk-emmc-image.sh friendlycore-arm64 autostartyes 命令执行成功后, 将生成以下文件, 此文件可烧写到SD卡运行: out/s5p6818-eflasher-friendly-core-xenial-4.4-arm64-YYYYMMDD.img 定制文件系统 注: 这里以friendlycore-arm64系统为例进行说明 下载本仓库到本地, 然后下载并解压分区镜像压缩包: git clone https://github.com/friendlyarm/sd-fuse_s5p6818 -b master sd-fuse_s5p6818
cd sd-fuse_s5p6818
wget http://112.124.9.243/dvdfiles/s5p6818/images-for-eflasher/friendlycore-arm64-images.tgz
tar xvzf friendlycore-arm64-images.tgz 下载文件系统压缩包并解压, 需要使用root权限, 因此解压命令需要加上sudo: wget http://112.124.9.243/dvdfiles/s5p6818/rootfs/rootfs-friendlycore.tgz
sudo tar xzf rootfs-friendlycore.tgz 可以根据需要, 对文件系统目录进行更改, 例如: sudo sh -c echo hello friendlycore-arm64/rootfs/root/welcome.txt 用以下命令将文件系统目录打包成 rootfs.img: sudo ./build-rootfs-img.sh friendlycore-arm64/rootfs friendlycore-arm64 最后打包成SD卡镜像文件: ./mk-sd-image.sh friendlycore-arm64 或生成SD-to-eMMC卡刷固件: ./mk-emmc-image.sh friendlycore-arm64 文件系统Tips: 可利用debootstrap工具对文件系统进行定制, 预装软件包等编译内核 注: 这里以friendlycore-arm64系统为例进行说明 下载本仓库到本地, 然后下载并解压分区镜像压缩包: git clone https://github.com/friendlyarm/sd-fuse_s5p6818 -b master sd-fuse_s5p6818
cd sd-fuse_s5p6818
wget http://112.124.9.243/dvdfiles/s5p6818/images-for-eflasher/friendlycore-arm64-images.tgz
tar xvzf friendlycore-arm64-images.tgz 从github克隆内核源代码到本地, 用环境变量KERNEL_SRC来指定本地源代码目录: export KERNEL_SRC$PWD/kernel
git clone https://github.com/friendlyarm/linux -b nanopi2-v4.4.y --depth 1 ${KERNEL_SRC} 根据需要配置内核: cd $KERNEL_SRC
touch .scmversion
make ARCHarm nanopi3_linux_defconfig
make ARCHarm CROSS_COMPILEarm-linux- menuconfig # 根据需要改动配置
make ARCHarm CROSS_COMPILEarm-linux- savedefconfig
cp defconfig ./arch/arm/configs/my_defconfig # 保存配置 my_defconfig
git add ./arch/arm/configs/my_defconfig
cd - 使用KCFG环境变量指定内核的配置 (KERNEL_SRC指定源代码目录), 使用你的配置编译内核: export KERNEL_SRC$PWD/kernel
export KCFGmy_defconfig
./build-kernel.sh friendlycore-arm64 编译 u-boot 注: 这里以friendlycore-arm64系统为例进行说明 下载本仓库到本地, 然后下载并解压分区镜像压缩包: git clone https://github.com/friendlyarm/sd-fuse_s5p6818 -b master sd-fuse_s5p6818
cd sd-fuse_s5p6818
wget http://112.124.9.243/dvdfiles/s5p6818/images-for-eflasher/friendlycore-arm64-images.tgz
tar xvzf friendlycore-arm64-images.tgz 从github克隆与OS版本相匹配的u-boot源代码到本地, 环境变量UBOOT_SRC用于指定本地源代码目录: export UBOOT_SRC$PWD/uboot
git clone https://github.com/friendlyarm/u-boot -b nanopi2-v2016.01 --depth 1 ${UBOOT_SRC}
./build-uboot.sh friendlycore-arm64 Tips: 如何查询SD卡的设备文件名 在未插入SD卡的情况下输入: ls -1 /dev ~/before.txt 插入SD卡,输入以下命令查询: ls -1 /dev ~/after.txt
diff ~/before.txt ~/after.txt 安装交叉编译器
安装库
apt install liblz4-tool android-tools-fsutils
下载交叉编译器
git clone https://github.com/friendlyarm/prebuilts.git -b master --depth 1
在/opt目录下存放编译器
sudo mkdir -p /opt/FriendlyARM/toolchain
将交叉编译器解压到/opt目录下
Sudo tar xf prebuilts/gcc-x64/aarch64-cortexa53-linux-gnu-6.4.tar.xz -C /opt/FriendlyARM/toolchain/
编译
编译准备
编译前需要安装如下软件包
#解决menuconfig报错问题
sudo apt-get install build-essential
sudo apt-get install libncurses5-dev#解决编译设备树报错问题
sudo apt-get install device-tree-compiler
#解决内核报错openssl头文件找不到
sudo apt-get install libssl-dev
编译uboot
#参数根据自己要编译的系统而定build-uboot脚本可能存在一些问题比如指定的uboot源码路径在out目录下根据情况自行修改。
./build-uboot.sh friendlycore-arm64 如图编译完成后生成u-boot.bin脚本使用该文件生成了fip-nonsecure.img然后将该镜像更新到系统镜像目录用于烧录。
编译kernel
#系统类型根据情况自行修改
./build-kernel.sh friendlycore-arm64 内核编译完成生成boot.img同时还会打包内核模块重新生成文件系统并且修改分区表使用脚本编译使内核编译工作变得简单。
烧录
烧录命令
sudo ./fusing.sh /dev/sdX friendlycore-arm64
指定烧录的SD卡设备名后面跟系统名即可一键烧录系统
本系列文章硬件使用友善 nanopi fire3