首页 > 其他分享 >buildroot

buildroot

时间:2024-07-25 13:40:39浏览次数:9  
标签:buildroot tap0 ip sudo mode serial qemu

自动构建文件系统和内核的工具但是编译速度感人可能要两个小时以上,中途尽量不要断网,
断网会爆很多奇怪的问题。

下载

   wget http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2
   tar -jxvf buildroot-snapshot.tar.bz2
   cd buildroot

配置

sudo apt-get install libncurses-dev patch

make clean
make list-defconfigs #挑选自己需要的架构
make qemu_mips32r2el_malta_defconfig #我需要编译mipsel的
make menuconfig#这里需要配置一下,需要下载两个工具,
#Target packages  ---> Networking applications  --->bridge-utils,openssh
make

启动

buildroot给的sh启动文件没有tap服务需要自己改一下

#!/bin/sh

BINARIES_DIR="${0%/*}/"
# shellcheck disable=SC2164
cd "${BINARIES_DIR}"

mode_serial=false
mode_sys_qemu=false
while [ "$1" ]; do
    case "$1" in
    --serial-only|serial-only) mode_serial=true; shift;;
    --use-system-qemu) mode_sys_qemu=true; shift;;
    --) shift; break;;
    *) echo "unknown option: $1" >&2; exit 1;;
    esac
done

if ${mode_serial}; then
    EXTRA_ARGS='-nographic'
else
    EXTRA_ARGS='-serial stdio'
fi

if ! ${mode_sys_qemu}; then
    export PATH="/home/iot/Desktop/buboxy/buildroot/output/host/bin:${PATH}"
fi

exec sudo qemu-system-mipsel -M malta -kernel vmlinux -drive file=rootfs.ext2,format=raw -append "rootwait root=/dev/sda" -net nic,model=pcnet -net tap,ifname=tap0,script=no,downscript=no ${EXTRA_ARGS} "$@"

宿主机

sudo ip link add br0 type bridge
sudo ip addr add 192.168.1.1/24 dev br0
sudo ip link set br0 up
sudo ip tuntap add dev tap0 mode tap
sudo ip link set tap0 master br0
sudo ip link set tap0 up

qemu虚拟机

ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up
route add default gw 192.168.1.1

记得要修改qemu的root密码,如果scp传输不了,就重启一下qemu。

如果qemu内存太小就

Filesystem images  --->
] ext2/3/4 root filesystem                                                                                                                              │ │  
  │ │ ext2/3/4 variant (ext2 (rev1))  --->                                                                                                                │ │  
  │ │(rootfs) filesystem label                                                                                                                                 │ │  
  │ │(60M) exact size                                                                                                                                          │ │  
  │ │(0)   exact number of inodes (leave at 0 for auto calculation)                                                                                            │ │  
  │ │(256) inode size                                                                                                                                          │ │  
  │ │(5)   reserved blocks percentage                                                                                                                          │ │  
  │ │(-O ^64bit) additional mke2fs options                                                                                                                     │ │  
  │ │Compression method (no compression)  --->                                                                                                           │ │  
  │ │[ ] f2fs root filesystem
  

修改exact size 的大小就行

scp无法传输

vi /etc/ssh/sshd_config
 PermitRootLogin yes
 PasswordAuthentication yes
sshd
#!/bin/sh

cleanup() {
    # 清理 TAP 接口
    sudo ip link set tap0 down
    sudo ip tuntap del dev tap0 mode tap
}
trap cleanup EXIT

BINARIES_DIR="${0%/*}/"
cd "${BINARIES_DIR}"

mode_serial=false
mode_sys_qemu=false
while [ "$1" ]; do
    case "$1" in
    --serial-only|serial-only) mode_serial=true; shift;;
    --use-system-qemu) mode_sys_qemu=true; shift;;
    --) shift; break;;
    *) echo "unknown option: $1" >&2; exit 1;;
    esac
done

if ${mode_serial}; then
    EXTRA_ARGS='-nographic'
else
    EXTRA_ARGS='-serial stdio'
fi

if ! ${mode_sys_qemu}; then
    export PATH="/home/giant/Desktop/IOT/buildroot-2024.02/output/host/bin:${PATH}"
fi

# 创建 TAP 接口
sudo ip tuntap add dev tap0 mode tap user $(whoami)
sudo ip link set tap0 up
sudo ip link set tap0 master br0

# 启动 QEMU
sudo qemu-system-arm -M versatilepb -kernel zImage -dtb versatile-pb.dtb -drive file=rootfs.ext2,if=scsi,format=raw -append "rootwait root=/dev/sda console=ttyAMA0,115200" -net nic,model=rtl8139 -net tap,ifname=tap0,script=no,downscript=no ${EXTRA_ARGS} "$@"


sudo brctl addbr br0
sudo ifconfig br0 192.168.1.1 netmask 255.255.255.0 up
sudo ip tuntap add dev tap0 mode tap
sudo ifconfig tap0 up
sudo brctl addif br0 tap0

标签:buildroot,tap0,ip,sudo,mode,serial,qemu
From: https://www.cnblogs.com/blonet/p/18322825

相关文章

  • buildroot 添加ssh
    编译官方固件后发现没有ssh登录。修改buildroot添加ssh的功能。在buildroot目录下makemenucofig添加OpenSSH包在menuconfig界面中,导航到以下选项以启用OpenSSH:Targetpackages--->Networkingapplications--->[*]openssh[*]openssh-server[*]openssh-clien......
  • 韦东山IMX6ULL Linux开发板基于Buildroot系统QT应用环境配置开发运行
    @目录一.编译系统1.设置交叉编译工具链2.编译系统二.QT下载1.安装Qtcreator2.创建第一个程序3.配置QtCreator开发环境4.移植QT程序到开发板一.编译系统1.设置交叉编译工具链exportARCH=armexportCROSS_COMPILE=arm-buildroot-linux-gnueabihf-exportPATH=$PATH:/hom......
  • buildroot --- BR2_EXTERNAL(添加外部 package,不改变 buildroot 任何内容)
    make-C$(buildroot文件夹路径)BR2_EXTERNAL=$(BR2_EXTERNAL_XXX_PATH),可以不修改buildroot/package路径下的内容实现编译引用外部packageBR2_EXTERNAL_XXX_PATH文件夹需要包含如下三个文件:external.descexternal.mkConfig.inexternal.mk包含所有package的mk文......
  • buildroot-2020.05生成不了bluez相应工具的解决方法
    使用buildroot-2020.05编译生成bluez时,无法生成bluetoothctl、hciconfig等工具,发现其默认使用的bluez版本为5.54,而我们验证改为5.52版本时才能生成这些工具,故做了如下修改:1.bluez5_utils a.修改package/bluez5_utils/bluez5_utils.mk文件,将   BLUEZ5_UTILS_VERSION=......
  • buildroot --- 新添加一个 package(应用)
    参考资料:https://buildroot.org/docs.html buildroot-slides.pdf章节 IntegratingnewpackagesinBuildroot  以下基于RK3308SDK(与SDK关系不大,其他SDK类似) 在app文件夹下新建个文件夹wifitest,里面新建两个文件main.c#include<stdio.h>intmain(int......
  • 006-使用buildroot构建一个完整的Linux操作系统
    原文:https://www.bilibili.com/read/cv31634226/实验介绍 之前的实验中介绍了如何使用buildroot构建一个易于使用的完整文件系统,但是buildroot的功能不止于此。 本实验准备使用buildroot构建一个完整的Linux操作系统。 本实验还会将编译好的固件烧录到U盘中,然后在......
  • Buildroot+RISC-V+QEMU(@Ubuntu)运行
    1RISC-V相关Buildroot代码下载和编译下载Buildroot代码并切换特定分支:gitclonehttps://github.com/buildroot/buildroot.gitgitcheckout2024.02.1编译RISC-V的Buildroot:makeqemu_riscv64_virt_defconfigmake-j322在QEMU上运行RISC-V镜像进入output/images目录......
  • 嵌入式开发之瑞芯微RK356x-Buildroot 配置2
        目录BR2_PACKAGE_XXX从何而来手动下载文件让buildroot去编译output目录单独编译某个应用程序上一篇说......
  • 嵌入式开发之瑞芯微RK356x-Buildroot 添加自定义应用程序1
    上一篇我们说到具体如何去配置Buildroot,编译,验证本章我们需要添加自己的应用程序,我们就以helloworld为例子吧1.首先我们进入buildroot目录,并打开package/Config.in拉到最下面添加如下内容menu"NexyhoApp" source"package/Nexyho/Config.in"endmenu2.创建Nexyho文......
  • 迅为iTOP-RK3588开发板Buildroot系统功能测试
     第三章Buildroot系统功能测试烧写buildroot系统镜像,buildroot系统镜像在网盘资料“iTOP-3588开发板\01_【iTOP-RK3588开发板】基础资料\06_iTOP-RK3588开发板Linux镜像\01_Buildroot镜像”目录下,本小节测试buildroot系统。 3.1系统启动Buildroot系统启动后,串口如下图所示......