Coder Social home page Coder Social logo

itai-nelken / qemu2deb Goto Github PK

View Code? Open in Web Editor NEW
11.0 2.0 3.0 1.37 MB

Compile/package/install QEMU easier than ever on the Raspberry Pi and other Linux computers.

License: GNU General Public License v3.0

Shell 100.00%
qemu debian-packages debian-packaging raspberry-pi script

qemu2deb's Introduction

Hi! ๐Ÿ‘‹

My name is Itai Nelken and I'm a Linux and open source enthusiast and programmer.
I like to program low level stuff, the lower the better. My favorite programming language is C.

  • ๐Ÿ”ญ Iโ€™m currently working on itai-lang, a programming language I designed.
  • ๐ŸŒฑ Iโ€™m currently learning compiler design.
  • ๐Ÿ’ฌ Ask me about anything Linux, open source, and programming related (especially C).
  • ๐Ÿ“ซ How to reach me: Open a new issue or discussion in this repository.
Secret terminal

How I learnt to code (sort of)

installing skills = weeks of reading and trying stuff
$ ./Itai --skill=python --load-brain
loading brain...
turning it on...
brain: attempting to load Python skills...
brain: FATAL ERROR: Python skills are missing! can't run brain with Python skill!
$ ./Itai --skill=C --load-brain
loading brain...
turning it on...
brain: attempting to load c skills...
brain: FATAL ERROR: C skills are incomplete and corrupted! stop copying and start learning Itai!!
$ ./Itai --skill=bash --load-brain
loading brain...
turning it on...
brain: attempting to load bash skills... WARNING: brain might malfunction becasue of mediocre bash skills!
SUCCESS! - brain partialy on
$ ./Itai --load-brain
loading brain...
turning it on...
brain: no coding skills selected!
SUCCESS! - brain on but doesn't have skills!
$ ./Itai install --skills bash
searching for skill 'bash'...
found skill 'bash'...
installing skill 'bash'...
0%[###############################]100%
SUCCESS! - installed skill bash!
$./Itai --skill=bash --load brain
loading brain...
turning it on...
brain: attempting to load Bash skills...
SUCCESS! - your bash scripts are getting better every day!
$ ./Itai install --skills python
searching for skill 'python'...
ERROR: skill 'python' not found, trying again...
WARNING: skill 'python' in repository 'Itai' isn't complete!
installing skill 'python'...
0%[###############################]100%
SUCCESS! - installed skill python!
$ ./Itai --skill=python --load-brain
loading brain...
turning it on...
brain: attempting to load Python skills...
brain: FATAL ERROR: python skills are incomplete and corrupted! stop copying and start learning Itai!!
$./Itai install --skills c
searching for skill 'c'...
installing skill 'c'...
0%[###############################]100%
SUCCESS! - installed skill c!
$ ./Itai --skill=c --load-brain
loading brain...
turning it on...
brain: attempting to load C skills...
SUCCESS! - you are getting better at C every day (you even understood pointers!)!
$ ./Itai install --skills go
searching for skill 'go'...
installing skill 'go'...
0%[###############################]100%
SUCCESS! - installed skill 'go'!
$ ./Itai --skill=go --load-brain
loading brain...
turning it on...
brain: attempting to load Go skills...
SUCCESS! - you are getting better at Go every day!
$ ./Itai install --skills rust
searching for skill 'rust'...
installing skill 'rust'...
0%[###############################]100%
SUCCESS! - installed skill 'rust'!
$ ./Itai --skill=rust --load-brain
loading brain...
turning it on...
brain: attempting to load Rust skills...
SUCCESS! - you are getting better at Rust every day!
$

Github user stats:
Itai's github stats Top Langs

qemu2deb's People

Contributors

itai-nelken avatar ryanfortner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

qemu2deb's Issues

modify the help flag with correct running info when installing from deb, and more

to track progress:

  • modify the text the help flag prints, mainly from ./qemu2deb.sh [FLAG] to qemu2deb [FLAG]
    - [ ] add arguments to the help flag, so qemu2deb --help = usage and help commands.
    qemu2deb --help -L1 = level 1 of info - simple info, what is displayed now more or less.
    qemu2deb --help -L2 = level 2 of info - more detailed usage instructions.
    qemu2deb --help -arch = explanation about the --no-arch-check flag.

    - [ ] add dependencies to the deb's control file. - didn't find the dependencies yet.

check if user has -w permissions for the chosen directory

Is your feature request related to a problem? Please describe.
When asked for TARGET PATH the script let's user choose a directory for which user does not have permissions.
At first I was amazed that it actually works (user=ubuntu) and path:/usr/local/bin but then it threw an error obviously:

fatal: could not create work tree dir 'qemu': Permission denied
Failed to clone QEMU git repo!

Describe the solution you'd like
Might be a little tricky to do checks for this, if $USER actually has -w privileges for the chosen directory.

Your repo and script are really lovely so I might try to come up with some PR to further enhance it :)

Describe alternatives you've considered
I will choose a different PATH where I have -w permissions ...
Why is the script intended to NOT be able to run as root? I would just want to borrow root user to move the binaries to /usr/local/bin so it would be in the $PATH for every user on the system.

I am quite new to QEMU and virtualization (other than Virtualbox) so maybe you will explain me why I'm wrong, I'd be happy to change my mind.

Anyway, just wanted to comment on how an amazing job you've done and also lovely, super-readable bash script. This repo for sure deserves waaay more stars !

Cheers

Feature request: create selected working directories if they don't exist

A bit of homework

  • I have read the README and other issues and PR's and my feature request is new or I have a new way to implement it (It's ok to leave this checkbox blank, all feature requests are welcome!).
  • my feature request isn't something like: make this and that work, make magic etc.

Is your feature request related to a problem? Please describe.
When selecting a directory, it has to exist for the program to accept it.

For example:

Enter full path to directory where you want to make the deb: ./foo/bar/
directory does not exist, please try again

Describe the solution you'd like
When a user selects a directory, and it doesn't exist, then create it.

Describe alternatives you've considered
There could be an option, where if the fields are left blank, then create the folder where the working directory (location where the script exists) is.

Additional context
If creating the folder throws an error, ignore selection and ask again for a different directory, since this program doesn't run as root.

[not script related] qemu-x86_64 requires GLIBC_2.28 that is not available on jetson nano

I tried to install .deb on jetson nano which an arm64 system but after it finished when I tried running qemu-system-x86_64 it said it required GLIBC 2.28 . but it the system has GLIBC 2.27-3ubuntu1. Could this .deb support GLIBC 2.27-3ubuntu1. My goal is to run a python package, cortex.dev which depends on x86 on the jetson nano since the jetson nano already has docker.
image

enchancements to the way the qemu build dependencies are installed.

  • make the pkg-manage function.
  • make the pkg-manage function remember what packages it installed (it installed! not where already installed).
  • make the clean up function ask if you wan't to remove the build dependencies.
  • make the clean-up function ask to remove ONLY the dependencies that where installed.

all the changes will be pushed to the beta branch

Add options to make deb files for qemu-user & qemu-user-static?

A bit of homework

  • I have read the README and other issues and PR's and my feature request is new or I have a new way to implement it (OK leave this checkbox blank, all feature requests are welcome!).
  • my feature request isn't something like: add support for 64bit. make this and that work. make magic. etc.

Is your feature request related to a problem? Please describe.
I'm trying to follow Novaspirit's old guide for running x86 wine apps on Pi using qemu, qemu-user, and qemu-user-static. I've used his deb files and images to try to run wine apps in the past, but always got bus errors due to old qemu repo versions.

I've used your scripts to successfully build a new qemu from source (thank you!) and even used this to run Win98 using your VM scripts (also thank you, that is pretty cool and it was effortless). Now, to follow Novaspirit's guide, I'm finding I need to compile my own qemu-user and qemu-user-static too.

Describe the solution you'd like
Would you may be be able to add options in your script to have it also compile and package debs for qemu-user and qemu-user-static?

Describe alternatives you've considered
I'm trying to follow this guide to build my own qemu-user-static and am in the process of building/testing that right now, though I feel very much like I don't know quite what I'm doing. If I eventually get things to build and install correctly, my next plan is to implement these steps for other users of a script I'm making. I think it would be nice to have deb packages available for anybody who wanted them so that they could save a few hours of compiling time.

Additional context
I'm not actually even sure if Novaspirit's x86 on Pi guide will work for me yet (since none of his images or deb files on his Patreon worked for my purposes), but I'll hopefully get things installed/tested soon to see.

Unable to build .deb after compiling and installation

I followed the steps in the documentation and I am able to

  • start the script and compile qemu

Nug
After reaching the "QEMU will now be packaged into a DEB, this will take a few minutes and consume all CPU.
cooling is recommended." step, I get the following error

copying files...
cp: cannot stat '/usr/local/lib/qemu/': No such file or directory
Failed to copy the qemu files to 'usr/lib' folder for deb!

Screenshots
image

Desktop (please complete the following information):

  • Host system, Windows
  • Hypervisor, VirtualBox
  • Guest system on which I am compiling and trying to build the .deb, lubuntu 22.04

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.