Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Package repositories for 2.2.0 #294

Open
coolcoder613eb opened this issue Dec 7, 2023 · 22 comments
Open

Package repositories for 2.2.0 #294

coolcoder613eb opened this issue Dec 7, 2023 · 22 comments

Comments

@coolcoder613eb
Copy link

Is there a package repository for 2.2.0 x86_64 and aarch64?
Can I build it myself?

@klange
Copy link
Owner

klange commented Dec 7, 2023

2.2.0 uses the same package repository as 2.0.x: http://toaruos.org/msk/2.0.x/

There is no centralized source repository for ports, and building them is not an automated process.

Some are on my Github: https://github.com/klange?tab=repositories

Others are in the toaruos org: https://github.com/orgs/toaruos/repositories

Some others are built directly from upstream source packages without modifications.

@coolcoder613eb
Copy link
Author

I am not able to access those packages from x86_64 or aarch64 ToaruOS in QEMU on my M1 Mac.

@klange
Copy link
Owner

klange commented Dec 7, 2023

There are multiple mirrors configured for the package repository. If you are unable to reach any of them, you likely have a network configuration which the OS can not handle. If you are using the 2.2.0 release builds, you should try a newer CI build, as one particularly notable DNS resolver issue was only fixed after that release.

@coolcoder613eb
Copy link
Author

Is it possible to run ToaruOS on my raspberry pi 4?
I have booted it on hardware before, most recently on a Thinkpad T430.

@klange
Copy link
Owner

klange commented Dec 7, 2023

Builds for the RPi4 are available, but they still lack necessary input device drivers for the OS to be useful.

@coolcoder613eb
Copy link
Author

I usually boot from USB on my rpi, is that supported?
Also, is there a command-line only version of ToaruOS?

@klange
Copy link
Owner

klange commented Dec 7, 2023

I usually boot from USB on my rpi, is that supported?

The RPi4 build of the OS is provided as a kernel8.img file. Loading that is up to you. I do not actively provide any support for the RPi4 build as it remains experimental.

Also, is there a command-line only version of ToaruOS?

The bootloader on the x86-64 CD provides options for booting to VGA text mode, headless (a login session is started on a serial port), and to boot into the graphical environment with a full-screen terminal.

Headless configurations can also be attained for the aarch64 builds when running in QEMU by changing the provided command line (the -append argument to QEMU - change the start=live-session parameter to start=--headless and a login session will run on the first serial port). The RPi build has a hardcoded command-line that starts the desktop.

@coolcoder613eb
Copy link
Author

Screenshot 2023-12-07 at 5 58 42 pm

@klange
Copy link
Owner

klange commented Dec 7, 2023

Can you please share your VM configuration, and also the results of ifconfig within the OS?

Also the contents of /etc/resolv.conf in the OS.

@coolcoder613eb
Copy link
Author

coolcoder613eb commented Dec 7, 2023

Command:

qemu-system-x86_64 -cdrom image-2.iso -vga cirrus -smp 4 -m 3G -netdev user,id=net -device e1000,netdev=net

/etc/resolv.conf:

nameserver 10.0.2.3

Ifconfig:
Screenshot 2023-12-07 at 6 04 03 pm

@coolcoder613eb
Copy link
Author

ping 8.8.8.8 works.

@klange
Copy link
Owner

klange commented Dec 7, 2023

Does it take ~2s for the "timed out" error to be printed?

@coolcoder613eb
Copy link
Author

Yes

@klange
Copy link
Owner

klange commented Dec 7, 2023

You can try updating /etc/resolv.conf to point to an external DNS resolver directly. It sounds like the local DNS on your host system is not responding to the queries the VM is making.

@coolcoder613eb
Copy link
Author

Working now, thanks.
How can I make it persistent?

@coolcoder613eb
Copy link
Author

Maybe you should store some kind of filesystem overlay, that gets extracted on top of the ramdisk, and saved on shutdown?

@klange
Copy link
Owner

klange commented Dec 7, 2023

/etc/resolv.conf is populated by dhclient on startup. You can override the address QEMU's DHCP response gives by adding ,dns=... to your -netdev argument.

-vga cirrus

I wanted to ask if you have a particular reason for using the Cirrus card? I have no special support for it, but I do have support for the default Bochs VBE. I also look for QEMU's Bochs VBE PCI ID to trigger loading of the vmmouse driver, which gives seamless mouse support.

@coolcoder613eb
Copy link
Author

I used cirrus because the maximum resolution is 1024x768, which will comfortably fit in a window.
Otherwise, I have to use QEMU fullscreen.

@coolcoder613eb
Copy link
Author

Is there a port of flex?
Or can I build a cross-compiler to ToaruOS?

@coolcoder613eb
Copy link
Author

(BTW, I am on IRC #toaruos)

@klange
Copy link
Owner

klange commented Dec 7, 2023

I used cirrus because the maximum resolution is 1024x768, which will comfortably fit in a window.
Otherwise, I have to use QEMU fullscreen.

You can configure the display resolution in the bootloader menu (and with the Bochs VBE card, also after boot with the set-resolution tool), but that also should not matter if you are using VGA text mode. By the way, you can press v in the bootloader menu to switch it to text mode early.

You can also supply the QEMU command-line option -fw_cfg name=opt/org.toaruos.bootmode,string=vga to have the bootloader skip the menu and go straight to VGA text mode.

Is there a port of flex?
Or can I build a cross-compiler to ToaruOS?

There is no native port of flex. The Docker images linked in the README include a cross-compiler toolchain.

(BTW, I am on IRC #toaruos)

I do not actively use IRC any more.

@klange
Copy link
Owner

klange commented Dec 7, 2023

(btw, while investigating your original issue, I discovered that the CDN I use to host the main package repository changed their infrastructure and broke two things; they started setting an oversized header, which broke the original request for the manifest file, and they also are incorrectly handling redundant /s in paths, which caused all packages to 404; I have fixed the latter with a change to the manifest files, but the former required accepting larger response headers in the fetch tool)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants