找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 4128|回复: 9

[N1盒子] N1下USB卡托驱动的编译方法

[复制链接]
本帖最后由 kingchy 于 2019-1-3 19:29 编辑

0. 缘起
在上一个帖子Armbian变变变,N1变身短信中心!中,介绍了如何将N1变成我们的短信中心,但没有详细介绍如何编译USB卡托驱动,后来又有人问起,所以也将详细过程记录下来,以供参考。

1. 安装一个Ubuntu的虚拟机,登录后,通过下面几行命令在里面安装交叉编译需要的文件:
  1. sudo apt-get install gcc make pkg-config git bison flex libelf-dev libssl-dev libncurses5-dev
  2. 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
  3. tar -Jxvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
复制代码

2. 下载源代码:
  1. git clone https://github.com/150balbes/Amlogic_s905-kernel.git
  2. 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. 检出源代码到指定版本:
  1. git checkout 20181218
复制代码

5. 配置环境变量:
  1. export ARCH=arm64
  2. 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. 开始编译:
  1. cp config .config
  2. make prepare
  3. make scripts
  4. 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

替换脚本如下:
  1. scp drivers/usb/serial/option.ko root@192.168.6.149:/lib/modules/4.19.0-rc7-aml-s9xxx/kernel/drivers/usb/serial/
  2. scp drivers/usb/serial/usbserial.ko root@192.168.6.149:/lib/modules/4.19.0-rc7-aml-s9xxx/kernel/drivers/usb/serial/
  3. 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
  1. reboot
复制代码


9. 致谢
* 海运的博客:https://www.haiyun.me/archives/1266.html
* yangxuan8282
* xjpower






谢谢分享
回复

使用道具 举报

安装交叉编译需要的文件?具体要哪些文件呢?小白一个 请赐教!
回复

使用道具 举报

 楼主| | 显示全部楼层
56143575 发表于 2019-1-3 18:48
安装交叉编译需要的文件?具体要哪些文件呢?小白一个 请赐教!

在ubuntu虚机中执行那下面的几行代码,就可以了。
回复

使用道具 举报

我有2个N1。
在A N1上安装ubuntu系统,编译B N1的USB卡托驱动,可以嘛?会不会有什么问题?你这个编译方法同样适用于USB网卡吧?
回复

使用道具 举报

您好,如果我安装的是debian 9的虚拟机,能直接按您上面的办法做交叉编译吗?
比如我到时想在armbian 的debian_stretch server下用
回复

使用道具 举报

 楼主| | 显示全部楼层
本帖最后由 kingchy 于 2019-1-4 12:14 编辑
56143575 发表于 2019-1-3 22:08
我有2个N1。
在A N1上安装ubuntu系统,编译B N1的USB卡托驱动,可以嘛?会不会有什么问题?你这个编译方法 ...

这样其实更好了。提醒一下,如果是这样的话,有些步骤就可以省下来了,比如第一步、第五步。

交叉编译是在难以在目标环境上直接编译的一个变通办法,你在N1上直接编译出来的兼容性更有保障。

是的,同样适用于USB网卡。然后编译是按照提示信息安装需要lib或者dev包即可。
回复

使用道具 举报

 楼主| | 显示全部楼层
tinylion 发表于 2019-1-3 22:15
您好,如果我安装的是debian 9的虚拟机,能直接按您上面的办法做交叉编译吗?
比如我到时想在armbian 的de ...

理论上是可以的。但我没有试过
回复

使用道具 举报

楼主是个热心肠的大好人啊。赞一个!
回复

使用道具 举报

学习一下  试试把卡托整上
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-10 09:22

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表