缘由
最近买了个orico的有线网卡,结果内核日志一直报错。
1 | disabled by hub (EMI?) Re-enabling. |
然后我查了一下EMI的相关信息,
他是一种电磁干扰,那些没有带屏蔽的USB线缆才会出现这个问题。
但由于屏蔽线缆的价格比常规线缆贵很多,一般也不需要。
我大概检查了一下身边的设备,没有发现任何可能的EMI源。
我尝试插在我的电脑上查看它是否能被正常使用,结果是肯定的。
于是我开始怀疑是否是内核的一些问题,我开始尝试编译内核。
问题解决。
准备
交叉编译工具链
如果你在X86_64的设备上进行交叉编译,你需要准备交叉编译链(Toolchain)。
- linaro.org – https://www.linaro.org/downloads/
下载带有 “aarch64-linux-gnu” 标记的工具链。
这是一个已经为你选择好的下载地址:
下载完成后进行放入合适位置解压、加入系统环境变量即可。
1 2 3 | #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" >> ~/.bashrc |
以上第一步完成。
克隆远程仓库至本地
1 2 | git clone --depth=1 https://github.com/150balbes/Amlogic_s905-kernel cd Amlogic_s905-kernel |
开始编译
编译之前需要将N1本地已存在的内核配置文件复制到此远程仓库目录,
并以 “.config” 命名。 具体步骤不再作阐述。
1 2 3 4 | export ARCH=arm64 export CROSS_COMPILE=aarch64-linux-gnu- make -j16 LOCALVERSION="-aml-s9xxx" bindeb-pkg |
编译后生成的deb包文件将出现在上一级目录。
安装
首先使用dpkg安装完刚才生成的内核包(大概三个文件),
再将位于 “arch/arm/boot/Image” 文件复制至N1的 “/boot/zImage”。
1 2 3 4 5 6 | 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." |
完成
请重启后使用 “uname -a” 命令测试是否安装成功。
0 条评论