am335x linux内核移植_把ubuntu系统做成镜像

(122) 2024-05-23 07:01:01

COM-335X简要介绍

COM-335X工控模块产品集成了 ARM Cortex-A8 1GHz(MAX) TI AM335X 处理器,该模块使用了TPS65217电源管理芯片,板载大容量电子盘(COM-335X集成了NAND FLASH或者EMMC,支持三种启动方式(NAND/EMMC/QSPI NOR),稳定运行WindowsCE 7.0 Linux 4.14(支持DTB)。 该核心模块使用SODIMM204接口件与工程底板相连,并带螺钉锁定,保证系统抗震性能。COM-335X提供了3.3V I/O接口,可提供宽温的工业组件,运行于条件恶劣的工业现场! 

1.2.1产品特性

  1. 采用TI公司Cortex-A8 AM335X处理器,运行最高速度为1GHZ;
  2. 支持128M-1G  DDR3 SDRAM;
  3. 支持128-1G字节 SLC电子盘或者EMMC 2G-32G大容量电子盘,可启动;
  4. 最多可支持两路千兆以太网,支持IEEE1588;
  5. 支持两路高速USB OTG;
  6. 支持最多六路串口,双路CAN BUS;
  7. 支持分辨率最高的1360*768显示接口,可支持SGX530 3D引擎; 
  8. 稳定的操作系统的支持,可预装WINCE 7.0或者LINUX 4.14(DTB);ANDROID 4.2可根据项目定制;
  9. 引出JTAG接口,便于裸机系统调试。
  10. EMMC启动版本兼容BeagleboneBlack。
  11. 45*45mm ATAMP SMD CHIP
  12. am335x linux内核移植_把ubuntu系统做成镜像 (https://mushiming.com/)  第1张

FUNCTION

COM-335X

主要参数

主控制器 

TI Am335X,Cortex-A8,1GHZ(Max)

内存 

256MB DDR3(最大可到1GB)

闪存 

SLC NAND 128MB (最大到1GMB) 或者EMMC(最大到32GMB)

时钟

DS1338U-33

看门狗

电源管理

TPS65217C (可支持电池供电的移动应用)

复位

支持软件和硬件复位 (直接写寄存器)

串口

串口6个,LVTTL电平 

以太网

2,10/100/1000Mbps

USB OTG

2个,高速

SD/MMC卡

四线

触摸屏

支持4/5/8线

系统总线

NAND启动产品提供GPMC总线,EMMC启动产品无GPMC总线;

IIC接口

3

SPI接口

2

GPIO

多个3.3V LVTTL电平

MCASP音频

1

CAN总线

2

Graphic Chip

支持2D/3D,仅对于AM3354

分辨率

最大1360×768 

LCD接口

16/24-bit TTL接口

电源

5.0 V (+-5%)

Power Consumption

TBD

尺寸 

67.6MM*38MM*2.5MM

工作温度

0 ~ 70° C (可定制-20-70°C) 

工作湿度

5 ~ 95 % ,冷凝结

RoHS

YES

认证

CE

软件支持

Linux 4.14 dtb (DEBIAN,WCE7.0或者ANDROID项目定制支持) 

1.2.3核心模块存储及启动

-335X可从NAND Flash、EMMC或者SPI NOR FLASH启动和存储操作系统。

am335x linux内核移植_把ubuntu系统做成镜像 (https://mushiming.com/)  第2张

                                                             默认从nandflash启动

am335x linux内核移植_把ubuntu系统做成镜像 (https://mushiming.com/)  第3张默认从eMMC启动

EAC-335X主板的COM-335X核心板,对应的启动顺序如下表: 

Jumper Set

First Boot

Second Boot

Third Boot

Fourth Boot

Default boot from NandFlash

Open

Nand

Nand I2C

MMC0

UART0

Close

MMC0

SPI0

UART0

USB0

Default boot from eMMC

Open

MMC1

MMC0

UART0

USB0

Close

SPI0

MMC0

USB0

UART0

am335x linux内核移植_把ubuntu系统做成镜像 (https://mushiming.com/)  第4张

为了更快捷的操作使用EAC-335X主板,把J1(jumper)引用到EAC-335X SW2按键,如上图所示;

对于NAND版本的COM-335X :EAC-335X板SW2按键不按上电,AM335X优先从Nand启动,当SW2按键按下上电,则优先从MMC0启动,这时我们将烧写文件保存到SD卡,并将SD卡插入到MMC0连接的卡座中,AM335X从SD卡中启动U-BOOT(嵌入式LINUX的引导程序),通过U-BOOT将LINUX内核等系统写入到NAND FLASH中,烧写完成后,系统默认从NAND启动。

对于eMMC版本的COM-335X: EAC-335X板SW2按键不按上电,AM335X优先从MMC1(MMC1信号连接了eMMC存储芯片)启动,当SW2按键按下上电,则优先SPI0启动(SPI0需要外接SPI NOR FLASH),SPI0没连接启动存储设备,则从次级MMC0启动(MMC0接口连接到了SD卡卡座),这时我们将需要烧写到EMMC中的各个系统文件存放到SD卡后,并插入MMC0连接的卡座中,上电启动后,COM-335X先从SD卡中保存的U-BOOT启动(嵌入式LINUX的引导程序),通过该U-BOOT可以将LINUX内核等系统写入到eMMC中,烧写完成后,系统默认从eMMC启动系统。

以上启动的具体细节请参考《COM-335X硬件使用手册》以及附录1-bootloader三级启动说明;

2 制作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 -c http://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

 

 

THE END

发表回复