韦东山qemu开发环境配置

100ask imx6ul qemu - 百问网嵌入式Linux wiki

使用 100ask 的 qemu
Qemu - 百问网嵌入式Linux wiki (100ask.org)
在百度网盘下载对应的资料
并安装

只想让Ubuntu能上网、能跟Windows互联

sudo apt update
sudo apt install vim git
git config --global user.email "rongbaichuan1027@163.com"
git config --global user.name "rongbaichuan"
git config --global credential.helper store

配置开发环境

cd ~
sudo apt install iputils-ping
git clone https://e.coding.net/weidongshan/DevelopmentEnvConf.git && cd DevelopmentEnvConf
vim Configuring_ubuntu.sh

因为aliyun的源凭证有问题, 所以使用默认的源, 脚本中屏蔽换源操作,

  1. 在SetUbuntuSourceList函数一开始添加return保存
  2. 执行sudo ./Configuring_ubuntu.sh
  3. 选 2: linux开发环境

或者使用下面的命令

sudo apt-get update
sudo apt-get install curl mtd-utils  gcc make git vim \
python3 net-tools openssh-server \
python3-dev build-essential subversion \
libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext  \
gfortran libssl-dev libpcre3-dev xlibmesa-glu-dev \
libftgl-dev libmysqlclient-dev libfftw3-dev libcfitsio-dev graphviz-dev \
libavahi-compat-libdnssd-dev libldap2-dev  libxml2-dev p7zip-full bzr  \
libkrb5-dev libgsl0-dev  u-boot-tools lzop -y

sudo apt-get install libncursesw5 libncursesw5-dev qemu-system-arm
sudo apt-get install gcc-arm-linux-gnueabihf clangd-15
sudo apt-get install bison bc gdb
sudo apt-get install python3
sudo apt-get install libncurses-dev git libglu1-mesa-dev libgraphviz-dev \
libgsl-dev

下载qemu开发板

cd ~
mkdir 100ask
cd ~/100ask
git clone https://e.coding.net/weidongshan/ubuntu-18.04_imx6ul_qemu_system.git
cd ubuntu-18.04_imx6ul_qemu_system
sudo apt-get install qemu-system-arm

./qemu-imx6ull-nogui.sh
# 启动后,登录名是root,无需密码

修改文件系统

cd /home/$USER/git/100ask/ubuntu-18.04_imx6ul_qemu_system/imx6ull-system-image
# 可以在Ubuntu下直接修改rootfs.img,不过要先挂载
sudo mount -o loop rootfs.img /mnt
# 修改完后
sudo umount /mnt

运行qemu

cd /home/$USER/100ask/ubuntu-18.04_imx6ul_qemu_system
./qemu-imx6ull-nogui.sh

韦东山QEMU源码编译

下载源码

sudo ln -s /usr/bin/python3 /usr/bin/python
git clone https://e.coding.net/codebug8/repo.git
mkdir -p 100ask_imx6ull-qemu && cd 100ask_imx6ull-qemu
# 执行下面命令报错的话, 把 ropo/subcmds/help.py 的 formatter 注释
../repo/repo-py3 init -u https://e.coding.net/weidongshan/manifests.git -b linux-sdk -m imx6ull/100ask-imx6ull_qemu_release_v1.0.xml --no-repo-verify
../repo/repo sync -j4

设置环境变量

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export QEMU_BIN=/home/$USER/100ask/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin
export PATH=$PATH:$QEMU_BIN

编译源码

## 需要使用旧版本的gcc和arm-linux-gnueabihf-gcc
## 先备份软连接, 内核编译完成之后再恢复
sudo apt-get install gcc-9
sudo mv /usr/bin/gcc /usr/bin/gcc.bak
sudo ln -s /usr/bin/gcc-9 /usr/bin/gcc
sudo mv /usr/bin/arm-linux-gnueabihf-gcc /usr/bin/arm-linux-gnueabihf-gcc.bak
sudo ln -s $QEMU_BIN/arm-linux-gnueabihf-gcc /usr/bin/arm-linux-gnueabihf-gcc
## 到内核路径编译
cd /home/$USER/100ask/100ask_imx6ull-qemu/linux-4.9.88
make mrproper
make 100ask_imx6ull_qemu_defconfig
make zImage -j16
make dtbs
#sudo bear --libear /usr/lib/x86_64-linux-gnu/bear/libear.so  make -j8
## 恢复备份的版本
sudo mv /usr/bin/gcc.bak /usr/bin/gcc
sudo mv /usr/bin/arm-linux-gnueabihf-gcc.bak /usr/bin/arm-linux-gnueabihf-gcc
gcc -v
arm-linux-gnueabihf-gcc -v

编译成功后,可以得到如下文件:
arch/arm/boot/zImage // 内核
arch/arm/boot/dts/100ask_imx6ull_qemu.dtb // 设备树

编译驱动

export ARCH=arm
export CROSS_COMPILE=/home/rong/100ask/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
export KERNELDIR=/home/rong/100ask/100ask_imx6ull-qemu/linux-4.9.88
export KDIR=/home/rong/100ask/100ask_imx6ull-qemu/linux-4.9.88

makefile

ARCH
KERNELDIR := /home/rong/100ask/100ask_imx6ull-qemu/linux-4.9.88
CC := /home/rong/100ask/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc

mnt

host执行

# sudo vim /etc/exports
/home/rong/mnt *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)

测试在本地是否可以正常挂载, 可跳过

sudo /etc/init.d/nfs-kernel-server restart
sudo mount -t nfs -o nolock,vers=3 127.0.0.1:/home/rong/mnt /mnt
ls /mnt

qemu执行

mount -t nfs -o nolock,vers=3 10.0.2.2:/home/rong/mnt /mnt
posted @   容景云  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示