Linux Device Driver >> Assembly (ARM)

開發環境


參考資訊:
1. ldd

目前市面上,有許多ARM的開發板可以選擇使用,使用者可以選擇自己喜愛的款式,當然也可以使用QEMU測試,目前司徒選定的開發板如下:


接著需要一條USB轉UART傳輸線,目前司徒使用PL2303傳輸線:


接著需要焊接排針,把GND、U0-TX、U0-RX三根腳位連接到PL2303


接線如下:

PocketBeaglePL2303
GND黑線
U0-TX白線
U0-RX綠線

Linux環境對初學者來說,比較棘手的還是系統指令的操作,這部份,使用者只能多多參考其它網站說明,司徒只會將重點放在Linux驅動程式的撰寫上,而司徒目前使用的環境是Debian x64,使用者也可以使用更友好的Ubuntu系統,環境安裝好後,接著製作MicroSD開機系統

$ cd
$ wget https://github.com/steward-fu/website/releases/download/ldd/arm_sdcard.img
$ sudo dd if=arm_sdcard.img of=/dev/sdX bs=1M

接著將此MicroSD插入PocketBeagle,連結PL2303到電腦並且開啟minicom(115200bps),就可以看到如下等待進入系統的畫面

Welcome to PocketBeagle
pocketbeagle login: 

P.S. 輸入root就可以進入系統

接著為了避免發生驅動無法掛載的問題,需要自己編譯一次Kernel

$ cd
$ wget https://github.com/steward-fu/website/releases/download/ldd/arm_gcc-4.9.tar.gz
$ tar xvf arm_gcc-4.9.tar.gz
$ sudo mv gcc-4.9 /opt

$ export PATH=/opt/gcc-4.9/bin:$PATH
$ arm-linux-gnueabihf-gcc -v
  gcc version 4.9.4 (Linaro GCC 4.9-2017.01)

$ wget https://github.com/steward-fu/website/releases/download/ldd/arm_kernel-4.14.108.tar.gz
$ tar xvf arm_kernel-4.14.108.tar.gz
$ cd kernel
$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make pocketbeagle_defconfig
$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make zImage dtbs -j4

P.S. 將編譯後的arch/arm/boot/zImagearch/arm/boot/dts/am335x-pocketbeagle.dtb覆蓋到MicroSD第一分區的檔案


返回上一頁