HNHacker News
TopNewBestAskShowJobs

jackpot51

1,529 karma · joined August 25, 2012

BDFL of Redox OS and Principal Engineer at System76.
submissionscomments
jackpot51··on System76 Will Ship Linux Laptops With Coreboot-Based Open-Source Firmware
That's like saying you can't call Linux open source because it bundles closed firmware for WiFi, for example...

The ME could certainly still be active, that is true, but with modern x86 platforms attempting to disable the ME or PSP using the documented method is the best that can be done.

A very large amount of the work the firmware does is done by open source code in either Coreboot, EDK2, or the System76 firmware applications. It is my opinion that this definitely does count as open firmware.

jackpot51··on System76 Will Ship Linux Laptops With Coreboot-Based Open-Source Firmware
Good to hear! If you want to play around with the firmware, you can still do so in virtualization using the qemu model.
jackpot51··on System76 Will Ship Linux Laptops With Coreboot-Based Open-Source Firmware
The laptops which we will be delivering with open firmware will require the FSP and Intel ME, with the Intel GOP driver being an optional component to enable graphics acceleration in UEFI. The ME is disabled by way of a HECI message early in the boot process, so there are no runtime ME components similar to using the HAP bit on older ME versions.

I will get https://www.coreboot.org/users.html updated as soon as possible.

jackpot51··on System76 Will Ship Linux Laptops With Coreboot-Based Open-Source Firmware
I am Jeremy Soller, Principal Engineer at System76.

Let me know if you have any questions. The source for this can be found here:

https://github.com/system76/firmware-open

There are instructions there for building and testing the firmware in QEMU, you do not need to have our hardware to try it out.

jackpot51··on Redox OS 0.5.0
LLVM, gcc, and rustc all work. The issue with cargo has been libgit2.
jackpot51··on Redox OS 0.5.0
Yes, Redox does run on bare metal. https://www.redox-os.org/screens/
jackpot51··on Redox OS 0.5.0
Pop!_OS is what I use, and I am part of the team working on it.
jackpot51··on Redox OS 0.5.0
It already runs netsurf. For something like Firefox, it is a matter of porting more packages like GTK+ and spidermonkey
jackpot51··on Redox OS 0.5.0
We were working on porting servo first
jackpot51··on Redox OS 0.5.0
Major projects at this time are orbtk, relibc, ion, and the cookbook.

There are a couple known security issues in the kernel regarding memory management.

One is that memory is granted in pages, so buffers passed to a scheme are over-mapped for the process handling it. You have to be root to handle a scheme, so it was not a high severity issue. The fix will be to copy to tail and end pages allocated to each context, so that it will not have access to extra data.

Another is that grants can be dropped by the owning process while in use by another process. This can lead to the re-allocation of said grants in the owning process, making memory accessible to the other users of the grant. More kernel work is needed to prevent schemes from leaking data in this manner.

jackpot51··on Redox OS 0.5.0
Thanks!
jackpot51··on Redox OS 0.5.0
https://gitlab.redox-os.org/redox-os/redox/-/jobs/10824/arti...

That is the one you need for a VM.

jackpot51··on Redox OS 0.5.0
I am the creator and lead developer of Redox OS. Let me know if you have any questions about this release!
jackpot51··on Redox – A Unix-Like Operating System Written in Rust
No, but it would be interesting to look into
jackpot51··on Redox – A Unix-Like Operating System Written in Rust
I am the creator of Redox. We have a somewhat POSIX compliant C library called relibc that supports existing Unix applications.
jackpot51··on Redox – A Unix-Like Operating System Written in Rust
I am the creator of Redox. We have a somewhat POSIX compliant C library called relibc that supports existing Unix applications.
jackpot51··on Redox – A Unix-Like Operating System Written in Rust
I am the creator of Redox, and I am glad to have this rundown. Yes, the design of the Redox kernel is such that the kernel can load any set of drivers from the initramfs, including being completely diskless.

In order to make this easy, ELF loading is part of the kernel. Otherwise, the ELF loader would have to be loaded somehow. How does QNX solve this issue? I could see there being a simpler executable format, or maybe the loader could do what the kernel does and modify its own paging tables.

With regards to the book, it was outlined by a contributor who is no longer part of the project, so it is likely to be restructured when there is time, and the sections may change.

There are drivers for what are considered to be critical features for any userspace inside the kernel. This mainly means the interrupt controller, but has included a serial console for kernel debugging. This will be an optional component in the future.

jackpot51··on System76 and LVFS
No. It is a blockchain, but is not distributed or mined. Firmware is built and signed with the signature of the previous build as part of the artifacts. This, in addition with a constraint that the timestamp can never move backwards, means builds must have a valid timeline and it becomes very difficult to hijack the publishing system.

Imagine you want to revert firmware for legitimate reasons. As the originator of the firmware, you could revert the source code and have a new build spawn that produces a valid artifact. With our system and with the typical system, this is possible.

Now imagine you are an attacker who wants to release an older firmware version, which potentially contains a vulnerability. You have access to the publishing system, but not the build system or signing key. With our system this is impossible, as consumers will not allow moving backwards to an older build. With the typical system, any signed firmware blob can be released at any time, meaning an older version can be made available without having to rebuild.

Our build system utilizes a firmware signing hardware device connected to the build server over serial with a strict protocol to ensure that leaking the key is not possible, even if the build server is compromised. In addition, the key is destroyed if this firmware signing device loses power (it does have a battery backup, but it disconnects if the case is opened), and we must deploy a new key in that event through software upgrades on client machines.

jackpot51··on System76 and LVFS
Blockchain, however muddied it is today, does have legitimate uses. In this case, we use it to enforce a valid timeline of builds with cryptography.
jackpot51··on System76 and LVFS
That is good to know. We will also need to unlock the flash descriptor, which is more proprietary code to reverse engineer.
jackpot51··on System76 and LVFS
It absolutely is locked, and needs to be unlocked and flashed while in EFI mode.
jackpot51··on System76 and LVFS
Kaby Lake and Kaby Lake R, for example
jackpot51··on System76 and LVFS
I never said anything of the sort, and would be surprised if you could provide any evidence of this.

Redox is not ready for production and I am not hesitant to admit so.

jackpot51··on System76 and LVFS
The OEM hardware does not have our custom firmware, our WiFi and drive selection, our testing, or our support.

Those things may not all be perfect, but they do make a big difference.

jackpot51··on System76 and LVFS
SPI is easy, and well understood. For firmware editing I often use an external flasher for updating the ROM, and use flashrom to do so. Accessing the SPI bus on the Intel chipset, from the computer itself, is undocumented and usually requires reverse engineering.
jackpot51··on System76 and LVFS
I am the engineer at System76 that has been working on the low-level firmware update procedure.

The only alternative is to reverse engineer the SPI flashing method. We have switched to using FPT, the Intel Flash Programming tool, on new models. This means that we need to reverse engineer the SPI update method, which is something the flashrom project has had success in doing for older Intel chipsets.

jackpot51··on Redox OS Release 0.4.1
Yes, one day. Netsurf is working on Redox now.
jackpot51··on Redox OS Release 0.4.1
This was true experimentation into the limits of Redox customization, certainly just as an Easter present.
jackpot51··on Relibc: C Library in Rust for Redox and Linux
I highly doubt that
jackpot51··on Relibc: C Library in Rust for Redox and Linux
Yes, that would be possible.
← PreviousPage 3 of 5Next →