|
本帖最后由 kingchy 于 2019-1-3 19:29 编辑
0. 缘起
在上一个帖子Armbian变变变,N1变身短信中心!中,介绍了如何将N1变成我们的短信中心,但没有详细介绍如何编译USB卡托驱动,后来又有人问起,所以也将详细过程记录下来,以供参考。
1. 安装一个Ubuntu的虚拟机,登录后,通过下面几行命令在里面安装交叉编译需要的文件:
- sudo apt-get install gcc make pkg-config git bison flex libelf-dev libssl-dev libncurses5-dev
- wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
- tar -Jxvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
复制代码
2. 下载源代码:
- git clone https://github.com/150balbes/Amlogic_s905-kernel.git
- cd Amlogic_s905-kernel
复制代码
3. 获取镜像对应的git tag:
查看你的镜像对应的git tag。
例如,如果你的镜像名为“Armbian_5.67_Aml-s9xxx_Debian_stretch_default_4.19.7_20181228.img.xz”,那么你的镜像对应的tag可能就是“20181228”。
但遗憾的是,这种方法不一定能得到准确的信息。。。。
所以我们还需要到这里去做进一步确认:https://github.com/150balbes/Amlogic_s905-kernel/releases,可以看到最后一个tag是“20181218”。。。姑且用之。。。否则就需要编译整个内核,并进行替换了
4. 检出源代码到指定版本:
5. 配置环境变量:
- export ARCH=arm64
- export CROSS_COMPILE=/home/bob/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
复制代码
注意,上面的第二行中的“/home/bob/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu”要改为你自己的实际路径。
6. 开始编译:
- cp config .config
- make prepare
- make scripts
- make LOCALVERSION="-aml-s9xxx" M=drivers/usb/serial
复制代码
make prepare的时候,自己看一下需要的选项,如何不知道如何选择的话,那就直接按回车吧。
7. 替换N1中的文件:
如果没有问题的话,新的驱动就已经编译好了。这时候,只需要将“drivers/usb/serial/”目录下以下几个新生成的.ko文件拷贝到N1的 “/lib/modules/4.19.0-rc7-aml-s9xxx/kernel/drivers/usb/serial/” 目录(注意修改路径)即可:
* option.ko
* usbserial.ko
* usb_wwan.ko
替换脚本如下:- scp drivers/usb/serial/option.ko root@192.168.6.149:/lib/modules/4.19.0-rc7-aml-s9xxx/kernel/drivers/usb/serial/
- scp drivers/usb/serial/usbserial.ko root@192.168.6.149:/lib/modules/4.19.0-rc7-aml-s9xxx/kernel/drivers/usb/serial/
- scp drivers/usb/serial/usb_wwan.ko root@192.168.6.149:/lib/modules/4.19.0-rc7-aml-s9xxx/kernel/drivers/usb/serial/
复制代码
注意:
1. 备份原目录下的文件
2. 修改IP地址和路径。
8. 重启N1
9. 致谢
* 海运的博客:https://www.haiyun.me/archives/1266.html
* yangxuan8282
* xjpower
|
|