1. 程式人生 > >【全志A33】在Ubuntu下燒錄程式

【全志A33】在Ubuntu下燒錄程式

最近從箱底翻出來一個平板,是當時參加一個培訓機構贈(購)送(買)的。不過工作之後就沒碰過了,附有完整的Android和LinuxQt的原始碼,全志A33平臺,還是挺有可玩性,所以就搭建了開發環境,因為給的文件裡說是在Windows下進行燒錄。但是我使用的純Linux環境,而且燒寫程式無非就是向一個USB裝置寫資料,不存在系統限制,所以Google到了全志的一個Linux平臺燒錄工具——LiveSuit。

軟體下載

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. 開始燒錄

開始燒錄

燒錄中

燒錄完成

開發板