From ab602e5ababe0fd909e0cab2e2a68d52af26faa8 Mon Sep 17 00:00:00 2001 From: Jianmin Date: Thu, 11 Jun 2020 09:30:00 +0800 Subject: [PATCH 1/4] Add spec file for raspberrypi-kernel. --- .gitignore | 1 + README.en.md | 30 +++++-------- README.md | 26 ++++------- SOURCE | 1 + raspberrypi-kernel.spec | 96 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 117 insertions(+), 37 deletions(-) create mode 100644 .gitignore create mode 100644 SOURCE create mode 100644 raspberrypi-kernel.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..335ec95 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.tar.gz diff --git a/README.en.md b/README.en.md index 2630f93..43a7266 100644 --- a/README.en.md +++ b/README.en.md @@ -1,22 +1,24 @@ -# raspberrypi-kernel +# raspberry-kernel #### Description -Kernel of Raspberry Pi + +Kernel Image of Raspberry Pi. + +kernel.tar.gz is from https://gitee.com/openeuler/raspberrypi-kernel. After you put your public ssh key into your account in gitee, you can get kernel.tar.gz with executing command `. SOURCE`. #### Software Architecture -Software architecture description + +AArch64 #### Installation -1. xxxx -2. xxxx -3. xxxx +dnf install raspberrypi-kernel #### Instructions -1. xxxx -2. xxxx -3. xxxx +1. The version of raspberrypi kernel end with `.raspi`. +2. The module files is installed into /lib/modules. +3. The image files and other files of kernel is installed into /usr/share/raspberrypi-kernel/. #### Contribution @@ -24,13 +26,3 @@ Software architecture description 2. Create Feat_xxx branch 3. Commit your code 4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md index 0dd7658..60494dc 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,23 @@ # raspberrypi-kernel #### 介绍 -Kernel of Raspberry Pi +Raspberry Pi 内核映像文件。 + +kernel.tar.gz 来自 https://gitee.com/openeuler/raspberrypi-kernel 仓库,将 SSH 公钥添加到 gitee.com 的账户中后,可通过执行 . SOURCE 来获取 kernel.tar.gz。 #### 软件架构 -软件架构说明 +AArch64 #### 安装教程 -1. xxxx -2. xxxx -3. xxxx +dnf install raspberrypi-kernel #### 使用说明 -1. xxxx -2. xxxx -3. xxxx +1. 内核版本号后缀增加 `.raspi` 标识。 +2. 内核模块安装在 /lib/modules 目录下。 +3. 内核映像文件等在 /usr/share/raspberrypi-kernel/ 目录下。 #### 参与贡献 @@ -25,13 +25,3 @@ Kernel of Raspberry Pi 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request - - -#### 码云特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 -5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/SOURCE b/SOURCE new file mode 100644 index 0000000..f050a1f --- /dev/null +++ b/SOURCE @@ -0,0 +1 @@ +git archive --format=tar.gz --prefix=kernel/ -o kernel.tar.gz --remote=git@gitee.com:openeuler/raspberrypi-kernel.git openEuler-20.03-LTS-raspi diff --git a/raspberrypi-kernel.spec b/raspberrypi-kernel.spec new file mode 100644 index 0000000..0fd79d6 --- /dev/null +++ b/raspberrypi-kernel.spec @@ -0,0 +1,96 @@ +%global Arch $(echo %{_host_cpu} | sed -e s/i.86/x86/ -e s/x86_64/x86/ -e s/aarch64.*/arm64/) + +%global KernelVer %{version}-%{release}.%{_target_cpu} + +%global hulkrelease 2003.4.0 + +%global debug_package %{nil} + +Name: raspberrypi-kernel +Version: 4.19.90 +Release: %{hulkrelease}.0036.raspi +Summary: Linux Kernel +License: GPLv2 +URL: http://www.kernel.org/ +Source0: kernel.tar.gz + +BuildRequires: module-init-tools, patch >= 2.5.4, bash >= 2.03, tar +BuildRequires: bzip2, xz, findutils, gzip, m4, perl, make >= 3.78, diffutils, gawk +BuildRequires: gcc >= 3.4.2, binutils >= 2.12 +BuildRequires: hostname, net-tools, bc +BuildRequires: xmlto, asciidoc +BuildRequires: openssl-devel +BuildRequires: hmaccalc +BuildRequires: ncurses-devel +BuildRequires: elfutils-libelf-devel +BuildRequires: rpm >= 4.14.2 +BuildRequires: elfutils-devel zlib-devel binutils-devel newt-devel python-devel perl(ExtUtils::Embed) bison +BuildRequires: audit-libs-devel +BuildRequires: pciutils-devel gettext +BuildRequires: rpm-build, elfutils +BuildRequires: numactl-devel python3-devel glibc-static python3-docutils +BuildRequires: perl-generators perl(Carp) libunwind-devel gtk2-devel libbabeltrace-devel java-1.8.0-openjdk +AutoReq: no +AutoProv: yes + +Provides: raspberrypi-kernel-aarch64 = %{version}-%{release} + +Requires: linux-firmware >= 20100806-2 raspberrypi-firmware >= 20200512 + +ExclusiveArch: aarch64 +ExclusiveOS: Linux + +%description +The Linux Kernel image for RaspberryPi. + +%prep +%setup -q -n kernel-%{version} -c +mv kernel linux-%{version} +cp -rl linux-%{version} linux-%{KernelVer} + +cd linux-%{KernelVer} + +find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null +find . -name .gitignore -exec rm -f {} \; >/dev/null + +%build +cd linux-%{KernelVer} + +perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}.%{_target_cpu}/" Makefile + +make ARCH=%{Arch} %{?_smp_mflags} openeuler-raspi_defconfig +make ARCH=%{Arch} dtbs + +TargetImage=$(basename $(make -s image_name)) + +make ARCH=%{Arch} $TargetImage %{?_smp_mflags} +make ARCH=%{Arch} modules %{?_smp_mflags} + +%install +cd linux-%{KernelVer} + +## install linux + +make ARCH=%{Arch} INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=%{KernelVer} + +mkdir -p $RPM_BUILD_ROOT/boot +install -m 755 $(make -s image_name) $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer} +install -m 644 .config $RPM_BUILD_ROOT/boot/config-%{KernelVer} +install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-%{KernelVer} + +mkdir -p $RPM_BUILD_ROOT/boot/dtb-%{KernelVer}/overlays +install -m 644 $(find arch/%{Arch}/boot/dts/broadcom/ -name "*.dtb") $RPM_BUILD_ROOT/boot/dtb-%{KernelVer}/ +install -m 644 $(find arch/%{Arch}/boot/dts/overlays/ -name "*.dtbo") $RPM_BUILD_ROOT/boot/dtb-%{KernelVer}/overlays/ + +%files +%defattr (-, root, root) +%doc +/boot/config-* +/boot/System.map-* +/boot/vmlinuz-* +/boot/dtb-* +/lib/modules/%{KernelVer}/ + +%changelog +* Thu Jun 11 2020 EulixOS Buildteam - 4.19.90-2003.4.0.0036-raspi +- Add spec file to generate RaspberryPi kernel image rpm. From 88c82c74f830d57f035a6f9342b2281f44c26037 Mon Sep 17 00:00:00 2001 From: jianmin Date: Thu, 2 Jul 2020 11:52:36 +0800 Subject: [PATCH 2/4] add kernel.tar.gz --- .gitattributes | 1 + .gitignore | 1 - README.en.md | 2 +- README.md | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 .gitattributes delete mode 100644 .gitignore diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..68b13cb --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +kernel.tar.gz filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 335ec95..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.tar.gz diff --git a/README.en.md b/README.en.md index 43a7266..fb1aa77 100644 --- a/README.en.md +++ b/README.en.md @@ -18,7 +18,7 @@ dnf install raspberrypi-kernel 1. The version of raspberrypi kernel end with `.raspi`. 2. The module files is installed into /lib/modules. -3. The image files and other files of kernel is installed into /usr/share/raspberrypi-kernel/. +3. The image files and other files of kernel is installed into /boot/. #### Contribution diff --git a/README.md b/README.md index 60494dc..1e01938 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ dnf install raspberrypi-kernel 1. 内核版本号后缀增加 `.raspi` 标识。 2. 内核模块安装在 /lib/modules 目录下。 -3. 内核映像文件等在 /usr/share/raspberrypi-kernel/ 目录下。 +3. 内核映像文件等在 /boot/ 目录下。 #### 参与贡献 From 4f33e0b2e58790fa56acfb7cc86af4ea7fa20220 Mon Sep 17 00:00:00 2001 From: yafen Date: Thu, 2 Jul 2020 21:27:28 +0800 Subject: [PATCH 3/4] KernelVer and README and update kernel.tar.gz --- README.en.md | 24 +++++++++++++++++++----- README.md | 29 ++++++++++++++++++++++++----- raspberrypi-kernel.spec | 12 ++++++------ 3 files changed, 49 insertions(+), 16 deletions(-) diff --git a/README.en.md b/README.en.md index fb1aa77..1fb789e 100644 --- a/README.en.md +++ b/README.en.md @@ -4,7 +4,7 @@ Kernel Image of Raspberry Pi. -kernel.tar.gz is from https://gitee.com/openeuler/raspberrypi-kernel. After you put your public ssh key into your account in gitee, you can get kernel.tar.gz with executing command `. SOURCE`. +The `kernel.tar.gz` is from . After you put your public ssh key into your account in gitee, you can obtain `kernel.tar.gz` by executing command `. SOURCE`. You can directly use the `kernel.tar.gz` in this repository instead. #### Software Architecture @@ -12,13 +12,27 @@ AArch64 #### Installation -dnf install raspberrypi-kernel +`dnf install raspberrypi-kernel` #### Instructions -1. The version of raspberrypi kernel end with `.raspi`. -2. The module files is installed into /lib/modules. -3. The image files and other files of kernel is installed into /boot/. +1. The version of raspberrypi kernel ends with `.raspi`, e.g., `4.19.90-2005.2.0.0036.raspi.aarch64 `. +2. The module files will be installed into `/lib/modules`. The directory name of these module files is the same as the version of raspberrypi kernel, such as `4.19.90-2005.2.0.0036.raspi.aarch64`. +3. The image file will be installed into `/boot`, whose filename is like `vmlinuz-4.19.90-2005.2.0.0036.raspi.aarch64`. Note that the image file is in GZ compression format by default. You can decompress this file, and then rename it to `kernel8.img` as follows. + + ``` + cd /boot + cp vmlinuz-4.19.90-2005.2.0.0036.raspi.aarch64 Image.gz + gunzip Image.gz + mv Image kernel8.img + ``` + +4. The device tree files will be installed into `/boot`. The directory name of these files looks like `dtb-4.19.90-2005.2.0.0036.raspi.aarch64`. You need to copy the device tree files to `/boot` as follows. + + ``` + cd /boot + cp dtb-4.19.90-2005.2.0.0036.raspi.aarch64/*.dtb ./ + ``` #### Contribution diff --git a/README.md b/README.md index 1e01938..85e9a04 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ # raspberrypi-kernel #### 介绍 + Raspberry Pi 内核映像文件。 -kernel.tar.gz 来自 https://gitee.com/openeuler/raspberrypi-kernel 仓库,将 SSH 公钥添加到 gitee.com 的账户中后,可通过执行 . SOURCE 来获取 kernel.tar.gz。 +`kernel.tar.gz` 来自 仓库,将 SSH 公钥添加到 gitee.com 的账户中后,可通过执行 `. SOURCE` 来获取 `kernel.tar.gz`。也可以采用本仓库通过 Git LFS 上传的 `kernel.tar.gz`。 #### 软件架构 @@ -11,13 +12,31 @@ AArch64 #### 安装教程 -dnf install raspberrypi-kernel +`dnf install raspberrypi-kernel` #### 使用说明 -1. 内核版本号后缀增加 `.raspi` 标识。 -2. 内核模块安装在 /lib/modules 目录下。 -3. 内核映像文件等在 /boot/ 目录下。 +安装 raspberrypi-kernel 后, + +1. 内核版本号后缀增加 `.raspi` 标识,形如 `4.19.90-2005.2.0.0036.raspi.aarch64`。 +2. 内核模块安装在 `/lib/modules` 目录下,对应文件夹名称同内核版本号,如 `4.19.90-2005.2.0.0036.raspi.aarch64`。 +3. 内核映像文件在 `/boot` 目录下,映像文件名形如 `vmlinuz-4.19.90-2005.2.0.0036.raspi.aarch64`。注意,该文件默认是采用 GZ 压缩格式的压缩文件,需要解压缩后重命名为 `kernel8.img`。 + + 具体过程: + ``` + cd /boot + cp vmlinuz-4.19.90-2005.2.0.0036.raspi.aarch64 Image.gz + gunzip Image.gz + mv Image kernel8.img + ``` + +4. 设备树文件在 `/boot` 目录下的文件夹下,该文件夹名称形如 `dtb-4.19.90-2005.2.0.0036.raspi.aarch64`,需要将其中的设备树文件拷贝到 `/boot` 目录下。 + + 具体过程: + ``` + cd /boot + cp dtb-4.19.90-2005.2.0.0036.raspi.aarch64/*.dtb ./ + ``` #### 参与贡献 diff --git a/raspberrypi-kernel.spec b/raspberrypi-kernel.spec index 0fd79d6..3853f97 100644 --- a/raspberrypi-kernel.spec +++ b/raspberrypi-kernel.spec @@ -1,14 +1,14 @@ %global Arch $(echo %{_host_cpu} | sed -e s/i.86/x86/ -e s/x86_64/x86/ -e s/aarch64.*/arm64/) -%global KernelVer %{version}-%{release}.%{_target_cpu} +%global KernelVer %{version}-%{release}.raspi.%{_target_cpu} -%global hulkrelease 2003.4.0 +%global hulkrelease 2005.2.0 %global debug_package %{nil} Name: raspberrypi-kernel Version: 4.19.90 -Release: %{hulkrelease}.0036.raspi +Release: %{hulkrelease}.0036 Summary: Linux Kernel License: GPLv2 URL: http://www.kernel.org/ @@ -35,8 +35,6 @@ AutoProv: yes Provides: raspberrypi-kernel-aarch64 = %{version}-%{release} -Requires: linux-firmware >= 20100806-2 raspberrypi-firmware >= 20200512 - ExclusiveArch: aarch64 ExclusiveOS: Linux @@ -56,7 +54,7 @@ find . -name .gitignore -exec rm -f {} \; >/dev/null %build cd linux-%{KernelVer} -perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}.%{_target_cpu}/" Makefile +perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}.raspi.%{_target_cpu}/" Makefile make ARCH=%{Arch} %{?_smp_mflags} openeuler-raspi_defconfig make ARCH=%{Arch} dtbs @@ -72,6 +70,7 @@ cd linux-%{KernelVer} ## install linux make ARCH=%{Arch} INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=%{KernelVer} +rm -rf $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/source $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build mkdir -p $RPM_BUILD_ROOT/boot install -m 755 $(make -s image_name) $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer} @@ -81,6 +80,7 @@ install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-%{KernelVer} mkdir -p $RPM_BUILD_ROOT/boot/dtb-%{KernelVer}/overlays install -m 644 $(find arch/%{Arch}/boot/dts/broadcom/ -name "*.dtb") $RPM_BUILD_ROOT/boot/dtb-%{KernelVer}/ install -m 644 $(find arch/%{Arch}/boot/dts/overlays/ -name "*.dtbo") $RPM_BUILD_ROOT/boot/dtb-%{KernelVer}/overlays/ +install -m 644 arch/%{Arch}/boot/dts/overlays/README $RPM_BUILD_ROOT/boot/dtb-%{KernelVer}/overlays/ %files %defattr (-, root, root) From a32b6d8d7920a5a49ce883f30349d8fcb7083b7d Mon Sep 17 00:00:00 2001 From: yafen Date: Mon, 13 Jul 2020 09:42:41 +0800 Subject: [PATCH 4/4] readme.en for title --- README.en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.en.md b/README.en.md index 1fb789e..e06b0fc 100644 --- a/README.en.md +++ b/README.en.md @@ -1,4 +1,4 @@ -# raspberry-kernel +# raspberrypi-kernel #### Description