V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
wxmomomowx
V2EX  ›  Linux

是什么把 Linux 卡的“死死的” 既然谷歌 Pixel 是刷机最方便的,同时安卓又是 Linux 内核来的

  •  
  •   wxmomomowx · 1 天前 · 4134 次点击
    为什么就没有 linux 可在 Pixel 上原是的跑呢?
    当然这不是 linux 的问题,就是想了解下,是什么原因呢?
    ubuntu-touch 也只支持到 Pixel 3a 而已
    43 条回复    2025-02-21 20:34:37 +08:00
    kokerkov
        1
    kokerkov  
       1 天前
    你是想说为啥没有可用的 linux 发行版吧?简单的说就是生态问题。你做了没软件适配,微软的 WP 就这么死的。手机上硬件又杂,社区没那么多人维护这么多设备。
    xtreme1
        2
    xtreme1  
       1 天前
    有两个驱动在 Android 上是在用户态跑的
    GPU
    蜂窝网络
    你能接受没有 3d 加速和蜂窝网络, 启动 GNU/Linux 没什么难的
    zjsxwc
        3
    zjsxwc  
       1 天前
    你可能需要的是 linux arm 开发板🤔
    wxmomomowx
        4
    wxmomomowx  
    OP
       1 天前
    @zjsxwc linux arm 开发板 没有电池,没有屏幕,没有摄像头 😄
    sir283
        5
    sir283  
       1 天前 via Android   ❤️ 5
    单纯搞得人少而已,Linux 有很多移动端的项目,比如 anbian 、UbuntuTouch 、postmarktOS 、hunterkali ,这些发行版都是专门对接安卓设备的,都能通过 rebuild 跑起来完整的 Linux 。

    再说了,安卓本身就是基于 Linux 内核跑的一个系统,你不能因为它 C 库使用的是 bionic 而不是 glibc ,就觉得它很 low ,就觉得它不行,安卓有自己的一套 C 库跟编译器,但是整体还是 Linux 那一套,你甚至可以通过 patchelf 工具把 LD_LIBRARY_PATH 改成安卓的/data/usr/lib ,将 Linux 程序的依赖库塞里面,然后就能直接跑 Linux 的程序了,只是图形界面方面需要单独适配一下。

    安卓上也有现成的工具,可以让你尽可能体验一个较为原生的 Linux ,那就是 termux ,适配的大量的常用 Linux 工具跟界面端。
    KeysPAN
        6
    KeysPAN  
       1 天前
    这些外设不是能配套买?
    lujiaxing
        7
    lujiaxing  
       1 天前   ❤️ 2
    一个是 Linux 开发者自身的傲慢, 导致 Linux 除了 Deepin 跟 Android 以外, 从来就没有往 "小白友好" 的方向努力过. Deepin 能做到今天这个地步, 很大程度上也都是因为信创的要求. 而在移动端设备上, 最大的需求就是操作简洁直接, 方便直观. 没人想给别人打个电话还要在 terminal 下敲一串命令的. 但是 Linuxer 们不管. GUI 就是 low, CLI 就是牛. 没几个人想做 GUI, 更没几个人有那个兴趣去适配成百上千种不同分辨率不同尺寸不同形态的屏幕.

    另一个是与 x86 兼容机不同, 这些 arm 架构的手机所用的各种内设都是特异性的. 一款 CPU 做出来就是给 arm 手机做的, 不会用在任何其他类型的设备上. 所以, 要么是没人给做非 android 驱动, 要么是做了不公开. 有 Linux 驱动的这些内设, 基本都是有同款产品 (或马甲产品) 在其他设备上运用的. 比如有些 CPU 既用于手机, 也用于路由器, 光猫之类的. 这种一般都是能拿到驱动的. 这种情况下, 适配 Linux / Windows 就好适配. 否则基本上都属于天方夜谭.

    比如 PostmarktOS, 到现在也没适配得了多少手机设备. 大部分设备就算是适配了, 也都是缺胳膊少腿的状态. 要么摄像头不能用, 要么充电口不能用...
    yulgang
        8
    yulgang  
       1 天前   ❤️ 6
    手机上能不能原生跑 Linux ,这个取决于手机厂商而不是 Linux 社区。x86 系统硬件抽象层使用动态 ACPI+SMBIOS 标准实现,ARM 是使用静态设备树依赖,这个厂商是闭源的。

    手机的 Bootloader 锁定、Secure Boot 限制、硬件驱动闭源等导致在手机上原生运行 Linux 是比较困难的。你可以看看 PostmarketOS 项目,项目为部分手机维护逆向出的设备树和内核补丁,仅覆盖小众机型且功能受限(如无法调用 GPU 加速等)。
    xinyu391
        9
    xinyu391  
       1 天前
    主要是驱动不好搞,如上提到的 GPU 和 手机网络 驱动, 虽然 Linux 内核千万行代码,大部分是驱动,
    但 Android 的驱动是为了 规避 GPL, 已经不再内核里面了。硬件厂家开发的驱动可以完全不开源。
    没了驱动,LInux 系统手机 性能就发挥不出来了。
    cheng6563
        10
    cheng6563  
       1 天前
    Android 的一大特点就是避免 Linux 的开源传染影响到驱动
    wxmomomowx
        11
    wxmomomowx  
    OP
       1 天前
    @xinyu391 GPU 驱动蛮重要的, 手机网络 驱动没有就没有,wifi 也不行? USB 通网?
    infun
        12
    infun  
       1 天前
    在 Termux 上跑的 Linux 不能满足需求吗
    wxmomomowx
        13
    wxmomomowx  
    OP
       1 天前
    @infun 嗯 听说 Termux 还有各种模式 连硬件都可以使用了。 但是感觉不是原生,就是差点意思
    levelworm
        14
    levelworm  
       1 天前 via Android
    话说,如果我想自己搭硬件做个手机或者平板出来,用 Linux 操作系统,除了嵌入式之外,还需要些啥知识?
    apuslilie
        15
    apuslilie  
       1 天前
    没驱动吧,谷歌估计也没想过给驱动,开发驱动要花钱的。
    james122333
        16
    james122333  
       1 天前 via Android
    驱动阿 这还用说
    james122333
        17
    james122333  
       1 天前 via Android   ❤️ 1
    @lujiaxing

    没这回事 说 gui low 的多的是连 cli 都用不好的人
    gui 还是有人做的 当然能用文字操控其实很不错
    我一直想鼠标编辑器之神应该很适合触控
    dawnh
        18
    dawnh  
       1 天前
    android 15 会在你的手机上给你一个可控的 Linux 环境。
    tomychen
        19
    tomychen  
       1 天前
    所以,你不应该问是什么原因让 linux 社区把 android 踢出社区吗?
    wxmomomowx
        20
    wxmomomowx  
    OP
       1 天前
    @tomychen 大致了解中,准备换安卓时。 就是安卓/谷歌 抖了个机灵 在许可上 应该在很多 linux 人不认同的情况下?
    tomychen
        21
    tomychen  
       1 天前
    所以很多时候并不是 linux (社区)在卡着什么... 而是很多商业公司行为真的好恶心,包括了 android 还有我最烦的 redhat...
    wxmomomowx
        22
    wxmomomowx  
    OP
       1 天前
    @tomychen 你看这贴标题,和内容 了吗?
    nevin47
        23
    nevin47  
       1 天前
    OP 想要的应该是这种吧? https://www.reddit.com/r/PixelFold/comments/1fcn4du/fullblown_linux_desktop_running_on_the_pixel_9/

    我看截图应该就是一个原生的 Desktop 跑在原生 Kernel 上。估计大佬自己折腾了一圈驱动,至少把显示、基本 IO 和触屏给搞定了


    要说为什么官方没有支持,说白了还是那堆硬件驱动没开放呗,厂家不开放 datasheet ,社区也没办法
    wxmomomowx
        24
    wxmomomowx  
    OP
       1 天前
    @nevin47 “ using Termux and Termux:X11” 应该不是原生吧?
    其实我也不是很清楚,Github 上读我 有 “Proot distro (Debian),Native ,Chroot (Debian)” 是 Termux Native 吧, 这个 Termux Native 和 native 有什么不同呢?
    nevin47
        25
    nevin47  
       1 天前
    @wxmomomowx #24 我仔细看了一下原贴,这个人还是复用了 Pixel 上安卓版本的 Kernel ,只是把 Debian 的发行版带的一些工具链给挪进去了,然后用 Termux 链接上了新终端环境。确实算不上你所需求的原生

    你希望的 Native ,由于 Pixel 能解 BootLoader ,所以理论上最大的工作量就是需要把驱动问题搞定,如果能搞定,那往上面随便跑个发行版应该都不是啥大问题。不过搞定驱动就是最大的问题,厂商不开放的情况下,社区是很难从无到有搞定的
    wxmomomowx
        26
    wxmomomowx  
    OP
       1 天前
    @nevin47 其实我也不很清楚我想想要什么, 不懂 Termux Native 和 native 有什么不同。 假如 Termux Native 就是我需要的呢?
    发帖的缘由是:安卓是 Linux 的内核,Linux 内核是开源的,Pixel 是刷机最方便的, 有个 LinuxOS 在 Pixel 机上跑,为什么这么难?(不懂里面的弯弯绕)
    vcn8yjOogEL
        27
    vcn8yjOogEL  
       1 天前
    硬件商不愿意给上游做自由驱动, Android 设备的内核版本通常是锁死的

    Linux 图形环境的人手和资金也不足, 连桌面端到现在都只是勉强可用
    zhouyin
        28
    zhouyin  
       1 天前
    @xinyu391
    现在安卓发行版还会完全包含最新版 linux 内核吗 ? 还是自己有了分支 没分支的话 怎么把自己的驱动塞进最新内核啊
    jqtmviyu
        29
    jqtmviyu  
       23 小时 12 分钟前
    搜下 PostmarketOS 移植 教程, 设备树 和 硬件驱动 是两个大头.
    TuxcraFt
        30
    TuxcraFt  
       22 小时 49 分钟前
    @lujiaxing
    有没有可能,你只要肯给钱,让他们做,他们就不傲慢了。doge
    12101111
        31
    12101111  
       22 小时 41 分钟前   ❤️ 1
    安卓是 AOSP 修改的 Android Common Kernel ,最近 Google 搞的 GKI 2.0 基本上在 Linux 的不稳定 Kernel API 之上搞了一套稳定 ABI 的接口,导致 GPL 的传染性失效,内核模块都是闭源的了。
    而且用户态的驱动更是只兼容 AOSP 的用户态,GNU/Linux 那一套根本不是一个路子,像声音、视频硬解、GPU 、照相/ISP 、Wi-Fi 、蓝牙、蜂窝,都是 AOSP 自己搞得一套东西,跑 GNU/Linux 必须重写一遍。
    但平心而论,GNU/Linux 的接口根本不足以支持现代移动系统的体验。
    zhouyin
        32
    zhouyin  
       22 小时 16 分钟前 via Android
    @12101111
    内核模块闭源啥意思?被 android 包含的 linux kwrnel 模块闭源 不可能吧
    levelworm
        33
    levelworm  
       21 小时 26 分钟前 via Android
    @12101111 #31
    看来如果想要依据 Linux 搞一套相对稳定的移动端解决方案,真的不是社区能解决得了。可惜 Windows Phone 没起来,不然多一个选项。iOS 还是太封闭了。
    mayli
        34
    mayli  
       21 小时 8 分钟前
    没人用,桌面笔记本尚且没人用 linux 发行版,手机很少了,你可以去玩,但是主流生态没有
    levelworm
        35
    levelworm  
       21 小时 4 分钟前 via Android
    @mayli #34
    个人开发用 Linux 还算普遍吧?不过和普通使用者相比肯定少多了。我目前换成 Ubuntu ,因为 Windows 体验越来越差了。
    liyafe1997
        36
    liyafe1997  
       21 小时 2 分钟前   ❤️ 1
    @xtreme1 不止,还有很多外设,比如各种传感器,甚至 Audio 子系统,还有摄像头
    liyafe1997
        37
    liyafe1997  
       20 小时 59 分钟前
    @xtreme1 所以有个项目叫 Halium https://docs.halium.org/en/latest/
    大概就是在 GNU/Linux 上通过 Container 启动一个精简的 Android (盲猜主要是把 Android 的底层 Service 和 HAL 那块启起来?),来利用厂商在安卓上的各种外设驱动,再通过一定的接口把这些东西暴露回 GNU/Linux ,实现在安卓手机上原生启动 GNU/Linux 并且能利用上安卓的各种外设驱动。

    https://halium.org/img/architecture.png

    有好多 Ubuntu Touch 就是基于这个项目来移植的。
    lujiaxing
        38
    lujiaxing  
       20 小时 55 分钟前
    @levelworm 你这比 "一个美国人觉得美国不够自由不够民主然后跑到了中国" 还离谱一些...
    levelworm
        39
    levelworm  
       20 小时 6 分钟前 via Android
    @lujiaxing #38
    没啥啊,体验好就行。我也不是没有 Windows 机器,但是实在不高兴和 update 和各种我不想要的东西作斗争了。Ubuntu 用起来还不错,够用,不需要折腾,就行了。
    james122333
        40
    james122333  
       11 小时 2 分钟前 via Android
    @liyafe1997

    近期我也有发现这项目 可惜依赖 systemd
    貌似还得有原厂 source code?
    oisadfo
        41
    oisadfo  
       4 小时 49 分钟前 via Android
    @wxmomomowx 幽兰笔记本
    ArchieMeng
        42
    ArchieMeng  
       2 小时 49 分钟前 via Android
    同学,你听说过 LinDroid 吗?🌚
    msg7086
        43
    msg7086  
       18 分钟前
    @lujiaxing #7
    > CLI 就是牛. 没几个人想做 GUI, 更没几个人有那个兴趣去适配成百上千种不同分辨率不同尺寸不同形态的屏幕.

    还不是因为做 GUI 累死累活不讨好。CLI 都有现成的约定实现方法,随便哪个语言都有 parse args 之类的东西一把梭就完事了,GUI 呢,得从 UI/UX 设计开始做,像你说的还要去适配不同尺寸不同分辨率的设备。我吃饱了没事做买 20 个不同的手机就为了做个开源软件啊。

    再加上以前都没什么好用的跨平台 GUI 库,Qt KDE GNOME 这一堆东西普通开发者上手又很困难。现在倒是好了,JavaScript 上桌面,大家写写前端就完事了,跨平台,门槛还低。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2764 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:52 · PVG 20:52 · LAX 04:52 · JFK 07:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.