韦东山qemu开发环境配置
100ask imx6ul qemu - 百问网嵌入式Linux wiki
使用 100ask 的 qemu
Qemu - 百问网嵌入式Linux wiki (100ask.org)
在百度网盘下载对应的资料
并安装
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的源凭证有问题, 所以使用默认的源, 脚本中屏蔽换源操作,
- 在SetUbuntuSourceList函数一开始添加
return
保存 - 执行
sudo ./Configuring_ubuntu.sh
- 选 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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库