1,Cubie Board 2 简介
Cubie Board N, 其中 N = 1,2,3,4,5,6,7;
是基于全志 Allwinner 公司的系列 SOC 设计的微型电脑,产品形态和市场都类似树莓派1,2,3,4,5等。
第一代为 Cubie Board 2,基于 Allwinner A20 ARM 芯片设计而成,外观如下图所示:
2,Allwinner A10 soc 的组成结构
从 user mennual看到包括如下模块
先以A10 为例罗列:
各个设备地址映射:
3,物理板 Linux + uboot 移植
尝试构建 cubie board 2 的dibian linux 系统,并在物理板子上跑起来
3.1 构建 debian for cubie board 2
3.1.0 预备环境
3.1.0.1 安装一个 ubuntu 16.4.7
配置 apt 源:
# $ cat /etc/apt/sources.list
# 中科大
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
3.1.0.2 安装软件
WORK_DIR=/home/${USER}/develop/cubieboard
ROOTFS_DIR=$WORK_DIR/chroot-armhf
sudo apt-get install build-essential libncurses5-dev u-boot-tools \
qemu-user-static debootstrap git binfmt-support libusb-1.0-0-dev pkg-config
sudo apt-get install gcc-4.7-arm-linux-gnueabihf
sudo ln -s /usr/bin/arm-linux-gnueabihf-gcc-4.7 /usr/bin/arm-linux-gnueabihf-gcc && \
sudo ln -s /usr/bin/arm-linux-gnueabihf-gcc-ar-4.7 /usr/bin/arm-linux-gnueabihf-gcc-ar && \
sudo ln -s /usr/bin/arm-linux-gnueabihf-gcc-nm-4.7 /usr/bin/arm-linux-gnueabihf-gcc-nm && \
sudo ln -s /usr/bin/arm-linux-gnueabihf-gcc-ranlib-4.7 /usr/bin/arm-linux-gnueabihf-gcc-ranlib && \
sudo ln -s /usr/bin/arm-linux-gnueabihf-cpp-4.7 /usr/bin/arm-linux-gnueabihf-cpp && \
sudo ln -s /usr/bin/arm-linux-gnueabihf-gcov-4.7 /usr/bin/arm-linux-gnueabihf-gcov
3.1.1 DOWNLOAD sourcecode
存在版本問題,編譯器版本與u-boot的代碼不match了已經,ubuntu-18.0.4沒有 gcc-4.7-arm-linux-gnueabihf,即,無法正確执行安装动作:
sudo apt-get install gcc-4.7-arm-linux-gnueabihf
代码版本太旧了,故use ubuntu 16.4.7
git clone https://github.com/cubieboard/u-boot-sunxi.git -b cubie/sunxi
git clone https://github.com/cubieboard/sunxi-tools.git
git clone https://github.com/cubieboard/sunxi-boards.git
CB1:
git clone https://github.com/cubieboard/linux-sunxi.git -b cubie/sunxi-3.4
3.1.2 构建 u-boot
ubuntu 16.4.7
这个u-boot 的编译,依赖 gcc-4.7-arm-linux-gnueabihf
gcc-4.7-arm-linux-gnueabihf
而 ubuntu 18.4及其以后的Ubuntu的官方 apt 源并不支持 4.7 的安装,故简单地采用 4.7 来编译 u-boot,及整个系统。
build u-boot
$ cd $WORK_DIR/u-boot-sunxi
$ make distclean CROSS_COMPILE=arm-linux-gnueabihf-
$ make cubieboard2 CROSS_COMPILE=arm-linux-gnueabihf-
#//CB1$ make cubieboard CROSS_COMPILE=arm-linux-gnueabihf-
success:
3.1.3 创建文件系统:
sudo debootstrap --foreign --arch=armhf buster . http://mirrors.huaweicloud.com/debian/
sudo cp /usr/bin/qemu-arm-static usr/bin/
LC_ALL=C LANGUAGE=C LANG=C sudo chroot ./ debootstrap/debootstrap --second-stage
LC_ALL=C LANGUAGE=C LANG=C sudo chroot . dpkg --configure -a
cd $ROOTFS_DIR && \
sudo tar jcpvf ../debian-rootfs-armhf-clean.tar.bz2 *
# reference 参考:
# https://www.cnblogs.com/linux-learn/p/18168589
$ sudo debootstrap --foreign --arch=armhf buster . http://mirrors.huaweicloud.com/debian/
执行上一条之后:
sudo cp /usr/bin/qemu-arm-static usr/bin/
LC_ALL=C LANGUAGE=C LANG=C sudo chroot ./ debootstrap/debootstrap --second-stage
LC_ALL=C LANGUAGE=C LANG=C sudo chroot . dpkg --configure -a
执行上三条之后:
cd $ROOTFS_DIR && \
sudo tar jcpvf ../debian-rootfs-armhf-clean.tar.bz2 *
3.1.4 构建工具
$ cd $WORK_DIR/sunxi-tools && make
比较容易
3.1.5 构建 linux kernel
$ cd $WORK_DIR/linux-sunxi && \
git checkout cb2/sunxi-3.4 && \
cp arch/arm/configs/sun7i_defconfig ./.config && \
make ARCH=arm menuconfig
需要做一些配置:
如下九项,都编译进内核中,<*>:
Device Drivers ---> Serial ATA and Parallel ATA drivers ---> SoftWinner Platform AHCI SATA support
Device Drivers ---> GPIO Support ---> GPIO Support for sunxi platform
Networking support ---> Wireless ---> Generic IEEE 802.11 Networking Stack (mac80211)
Device Drivers ---> Network device support ---> Wireless LAN ---> Ralink driver support
Device Drivers ---> Network device support ---> Universal TUN/TAP device driver support
Device Drivers ---> Multimedia support ---> Video capture adapters ---> V4L USB devices ---> USB Video Class (UVC)
Device Drivers ---> Input device support ---> Keyboards ---> sunxi IR support
Device Drivers ---> USB support ---> USB Serial Converter support ---> USB Prolific 2303 Single Port Serial Driver
Device Drivers ---> Graphics support ---> Support for frame buffer devices ---> HDMI Driver Support(sunxi)
。。。
九项配置检查完成,有的需要改为 <*>
配置完成,保存后开始编译内核:
$ make -j5 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules
3.1.6 继续root fs 制作
cd $ROOTFS_DIR && \
sudo chroot . passwd
输入密码两次
sudo echo "Cubieboard" > etc/hostname
sudo vim etc/hostname
sudo echo "127.0.0.1 Cubieboard" >> etc/hosts
sudo cp $WORK_DIR/linux-sunxi/arch/arm/boot/uImage boot/
sudo make -C $WORK_DIR/linux-sunxi INSTALL_MOD_PATH=`pwd` ARCH=arm \
CROSS_COMPILE=arm-linux-gnueabihf- modules_install
sudo vim etc/inittab
T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100
sudo vim etc/apt/sources.list
deb http://http.debian.net/debian/ buster main contrib non-free
deb http://security.debian.org/ buster/updates main contrib non-free
sudo chroot . apt-get update && \
sudo chroot . apt-get upgrade && \
sudo chroot . apt-get install openssh-server
sudo chroot . apt-get install locales
sudo vim etc/locale.gen
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
sudo chroot . locale-gen
sudo chroot . apt-get install wireless-tools wpasupplicant firmware-ralink
sudo vim $ROOTFS_DIR/boot/boot.cmd
"
setenv bootargs console=ttyS0,115200 hdmi.audio=EDID:0 disp.screen0_output_mode=EDID:1280x1024p60 \
root=/dev/mmcblk0p1 rootwait panic=10 ${extra}
ext2load mmc 0 0x43000000 boot/script.bin
ext2load mmc 0 0x48000000 boot/uImage
bootm 0x48000000
"
sudo mkimage -C none -A arm -T script -d boot/boot.cmd boot/boot.scr
sudo cp $WORK_DIR/sunxi-boards/sys_config/a20/cubieboard2.fex boot/script.fex
sudo vim $ROOTFS_DIR/boot/script.fex
[gpio_para]
gpio_used = 1
gpio_num = 30
gpio_pin_1 = port:PD01<1><default><default><default>
gpio_pin_2 = port:PD02<1><default><default><default>
gpio_pin_3 = port:PD03<1><default><default><default>
gpio_pin_4 = port:PD04<1><default><default><default>
gpio_pin_5 = port:PD05<1><default><default><default>
gpio_pin_6 = port:PD06<1><default><default><default>
gpio_pin_7 = port:PD07<1><default><default><default>
gpio_pin_8 = port:PD08<1><default><default><default>
gpio_pin_9 = port:PD09<1><default><default><default>
gpio_pin_10 = port:PD10<1><default><default><default>
gpio_pin_11 = port:PD11<1><default><default><default>
gpio_pin_12 = port:PD12<1><default><default><default>
gpio_pin_13 = port:PD13<1><default><default><default>
gpio_pin_14 = port:PD14<1><default><default><default>
gpio_pin_15 = port:PD15<1><default><default><default>
gpio_pin_16 = port:PD16<1><default><default><default>
gpio_pin_17 = port:PD17<1><default><default><default>
gpio_pin_18 = port:PD18<1><default><default><default>
gpio_pin_19 = port:PD19<1><default><default><default>
gpio_pin_20 = port:PD20<1><default><default><default>
gpio_pin_21 = port:PD21<1><default><default><default>
gpio_pin_22 = port:PD22<1><default><default><default>
gpio_pin_23 = port:PD23<1><default><default><default>
gpio_pin_24 = port:PD24<1><default><default><default>
gpio_pin_25 = port:PD25<1><default><default><default>
gpio_pin_26 = port:PD26<1><default><default><default>
gpio_pin_27 = port:PD27<1><default><default><default>
gpio_pin_28 = port:PH07<1><default><default><default>
gpio_pin_29 = port:PB10<1><default><default><default>
gpio_pin_30 = port:PB11<1><default><default><default>
sudo $WORK_DIR/sunxi-tools/fex2bin boot/script.fex boot/script.bin
sudo vim etc/network/interfaces
"
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
"
3.2 刷机
3.2节以前的内容是在 ubuntu 16.04.7的 virtual box 虚拟机中进行的,然后scp 到 host ubuntu中。
解压到用户目录下,
设置WORK_DIR, ROOTFS_DIR:
WORK_DIR=/home/${USER}/develop/cubieboard
ROOTFS_DIR=$WORK_DIR/chroot-armhf
使用 dd 制作启动 TF卡
并用 分区后拷贝rootfs到TF卡
制作 TF 卡:
TF card in Linux is /dev/sdc, then:
CARD=/dev/sdc
cd $WORK_DIR/u-boot-sunxi
sudo dd if=/dev/zero of=$CARD bs=1k count=1024
sudo dd if=u-boot-sunxi-with-spl.bin of=$CARD bs=1024 seek=8
分区:
sudo fdisk $CARD
:n
:p
:2048
:
:w
sudo mkfs.ext4 ${CARD}1
拷贝 root fs:
cd $ROOTFS_DIR
sudo mount ${CARD}1 /mnt
sudo tar --exclude=qemu-arm-static -cf - . | sudo tar -C /mnt -xvf -
sudo sync && sudo umount /mnt
至此,便可以将TF卡插入 CubieBoard2中了,
4,qemu 仿真 Cubie Board 1
$ ./qemu-system-arm -machine help
Supported machines are:
5,qemu 仿真 Cubie Board 1 的源码架构
6,设备表示
7,添加新设备
7,附录
附录1,debian的参考版本
1. Debian 0.01 (Buzz) - 创世之作 (1993)
Debian的初始版本,代号为Buzz,于1993年诞生。由Ian Murdock创立,其目标是构建一个稳定、自由、开放的Linux发行版。Buzz版本主要集中于基本的Linux系统构建,为后来的版本奠定了基础。
2. Debian 1.1 (Buzz) - 稳健的起点 (1996)
Debian 1.1,仍然使用Buzz的代号,于1996年发布。这个版本引入了APT(Advanced Package Tool)软件包管理系统,成为Debian系统标志性的特征之一。APT极大地简化了软件包的依赖关系管理,为用户提供了更便捷的升级和安装体验。
3. Debian 1.2 (Rex) - 长期支持的启航 (1996)
Debian 1.2,代号Rex,于1996年底发布。这是Debian的首个长期支持版本(LTS),为用户提供更长时间的支持和更新。Rex版本还引入了deb-make工具,使得软件包的构建和维护更加简单。
4. Debian 2.0 (Hamm) - 新纪元的来临 (1998)
Debian 2.0,代号Hamm,于1998年发布。这个版本引入了对更多硬件架构的支持,包括SPARC、MIPS和Alpha等。Hamm版本还采用了新的安装系统,使得安装过程更加友好。
5. Debian 2.1 (Slink) - 项目的巩固 (1999)
Debian 2.1,代号Slink,于1999年发布。这个版本巩固了Debian项目的发展方向,加强了软件包的质量控制。Slink版本引入了新的dpkg工具,提高了软件包管理的效率和可靠性。
6. Debian 2.2 (Potato) - 向前迈进 (2000)
Debian 2.2,代号Potato,于2000年发布。这个版本引入了更多的自动化工具,使得构建和维护软件包变得更加简单。Potato版本还对X Window系统和KDE桌面环境进行了升级,提供更现代化的用户体验。
7. Debian 3.0 (Woody) - 稳定的未来 (2002)
Debian 3.0,代号Woody,于2002年发布。这个版本在稳定性和安全性方面取得了重要进展,引入了Debian安全团队来处理漏洞和安全问题。Woody版本还加入了IPv6支持,使得系统更好地适应未来的网络环境。
8. Debian 3.1 (Sarge) - 跨越新世纪 (2005)
Debian 3.1,代号Sarge,于2005年发布。这是Debian首个支持AMD64架构的版本,标志着Debian跨入了64位计算的时代。Sarge版本还引入了新的Debian安装程序,改善了安装过程的用户体验。
9. Debian 4.0 (Etch) - 稳定性和性能的平衡 (2007)
Debian 4.0,代号Etch,于2007年发布。这个版本对Debian的架构进行了重新组织,引入了新的维护者制度,提高了软件包的质量。Etch版本还改进了系统初始化和引导过程,提供更好的性能和响应速度。
10. Debian 5.0 (Lenny) - 自由软件的标杆 (2009)
Debian 5.0,代号Lenny,于2009年发布。这个版本强调自由软件的价值,加强了对自由操作系统的支持。Lenny版本引入了更多的虚拟化技术,包括Xen和KVM,为云计算奠定了基础。
11. Debian 6.0 (Squeeze) - 稳健与稳定的完美结合 (2011)
Debian 6.0,代号Squeeze,于2011年发布。这个版本引入了完全自由的Linux内核,摒弃了一些非自由的二进制固件。Squeeze版本加强了对IPv6和NFSv4的支持,提高了网络协议的性能和安全性。
12. Debian 7.0 (Wheezy) - 支持多架构的巅峰 (2013)
Debian 7.0,代号Wheezy,于2013年发布。这个版本引入了Multiarch支持,使得用户可以在同一系统上运行多个架构的二进制程序。Wheezy版本还加强了对ARM架构的支持,适应了嵌入式和移动设备领域的需求。
13. Debian 8.0 (Jessie) - 系统管理的新时代 (2015)
Debian 8.0,代号Jessie,于2015年发布。这个版本引入了Systemd作为系统初始化和管理工具,取代了之前的init系统。Jessie版本还加强了对UEFI固件的支持,使得Debian更好地运行在新一代硬件上。
14. Debian 9.0 (Stretch) - 安全与稳定的坚实基石 (2017)
Debian 9.0,代号Stretch,于2017年发布。这是当前稳定版本,加强了对安全性和稳定性的注重。Stretch版本引入了更多的虚拟化技术,包括支持Docker容器。同时,Debian安全团队继续致力于及时响应和修复安全漏洞。
15. Debian 10.0 (Buster) - 进化与创新的兼容 (2019)
Debian 10.0,代号Buster,于2019年发布。这个版本引入了更多的自动化工具,加强了对容器技术的支持。Buster版本还改进了对安全启动(Secure Boot)的支持,适应了更严格的硬件安全标准。
16. Debian 11.0 (Bullseye) - 当前的巅峰 (2021)
Debian 11.0,代号Bullseye,于2021年发布。这是最新版本,继续改进了安全性、性能和用户体验。Bullseye版本引入了新的Linux内核5.10,提供更好的硬件支持。同时,Debian社区不断致力于维护和更新软件包,以确保系统的稳定性和安全性。
17. Debian 11.3 (Bullseye) (2022年5月)
Debian 11.3版本对系统进行了细致优化,提升安全稳定性能。
18. Debian 12.0 (Bookworm) (预计2023年)
Bookworm将使用Linux内核5.19,对容器和虚拟化进行改进。
19. Debian 13.0 (未命名) (2024年)
Debian 13.0版本还在开发中,将继续优化软件及系统更新。
20. Debian 14.0 (未命名) (2025年)
附录2,整体过程
命令记录
sudo rm /usr/bin/arm-linux-gnueabihf-gcc && \
sudo rm /usr/bin/arm-linux-gnueabihf-gcc-ar && \
sudo rm /usr/bin/arm-linux-gnueabihf-gcc-nm && \
sudo rm /usr/bin/arm-linux-gnueabihf-gcc-ranlib && \
sudo rm /usr/bin/arm-linux-gnueabihf-cpp && \
sudo rm /usr/bin/arm-linux-gnueabihf-gcov
sudo ln -s /usr/bin/arm-linux-gnueabihf-gcc-4.7 /usr/bin/arm-linux-gnueabihf-gcc && \
sudo ln -s /usr/bin/arm-linux-gnueabihf-gcc-ar-4.7 /usr/bin/arm-linux-gnueabihf-gcc-ar && \
sudo ln -s /usr/bin/arm-linux-gnueabihf-gcc-nm-4.7 /usr/bin/arm-linux-gnueabihf-gcc-nm && \
sudo ln -s /usr/bin/arm-linux-gnueabihf-gcc-ranlib-4.7 /usr/bin/arm-linux-gnueabihf-gcc-ranlib && \
sudo ln -s /usr/bin/arm-linux-gnueabihf-cpp-4.7 /usr/bin/arm-linux-gnueabihf-cpp && \
sudo ln -s /usr/bin/arm-linux-gnueabihf-gcov-4.7 /usr/bin/arm-linux-gnueabihf-gcov
WORK_DIR=/home/${USER}/develop/cubieboard
ROOTFS_DIR=$WORK_DIR/chroot-armhf
mkdir -p $WORK_DIR
CB1:
git clone https://github.com/cubieboard/u-boot-sunxi.git -b cubie/sunxi && \
git clone https://github.com/cubieboard/sunxi-tools.git && \
git clone https://github.com/cubieboard/sunxi-boards.git && \
git clone https://github.com/cubieboard/linux-sunxi.git -b cubie/sunxi-3.4
CB2:
git clone https://github.com/cubieboard/u-boot-sunxi.git -b cubie/sunxi && \
git clone https://github.com/cubieboard/sunxi-tools.git && \
git clone https://github.com/cubieboard/sunxi-boards.git && \
git clone https://github.com/cubieboard/linux-sunxi.git -b cb2/sunxi-3.4
$ cd $WORK_DIR/u-boot-sunxi
$ make distclean CROSS_COMPILE=arm-linux-gnueabihf-
$ make cubieboard2 CROSS_COMPILE=arm-linux-gnueabihf-
cd $ROOTFS_DIR && \
sudo debootstrap --foreign --arch=armhf buster . http://mirrors.huaweicloud.com/debian/
sudo cp /usr/bin/qemu-arm-static usr/bin/
LC_ALL=C LANGUAGE=C LANG=C sudo chroot ./ debootstrap/debootstrap --second-stage
LC_ALL=C LANGUAGE=C LANG=C sudo chroot . dpkg --configure -a
cd $ROOTFS_DIR && \
sudo tar jcpvf ../debian-rootfs-armhf-clean.tar.bz2 *
cd $WORK_DIR/u-boot-sunxi
make distclean CROSS_COMPILE=arm-linux-gnueabihf-
make cubieboard2 CROSS_COMPILE=arm-linux-gnueabihf-
cd $WORK_DIR/sunxi-tools
make
cd $WORK_DIR/linux-sunxi
cp arch/arm/configs/sun7i_defconfig .config
make ARCH=arm menuconfig
Device Drivers ---> Serial ATA and Parallel ATA drivers ---> SoftWinner Platform AHCI SATA support
Device Drivers ---> GPIO Support ---> GPIO Support for sunxi platform
Networking support ---> Wireless ---> Generic IEEE 802.11 Networking Stack (mac80211)
Device Drivers ---> Network device support ---> Wireless LAN ---> Ralink driver support
Device Drivers ---> Network device support ---> Universal TUN/TAP device driver support
Device Drivers ---> Multimedia support ---> Video capture adapters ---> V4L USB devices ---> USB Video Class (UVC)
Device Drivers ---> Input device support ---> Keyboards ---> sunxi IR support
Device Drivers ---> USB support ---> USB Serial Converter support ---> USB Prolific 2303 Single Port Serial Driver
Device Drivers ---> Graphics support ---> Support for frame buffer devices ---> HDMI Driver Support(sunxi)
make -j5 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules
sudo chroot . passwd
sudo vim etc/hostname
"Cubieboard"
sudo vim etc/hosts
"127.0.0.1 Cubieboard"
sudo cp $WORK_DIR/linux-sunxi/arch/arm/boot/uImage boot/
sudo make -C $WORK_DIR/linux-sunxi INSTALL_MOD_PATH=`pwd` ARCH=arm \
CROSS_COMPILE=arm-linux-gnueabihf- modules_install
sudo vim etc/inittab
T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100
sudo vim etc/apt/sources.list
deb http://http.debian.net/debian/ buster main contrib non-free
deb http://security.debian.org/ buster/updates main contrib non-free
sudo chroot . apt-get update
sudo chroot . apt-get upgrade
sudo chroot . apt-get install openssh-server
sudo chroot . apt-get install locales
sudo vim etc/locale.gen
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
sudo chroot . locale-gen
sudo chroot . apt-get install wireless-tools wpasupplicant firmware-ralink
sudo vim $ROOTFS_DIR/boot/boot.cmd
setenv bootargs console=ttyS0,115200 hdmi.audio=EDID:0 disp.screen0_output_mode=EDID:1280x1024p60 \
root=/dev/mmcblk0p1 rootwait panic=10 ${extra}
ext2load mmc 0 0x43000000 boot/script.bin
ext2load mmc 0 0x48000000 boot/uImage
bootm 0x48000000
sudo mkimage -C none -A arm -T script -d boot/boot.cmd boot/boot.scr
sudo cp $WORK_DIR/sunxi-boards/sys_config/a20/cubieboard2.fex boot/script.fex
sudo vim $ROOTFS_DIR/boot/script.fex
[gpio_para]
gpio_used = 1
gpio_num = 30
gpio_pin_1 = port:PD01<1><default><default><default>
gpio_pin_2 = port:PD02<1><default><default><default>
gpio_pin_3 = port:PD03<1><default><default><default>
gpio_pin_4 = port:PD04<1><default><default><default>
gpio_pin_5 = port:PD05<1><default><default><default>
gpio_pin_6 = port:PD06<1><default><default><default>
gpio_pin_7 = port:PD07<1><default><default><default>
gpio_pin_8 = port:PD08<1><default><default><default>
gpio_pin_9 = port:PD09<1><default><default><default>
gpio_pin_10 = port:PD10<1><default><default><default>
gpio_pin_11 = port:PD11<1><default><default><default>
gpio_pin_12 = port:PD12<1><default><default><default>
gpio_pin_13 = port:PD13<1><default><default><default>
gpio_pin_14 = port:PD14<1><default><default><default>
gpio_pin_15 = port:PD15<1><default><default><default>
gpio_pin_16 = port:PD16<1><default><default><default>
gpio_pin_17 = port:PD17<1><default><default><default>
gpio_pin_18 = port:PD18<1><default><default><default>
gpio_pin_19 = port:PD19<1><default><default><default>
gpio_pin_20 = port:PD20<1><default><default><default>
gpio_pin_21 = port:PD21<1><default><default><default>
gpio_pin_22 = port:PD22<1><default><default><default>
gpio_pin_23 = port:PD23<1><default><default><default>
gpio_pin_24 = port:PD24<1><default><default><default>
gpio_pin_25 = port:PD25<1><default><default><default>
gpio_pin_26 = port:PD26<1><default><default><default>
gpio_pin_27 = port:PD27<1><default><default><default>
gpio_pin_28 = port:PH07<1><default><default><default>
gpio_pin_29 = port:PB10<1><default><default><default>
gpio_pin_30 = port:PB11<1><default><default><default>
$WORK_DIR/sunxi-tools/fex2bin boot/script.fex boot/script.bin
sudo vim etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
CARD=/dev/sda
cd $WORK_DIR/u-boot-sunxi
dd if=/dev/zero of=$CARD bs=1k count=1024
dd if=u-boot-sunxi-with-spl.bin of=$CARD bs=1024 seek=8
sudo fdisk $CARD
:n
:p
:2048
:15278078
:Y
:w
sudo mkfs.ext4 ${CARD}1
$ cd $ROOTFS_DIR
sudo mount ${CARD}1 /mnt
sudo tar --exclude=qemu-arm-static -cf - . | sudo tar -C /mnt -xvf -
sudo sync && sudo umount /mnt
附录3,参考网址
https://romanrm.net/a10/debian
https://romanrm.net/a10/qemu
https://gitlab.com/qemu-project/qemu/-/issues/2326
qemu-system-arm -M cubieboard -m 1G -nographic -drive file=sd.img,format=raw,if=sd
https://wiki.qemu.org/Documentation/Platforms/ARM
https://freemandealer.github.io/2015/08/27/debug-kernel-with-qemu/
qemu-system-arm -machine cubieboard -s -S -kernel project/cubieboard/linux-source-3.4.79-sun7i/arch/arm/boot/zImage -append "console=ttyS0" -serial mon:stdio -nographic
https://www.qemu.org/docs/master/system/arm/cubieboard.html
https://fedoraproject.org/wiki/Architectures/ARM/F22/Installation