【未完待续!!!】postmarketOS跃跃欲试-欲哭无泪。。。坐等ip4脱离Non-booting devices

啊哈

在Devices - postmarketOS中可以看到起码经过两人成功测试的设备,其中我看到了ipad和ipone

初始化

要求Linux操作系统!!!不支持虚拟机哈

安装pmbootstrap

更多详情参见Installing pmbootstrap

软件依赖要求

python >=3.6
openssl or alternative(like libressl)
Depending on the installation method:
    pip3 (possibly shipped with Python)
    git

自查一下

$ openssl
OpenSSL> ^C

$ python3 -V
Python 3.7.3

$ pip3 -V
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)

$ git --version
git version 2.20.1

开始安装

$ pip3 install --user pmbootstrap
$ pip3 install --user --upgrade pmbootstrap
$ pmbootstrap --version
1.29.2

辅助功能

命令按tab按键自动补全

$ pip3 install --user argcomplete
。。。Successfully installed argcomplete-1.12.2

然后在 ~/.bashrc中添加eval "$(register-python-argcomplete pmbootstrap)":

$ nano ~/.bashrc

【未完待续!!!】postmarketOS跃跃欲试-欲哭无泪。。。坐等ip4脱离Non-booting devices_第1张图片
然后重启终端或者用这个命令source ~/.bashrc

$ pmbootstrap pull
WARNING: Can't create log file in '/home/kearney/.local/var/pmbootstrap', path does not exist!
[20:34:21] ERROR: Please specify a config file, or run 'pmbootstrap init' to generate one.
[20:34:21] See also: 
Run 'pmbootstrap log' for details. Alternatively you can use '--details-to-stdout' to get more output, e.g. 'pmbootstrap --details-to-stdout init'.

????无法创建文件??那我就创建呗

$ nano /home/kearney/.local/var/pmbootstrap
$ pmbootstrap pull
INFO:root:ERROR: [Errno 20] Not a directory: '/home/kearney/.local/var/pmbootstrap/log.txt'
INFO:root:See also: <https://postmarketos.org/troubleshooting>
DEBUG:root:Traceback (most recent call last):
  File "/home/kearney/.local/lib/python3.7/site-packages/pmb/__init__.py", line 23, in main
    args = parse.arguments()
  File "/home/kearney/.local/lib/python3.7/site-packages/pmb/parse/arguments.py", line 788, in arguments
    pmb.helpers.args.init(args)
  File "/home/kearney/.local/lib/python3.7/site-packages/pmb/helpers/args.py", line 159, in init
    pmb.helpers.logging.init(args)
  File "/home/kearney/.local/lib/python3.7/site-packages/pmb/helpers/logging.py", line 70, in init
    setattr(args, "logfd", open(args.log, "a+"))
NotADirectoryError: [Errno 20] Not a directory: '/home/kearney/.local/var/pmbootstrap/log.txt'

Run 'pmbootstrap log' for details. Alternatively you can use '--details-to-stdout' to get more output, e.g. 'pmbootstrap --details-to-stdout init'.

不是目录???我擦,刚才不说建立文件吗。。。删除后重建目录呗

$ mkdir /home/kearney/.local/var/pmbootstrap -p
$ pmbootstrap pull
[22:18:36] ERROR: Please specify a config file, or run 'pmbootstrap init' to generate one.
[22:18:36] See also: <https://postmarketos.org/troubleshooting>
Run 'pmbootstrap log' for details.

朕不管了,官方就是这么跑的
【未完待续!!!】postmarketOS跃跃欲试-欲哭无泪。。。坐等ip4脱离Non-booting devices_第2张图片

$ pmbootstrap init

[22:19:57] Location of the 'work' path. Multiple chroots (native, device arch, device rootfs) will be created in there.
[22:19:57] Work path [/home/kearney/.local/var/pmbootstrap]: /home/kearney/Documents/code/postmarketOS
[22:24:04] Setting up the native chroot and cloning the package build recipes (pmaports)...
[22:24:04] Clone git repository: https://gitlab.com/postmarketOS/pmaports.git
正克隆到 '/home/kearney/Documents/code/postmarketOS/cache_git/pmaports'...
fatal: unable to access 'https://gitlab.com/postmarketOS/pmaports.git/': gnutls_handshake() failed: The TLS connection was non-properly terminated.
[22:24:22] NOTE: The failed command's output is above the ^^^ line in the log file: /home/kearney/Documents/code/postmarketOS/log.txt
[22:24:22] ERROR: Command failed: % git clone https://gitlab.com/postmarketOS/pmaports.git /home/kearney/Documents/code/postmarketOS/cache_git/pmaports
[22:24:22] See also: 
Run 'pmbootstrap log' for details.


$ git clone [email protected]:postmarketOS/pmaports.git /home/kearney/Documents/code/postmarketOS/cache_git/pmaports
正克隆到 '/home/kearney/Documents/code/postmarketOS/cache_git/pmaports'...
The authenticity of host 'gitlab.com (2606:4700:90:0:f22e:fbec:5bed:a9b9)' can't be established.
ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitlab.com,2606:4700:90:0:f22e:fbec:5bed:a9b9' (ECDSA) to the list of known hosts.
[email protected]: Permission denied (publickey,keyboard-interactive).
fatal: 无法读取远程仓库。

请确认您有正确的访问权限并且仓库存在。

emmm直接去下载压缩包。。清华镜像上虽然同步了但看了看都是apk和img。。下载好慢。。从gitee倒腾吧

$ git clone [email protected]:chen_jiaqi0812/pmaports.git /home/kearney/Documents/code/postmarketOS/cache_git/pmaports
正克隆到 '/home/kearney/Documents/code/postmarketOS/cache_git/pmaports'...
remote: Enumerating objects: 46232, done.
remote: Counting objects: 100% (46232/46232), done.
remote: Compressing objects: 100% (13212/13212), done.
remote: Total 46232 (delta 28677), reused 46232 (delta 28677), pack-reused 0
接收对象中: 100% (46232/46232), 21.12 MiB | 2.35 MiB/s, 完成.
处理 delta 中: 100% (28677/28677), 完成.

$ pmbootstrap init
[22:53:27] Location of the 'work' path. Multiple chroots (native, device arch, device rootfs) will be created in there.
[22:53:27] Work path [/home/kearney/Documents/code/postmarketOS]: /home/kearney/Documents/code/postmarketOS
[22:53:48] NOTE: pmaports path: /home/kearney/.local/lib/python3.7/site-packages/aports
[22:53:48] ERROR: pmaports: could not find remote name for URL 'https://gitlab.com/postmarketOS/pmaports.git' in git repository: /home/kearney/Documents/code/postmarketOS/cache_git/pmaports
[22:53:48] See also: <https://postmarketos.org/troubleshooting>
Run 'pmbootstrap log' for details.

哈???曲线都能被你发现,修改下git信息总可以吧

$ cd /home/kearney/Documents/code/postmarketOS/cache_git/pmaports
$  git remote -v
origin  [email protected]:chen_jiaqi0812/pmaports.git (fetch)
origin  [email protected]:chen_jiaqi0812/pmaports.git (push)

$ git remote remove origin
$ git remote -v
$ git remote add origin https://gitlab.com/postmarketOS/pmaports.git
$ pmbootstrap init
[22:58:49] Location of the 'work' path. Multiple chroots (native, device arch, device rootfs) will be created in there.
[22:58:49] Work path [/home/kearney/Documents/code/postmarketOS]: /home/kearney/Documents/code/postmarketOS
[22:58:56] NOTE: pmaports path: /home/kearney/Documents/code/postmarketOS/cache_git/pmaports
[22:58:56] NOTE: fix this by fetching your pmaports.git, e.g. with 'pmbootstrap pull'
[22:58:56] ERROR: Failed to read channels.cfg from 'origin/master' branch of your local pmaports clone
[22:58:56] See also: <https://postmarketos.org/troubleshooting>
Run 'pmbootstrap log' for details.

我传统美德

$ pmbootstrap pull
[22:59:48] NOTE: fix this by fetching your pmaports.git, e.g. with 'pmbootstrap pull'
[22:59:48] ERROR: Failed to read channels.cfg from 'origin/master' branch of your local pmaports clone
[22:59:48] See also: <https://postmarketos.org/troubleshooting>
Run 'pmbootstrap log' for details.

$ pmbootstrap init
[23:03:48] Location of the 'work' path. Multiple chroots (native, device arch, device rootfs) will be created in there.
[23:03:48] Work path [/home/kearney/Documents/code/postmarketOS]: 
[23:03:49] NOTE: pmaports path: /home/kearney/Documents/code/postmarketOS/cache_git/pmaports
[23:03:49] NOTE: fix this by fetching your pmaports.git, e.g. with 'pmbootstrap pull'
[23:03:49] ERROR: Failed to read channels.cfg from 'origin/master' branch of your local pmaports clone
[23:03:49] See also: <https://postmarketos.org/troubleshooting>
Run 'pmbootstrap log' for details.

$ git pull
remote: Enumerating objects: 1690, done.
remote: Counting objects: 100% (1690/1690), done.
remote: Compressing objects: 100% (382/382), done.
remote: Total 3613 (delta 1426), reused 1500 (delta 1285), pack-reused 1923
接收对象中: 100% (3613/3613), 1.69 MiB | 32.00 KiB/s, 完成.
处理 delta 中: 100% (1904/1904), 完成 336 个本地对象.
来自 https://gitlab.com/postmarketOS/pmaports
 * [新分支]            allwinner_netfilter                    -> origin/allwinner_netfilter
 * [新分支]            amazfish                               -> origin/amazfish
 * [新分支]            apk_discover                           -> origin/apk_discover
 * [新分支]            device/htc-flounder-mainline           -> origin/device/htc-flounder-mainline
 * [新分支]            device/iphone-sandcastle               -> origin/device/iphone-sandcastle
 * [新分支]            device/steamlink                       -> origin/device/steamlink
 * [新分支]            enhancement/rpi4-hardware-acceleration -> origin/enhancement/rpi4-hardware-acceleration
 * [新分支]            feature/android-rild                   -> origin/feature/android-rild
 * [新分支]            feature/kernel-panic-hook              -> origin/feature/kernel-panic-hook
 * [新分支]            feature/multi-dtb                      -> origin/feature/multi-dtb
 * [新分支]            feature/openarena                      -> origin/feature/openarena
 * [新分支]            feature/sailfish                       -> origin/feature/sailfish
 * [新分支]            feature/unity8-meta                    -> origin/feature/unity8-meta
 * [新分支]            feature/unity8_arches                  -> origin/feature/unity8_arches
 * [新分支]            fix-dtimg                              -> origin/fix-dtimg
 * [新分支]            fix/allwinner-source-symlinks          -> origin/fix/allwinner-source-symlinks
 * [新分支]            fix/imagemagick-corruption             -> origin/fix/imagemagick-corruption
 * [新分支]            geary_purism_fork                      -> origin/geary_purism_fork
 * [新分支]            gnome-contacts-importing               -> origin/gnome-contacts-importing
 * [新分支]            gpsd_pds                               -> origin/gpsd_pds
 * [新分支]            hammerhead-improvements                -> origin/hammerhead-improvements
 * [新分支]            hammerhead-venus                       -> origin/hammerhead-venus
 * [新分支]            kirigami-lowpower                      -> origin/kirigami-lowpower
 * [新分支]            lib-firmware-postmarketos              -> origin/lib-firmware-postmarketos
 * [新分支]            main_postmarketos-upgrade-gtk3         -> origin/main_postmarketos-upgrade-gtk3
 * [新分支]            master                                 -> origin/master
 * [新分支]            mms_purple                             -> origin/mms_purple
 * [新分支]            mygnuhealth                            -> origin/mygnuhealth
 * [新分支]            ondev-0.3.0                            -> origin/ondev-0.3.0
 * [新分支]            openrc-fix                             -> origin/openrc-fix
 * [新分支]            openrc-post-install-ci                 -> origin/openrc-post-install-ci
 * [新分支]            osk_sdl_0.62                           -> origin/osk_sdl_0.62
 * [新分支]            pine-a64lts-dsi                        -> origin/pine-a64lts-dsi
 * [新分支]            plasma-phone-vkbd                      -> origin/plasma-phone-vkbd
 * [新分支]            remove-unused-files                    -> origin/remove-unused-files
 * [新分支]            sxmo-eg25-manager                      -> origin/sxmo-eg25-manager
 * [新分支]            tinydm-elogind                         -> origin/tinydm-elogind
 * [新分支]            unmaintained                           -> origin/unmaintained
 * [新分支]            upgrade/kde_plasma-videoplayer         -> origin/upgrade/kde_plasma-videoplayer
 * [新分支]            v20.05                                 -> origin/v20.05
 * [新分支]            v20.05_l5_uboot_arm                    -> origin/v20.05_l5_uboot_arm
当前分支没有跟踪信息。
请指定您要合并哪一个分支。
详见 git-pull(1)git pull <远程> <分支>

如果您想要为此分支创建跟踪信息,您可以执行:

    git branch --set-upstream-to=origin/<分支> master

$ pmbootstrap init
[23:07:31] Location of the 'work' path. Multiple chroots (native, device arch, device rootfs) will be created in there.
[23:07:31] Work path [/home/kearney/Documents/code/postmarketOS]: 
[23:07:33] NOTE: pmaports path: /home/kearney/Documents/code/postmarketOS/cache_git/pmaports
[23:07:33] Choose the postmarketOS release channel.
[23:07:33] Available (2):
[23:07:33] * edge: Rolling release channel
[23:07:33] * stable: Stable release channel (first beta v20.05, does not have many devices yet)
[23:07:33] Channel [edge]: 2
[23:08:19] ERROR: Invalid channel specified, please type in one from the list above.
[23:08:19] Channel [edge]: first
[23:08:34] ERROR: Invalid channel specified, please type in one from the list above.
[23:08:34] Channel [edge]: v20.00
[23:08:47] ERROR: Invalid channel specified, please type in one from the list above.
[23:08:47] Channel [edge]: v20
[23:08:53] ERROR: Invalid channel specified, please type in one from the list above.
[23:08:53] Channel [edge]: master
[23:08:56] ERROR: Invalid channel specified, please type in one from the list above.
[23:08:56] Channel [edge]: iphone
[23:09:01] ERROR: Invalid channel specified, please type in one from the list above.
[23:09:01] Channel [edge]: 

???你这倒是给我list啊
【未完待续!!!】postmarketOS跃跃欲试-欲哭无泪。。。坐等ip4脱离Non-booting devices_第3张图片爬爬爬、一直犹豫不觉。。。后来想了下list above。。在上面列出来。。。赶紧回去看上头

[22:59:48] ERROR: Failed to read channels.cfg from 'origin/master' branch of your local pmaports clone

[23:07:33] Choose the postmarketOS release channel.
[23:07:33] Available (2):
[23:07:33] * edge: Rolling release channel
[23:07:33] * stable: Stable release channel (first beta v20.05, does not have many devices yet)
[23:07:33] Channel [edge]: 2

【未完待续!!!】postmarketOS跃跃欲试-欲哭无泪。。。坐等ip4脱离Non-booting devices_第4张图片哦吼,是我傻了,敲个edge就完事

[23:26:45] Channel [edge]: edge
[23:27:50] Choose your target device vendor (either an existing one, or a new one for porting).
[23:27:50] Available vendors (55): acer, alcatel, amazon, arrow, asus, bq, chuwi, cubietech, essential, fairphone, finepower, fly, fujitsu, google, gp, hisense, htc, huawei, infocus, jolla, leeco, lenovo, lg, medion, meizu, motorola, nextbit, nobby, nokia, oneplus, oppo, ouya, pine64, planet, purism, qemu, raspberry, samsung, semc, sharp, sony, surftab, t2m, tablet, teclast, tokio, trekstor, vernee, wexler, wiko, wileyfox, xiaomi, yu, zte, zuk
[23:27:50] Vendor [qemu]: 

然后我就去Devices - postmarketOS找ipone4的影子。。发现裂开
iphone位于Testing清单中,而4还在Non-booting devices清单中。。哭泣。。于是我这一晚上完了个寂寞

Referens

  • postmarketOS
  • Devices - postmarketOS
  • Installing pmbootstrap
  • 11 Open Source Mobile OS Alternatives To Android October 23, 2020 By Abhishek Prakash

你可能感兴趣的:(OS,linux,postmarketOS)