【全志A33】在Ubuntu下烧录程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wr132/article/details/80152048

最近从箱底翻出来一个平板,是当时参加一个培训机构赠(购)送(买)的。不过工作之后就没碰过了,附有完整的Android和LinuxQt的源代码,全志A33平台,还是挺有可玩性,所以就搭建了开发环境,因为给的文档里说是在Windows下进行烧录。但是我使用的纯Linux环境,而且烧写程序无非就是向一个USB设备写数据,不存在系统限制,所以Google到了全志的一个Linux平台烧录工具——LiveSuit。

参考:LiveSuit wiki

软件下载

git clone https://github.com/linux-sunxi/sunxi-livesuite.git
cd sunxi-livesuite

编译USB驱动

全志针对自己设备的烧录所开发USB设备驱动——awusb

sudo apt install dkms
sudo cp -r awusb /usr/src/awdev-0.5
sudo dkms add -m awdev -v 0.5
sudo dkms build -m awdev -v 0.5
sudo dkms install -m awdev -v 0.5

如果你使用较新的内核,有可能会碰到下面这样的错误

usb.c:377:8: error: implicit declaration of function ‘signal_pending’; did you mean ‘timer_pending’? [-Werror=implicit-function-declaration]
    if (signal_pending(current)) {
        ^~~~~~~~~~~~~~
        timer_pending
cc1: some warnings being treated as errors

这是因为自从Linux 4.11开始,声明signal_pending函数的头文件从<linux/sched.h>变成了<linux/sched/signal.h>,所以只需要把头文件加上就行了,参见 [dpdk-dev] kni: fix build with kernel 4.11

修改udev规则

这一步的目的是让你能使用普通用户权限执行烧录工具,因为设备节点默认是只有root用户可访问的。

sudo vim /etc/udev/rules.d/10-local.rules

# 注意将test替换为用户所在的组,一般跟你的用户名一样
SUBSYSTEM!="usb_device", ACTION!="add", GOTO="objdev_rules_end"
#USBasp
ATTRS{idVendor}=="1f3a", ATTRS{idProduct}=="efe8", GROUP="test",
MODE="0666"
LABEL="objdev_rules_end"

# 重启udev服务
sudo service udev restart

烧录镜像

首先进入刚才克隆的源码的根目录

./LiveSuit.sh

可以看到烧录工具已经启动
LiveSuit

烧录的方式软件里面已经介绍,但如果你的设备有reset键的话,可以使用下面的方式,因为我的设备在LinuxQt环境下用电源键是关不了机的,所以只能这样。

  1. 打开烧录工具
  2. 将设备与电脑连接
  3. 按住音量键,然后按一下复位键,并连续短按几次电源键
  4. 开始烧录

开始烧录

烧录中

烧录完成

开发板

猜你喜欢

转载自blog.csdn.net/wr132/article/details/80152048