Ti AM335X工控模塊使用beaglebone(bbb)的Debian系統
一、下載BBB的Debian系統鏡像
下載地址:http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Debian_Releases
根據EMMC或者TF卡的大小,選擇合適的鏡像下載。需要注意的是,2G的鏡像燒寫到TF卡后只有一個EXT4格式的根文件系統分區,但4G的鏡像有一個FAT32格式的啟動分區和一個EXT4格式的根文件系統分區。
下載的Debian文件系統鏡像,未必符合實際的運行環境,在此指的是當中的Linux內核驅動模塊(modules)可能與我們期待的不同(Linux內核版本與鏡像中的不一致,驅動模塊功能不符合等)。因此,
需要添加當前內核模塊。有編譯環境為buildroot與Linux兩種情況,以下分別介紹。
1、buildroot編譯環境
buildroot全編譯或重編譯Linux后,驅動模塊默認安裝路徑為:output/target/lib/modules/?,只需把該目錄下的目錄復制到Debian鏡像中即可。下載的Debian rootfs是一個鏡像文件,先掛載,再復制驅動模塊。
① 解壓鏡像
host$ unxz bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz
② 掛載鏡像
若直接掛載會提示文件系統類型不符,掛載失敗:
使用file查看鏡像信息,是否有起始塊信息:
上圖中起始扇區為8192,每個扇區大小為512 byte,即起始地址為: 8192 * 512 = 4194304?byte 。掛載時指定起始地址:
# sudo mount -o loop,offset=4194304 bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img /media/
③ 復制驅動模塊
host$ sudo cp -r output/target/lib/modules/4.14.67/ /media/lib/modules/
host$ ls /media/lib/modules/4.14.67/
④ 打包rootfs
host$ cd /media/
host$ sudo tar -cf ~/com335x-debian-9.1-rootfs.tar *
host$ sudo umount /media
2、Linux編譯環境
① 安裝驅動模塊
使用Linux BSP編譯完成后,需要安裝驅動模塊,以安裝到debian_rootfs為例:
host$ export?INSTALL_MOD_PATH=debian_rootfs
host$ make ARCH=arm modules_install
刪除生成模塊中的鏈接文件,然后復制到Debian鏡像/lib/modules/目錄,Debian鏡像解壓參考buildroot編譯環境。
host$ rm -rf debian_rootfs/lib/modules/4.14.67-g7795948/build
host$ rm -rf debian_rootfs/lib/modules/4.14.67-g7795948/source
注:最好指定安裝路徑,默認路徑為/,若不指定安裝路徑且使用權限root執行,則安裝到宿主機。
② 解壓與掛載鏡像
參考buildroot編譯環境的示例。
③ 復制驅動模塊
host$ cp -r debian_rootfs/lib/modules/4.14.67-g7795948/??/media/lib/modules/
host$ ls /media/lib/modules/4.14.67-g7795948/
④ 打包rootfs
參考buildroot編譯環境的示例。
最后,特別說明一點。使用git管理的Linux BSP,編譯的鏡像發行版本隨git commit?ID而變化。若Linux 內核鏡像升級,則也需要修改或替換Debian的驅動模塊。頻繁升級Linux給Debian帶來不便,解決此問題可修改 scripts/setlocalversion?文件:
將 47行:if test -z"$(git rev-parse --show-cdup 2>/dev/null)" &&
改為:if test -n"$(git rev-parse --show-cdup 2>/dev/null)" &&
二、將鏡像燒寫到TF卡
下載完鏡像后,可以在Ubuntu或者Windos系統下將鏡像燒寫到TF卡,但要注意的是,下載的鏡像是經過壓縮的xz格式的壓縮包,因此,在兩種系統下都需要先安裝解壓縮工具。
Ubuntu下的燒寫
a、安裝xz工具
$sudo apt-get install xz-utils
b、解壓鏡像包
$xz -d XX.img.xz
c、燒寫部分,請參考https://help.ubuntu.com/community/Installation/FromImgFiles#Ubuntu
Windos下的燒寫
詳細步驟請參考http://beagleboard.org/getting-started#update,需要注意的是,7-zip工具可以按照實際情況安裝,如已經安裝了可解壓xz格式的工具(如好壓),則無需安裝。
燒寫完成后,無論哪種鏡像,都會在TF卡里生成一個ext4格式的rootfs分區,里面存放的就是Debian系統。
三、EMMC燒寫
根據前文所述,需要先將前一步驟燒寫完成的TF卡里的rootfs分區里的文件拷貝出來,制作成壓縮包,然后根據光盤提供的EMMC燒寫相關手冊,將系統燒寫到EMMC。由于Windos下不能識別ext4格
式的分區,并且在Windos下操作根文件系統文件會導致一些文件的屬性(如鏈接和權限屬性)丟失,因此,以下步驟需要在Ubuntu下操作,并且是在root用戶權限下的操作:
1、插入TF卡,一般自動掛載到/media目錄下
2、將TF卡里rootfs分區所有文件拷貝出來,并制作成壓縮包
#cp /media/rootfs/ ./ -a
#cd rootfs
#tar -zcvf ?rootfs.tar.gz ./*
執行完成后,生成rootfs.tar.gz文件,也可使用tar -cvf ?rootfs.tar ./*命令,生成tar格式的壓縮包。至此,可根據光盤提供的EMMC燒寫相關手冊,將系統燒寫到EMMC。