本文中我使用Ubuntu 18.04,阿里源。
一、东山Pi壹号开发板
东山Pi壹号开发板是联合芯片原厂星宸科技一起推的最小Linux开发板:
- 主控芯片: 星辰科技 SSD202D 内置128MB DDR 支持H264/H265解码 支持MJPG编码
- 存储:板载128MB SPI NAND FLASH芯片(芯存科技 XCSP1AAWH-NT)以及专门的SD card接口
- LED灯:红色x1 表示pwr 蓝色 绿色 均为用户灯。
- Key:硬件复位按键x1 用户按键x1
- 显示:50Pin FPC RGB888显示输出
- 供电&调试:板载专用USB转TTL芯片同时给整个板子供电。
- usbHost: TypeC接口的USB HOST 支持连接支持USB协议的设备。
- 扩展接口: 使用MINI-PCI-E接口 用于连接底板。
二、SSD202D
SSD201(64MB DDR2)/ SSD202D(128MB DDR3)是基于ARM Cortex-A7 双核的高集成度SoC,内部集成了:
- H.264、H.265视频解码器
- JPEG编码器
- 显示子系统:TTL/MIPI 显示等
- 2D图形引擎
- 音频处理器
- NOR/NAND Flash 接口
- 支持 1/2/4-bit SPI-NOR / NAND (with ECC) flash,拥有两个片选
- SDIO 2.0接口
- 两个USB 2.0 接口
- DRAM内存:一个集成在内部的DDR
- 支持两个以太网接口
- 安全引擎:支持 AES/DES/3DES/RSA/SHA-I/SHA-256、支持安全启动
- RTC
- 常用外设
资料:
三、安装必要的包
sudo apt-get install -y libc6-dev-i386 lib32z1 lib32ncurses5 libuuid1:i386 cmake libncurses5-dev libncursesw5-dev bc xz-utils automake libtool libevdev-dev pkg-config openssh-server repo
四、获取源码
源码我们使用repo工具来统一管理多个git仓库,方便一键获取和更新。
git clone https://e.coding.net/codebug8/repo.git
mkdir DongshanPiOne-TAKOYAKI && cd DongshanPiOne-TAKOYAKI
../repo/repo init -u https://gitee.com/weidongshan/manifests.git -b linux-sdk -m SSD202D/dongshanpi-one_takoyaki_dlc00v030.xml --no-repo-verify
../repo/repo sync -j4
获取成功后的源码目录结构如下:
五、设置交叉编译工具链
将这一行添加到.bashrc中:
export PATH=$PATH:/home/mculover666/dongshanPi-one/DongshanPiOne-TAKOYAKI/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin
生效:
source .bashrc
检查arm-linux-gnueabihf-gcc版本:
六、编译烧写uboot
烧写uboot需要烧写工具,暂保留。
七、编译烧写kernel
1. 编译kernel
东山Pi壹号开发板使用的内核是基于LinuxKernel主线 4.9.84 版本进行适配支持,支持了一些自有的控制器等专有的处理单元等驱动模块。
临时设置环境变量:
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
进入到内核目录:
cd DongshanPiOne-TAKOYAKI/kernel
配置编译:
make infinity2m_spinand_ssc011a_s01a_minigui_defconfig;
编译:
make
编译完成后,查看编译出的文件:
cd arch/arm/boot
其中 uImage.xz
就是我们需要烧写到nand flash的内核镜像。
2. uboot中烧录kernel
通过SD卡将kernel烧录到nand中:
fatload mmc 0:1 0x21000000 uImage.xz
nand erase.part KERNEL
nand write.e 0x21000000 KERNEL ${filesize}
nand erase.part RECOVERY
nand write.e 0x21000000 RECOVERY ${filesize}