找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 4109|回复: 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






我的恩山、我的无线 The best wifi forum is right here.
谢谢分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

点评

在ubuntu虚机中执行那下面的几行代码,就可以了。  详情 回复 发表于 2019-1-3 19:27
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

在ubuntu虚机中执行那下面的几行代码,就可以了。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

点评

这样其实更好了。 交叉编译是在难以在目标环境上直接编译的一个变通办法,你在N1上直接编译出来的兼容性更有保障。 是的,同样适用于USB网卡。然后编译是按照提示信息安装需要lib或者dev包即可。  详情 回复 发表于 2019-1-4 12:10
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

点评

理论上是可以的。但我没有试过  详情 回复 发表于 2019-1-4 12:11
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

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

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

是的,同样适用于USB网卡。然后编译是按照提示信息安装需要lib或者dev包即可。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

理论上是可以的。但我没有试过
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

楼主是个热心肠的大好人啊。赞一个!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

学习一下  试试把卡托整上
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 04:52

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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