首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在QEMU上运行NIOS2

在QEMU上运行NIOS2
EN

Stack Overflow用户
提问于 2021-03-04 15:21:56
回答 1查看 305关注 0票数 4

我在QEMU https://wiki.qemu.org/Documentation/Platforms/Nios2中发现,我从他们的网站下载了英特尔工具链:工具包/dev-kit/altera/kit-niosii-2s60.html,我有几个问题:

  1. QEMU中的NIOS2是否与英特尔的NIOS匹配?
  2. 在QEMU中编译和运行它的工具链是什么?是否与英特尔网站提供的工具链相同?
  3. 如何通用固件代码并在QEMU上的NIOS上运行。在Wiki中写着: qemu-system-nios2 2 -M 10m50-ghrd -kernel -dtb -nographic
  4. 如何为其生成dtb文件?
  5. 我们是否需要使用quartos/EDS创建的产品来运行QEMU,其他来自编译的二进制文件?(DTB -板规格?)
  6. 我们需要使用特定的QEMU参数/参数来运行它吗?
  7. 您有使用NIOS外围设备的代码示例吗?

基本上,我没有找到任何关于如何在QEMU中使用NIOS2的文档/示例。你能帮我提供一些额外的信息吗?即使是一些基本的“hello将”(在QEMU中编译和运行)也是很棒的…。

EN

回答 1

Stack Overflow用户

发布于 2021-04-02 15:34:24

更新:对这个问题最最新的答案可能是分析console.py#L1029上的linux控制台nios测试(当然也可以与维护人员联系)。2018年日历第14天的内核图像运行得很好。看起来这一切都可以用buildroot来完成。

我的评论开始结出硕果,所以我会尽量把部分的答案放在一起。我还没有让它发挥作用,但也许这会对其他可能工作更远的人有所帮助。

注意:如果您只想运行一个nios2二进制文件,可以直接将它传递给qemu-nios2qemu-system-nios2用于运行linux。

  1. 我认为qemu的行为是功能性的,而不是知识产权。如果它不匹配的话就会是个bug。我不知道它是否存在。在这里提到IP,请记住,开放源码项目通常由少数脆弱的关心的开发人员管理,如果知识产权的所有权受到挑战,他们通常没有法律团队。如果有问题,最好将相关方提交给https://eff.org/,后者通常在法律上代表这类事情。
  2. 我希望任何nios2工具链都能工作。这是一条工具链来自一个快速的互联网搜索,让我找到了bootlin.com。似乎包含有关如何从源复制它的说明。
  3. 见4
  4. 以下是我到目前为止对固件生成的看法:
代码语言:javascript
复制
# set up a toolchain (note: this old step is redundant with buildroot, lower down, which also installs a toolchain and even builds a kernel if asked)
wget https://toolchains.bootlin.com/downloads/releases/toolchains/nios2/tarballs/nios2--glibc--stable-2020.08-1.tar.bz2
tar -jxvf nios2--glibc--stable-2020.08-1.tar.bz2

# get kernel sources (pass --depth 1 to speed up)
git clone https://github.com/altera-opensource/linux-socfpga.git

# build kernel and device tree
cd linux-socfpga
make ARCH=nios2 CROSS_COMPILE=$(pwd)/../nios2--glibc--stable-2020.08-1/bin/nios2-linux- 10m50_defconfig 10m50_devboard.dtb vmlinux -j5
cd ..

# kernel is now at linux-socfpga/vmlinux
# device tree is now at linux-socfpga/arch/nios2/boot/dts/10m50_devboard.dtb

# set up buildroot to build a root image
git clone https://github.com/buildroot/buildroot.git
cd buildroot

# configure for qemu nios2
make qemu_nios2_10m50_defconfig 

# build root image
PERL_MM_OPT= LDFLAGS= CPPFLAGS= LD_LIBRARY_PATH= make
cd ..

# rootfs images are now in buildroot/output/images/
  1. 恐怕我只是个访客,我不知道谁是quartos/eds,也不知道你指的是什么编译的二进制文件。
  2. qemu命令行似乎是qemu-system-nios2 -M <machine> -kernel <kernel file> -dtb <dtb file> <rootfs image file>。示例机器是我们为上面构建的内核的10m50-ghrd,这可能是唯一的一台。
  3. 还没!如果我再往前走,我会尽力更新这个答案。如果你走得更远,可以自由地编辑它。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66478025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档