Ti AM335X工控模塊的ubuntu系統定制與使用-連載(二)

Ti AM335X工控模塊的ubuntu系統定制與使用-連載(二)

本內容的驗證使用的盈鵬飛嵌入式CoM-335x核心模塊及評估板EAC-335X,簡要介紹如下:


1. 制作ubuntu 文件系統

在x86平臺使用ubuntu-base-16.04.6-base-armhf.tar.gz鏡像制作ubuntu文件系統,步驟如下:

1、在 Linux PC 主機上安裝模擬器

# sudo apt-get install qemu-user-static

2、準備Ubuntu鏡像

# wget -chttp://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04.6-base-armhf.tar.gz

# mkdir console

# sudo tar -xpf ubuntu-base-16.04.6-base-armhf.tar.gz -C console

3、設置dns,為下載package做準備

# sudo cp -b /etc/resolv.conf console/etc/resolv.conf

4、準備qemu

# sudo cp /usr/bin/qemu-arm-static console/usr/bin/

5、切換rootfs目錄

# sudo mount -t proc proc console/proc/

# sudo mount -t sysfs sys console/sys/

# sudo mount --bind /dev/ console/dev/

# sudo mount --bind /dev/pts/ console/dev/pts/

# sudo chroot console

6、更新

# apt update

# apt upgrade

7、安裝所需組件(根據需求安裝)

# apt-get install vim git openssh-server sudo net-tools iputils-ping wireless-tools udev

# apt-get install rsyslog ifupdown ethtool dialog bash-completion

# apt-get install bluetooth-touch bluez

# apt-get install busybox udhcpc

# apt-get install console-setup console-terminus console-data

# apt-get install alsa-utils can-utils tzdata

桌面環境需要安裝以下軟件包:

# apt-get lxde libpam-kwallet4 libpam-kwallet5

# apt-get install xinput-calibrator network-manager

8、配置啟動界面

# update-alternatives --config x-session-manager

9、配置默認登錄界面

# dpkg-reconfigure lightdm

10、配置網絡

# echo auto eth0 > /etc/network/interfaces.d/eth0

# echo iface eth0 inet dhcp >> /etc/network/interfaces.d/eth0

# echo auto wlan0 > /etc/network/interfaces.d/wlan0

# echo allow-hotplug wlan0 >> /etc/network/interfaces.d/wlan0

# echo iface wlan0 inet dhcp >> /etc/network/interfaces.d/wlan0

11、添加系統用戶,并設置密碼,以embfly為例

# useradd -s '/bin/bash' -m -G adm,sudo embfly

# echo embfly:embfly | chpasswd

12、設置主機名

# echo am335x > etc/hostname

# echo "127.0.0.1 localhost am335x" > etc/hosts

# echo "Asia/Shanghai" > /etc/timezone

13、退出

# exit

# sudo umount -lf console/dev/pts

# sudo umount -lf console/dev

# sudo umount console/sys

# sudo umount console/proc

14、制作鏡像

制作ext4鏡像

eMMC存儲的主板,燒寫壓縮后的ext4鏡像,文件后綴為ext4.gz。

# mkdir ?rootfs

# dd if=/dev/zero of=linuxroot.img bs=1M count=4000

# mkfs.ext4 linuxroot.img

# sudo mount linuxroot.img rootfs/

# sudo cp -rfp console/* ?rootfs/

# sudo umount rootfs/

# e2fsck -p -f linuxroot.img

# resize2fs ?-M linuxroot.img

# gzip -9 linuxroot.img

壓制ubi鏡像

nand flash存儲的主板,燒寫UBI鏡像。由于ubuntu鏡像較大,只支持512 MIB以上、頁大小為4096 byte的nand flaah。以壓制512MIB的鏡像為例:

# sudo mkfs.ubifs -F -q -r console/ -m 4096 -e 253952 -c 1980 -o ubuntu16.04.img

# ubinize -o ubuntu16.04.ubi -O 4096 -m 4096 -p 256KiB -s 1024 ubivolume.cfg

注:INI配置文件ubivolume.cfg如下:

# cat ubivolume.cfg

[ubifs]

mode=ubi

image=ubuntu16.04.img

vol_id=0

vol_size=450MiB

vol_type=dynamic

vol_name=rootfs

vol_flags=autoresize

2??燒寫ubuntu文件系統

COM-335x系列衍生品中, 均板載nand flash或eMMC,在此介紹這兩種存儲器燒寫方法。著手燒寫前,先確認存儲器件類型由于容量、RAM容量,以便決定采用的燒寫方式。一般而言,nand flash容量相對較小,只能燒寫無桌面的環境的ubuntu文件系統;eMMC雖然容量大,但囿于RAM的容量(一般為512MB、最大為1GB),也不能直接燒寫桌面的環境的ubuntu文件系統。選擇合適的燒寫方法,要綜合考慮鏡像大小、存儲器件容量、RAM容量,簡而言之ubuntu鏡像大小要小于RAM與存儲器容量。

2.1? 燒寫UBI鏡像

存儲器為nand flash的EAC-335x,單獨更新UBI鏡像,使用網絡或TF卡加載ubuntu鏡像到RAM,然后在寫入nand flash。特別注意,UBI鏡像的大小要小于RAM與nand flash容量。

1、網絡更新ubuntu鏡像

① 中止u-boot自動啟動

調試串口打印倒計時信息,按下任意鍵中止自動啟動。提示信息如下:

Hit any key to stop autoboot: ?2

② 設置TFTP服務器、主板IP

例如TFTP服務器IP設為192.168.0.115,主板IP設為192.168.0.60

=> setenv serverip 192.168.0.115

=> setenv ipaddr 192.168.0.60

③ 燒寫ubuntu UBI鏡像

例如UBI文件名為:ubuntu16.04.ubi

=> tftp ubuntu16.04.ubi

=> nand erase.part rootfs

=>?nand write $loadaddr rootfs ${filesize}

2、TF卡更新ubuntu鏡像

① 燒寫ubuntu UBI鏡像

例如UBI文件名為:ubuntu16.04.ubi

=> fatload mmc 0 $loadaddr ubuntu16.04.ubi

=> nand erase.part rootfs

=>?nand write $loadaddr rootfs ${filesize}

2.2 燒寫ext4鏡像

存儲器為eMMC的EAC-335x,單獨更新ext4鏡像,使用網絡或TF卡加載ubuntu鏡像到RAM,然后在寫入eMMC。特別注意,ext4鏡像的大小要小于RAM與eMMC容量。

1、網絡更新ubuntu鏡像

① 中指u-boot自動啟動

調試串口打印倒計時信息,按下任意鍵中止自動啟動。提示信息如下:

Hit any key to stop autoboot: ?2

② 設置TFTP服務器、主板IP

例如TFTP服務器IP設為192.168.0.115,主板IP設為192.168.0.60

=> setenv serverip 192.168.0.115

=> setenv ipaddr 192.168.0.60

③ 燒寫ubuntu UBI鏡像

例如UBI文件名為:ubuntu16.04-gui.ext4.gz

=> tftp ubuntu16.04-gui.ext4.gz

=>?gzwrite mmc 1 $loadaddr ${filesize} 0x100000 0x1000000

2、TF卡更新ubuntu鏡像

① 燒寫ubuntu UBI鏡像

例如UBI文件名為:ubuntu16.04-gui.ext4.gz

=> fatload mmc 0 $loadaddr ubuntu16.04-gui.ext4.gz

=>?gzwrite mmc 1 $loadaddr ${filesize} 0x100000 0x1000000

2.3 裸板燒寫

在此,裸板認為是存儲器件未燒寫任何系統鏡像或已經完全擦除存儲器中的鏡像。一般地,使用TF卡裸板燒寫,具體燒寫過程參考《EAC-335X linux系統燒錄手冊》。關于文件系統鏡像命令有以下要求:

當燒寫nand flash時,使用UBI鏡像,文件名為:rootfs.ubi

當燒寫eMMC時,使用ext4鏡像,文件名為:?rootfs.ext4.gz

3 接口功能驗證

應用ubuntu系統提供的軟件環境,驗證EAC-335x主板接口功能。

3.1?ethernet

驗證網絡連接是否正常,以ping 10個數據包僅顯示結果為例:

embfly@am335x:~$ ifconfig -a

embfly@am335x:~$ ping www.kernel.org -I eth0 -c 10 -q

?圖:網絡連接驗證結果

3.2?TF卡

先掛載TF卡,再使用dd指令寫入文件,然后刪除。

embfly@am335x:~$ sudo mount /dev/mmcblk0p1 /mnt/

embfly@am335x:~$ sudo dd if=/dev/zero of=/mnt/file.img bs=1M count=10

embfly@am335x:~$ ls -alh /mnt/file.img

embfly@am335x:~$ sudo rm /mnt/file.img

embfly@am335x:~$ sudo umount /mnt


?圖:TF卡讀寫結果

3.3?音頻

aplay播放wav格式音頻文件,由于聲音過小,播放前先調節音量。驗證codec放音功能,且無雜音。

embfly@am335x:~$ sudo amixer cset name='PCM Playback Volume' 100%,100%;amixer cset name='HP DAC Playback Volume' ?100%,100%

embfly@am335x:~$ sudo aplay wo.wav


?圖:音頻放音過程

3.4 CAN bus

???EAC-335x 只有一路CAN bus,需要連接外部設備驗證收發功能,在此使用USBCAN-II設備,該設備需先在PC安裝CANTest工具,有關USBCAN-II的使用詳細查閱其手冊。

embfly@am335x:~$ ifconfig -a

embfly@am335x:~$ sudo ip link set can0 down

embfly@am335x:~$ sudo ip link set can0 type can bitrate 50000

embfly@am335x:~$ sudo ip link set can0 up

發送:

循環發送標準幀、擴展幀各100幀:

embfly@am335x:~$?for ((i = 1;$i <= 100; i++)) ;do cansend can0 01a#11223344AABBCCDD; cansend can0 1F334455#1122334455667788; done


發送數據

接收:

embfly@am335x:~$ candump can0 &


圖:接收數據

3.5?USB host?

U 盤讀寫驗證方法與TF卡相同。

embfly@am335x:~$ sudo mount /dev/sda1 /mnt/

embfly@am335x:~$ sudo dd if=/dev/zero of=/mnt/file.img bs=1M count=20

embfly@am335x:~$ ls -alh /mnt/file.img

embfly@am335x:~$ sudo rm /mnt/file.img

embfly@am335x:~$ sudo umount /mnt

圖:U盤寫結果

3.6 UART

基于GUI版本的文件系統可使用cutecom或microcom工具測試,基于console版本的文件系統使用microcom測試。

EAC-335x有7路UART,其中5路為RS232電平(AM335x內部串口),剩余2路為RS485電平(XR20M1172擴展串口)。其設備節點與端口對應關系如下表:

表:UART節點映射關系:


內部串口中,/dev/ttyO0為調試串口,/dev/ttyO1~4為通信串口。

3.6.1 RS232

以/dev/ttyO1為例,使用microcom驗證串口通信功能。首先使用串口收發器連接CN12(COM1)與PC,再在PC執行串口調試助手(或其他工具)、EAC-335x主板執行microcom工具。注意通信設置應當一致。

embfly@am335x:~$ sudo busybox microcom -d 100 -s 115200 /dev/ttyO1

接收:

圖:接收數據?

發送:

在調試串口終端輸入字符,串口調試助手顯示。終端輸入字符無回顯,即輸入“www.kernel.org”只在串口調試助手顯示。


圖:發送數據?

注:ctrl + X退出microcom。

3.6.2?RS485

RS485通信也是用microcom工具,但RS485屬于半工通信方式,在任一時刻只能收或發。由于microcom不能切換收發,只測發送,以/dev/ttySC0為例:

embfly@am335x:~$ sudo busybox microcom -d 100 -s 115200 /dev/ttySC0


圖:RS485 發送數據

3.7 RTC

RTC斷電后需要外置電源,先安裝紐扣電池。能正常訪問互聯網的情況,從NTP同步時間方便快捷;當不能訪問互聯網,則需要手動設置RTC。

1、NTP同步RTC

embfly@am335x:~$ sudo timedatectl set-timezone "Asia/Shanghai"

embfly@am335x:~$ timedatectl set-ntp true

embfly@am335x:~$ timedatectl status


圖:使用NTP同步RTC

2、hwclock設置RTC

embfly@am335x:~$ sudo date 011512132021.21;

embfly@am335x:~$ sudo hwclock -w -f /dev/rtc0

embfly@am335x:~$ sudo hwclock -r -f /dev/rtc0


圖:hwclock設置RTC?
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容