缘由

最近买了个orico的有线网卡,结果内核日志一直报错

disabled by hub (EMI?) Re-enabling.

然后我查了一下EMI的相关信息,

他是一种电磁干扰,那些没有带屏蔽的USB线缆才会出现这个问题。

但由于屏蔽线缆的价格比常规线缆贵很多,一般也不需要

我大概检查了一下身边的设备,没有发现任何可能的EMI源

我尝试插在我的电脑上查看它是否能被正常使用,结果是肯定的

于是我开始怀疑是否是内核的一些问题,我开始尝试编译内核。

问题解决。

准备

交叉编译工具链

如果你在X86_64的设备上进行交叉编译,你需要准备交叉编译链(Toolchain)。

下载带有 “aarch64-linux-gnu” 标记的工具链。

这是一个已经为你选择好的下载地址:

https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz

下载完成后进行放入合适位置解压、加入系统环境变量即可。

#Linux shell code
xz -d gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
echo "PATH=$PATH:/path/to/dir/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin" >> ~/.bashrcCode language: PHP (php)

以上第一步完成。

克隆远程仓库至本地

git clone --depth=1 https://github.com/150balbes/Amlogic_s905-kernel
cd Amlogic_s905-kernelCode language: PHP (php)

开始编译

编译之前需要将N1本地已存在的内核配置文件复制到此远程仓库目录,

并以 “.config” 命名。 具体步骤不再作阐述。

export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-

make -j16 LOCALVERSION="-aml-s9xxx" bindeb-pkgCode language: JavaScript (javascript)

编译后生成的deb包文件将出现在上一级目录。

安装

首先使用dpkg安装完刚才生成的内核包(大概三个文件),

再将位于 “arch/arm/boot/Image” 文件复制至N1的 “/boot/zImage”。

echo "Quick install by starx."
dpkg -i *deb
update-initramfs -v -c -k "5.7.0-rc1-aml-s9xxx"
cp Image /boot/zImage
echo "Done"
echo "You may perform a reboot to verify success update now."Code language: PHP (php)

完成

请重启后使用 “uname -a” 命令测试是否安装成功。

Refer

分类: Linux

2 条评论

matt · 2021年3月19日 上午10:18

大神你好, https://github.com/150balbes/Amlogic_s905-kernel 这个仓库已经换了? 还是改了名字而已?
另外,如果想针对Coreelec 系统安装内核,也是上面这个步骤来做?

我的vx: matt001 盼复

    Starx · 2021年3月22日 上午11:08

    coreelec没用研究过,你可以观察一下boot的相关分区及配置文件,替换即可。

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据