Cubie Board 2 A20 及其 qemu 仿真实现源代码架构

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值