fujita / rust-e1000 Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v2.0
License: GNU General Public License v2.0
This issue is for helping to reproduce the rust e1000 module.
File README.md
already says use https://github.com/fujita/linux/tree/rust-e1000
README.md
should also say something like:
cp rust-e1000.config ~/git/linux/.config
With rust-e1000.config
having content for a succesfull build of rust-for-linux-tree.
Hi,
Here a curious newbie reporting this:
$ make LLVM=1 rustavailable
***
*** Rust compiler 'rustc' is too new. This may or may not work.
*** Your version: 1.65.0
*** Expected version: 1.62.0
***
Rust is available!
$
That is with
$ git branch --verbose | grep '^*'
* rust-e1000 263f16d67d52 rust: add dma and io mapping
$
in https://github.com/fujita/linux/tree/rust-e1000
I get a succesfull (but yet untested) build with make CC=clang
.
And with make LLVM=1
in the Linux source directory I get:
$ make LLVM=1
SYNC include/config/auto.conf.cmd
scripts/Kconfig.include:40: linker 'ld.lld' not found
make[2]: *** [scripts/kconfig/Makefile:77: syncconfig] Error 1
make[1]: *** [Makefile:693: syncconfig] Error 2
make: *** [Makefile:795: include/config/auto.conf.cmd] Error 2
$
Purpose / idea of this report is triggering responses like
Hi! The rust-e1000 driver is a fantastic job! And I want to run it on a real machine and have some tests with the c version.
With some modifications, I have successfully insmod the rust-e1000 driver and seen the nic info with the ifconfig
command. But I failed to use this driver to ping a public IP address. It turns out that only the number of TX packets grows while the number of RX packets remains zero all the time. I also test this driver in the qemu environment. The result is the same. I see the clean
function implementation for the E1000 struct that is supposed to support receiving the packages. But the number of RX packets failed to grow up.
I wonder whether something is wrong with my operation or if the rust-e1000 driver cannot receive packages due to the lack of some functions. Thanks for your help!
Hello!
I've tried compiling rust-e1000 at the initial commit, that is at the following state:
https://github.com/fujita/rust-e1000/tree/2b88260b06b75aaafc3d081b8bc9ff88c044dfd6
with
https://github.com/fujita/linux/tree/rust-e1000
(checked out the rust-e1000 branch)
The Linux kernel built successfully, but the driver fails to build with many Rust compilation errors. Is it possible to build this exact commit or was it intended for use with an internal (i.e. unreleased) version of the rust-for-linux kernel fork?
My interest is simply learning some obscure Rust I've encountered in the driver's implementation. I want to build the driver at this exact commit and play around with the code to understand some language features.
Thank you!
Best regards,
Ignat Semenov
Hi,
What should be the content of file $KDIR/rust/target.json
?
Reason that I, reporter of #2, am asking is because what I get is this:
stappers@myhost:/usr/src/linux/rust-e1000
$ make KDIR=../torvalds CC=clang
make -C ../torvalds M=$PWD
make[1]: Entering directory '/usr/src/linux/torvalds'
RUSTC [M] /usr/src/linux/rust-e1000/rust_e1000.o
error: target file "./rust/target.json" does not exist
make[2]: *** [scripts/Makefile.build:307: /usr/src/linux/rust-e1000/rust_e1000.o] Error 1
make[1]: *** [Makefile:1997: /usr/src/linux/rust-e1000] Error 2
make[1]: Leaving directory '/usr/src/linux/torvalds'
make: *** [Makefile:6: default] Error 2
stappers@myhost:/usr/src/linux/rust-e1000
$
FWIW
stappers@myhost:/usr/src/linux/rust-e1000
$ ls ../torvalds/rust
alloc bindings compiler_builtins.rs helpers.c macros
bindgen_parameters build_error.rs exports.c kernel Makefile
stappers@myhost:/usr/src/linux/rust-e1000
$
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.