Comments (9)
Thanks for the report! We don't actually use the Docker build workflow very often, so it seems like it's been neglected for a while.
The key error is that it cannot find defines.asm
, which indicates there's a problem with our build script for BIOS builds. My first guess is that something is not getting forwarded properly through the Makefile targets, perhaps an environment variable or something. Might have something to do with the nano_core's build.rs
build script, in that it doesn't set the include_path
correctly given the different fs layout in a docker container.
I'm about to leave on vacation for a couple of weeks, but in the interim perhaps @tsoutsman can help you get things to build properly. If not, you should be able to build correctly on your native host OS.
from theseus.
Hmm, it might be that we're missing a trailing slash /
at the end of the include_path
, as this SO answer indicates that nasm
handles include path strings as direct literals.
This was fixed in nasm v2.14, so it might be the case that the nasm version in the docker image needs to be updates.
from theseus.
@ShaunLinTW could you try the update-docker
branch? It should have a nasm
version of 2.15
.
from theseus.
@tsoutsman Hi, I tried to switch to update-docker
branch, and rmake run again, but this time it shows this error:
shaunlintw@docker-desktop:/Theseus$ make run
=================== BUILDING ALL CRATES ===================
TARGET: "x86_64-unknown-theseus"
KERNEL_PREFIX: "k#"
APP_PREFIX: "a#"
CFLAGS: ""
THESEUS_CONFIG (before build.rs script): ""
THESEUS_CFLAGS='' THESEUS_NANO_CORE_BUILD_DIR='/Theseus/build/nano_core' RUST_TARGET_PATH='/Theseus/cfg' RUSTFLAGS='--emit=obj -C debuginfo=2 -D unused-must-use -Z share-generics=no ' cargo build --release --workspace --features nano_core/bios -Z unstable-options -Z build-std=core,alloc -Z build-std-features=compiler-builtins-mem --target x86_64-unknown-theseus
info: syncing channel updates for 'nightly-2023-10-27-x86_64-unknown-linux-gnu'
info: latest update on 2023-10-27, rust version 1.75.0-nightly (aa1a71e9e 2023-10-26)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-src'
info: downloading component 'rust-std' for 'aarch64-unknown-uefi'
info: downloading component 'rust-std'
info: downloading component 'rust-std' for 'x86_64-unknown-uefi'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-src'
info: installing component 'rust-std' for 'aarch64-unknown-uefi'
info: installing component 'rust-std'
info: installing component 'rust-std' for 'x86_64-unknown-uefi'
info: installing component 'rustc'
info: installing component 'rustfmt'
error: failed to load source for dependency backtrace
Caused by:
Unable to update /Theseus/ports/backtrace
Caused by:
failed to read /Theseus/ports/backtrace/Cargo.toml
Caused by:
No such file or directory (os error 2)
make: *** [Makefile:330: cargo] Error 101
from theseus.
...
Compiling elf_cls v0.1.0 (/Theseus/tools/elf_cls)
Finished release [optimized] target(s) in 2m 20s
Running tools/elf_cls/target/release/elf_cls x86_64 --dir /Theseus/build/isofiles/modules
Compiling getopts v0.2.17
Compiling grub_cfg_generation v0.1.0 (/Theseus/tools/grub_cfg_generation)
Finished release [optimized] target(s) in 10.03s
Running tools/grub_cfg_generation/target/release/grub_cfg_generation /Theseus/build/isofiles/modules/ -o /Theseus/build/isofiles/boot/grub/grub.cfg
qemu-system-x86_64 -cdrom /Theseus/build/theseus-x86_64.iso -boot d -no-reboot -no-shutdown -s -serial mon:stdio -serial mon:pty -m 512M -smp 4 -net none -cpu Broadwell
char device redirected to /dev/pts/1 (label serial1-base)
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.fma [bit 12]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.x2apic [bit 21]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.tsc-deadline [bit 24]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.avx [bit 28]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.f16c [bit 29]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.hle [bit 4]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.avx2 [bit 5]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.invpcid [bit 10]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.rtm [bit 11]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.rdseed [bit 18]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.80000001H:ECX.3dnowprefetch [bit 8]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.fma [bit 12]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.x2apic [bit 21]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.tsc-deadline [bit 24]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.avx [bit 28]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.f16c [bit 29]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.hle [bit 4]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.avx2 [bit 5]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.invpcid [bit 10]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.rtm [bit 11]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.rdseed [bit 18]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.80000001H:ECX.3dnowprefetch [bit 8]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.fma [bit 12]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.x2apic [bit 21]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.tsc-deadline [bit 24]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.avx [bit 28]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.f16c [bit 29]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.hle [bit 4]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.avx2 [bit 5]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.invpcid [bit 10]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.rtm [bit 11]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.rdseed [bit 18]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.80000001H:ECX.3dnowprefetch [bit 8]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.fma [bit 12]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.x2apic [bit 21]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.tsc-deadline [bit 24]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.avx [bit 28]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.f16c [bit 29]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.hle [bit 4]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.avx2 [bit 5]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.invpcid [bit 10]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.rtm [bit 11]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.rdseed [bit 18]
qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.80000001H:ECX.3dnowprefetch [bit 8]
gtk initialization failed
make: *** [Makefile:994: orun] Error 1
shaunlintw@docker-desktop:/Theseus$
from theseus.
error: failed to load source for dependency
backtrace
Caused by: Unable to update /Theseus/ports/backtrace
Caused by: failed to read
/Theseus/ports/backtrace/Cargo.toml
This means you forgot to check out all the submodules when you cloned the repository. See the Readme section about building & running for details on that.
from theseus.
gtk initialization failed
Looks like you are perhaps running on WSL/WSL2? If so, you don't have an X server installed or configured correctly. There's also a section about that on our Readme, in the WSL part. Let me know if you are able to run other graphical X applications but not QEMU -- this problem isn't Theseus-related unfortunately.
from theseus.
Ok! Thanks for the suggestion! It's finally worked!
from theseus.
Great! Would you mind sharing exactly which step/instruction made things work for you? Perhaps I can clarify or highlight it in the Readme.
from theseus.
Related Issues (20)
- Add tests for `async_channel` HOT 1
- Build and publish Theseus documentation for aarch64 HOT 1
- `test_channel` bug (deadlock?) HOT 1
- Makefile error: `multiple target patterns. Stop.` HOT 1
- Finish porthole, our new graphics api (and window manager)
- Potential infinite loop bug in ixgbe driver HOT 5
- Switch all bitfields to bilge, take notes HOT 2
- page_allocator: use `RbTree`'s `Entry` API for deallocation
- Experiment with using `tracing` instead of `log`
- Attempt to remove runtime `match` statement for `Frames` const generic state HOT 1
- Follow-up improvements to aarch64 FIQ support HOT 1
- Does not get as far as shell prompt on AArch64 HOT 7
- Theseus fails to boot if built on non-English locale HOT 5
- Use MMIO mechanism to access PCI [extended] config space on x86_64
- mlx3
- Use Cargo's workspace dependency feature
- Replace Round Robin scheduling with The Multi-Level Feedback Queue
- Network management UI: system default proxy all traffic throughout the system HOT 5
- Use Nix for building the project HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from theseus.