• 0 Posts
  • 97 Comments
Joined 1 year ago
cake
Cake day: June 10th, 2024

help-circle








  • It should work. The only practical issues are:

    • Usually, you will have to manually install the proprietary drivers (I think Fedora makes this relatively easy)
    • Wayland (the protocol most desktop environmentss use nowadays) support may be hit-and-miss at times (it will mostly work but it’s not as polished as with Intel/AMD), and Proton (the thing that lets you play Windows games) may not play well either.

    The ideological issue (which you probably don’t care about) is that it pretty much requires proprietary (non-FOSS) drivers which run in kernel space and so in theory have complete access to all data on your computer (but then so does Intel ME). This is the main reason I personally will never use NVidia cards.


  • While I’m usually all for Free software (as opposed to open-source software),

    His problem is the exact reason GPL was created.

    Nah, his problem is that Microsoft has much billions of dollars and so doesn’t give a fuck about any licenses on projects by small developers. They simply ignored even the terms of the MIT license (which required MS to keep the original copyright notice, which they didn’t). GPL would’ve done squat here since it also allows for forking (by design), but also because the US legal system is cooked, and people don’t have many rights left when it comes to a dispute with a corpo.





  • I’ve stolen a bunch of Git aliases from somewhere (I don’t remember where), here are the ones I ended up using the most:

    g=git
    ga='git add'
    gau='git add --update'
    gcfu='git commit --fixup'
    gc='git commit --verbose'
    'gc!'='git commit --verbose --amend'
    gcmsg='git commit --message'
    gca='git com
    gd='git diff'
    gf='git fetch'
    gl='git pull'
    gst='git status'
    gstall='git stash --all'
    gstaa='git stash apply'
    gp='git push'
    'gpf!'='git push --force-with-lease'
    grb='git rebase'
    grba='git rebase --abort'
    grbc='git rebase --continue'
    

    I also often use

    ls='eza'
    md='mkdir -p'
    mcd() { mkdir -p "$1" && cd "$1" }
    

    And finally some Nix things:

    b='nix build'
    bf='nix build -f'
    bb=nix build -f .'
    s='nix shell'
    sf='nix shell -f'
    snp='nix shell np#'
    d='nix develop'
    df='nix develop -f'
    


  • The “nix way” to handle this is actually to have all your dotfiles generated and “installed” by Nix as part of your NixOS config (via home-manager), and keep your NixOS config in a git repo that you then nixos-rebuild from (either with nixos-rebuild switch -I nixos-config=. or nixos-rebuild switch --flake ., depending on if you’re using flakes or not).

    So I’m kinda wary of doing it on an even more critical file

    Actually, configuration.nix is not critical to the functioning of the system at all; it is only read at “evaluation time”, i.e. when you are using nixos-rebuild. As long as it’s under a VCS (i.e. you won’t lose the contents by the time you want to nixos-rebuild again), you have nothing to worry about. You can ship a NixOS system without it (in fact that’s kind of the default). (unrelated but fun fact: you can also ship a NixOS system without Nix, it’s not actually needed for it to run!)



  • all you did was hammer out configs

    Yeah, that’s my point, all the software is there already, with a little bit of persuasion and glue it runs fairly well together. I’m not claiming I wrote actual drivers or whatever. What I did was figured out how to adapt the existing software to work on NixOS, so you can just take your desktop NixOS config, add a couple lines to it, and run it on the phone.

    Now you have a phone where half the hardware doesn’t work

    All hardware on Librem 5 worked with NixOS as I expected. The reason I’m not dailying it anymore is because the hardware kinda sucks, it’s outdated and slow. If I could get the same software stack running on more modern hardware I’d gladly use it. Perhaps the battery life could be improved if the power management was better, but that’s about my only complaint software-wise.

    Without a solid BASE, and a DRIVER LAYER, you won’t have a successful project to push a UI of anything

    I’m not sure what you mean by “solid BASE”. Do you want to rewrite all of the existing software that implements the “desktop Linux” userspace? Who would be doing this and why, when existing stuff mostly works?

    “DRIVER LAYER” in the FOSS world is just Linux. Drivers can live in the Linux tree or as small patches on top of it, with common open interfaces allowing compatibility between software and hardware. Just like they have been doing on the desktop for the past 30 years. The problem is plain: there are no open-source drivers or documentation for most phone hardware. Vendors don’t have this issue because they have access to private documentation and the sources of proprietary drivers. Writing FOSS drivers requires reverse-engineering the proprietary drivers, which is very resource-intensive. The proprietary drivers that are there lock you into a particular Linux version (usually a very particular Linux version, and there’s no way to solve this with any driver layer, at least without sacrificing performance and resource usage) and sometimes have proprietary interfaces with the userspace as well, which aren’t easy to write a compat layer for (if that’s what you’re proposing). And in any case, if you are fine with proprietary stuff running in EL1, why not just run Android?

    All this is completely orthogonal to making a DE on top of open standards, which is the point of open standards. For hardware that works with (mostly) mainline Linux, desktop userspace with plasma-mobile/phosh on top work well enough already. For hardware that doesn’t, adding support is a lot of work, not because of any issues with the DE or userspace, but because hardware manufacturers don’t publish the driver sources.


  • I’ve built and run Mobile NixOS on my OnePlus 6 (without modem, fingerprint or GPU accel support but meh) before it became officially supported (this was relatively easy, compared to most other vendors, but did require a bunch of hacking to get the Linux fork OnePlus provides to work with the Nix kernel compilation machinery and the NixOS userspace).

    I have also implemented initial support for running NixOS proper on Librem 5, packaged/fixed some stuff 1 2 3 (and more which didn’t make it to nixpkgs) to make it semi-daily-usable with Plasma Mobile, and daily-used it for a couple of weeks and then on and off for a couple of months.

    I know how mobile Linux works, from the bootloader to the kernel to the userspace to the DE to apps that run on it. I also have a cursory understanding of how Android works, enough to know that it’s not feasible to build “a base that replaces AOSP”, let alone make it work with vendor-provided driver blobs and proprietary Android apps (which is what you’re proposing?). What manufacturers actually do is take AOSP, patch it to fit their needs/work with their shitty drivers, and ship it on the device as a bunch of blobs because it’s Apache-licensed.