【imx6ul 学习笔记】Docker 运行百问网 imx6ul_qemu

文章目录

参考资料

百问网 QEMU 使用手册

获取

bash 复制代码
mkdir -p ~/data_ubuntu18
cd ~/data_ubuntu18

git clone https://e.coding.net/weidongshan/ubuntu-18.04_imx6ul_qemu_system.git

安装容器

bash 复制代码
sudo apt install -y xauth x11-xserver-utils
xhost +local:root

sudo docker pull ubuntu:18.04

sudo docker run -it \
  --name ubuntu18 \
  -v ~/data_ubuntu18:/mnt/data \
  --privileged \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  ubuntu:18.04 /bin/bash

之后可通过如下命令再次进入

bash 复制代码
xhost +local:root && sudo docker start ubuntu18 || true && sudo docker exec -it ubuntu18 /bin/bash

环境准备

换源

复制代码
root@344ce7db8025:/# sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
root@344ce7db8025:/# sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list

安装依赖

bash 复制代码
root@344ce7db8025:/# apt update -y && apt install -y libsdl2-dev libsdl2-2.0-0 build-essential
root@344ce7db8025:/# cd /mnt/data/ubuntu-18.04_imx6ul_qemu_system
root@344ce7db8025:/mnt/data/ubuntu-18.04_imx6ul_qemu_system# apt update -y && apt install -y libpixman-1-0 libfdt1 -y

安装kvm加速qemu运行

复制代码
root@344ce7db8025:/# apt-get install qemu qemu-kvm libvirt-bin bridge-utils virt-manager

启动qemu

bash 复制代码
root@344ce7db8025:/mnt/data/ubuntu-18.04_imx6ul_qemu_system# ./qemu-imx6ull-gui.sh

登录名是root,无需密码

可用如下命令关机

bash 复制代码
shutdown -h now
bash 复制代码
root@344ce7db8025:/mnt/data/ubuntu-18.04_imx6ul_qemu_system# ./qemu-imx6ull-gui.sh file

示例

bash 复制代码
[root@qemu_imx6ul:~]# fb-test
[root@qemu_imx6ul:~]# myfb-test /dev/fb0

[root@qemu_imx6ul:~]# cd ~/led_driver_qemu/
[root@qemu_imx6ul:~/led_driver_qemu]# insmod 100ask_led.ko

[root@qemu_imx6ul:~/led_driver_qemu]# ./ledtest /dev/100ask_led
100ask_led0  100ask_led1  100ask_led2  100ask_led3  

[root@qemu_imx6ul:~/led_driver_qemu]# ./ledtest /dev/100ask_led0 on
[ 2845.304132] /mnt/root/led_driver_qemu/leddrv.c led_drv_close line 66
[root@qemu_imx6ul:~/led_driver_qemu]# ./ledtest /dev/100ask_led0 off
[ 2869.286606] /mnt/root/led_driver_qemu/leddrv.c led_drv_close line 66
bash 复制代码
cd ~/button_driver_qemu/
[root@qemu_imx6ul:~/button_driver_qemu]# insmod button_drv.ko
insmod ./board_100ask_qemu_imx6ull.ko
./button_led_test
bash 复制代码
cd ~/i2c_usr_test/

[root@qemu_imx6ul:~/i2c_usr_test]# ./i2c_usr_test /dev/i2c-0 0x50 r 0
data: , 0, 0x00

./i2c_usr_test /dev/i2c-0 0x50 w 1 0x55

[root@qemu_imx6ul:~/i2c_usr_test]# ./i2c_usr_test /dev/i2c-0 0x50 r 1
data: U, 85, 0x55

准备编译环境

安装依赖并获取源码

bash 复制代码
root@344ce7db8025:/mnt/data# git clone https://e.coding.net/codebug8/repo.git
apt install -y python3 python3-pip
ln -s /usr/bin/python3 /usr/bin/python

root@344ce7db8025:/mnt/data# mkdir -p 100ask_imx6ull-qemu && cd 100ask_imx6ull-qemu
root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu# ../repo/repo init -u https://gitee.com/weidongshan/manifests.git -b linux-sdk -m  imx6ull/100ask-imx6ull_qemu_release_v1.0.xml --no-repo-verify
root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu# ../repo/repo sync -j4
root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu# ls
ToolChain  buildroot2019.02  linux-4.9.88  qemu

root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu# apt-get install lzop -y
root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu# apt-get install bc -y

配置交叉编译环境变量

bash 复制代码
cd /mnt/data/100ask_imx6ull-qemu/linux-4.9.88

root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu/linux-4.9.88# export ARCH=arm
root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu/linux-4.9.88# export CROSS_COMPILE=arm-linux-gnueabihf-
root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu/linux-4.9.88# export PATH=$PATH:/mnt/data/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/

编译准备

bash 复制代码
root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu/linux-4.9.88# make mrproper
root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu/linux-4.9.88# make 100ask_imx6ull_qemu_defconfig

编译zImage内核镜像

bash 复制代码
root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu/linux-4.9.88# make zImage

编译设备树

bash 复制代码
root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu/linux-4.9.88# make 100ask_imx6ull_qemu.dtb

查看生成的内核和设备树的位置

bash 复制代码
root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu/linux-4.9.88# find -name zImage
./arch/arm/boot/zImage
root@344ce7db8025:/mnt/data/100ask_imx6ull-qemu/linux-4.9.88# find -name 100ask_imx6ull_qemu.dtb
./arch/arm/boot/dts/100ask_imx6ull_qemu.dtb
相关推荐
像风一样自由20206 小时前
52.Docker部署大模型应用从本地开发到服务化运行
运维·人工智能·docker·容器·大模型·智能体
曦夜日长6 小时前
Git系统篇,Git本地使用(一):从“究极进化版“到三个区域的底层原理
大数据·linux·git·elasticsearch
shimly1234567 小时前
给断网无 sudo ubuntu22.04 机器安装 nodejs
linux
别动我齐刘海8 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
Lsetea9 小时前
OpenSSL报certificate chain too long:error 22与verify_depth深度排查
linux·https·ssl证书·openssl·证书链
不像程序员的程序媛10 小时前
linux常见文本操作命令
linux·运维·服务器
wangbing112510 小时前
开发指南149-IotDB-常用命令
linux·运维·iotdb
看着博客敲代码10 小时前
WorkBuddy 接上 Kali MCP 做自动化渗透:信息收集到初步验证的落地记录
linux·人工智能·安全·网络安全·自动化
江湖有缘10 小时前
Docker实战 | 使用Docker部署rmoments社交平台
jvm·docker·oracle
小HANN12 小时前
华为云企业网站上云实战|从零搭建高可用WordPress全站架构(ECS+RDS+ELB+弹性伸缩+云监控闭环)
linux·运维·服务器·经验分享