https://wiki.postmarketos.org/api.php?action=feedcontributions&user=Robinp&feedformat=atompostmarketOS - User contributions [en]2024-03-28T09:48:16ZUser contributionsMediaWiki 1.39.6https://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_SIII_(samsung-i9300)&diff=2451Samsung Galaxy SIII (samsung-i9300)2018-02-10T06:41:38Z<p>Robinp: wikified</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy SIII<br />
| codename = i9300<br />
| releaseyear = 2012<br />
| originalsoftware = Android 4.0.4, 4.3<br />
| chipset = Exynos 4412 Quad<br />
| cpu = Quad-core 1.4 GHz Cortex-A9<br />
| gpu = Mali-400MP4<br />
| storage = 16/32/64GB, microSD: up to 64GB<br />
| memory = 1 GB<br />
<br />
}}<br />
<br />
See also [[Samsung Galaxy SIII LTE (samsung-i9305)]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Plasma_Mobile&diff=1695Plasma Mobile2017-11-27T09:35:14Z<p>Robinp: plasma is now in "master" branch</p>
<hr />
<div>{{Infobox interface<br />
| name = Plasma Mobile<br />
| image = File:Plasma-mobile.png<br />
| imagecaption = Plasma Mobile running in QEMU<br />
| graphics = KWin on Wayland or Xorg<br />
| toolkit = Qt 5<br />
}}<br />
<br />
== Overview ==<br />
<br />
The basic shell has been ported to postmarketOS, and can now be tested.<br />
<br />
To install it on your device run <code>./pmbootstrap.py init</code> and choose <code>plasma-mobile</code> in the interface section.<br />
<br />
Because compiling the entirety of KDE and Plasma may take a long time, a Git repository has been setup where pre-built packages can be downloaded for both x86_64 and armhf.<br />
Clone <code>https://github.com/puretryout/pmos-plasma-mobile</code> and copy the <code>armhf</code> and <code>x86_64</code> folders to <code>~/.local/var/pmbootstrap/packages/</code>, and copy the <code>config_apk_keys</code> folder to <code>~/.local/var/pmbootstrap/</code>. Afterwards run <code>./pmbootstrap.py index</code> from the root of your pmbootstrap installation.<br />
<br />
For the official KDE instructions on running Plasma Mobile you can use their website: https://community.kde.org/Plasma/Mobile/RunningApps<br />
<br />
''Packaging efforts have been documented [[Packaging-Plasma-Mobile|here]].''<br />
<br />
== Running ==<br />
<br />
For now Plasma requires a device with (basic) OpenGL support.<br />
<br />
After installation, the shell will automatically launch upon boot. If it doesn't, have a look at <code>/etc/profile.d/start_plasma.sh</code> and <code>/bin/startkwin.sh</code>.<br />
<br />
== Debugging ==<br />
<br />
By default Plasma and KWin don't log anything significant or useful for this project. To tell them to, create <code>~/.config/QtProject/qtlogging.ini</code> with the following content:<br />
<br />
<pre>[Rules]<br />
org.kde.kwindowsystem.info=true<br />
org.kde.kwindowsystem.warning=true<br />
org.kde.kwindowsystem.critical=true<br />
org.kde.kwindowsystem.debug=true<br />
kwin_core.info=true<br />
kwin_core.warning=true<br />
kwin_core.critical=true<br />
kwin_core.debug=true<br />
kwineffects.info=true<br />
kwineffects.warning=true<br />
kwineffects.critical=true<br />
kwineffects.debug=true<br />
libkwineffects.info=true<br />
libkwineffects.warning=true<br />
libkwineffects.critical=true<br />
libkwineffects.debug=true<br />
libkwinglutils.info=true<br />
libkwinglutils.warning=true<br />
libkwinglutils.critical=true<br />
libkwinglutils.debug=true<br />
libkwinxrenderutils.info=true<br />
libkwinxrenderutils.warning=true<br />
libkwinxrenderutils.critical=true<br />
libkwinxrenderutils.debug=true<br />
kwin_wayland_drm.info=true<br />
kwin_wayland_drm.warning=true<br />
kwin_wayland_drm.critical=true<br />
kwin_wayland_drm.debug=true<br />
kwin_wayland_framebuffer.info=true<br />
kwin_wayland_framebuffer.warning=true<br />
kwin_wayland_framebuffer.critical=true<br />
kwin_wayland_framebuffer.debug=true<br />
kwin_wayland_hwcomposer.debug=true<br />
kwin_wayland_backend.info=true<br />
kwin_wayland_backend.warning=true<br />
kwin_wayland_backend.critical=true<br />
kwin_wayland_backend.debug=true<br />
kwin_wayland_x11windowed.info=true<br />
kwin_wayland_x11windowed.warning=true<br />
kwin_wayland_x11windowed.critical=true<br />
kwin_wayland_x11windowed.debug=true<br />
kwin_platform_x11_standalone.info=true<br />
kwin_platform_x11_standalone.warning=true<br />
kwin_platform_x11_standalone.critical=true<br />
kwin_platform_x11_standalone.debug=true<br />
kwin_libinput.info=true<br />
kwin_libinput.warning=true<br />
kwin_libinput.critical=true<br />
kwin_libinput.debug=true<br />
kwin_tabbox.info=true<br />
kwin_tabbox.warning=true<br />
kwin_tabbox.critical=true<br />
kwin_tabbox.debug=true<br />
kwin_decorations.info=true<br />
kwin_decorations.warning=true<br />
kwin_decorations.critical=true<br />
kwin_decorations.debug=true<br />
kwin_scripting.info=true<br />
kwin_scripting.warning=true<br />
kwin_scripting.critical=true<br />
kwin_scripting.debug=true<br />
kwin_xkbcommon.info=true<br />
kwin_xkbcommon.warning=true<br />
kwin_xkbcommon.critical=true<br />
kwin_xkbcommon.debug=true<br />
kwin_qpa_plugin.info=true<br />
kwin_qpa_plugin.warning=true<br />
kwin_qpa_plugin.critical=true<br />
kwin_qpa_plugin.debug=true</pre><br />
<br />
You can read the log output with <code>logread -f</code>. Anything related to Plasma and KDE will have a <code>username:plasma-mobile</code> prefix.<br />
<br />
<br />
[[Category:Interface]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=LuneOS_UI&diff=1513LuneOS UI2017-11-17T09:33:49Z<p>Robinp: fixed typos, tidied</p>
<hr />
<div>{{Infobox interface<br />
| name = LuneOS UI<br />
| graphics = Wayland<br />
| toolkit = QT5<br />
| image = File:LuneOS Browser.png|Illustration image of LuneOS UI. Not running on pmOS<br />
}}<br />
<br />
User interface from LuneOS, a continuation of webOS (Palm/HP's discontinued and open sourced mobile operating system updated with Wayland and QT5). A UI port is under development.[https://github.com/postmarketOS/pmbootstrap/issues/629]<br />
<br />
[[Category:Interface]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Main_Page&diff=1242Main Page2017-10-27T23:14:37Z<p>Robinp: removed redundant comma</p>
<hr />
<div>[[File:Banner.jpg|frameless|400px|right]][http://postmarketos.org postmarketOS] is a touch-optimized and pre-configured [https://alpinelinux.org Alpine Linux]. It can be installed on smartphones and other devices. It is in a very early, experimental state and not usable for most people yet. [https://github.com/postmarketOS/pmbootstrap pmbootstrap] allows installation and development of pmOS.<br />
<br />
<!-- NOTE: when we change the bold text into headlines, for some reason they get collapsed in the mobile view and can *not* be un-collapsed. This only happens on the start page. If you know more, please write in: https://github.com/postmarketOS/wiki/issues --><br />
<br />
'''General information'''<br />
* [https://ollieparanoid.github.io/post/postmarketOS/ Introduction post] ''the utopic vision and goals''<br />
* [https://ollieparanoid.github.io/post/security-warning/ Security warning] ''about running unfixable outdated firmware software''<br />
* [[FAQ]] ''the recurring questions thing every project has''<br />
* [[Supported devices]] ''quite a few Android devices, plus the Flame and N900''<br />
* [[:Category:Interface|Supported interfaces]] ''the phone interfaces we are working on''<br />
* [[Milestones]] ''where individuals want to take the project''<br />
* [[Installation guide]] ''for devices which are already working''<br />
* [[Donate]] ''some individuals accept donations, the project as a whole does not''<br />
<br />
'''Development'''<br />
* [[Porting to a new device]] ''and general installation guide''<br />
* [[Troubleshooting]] ''the page to read when something isn't working''<br />
* [[Deviceinfo reference]] ''our work-in-progress device-specific file format''<br />
* [[Creating a package]] ''and how to recycle package recipes from other distributions''<br />
* [[Mainline kernel|The mainline kernel]] ''early work on getting device kernels into mainline Linux''<br />
* [[Development guide]] ''currently has a git hook for working on packages''<br />
<br />
'''Communication channels'''<br />
* [[Matrix and IRC]] ''live chat makes development easier''<br />
* [https://github.com/postmarketOS/pmbootstrap/issues Issuetracker] ''besides bugs, lots feature ideas and questions''<br />
* [https://reddit.com/r/postmarketOS Reddit] ''photos of devices running pmOS, blog posts, questions, official announcements''<br />
<br />
'''Wiki editing'''<br />
* [[Templates]] ''list of postmarketOS Wiki specific templates''<br />
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Formatting MediaWiki formatting] ''MediaWiki specific markup reference''<br />
* [https://www.mediawiki.org/wiki/Extension:SyntaxHighlight#Usage Syntax highlighting] ''display <code>shell-session</code> listings or source code''</div>Robinphttps://wiki.postmarketos.org/index.php?title=User-Interfaces&diff=1234User-Interfaces2017-10-27T06:25:08Z<p>Robinp: updated UI list</p>
<hr />
<div>At the moment [[Weston]] is the default UI for postmarketOS. It is simple and helps us to keep researching and developing the base of pmOS but in the future we will also support other more sophisticated and fancy User Interfaces.<br />
<br />
Here is a list showing examples and the on-going work on this topic.<br />
<br />
== User Interfaces ==<br />
<br />
=== Weston ===<br />
<br />
Project page: https://github.com/wayland-project/weston<br />
<br />
Default minimal interface based on XWayland. It allows developers to do &quot;simple&quot; things like running firefox and opening a terminal, plus testing the touchscreen and other peripherals.<br />
<br />
Photos:<br />
<br />
* [http://i.imgur.com/5XtSNzp.jpg Running Youtube in Weston]<br />
<br />
See '''[[Weston]]'''.<br />
=== Plasma Mobile ===<br />
<br />
Project page: https://plasma-mobile.org/<br />
<br />
Based on KDE.<br />
<br />
Work in Progress.<br />
<br />
For more information, see '''[[Plasma Mobile]]''' and issues [https://github.com/postmarketOS/pmbootstrap/issues/161 #161], [https://github.com/postmarketOS/pmbootstrap/issues/378 #378].<br />
<br />
=== Hildon ===<br />
<br />
Hildon is an application framework originally developed for mobile devices (PDAs, mobile phones, etc.) running the Linux operating system as well as the Symbian operating system. It was developed by Nokia for the Maemo operating system and is now a part of GNOME. It focuses on providing a finger-friendly interface. It is primarily a set of GTK+ extensions that provide mobile-device–oriented functionality, but also provides a desktop environment that includes a task navigator for opening and switching between programs, a control panel for user settings, and status bar, task bar and home applets. It is standard on the Maemo platform used by the Nokia Internet Tablets and the [https://github.com/postmarketOS/pmbootstrap/wiki/nokia-rx51-%28Nokia-N900%29 Nokia N900] smartphone.<br />
<br />
Hildon is based on GTK2 and there is a work in progress port to GTK3.<br />
<br />
For more information, see '''[[Hildon]]''' and PR [https://github.com/postmarketOS/pmbootstrap/pull/461 #461].<br />
===MATE===<br />
Desktop environment forked from the now-unmaintained code base of GNOME 2. See '''[[MATE]]'''.<br />
=== Others ===<br />
<br />
See issue [https://github.com/postmarketOS/pmbootstrap/issues/62 #62] for more information on other UIs that could be ported to postmarketOS. Some of these are:<br />
<br />
* [https://ubports.com/ ubports] (Fork of the discontinued Ubuntu Phone project)<br />
* mer/SailfishOS related:<br />
** [https://www.reddit.com/r/linux/comments/73amlm/so_how_open_is_sailfish_os_really/ Which components of SailfishOS are open?]<br />
** [https://git.merproject.org/mer-core/lipstick lipstick] ([https://www.reddit.com/r/linux/comments/6djq1z/postmarketos_aiming_for_a_10_year_lifecycle_for/di3yc7w/ relevant comment])<br />
** [https://github.com/qwazix/glacier-controls-spec glacier] ([https://www.reddit.com/r/linux/comments/6djq1z/postmarketos_aiming_for_a_10_year_lifecycle_for/di4iekw/ relevant comment])<br />
* sway<br />
** [http://i.imgur.com/rwCM4AY.jpg Photo]<br />
* '''[[LuneOS]]''' ([https://github.com/postmarketOS/pmbootstrap/issues/629 link]) (UI from continuation of webOS, HP's discontinued and open sourced mobile operating system with Wayland and QT5)<br />
* PDA interfaces, such as Open Palmtop Integrated Environment and GPE Palmtop Environment may be viable. Both suited to devices capable of stylus input, such as the Nokia N900 and Galaxy Note devices.<br />
<br />
*''[https://wiki.alpinelinux.org/wiki/Category:Desktop Other graphical interfaces supported by Alpine]'' should work to some extent on pmOS. These include GNOME3.<br />
<br />
== How to choose a different UI ==<br />
<br />
You have to configure <code>pmbootstrap</code> before generating the system image either by <code>pmbootstrap init</code> or <code>pmbootstrap config</code>:<br />
<br />
<pre>$ ./pmbootstrap init<br />
[19:09:14] Target device (either an existing one, or a new one for porting).<br />
[19:09:14] Available (31): asus-flo, asus-grouper, fairphone-fp2, htc-ace, htc-bravo, huawei-angler, huawei-y530, lg-d285, lg-d855, lg-dory, lg-hammerhead, lg-lenok, lg-mako, motorola-osprey, motorola-titan, nokia-rx51, oneplus-bacon, qemu-aarch64, qemu-amd64, qemu-vexpress, samsung-i9003, samsung-i9070, samsung-i9100, samsung-i9305, samsung-maguro, samsung-n7100, sony-amami, sony-aries, sony-castor-windy, sony-yuga, t2m-flame<br />
[19:09:14] Device [motorola-titan]: <br />
[19:09:16] Available user interfaces (3): <br />
[19:09:16] * weston: (Wayland) Reference compositor (demo, not a phone interface)<br />
[19:09:16] * hildon: (X11) Lightweight GTK+2 UI (optimized for single-touch touchscreens)<br />
[19:09:16] * xfce4: (X11) Lightweight GTK+2 desktop (stylus recommended)<br />
[19:09:16] * none: No graphical environment</pre><br />
<pre>$ ./pmbootstrap config ui weston</pre><br />
<br />
[[Category:Interface]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Plasma_Mobile&diff=1233Plasma Mobile2017-10-27T06:15:25Z<p>Robinp: removed vagueness</p>
<hr />
<div>{{Infobox interface<br />
| name = Plasma Mobile<br />
| image = File:Plasma-mobile.png<br />
| imagecaption = Plasma Mobile running in qemu<br />
| graphics = KWin on Wayland or Xorg<br />
| toolkit = QT5<br />
}}<br />
<br />
== Overview ==<br />
<br />
The basic shell has been ported to postmarketOS, and can now be tested.<br />
<br />
Currently, Plasma Mobile is not available from the "master" branch, to use it you will need to check out the "postmarketos-ui-plasma-mobile" branch from the git repository. Once it is considered stable it will be merged with the "master" branch (see [https://github.com/postmarketOS/pmbootstrap/issues/378 #378] for more info and progress).<br />
<br />
To install it on your device run <code>./pmbootstrap.py init</code> and choose <code>plasma-mobile</code> in the interface section.<br />
<br />
Because compiling the entirety of KDE and Plasma may take a long time, a Git repository has been setup where pre-built packages can be downloaded for both x86_64 and armhf.<br />
Clone <code>https://github.com/puretryout/pmos-plasma-mobile</code> and copy the <code>armhf</code> and <code>x86_64</code> folders to <code>~/.local/var/pmbootstrap/packages/</code>, and copy the <code>config_apk_keys</code> folder to <code>~/.local/var/pmbootstrap/</code>. Afterwards run <code>./pmbootstrap.py index</code> from the root of your pmbootstrap installation.<br />
<br />
For the official KDE instructions on running Plasma Mobile you can use their website: https://community.kde.org/Plasma/Mobile/RunningApps<br />
<br />
''Packaging efforts have been documented [[Packaging-Plasma-Mobile|here]].''<br />
<br />
== Running ==<br />
<br />
For now Plasma requires a device with (basic) OpenGL support.<br />
<br />
After installation, the shell will automatically launch upon boot. If it doesn't, have a look at <code>/etc/profile.d/start_plasma.sh</code> and <code>/bin/startkwin.sh</code>.<br />
<br />
== Debugging ==<br />
<br />
By default Plasma and kwin don't log anything significant or useful for this project. To tell them to, create <code>~/.config/QtProject/qtlogging.ini</code> with the following content:<br />
<br />
<pre>[Rules]<br />
org.kde.kwindowsystem.info=true<br />
org.kde.kwindowsystem.warning=true<br />
org.kde.kwindowsystem.critical=true<br />
org.kde.kwindowsystem.debug=true<br />
kwin_core.info=true<br />
kwin_core.warning=true<br />
kwin_core.critical=true<br />
kwin_core.debug=true<br />
kwineffects.info=true<br />
kwineffects.warning=true<br />
kwineffects.critical=true<br />
kwineffects.debug=true<br />
libkwineffects.info=true<br />
libkwineffects.warning=true<br />
libkwineffects.critical=true<br />
libkwineffects.debug=true<br />
libkwinglutils.info=true<br />
libkwinglutils.warning=true<br />
libkwinglutils.critical=true<br />
libkwinglutils.debug=true<br />
libkwinxrenderutils.info=true<br />
libkwinxrenderutils.warning=true<br />
libkwinxrenderutils.critical=true<br />
libkwinxrenderutils.debug=true<br />
kwin_wayland_drm.info=true<br />
kwin_wayland_drm.warning=true<br />
kwin_wayland_drm.critical=true<br />
kwin_wayland_drm.debug=true<br />
kwin_wayland_framebuffer.info=true<br />
kwin_wayland_framebuffer.warning=true<br />
kwin_wayland_framebuffer.critical=true<br />
kwin_wayland_framebuffer.debug=true<br />
kwin_wayland_hwcomposer.debug=true<br />
kwin_wayland_backend.info=true<br />
kwin_wayland_backend.warning=true<br />
kwin_wayland_backend.critical=true<br />
kwin_wayland_backend.debug=true<br />
kwin_wayland_x11windowed.info=true<br />
kwin_wayland_x11windowed.warning=true<br />
kwin_wayland_x11windowed.critical=true<br />
kwin_wayland_x11windowed.debug=true<br />
kwin_platform_x11_standalone.info=true<br />
kwin_platform_x11_standalone.warning=true<br />
kwin_platform_x11_standalone.critical=true<br />
kwin_platform_x11_standalone.debug=true<br />
kwin_libinput.info=true<br />
kwin_libinput.warning=true<br />
kwin_libinput.critical=true<br />
kwin_libinput.debug=true<br />
kwin_tabbox.info=true<br />
kwin_tabbox.warning=true<br />
kwin_tabbox.critical=true<br />
kwin_tabbox.debug=true<br />
kwin_decorations.info=true<br />
kwin_decorations.warning=true<br />
kwin_decorations.critical=true<br />
kwin_decorations.debug=true<br />
kwin_scripting.info=true<br />
kwin_scripting.warning=true<br />
kwin_scripting.critical=true<br />
kwin_scripting.debug=true<br />
kwin_xkbcommon.info=true<br />
kwin_xkbcommon.warning=true<br />
kwin_xkbcommon.critical=true<br />
kwin_xkbcommon.debug=true<br />
kwin_qpa_plugin.info=true<br />
kwin_qpa_plugin.warning=true<br />
kwin_qpa_plugin.critical=true<br />
kwin_qpa_plugin.debug=true</pre><br />
<br />
You can read the log output with <code>logread -f</code>. Anything related to Plasma and KDE will have a <code>username:plasma-mobile</code> prefix.<br />
<br />
<br />
[[Category:Interface]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Hildon&diff=1232Hildon2017-10-27T06:07:40Z<p>Robinp: removed redundant comma</p>
<hr />
<div>{{Infobox interface<br />
| name = Hildon<br />
| image = File:Hildon.png<br />
| imagecaption = Hildon running in QEMU<br />
| graphics = X11<br />
| toolkit = GTK+2, [https://talk.maemo.org/showthread.php?t=96800 WIP: GTK+3]<br />
}}<br />
<br />
This is the desktop from Maemo, which is a Debian-based distribution that originally ran on the N900.<br /><br />
We do not have a <code>postmarketos-ui-hildon</code> yet (but that should be easy to make, look at <code>postmarketos-ui-weston</code> for reference if you're interested, dear reader).<br />
<br />
=== Installation instructions ===<br />
<br />
In <code>pmbootstrap init</code>, select <code>hildon</code> as user interface, then do the installation as usually. When running postmarketOS, it should boot automatically into Hildon now!<br />
<br />
=== Running ===<br />
<br />
hildon-desktop can be run in a horizontal view only. To run programs from the terminal you need to <code>export DISPLAY=:0</code>. To set it by default edit <code>sudo nano /etc/profile</code>.<br />
<br />
=== Rotate screen using ''fbdev'' driver ===<br />
<br />
In order to rotate the screen using the framebuffer, you need to create this file:<br />
<br />
'''/etc/X11/xorg.conf.d/1-fbdev.conf'''<br />
<pre><br />
Section "Device"<br />
Identifier "LCD"<br />
Driver "fbdev"<br />
Option "Rotate" "CW"<br />
EndSection<br />
</pre><br />
<br />
reference: https://www.x.org/archive//X11R6.8.0/doc/fbdev.4.html<br />
<br />
=== Rotate screen using ''xrandr'' ===<br />
<br />
In order to rotate the screen using xrandr, you need to edit a file and put xrandr -o right or xrandr -o left:<br />
<br />
<pre><br />
sudo nano /etc/postmarketos-ui/xinitrc_hildon.sh<br />
</pre><br />
<pre><br />
xrandr -o right<br />
exec hildon-desktop<br />
</pre><br />
<br />
=== Calibrate the touchscreen ===<br />
<br />
After rotating the screen change/add a value in this file:<br />
<pre><br />
sudo nano /etc/udev/rules.d/90-android-touch-dev.rules<br />
</pre><br />
<pre><br />
ENV{ID_INPUT}="1", ENV{ID_INPUT_TOUCHSCREEN}="1", \<br />
# default ENV{LIBINPUT_CALIBRATION_MATRIX}="1 0 0 0 1 0"<br />
# Left - 90 degree clockwise ENV{LIBINPUT_CALIBRATION_MATRIX}="0 -1 1 1 0 0"<br />
# 180 degree clockwise ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0 1 0 -1 1"<br />
# Right - 270 degree clockwise ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1"<br />
# reflect along y axis ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0 1 1 0 0"<br />
</pre><br />
<br />
=== Performance issues ===<br />
Software rendering is slow. A possible fix is in the [[Software OpenGL]] article with TinyGLES and similar software.<br />
<br />
=== See also ===<br />
* https://github.com/postmarketOS/pmbootstrap/pull/461 (initial PR by NotKit with a screenshot running in Qemu)<br />
* https://github.com/fremantle-gtk3 (GTK+3 port, which we could package in the future)</div>Robinphttps://wiki.postmarketos.org/index.php?title=Glossary&diff=1186Glossary2017-10-22T21:34:10Z<p>Robinp: fixed grammar</p>
<hr />
<div>If you found a technical term related to this project that you had to research to understand, please add it here (alphabetically sorted).<br />
<br />
See also:<br />
<br />
* [https://wiki.alpinelinux.org/wiki/Alpine_Linux:Glossary Alpine Linux:Glossary]<br />
<br />
<br />
-----<br />
<br />
=== [https://alpinelinux.org/ Alpine Linux] ===<br />
<br />
The minimal Linux distribution which postmarketOS is based upon. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as closely as possible. Alpine developers do not see their distribution as &quot;GNU/Linux&quot;. That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.<br />
<br />
=== android-msm ===<br />
<br />
The Google-modified Linux version 3.4 kernel as base for all Qualcomm devices.<br />
<br />
=== apk ===<br />
<br />
One of the following:<br />
<br />
* Android app format<br />
* Alpine Linux package (also ends in <code>.apk</code>, but totally incompatible!), which are actually gzipped tar files<br />
* Alpine Linux package manager (apk)<br />
<br />
=== boot.img ===<br />
<br />
Android specific format, that usually consists of the Linux kernel (in modern versions with a <code>dtb</code> appended) and the <code>initramfs</code>. This file gets flashed to the boot or recovery partition of the Android device.<br />
<br />
'''Variations:'''<br />
<br />
* Some old Samsung devices: <code>boot.img</code> is just a kernel with a baked in <code>initramfs</code> ([[deviceinfo_flash_methods#Isorec_or_bootimg.3F|more]])<br />
* qcdt: <code>boot.img</code> has a <code>dtb</code> appended (instead of appending it to the kernel, [[deviceinfo_bootimg_qcdt|more]])<br />
<br />
=== dtb ===<br />
<br />
The binary device tree, this is a file containing a description of the hardware in the device, since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called <code>zImage-dtb</code> for some Android kernels (older Android kernels do not generate a <code>dtb</code> file at all and have hardcoded the information directly in the kernel source). In mainline kernels, <code>dtb</code> files for all supported boards are created at once.<br />
<br />
=== dri ===<br />
<br />
[https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure Direct Rendering Infrastructure], the modern Linux kernel API for drawing to the screen.<br />
<br />
=== drm/kvm ===<br />
<br />
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.<br />
<br />
=== FDE ===<br />
<br />
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with [https://en.wikipedia.org/wiki/LUKS luks], preventing the phone data from being retrieved without the password if the device is turned off. This can optionally be disabled with <code>--no-fde</code> for debugging purposes.<br />
<br />
=== fbdev/framebuffer ===<br />
<br />
[https://en.wikipedia.org/wiki/Linux_framebuffer Linux framebuffer] a (more or less?) deprecated API from the Linux kernel that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.<br />
<br />
=== IDA ===<br />
<br />
The proprietary software [https://en.wikipedia.org/wiki/IDA_Pro Interactive Disassembler] is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source [[firmware]]. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.<br />
<br />
=== lk (little kernel) ===<br />
<br />
[https://github.com/littlekernel/lk <code>lk</code>] is the kernel which fastboot runs on. At least all new-ish Qualcomm devices use <code>lk</code> and new-ish mediatek devices too<br />
<br />
=== OpenRC ===<br />
<br />
[https://en.wikipedia.org/wiki/OpenRC OpenRC] is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.<br />
<br />
=== Weston ===<br />
<br />
[https://github.com/wayland-project/weston Weston] is the reference implementation of a [https://en.wikipedia.org/wiki/Wayland_(display_server_protocol) Wayland] compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.<br />
<br />
We have chosen Weston as a demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as a demo and useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See [https://github.com/postmarketOS/pmbootstrap/issues/62 issue #62]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Glossary&diff=1172Glossary2017-10-22T10:58:29Z<p>Robinp: fixed grammar, wikified</p>
<hr />
<div>If you found a technical term related to this project, that you had to research to understand, please add it here (alphabetically sorted).<br />
<br />
See also:<br />
<br />
* [https://wiki.alpinelinux.org/wiki/Alpine_Linux:Glossary Alpine Linux:Glossary]<br />
<br />
<br />
-----<br />
<br />
=== [https://alpinelinux.org/ Alpine Linux] ===<br />
<br />
The minimal Linux distribution which postmarketOS is based upon. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as closely as possible. Alpine developers do not see their distribution as &quot;GNU/Linux&quot;. That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.<br />
<br />
=== android-msm ===<br />
<br />
The Google-modified Linux version 3.4 kernel as base for all Qualcomm devices.<br />
<br />
=== apk ===<br />
<br />
One of the following:<br />
<br />
* Android app format<br />
* Alpine Linux package (also ends in <code>.apk</code>, but totally incompatible!), which are actually gzipped tar files<br />
* Alpine Linux package manager (apk)<br />
<br />
=== boot.img ===<br />
<br />
Android specific format, that usually consists of the Linux kernel (in modern versions with a <code>dtb</code> appended) and the <code>initramfs</code>. This file gets flashed to the boot or recovery partition of the Android device.<br />
<br />
'''Variations:'''<br />
<br />
* Some old Samsung devices: <code>boot.img</code> is just a kernel with a baked in <code>initramfs</code> ([[deviceinfo_flash_methods#Isorec_or_bootimg.3F|more]])<br />
* qcdt: <code>boot.img</code> has a <code>dtb</code> appended (instead of appending it to the kernel, [[deviceinfo_bootimg_qcdt|more]])<br />
<br />
=== dtb ===<br />
<br />
The binary device tree, this is a file containing a description of the hardware in the device, since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called <code>zImage-dtb</code> for some Android kernels (older Android kernels do not generate a <code>dtb</code> file at all and have hardcoded the information directly in the kernel source). In mainline kernels, <code>dtb</code> files for all supported boards are created at once.<br />
<br />
=== dri ===<br />
<br />
[https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure Direct Rendering Infrastructure], the modern Linux kernel API for drawing to the screen.<br />
<br />
=== drm/kvm ===<br />
<br />
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.<br />
<br />
=== FDE ===<br />
<br />
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with [https://en.wikipedia.org/wiki/LUKS luks], preventing the phone data from being retrieved without the password if the device is turned off. This can optionally be disabled with <code>--no-fde</code> for debugging purposes.<br />
<br />
=== fbdev/framebuffer ===<br />
<br />
[https://en.wikipedia.org/wiki/Linux_framebuffer Linux framebuffer] a (more or less?) deprecated API from the Linux kernel that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.<br />
<br />
=== IDA ===<br />
<br />
The proprietary software [https://en.wikipedia.org/wiki/IDA_Pro Interactive Disassembler] is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source [[firmware]]. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.<br />
<br />
=== lk (little kernel) ===<br />
<br />
[https://github.com/littlekernel/lk <code>lk</code>] is the kernel which fastboot runs on. At least all new-ish Qualcomm devices use <code>lk</code> and new-ish mediatek devices too<br />
<br />
=== OpenRC ===<br />
<br />
[https://en.wikipedia.org/wiki/OpenRC OpenRC] is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.<br />
<br />
=== Weston ===<br />
<br />
[https://github.com/wayland-project/weston Weston] is the reference implementation of a [https://en.wikipedia.org/wiki/Wayland_(display_server_protocol) Wayland] compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.<br />
<br />
We have chosen Weston as a demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as a demo and useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See [https://github.com/postmarketOS/pmbootstrap/issues/62 issue #62]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Glossary&diff=1171Glossary2017-10-22T10:57:12Z<p>Robinp: tidied, fixed typos and spelling</p>
<hr />
<div>If you found a technical term related to this project, that you had to research to understand, please add it here (alphabetically sorted).<br />
<br />
See also:<br />
<br />
* [https://wiki.alpinelinux.org/wiki/Alpine_Linux:Glossary Alpine Linux:Glossary]<br />
<br />
<br />
-----<br />
<br />
=== [https://alpinelinux.org/ Alpine Linux] ===<br />
<br />
The minimal Linux distribution which postmarketOS is based upon. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as closely as possible. Alpine developers do not see their distribution as &quot;GNU/Linux&quot;. That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.<br />
<br />
=== android-msm ===<br />
<br />
The Google-modified Linux version 3.4 kernel as base for all Qualcomm devices.<br />
<br />
=== apk ===<br />
<br />
One of the following:<br />
<br />
* Android app format<br />
* Alpine Linux package (also ends in <code>.apk</code>, but totally incompatible!), which are actually gzipped tar files<br />
* Alpine Linux package manager (apk)<br />
<br />
=== boot.img ===<br />
<br />
Android specific format, that usually consists of the Linux kernel (in modern versions with a <code>dtb</code> appended) and the <code>initramfs</code>. This file gets flashed to the boot or recovery partition of the Android device.<br />
<br />
'''Variations:'''<br />
<br />
* Some old Samsung devices: <code>boot.img</code> is just a kernel with a baked in <code>initramfs</code> ([[deviceinfo_flash_methods#Isorec_or_bootimg.3F|more]])<br />
* qcdt: <code>boot.img</code> has a <code>dtb</code> appended (instead of appending it to the kernel, [[deviceinfo_bootimg_qcdt|more]])<br />
<br />
=== dtb ===<br />
<br />
The binary device tree, this is a file containing a description of the hardware in the device, since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called <code>zImage-dtb</code> for some Android kernels (older Android kernels do not generate a <code>dtb</code> file at all and have hardcoded the information directly in the kernel source). In mainline kernels, <code>dtb</code> files for all supported boards are created at once.<br />
<br />
=== dri ===<br />
<br />
[https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure Direct Rendering Infrastructure], the modern Linux kernel API for drawing to the screen.<br />
<br />
=== drm/kvm ===<br />
<br />
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.<br />
<br />
=== FDE ===<br />
<br />
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with luks, preventing the phone data to be retrieved without password if the device is turned off. This can optionally be disabled with <code>--no-fde</code> for debugging purposes.<br />
<br />
=== fbdev/framebuffer ===<br />
<br />
[https://en.wikipedia.org/wiki/Linux_framebuffer Linux framebuffer] a (more or less?) deprecated API from the Linux kernel that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.<br />
<br />
=== IDA ===<br />
<br />
The proprietary software [https://en.wikipedia.org/wiki/IDA_Pro Interactive Disassembler] is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source [[firmware]]. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.<br />
<br />
=== lk (little kernel) ===<br />
<br />
[https://github.com/littlekernel/lk <code>lk</code>] is the kernel which fastboot runs on. At least all new-ish Qualcomm devices use <code>lk</code> and new-ish mediatek devices too<br />
<br />
=== OpenRC ===<br />
<br />
[https://en.wikipedia.org/wiki/OpenRC OpenRC] is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.<br />
<br />
=== Weston ===<br />
<br />
[https://github.com/wayland-project/weston Weston] is the reference implementation of a [https://en.wikipedia.org/wiki/Wayland_(display_server_protocol) Wayland] compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.<br />
<br />
We have chosen Weston as a demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as a demo and useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See [https://github.com/postmarketOS/pmbootstrap/issues/62 issue #62]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Glossary&diff=1170Glossary2017-10-22T10:56:09Z<p>Robinp: tidied</p>
<hr />
<div>If you found a technical term related to this project, that you had to research to understand, please add it here (alphabetically sorted).<br />
<br />
See also:<br />
<br />
* [https://wiki.alpinelinux.org/wiki/Alpine_Linux:Glossary Alpine Linux:Glossary]<br />
<br />
<br />
-----<br />
<br />
=== [https://alpinelinux.org/ Alpine Linux] ===<br />
<br />
The minimal Linux distribution which postmarketOS is based upon. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as closely as possible. Alpine developers do not see their distribution as &quot;GNU/Linux&quot;. That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.<br />
<br />
=== android-msm ===<br />
<br />
The Google-modified Linux version 3.4 kernel as base for all Qualcomm devices.<br />
<br />
=== apk ===<br />
<br />
One of the following:<br />
<br />
* Android app format<br />
* Alpine Linux package (also ends in <code>.apk</code>, but totally incompatible!), which are actually gzipped tar files<br />
* Alpine Linux package manager (apk)<br />
<br />
=== boot.img ===<br />
<br />
Android specific format, that usually consists of the Linux kernel (in modern versions with a <code>dtb</code> appended) and the <code>initramfs</code>. This file gets flashed to the boot or recovery partition of the Android device.<br />
<br />
'''Variations:'''<br />
<br />
* Some old Samsung devices: <code>boot.img</code> is just a kernel with a baked in <code>initramfs</code> ([[deviceinfo_flash_methods#Isorec_or_bootimg.3F|more]])<br />
* qcdt: <code>boot.img</code> has a <code>dtb</code> appended (instead of appending it to the kernel, [[deviceinfo_bootimg_qcdt|more]])<br />
<br />
=== dtb ===<br />
<br />
The binary device tree, this is a file containing a description of the hardware in the device, since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called <code>zImage-dtb</code> for some Android kernels (older Android kernels do not generate a <code>dtb</code> file at all and have hardcoded the information directly in the kernel source). In mainline kernels, <code>dtb</code> files for all supported boards are created at once.<br />
<br />
=== dri ===<br />
<br />
[https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure Direct Rendering Infrastructure], the modern Linux kernel API for drawing to the screen.<br />
<br />
=== drm/kvm ===<br />
<br />
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.<br />
<br />
=== FDE ===<br />
<br />
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with luks, preventing the phone data to be retrieved without password if the device is turned off. This can optionally be disabled with <code>--no-fde</code> for debugging purposes.<br />
<br />
=== fbdev/framebuffer ===<br />
<br />
[https://en.wikipedia.org/wiki/Linux_framebuffer Linux framebuffer] a (more or less?) deprecated API from the Linux kernel that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.<br />
<br />
=== IDA ===<br />
<br />
The proprietary software [https://en.wikipedia.org/wiki/IDA_Pro Interactive Disassembler] is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source [[firmware]]. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.<br />
<br />
=== lk (little kernel) ===<br />
<br />
''[https://github.com/littlekernel/lk <code>lk</code>] is the kernel which fastboot runs on - at least all new-ish qualcomm devices are using <code>lk</code> and new-ish mediatek devices too''<br />
<br />
=== OpenRC ===<br />
<br />
[https://en.wikipedia.org/wiki/OpenRC OpenRC] is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.<br />
<br />
=== Weston ===<br />
<br />
[https://github.com/wayland-project/weston Weston] is the reference implementation of a [https://en.wikipedia.org/wiki/Wayland_(display_server_protocol) Wayland] compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.<br />
<br />
We have chosen Weston as a demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as a demo and useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See [https://github.com/postmarketOS/pmbootstrap/issues/62 issue #62]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Glossary&diff=1169Glossary2017-10-22T10:54:29Z<p>Robinp: /* dtb */</p>
<hr />
<div>If you found a technical term related to this project, that you had to research to understand, please add it here (alphabetically sorted).<br />
<br />
See also:<br />
<br />
* [https://wiki.alpinelinux.org/wiki/Alpine_Linux:Glossary Alpine Linux:Glossary]<br />
<br />
<br />
-----<br />
<br />
=== [https://alpinelinux.org/ Alpine Linux] ===<br />
<br />
The minimal Linux distribution which postmarketOS is based upon. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as closely as possible. Alpine developers do not see their distribution as &quot;GNU/Linux&quot;. That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.<br />
<br />
=== android-msm ===<br />
<br />
The Google-modified Linux version 3.4 kernel as base for all Qualcomm devices.<br />
<br />
=== apk ===<br />
<br />
One of the following:<br />
<br />
* Android app format<br />
* Alpine Linux package (also ends in <code>.apk</code>, but totally incompatible!), which are actually gzipped tar files<br />
* Alpine Linux package manager (apk)<br />
<br />
=== boot.img ===<br />
<br />
Android specific format, that usually consists of the Linux kernel (in modern versions with a <code>dtb</code> appended) and the <code>initramfs</code>. This file gets flashed to the boot or recovery partition of the Android device.<br />
<br />
'''Variations:'''<br />
<br />
* Some old Samsung devices: <code>boot.img</code> is just a kernel with a baked in <code>initramfs</code> ([[deviceinfo_flash_methods#Isorec_or_bootimg.3F|more]])<br />
* qcdt: <code>boot.img</code> has a <code>dtb</code> appended (instead of appending it to the kernel, [[deviceinfo_bootimg_qcdt|more]])<br />
<br />
=== dtb ===<br />
<br />
The binary device tree, this is a file containing a description of the hardware in the device, since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called <code>zImage-dtb</code> for some Android kernels (older Android kernels do not generate a <code>dtb</code> file at all and have hardcoded the information directly in the kernel source). In mainline kernels, <code>dtb</code> files for all supported boards are created at once.<br />
<br />
=== dri ===<br />
<br />
[https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure Direct Rendering Infrastructure], the modern Linux kernel API for drawing to the screen.<br />
<br />
=== drm/kvm ===<br />
<br />
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.<br />
<br />
=== FDE ===<br />
<br />
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with luks, preventing the phone data to be retrieved without password if the device is turned off. This can optionally be disabled with <code>--no-fde</code> for debugging purposes.<br />
<br />
=== fbdev/framebuffer ===<br />
<br />
[https://en.wikipedia.org/wiki/Linux_framebuffer Linux framebuffer] a (more or less?) deprecated API from the Linux kernel that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.<br />
<br />
=== IDA ===<br />
<br />
The proprietary software [https://en.wikipedia.org/wiki/IDA_Pro Interactive Disassembler] is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source [[firmware]]. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.<br />
<br />
=== lk (little kernel) ===<br />
<br />
''[https://github.com/littlekernel/lk <code>lk</code>] is the kernel which fastboot runs on - at least all new-ish qualcomm devices are using <code>lk</code> and new-ish mediatek devices too''<br />
<br />
=== OpenRC ===<br />
<br />
[https://en.wikipedia.org/wiki/OpenRC OpenRC] is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.<br />
<br />
=== Weston ===<br />
<br />
[https://github.com/wayland-project/weston Weston] is the reference implementation of a Wayland compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.<br />
<br />
We have chosen Weston as demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as demo useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See [https://github.com/postmarketOS/pmbootstrap/issues/62 issue #62]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Glossary&diff=1168Glossary2017-10-22T10:53:17Z<p>Robinp: /* boot.img */</p>
<hr />
<div>If you found a technical term related to this project, that you had to research to understand, please add it here (alphabetically sorted).<br />
<br />
See also:<br />
<br />
* [https://wiki.alpinelinux.org/wiki/Alpine_Linux:Glossary Alpine Linux:Glossary]<br />
<br />
<br />
-----<br />
<br />
=== [https://alpinelinux.org/ Alpine Linux] ===<br />
<br />
The minimal Linux distribution which postmarketOS is based upon. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as closely as possible. Alpine developers do not see their distribution as &quot;GNU/Linux&quot;. That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.<br />
<br />
=== android-msm ===<br />
<br />
The Google-modified Linux version 3.4 kernel as base for all Qualcomm devices.<br />
<br />
=== apk ===<br />
<br />
One of the following:<br />
<br />
* Android app format<br />
* Alpine Linux package (also ends in <code>.apk</code>, but totally incompatible!), which are actually gzipped tar files<br />
* Alpine Linux package manager (apk)<br />
<br />
=== boot.img ===<br />
<br />
Android specific format, that usually consists of the Linux kernel (in modern versions with a <code>dtb</code> appended) and the <code>initramfs</code>. This file gets flashed to the boot or recovery partition of the Android device.<br />
<br />
'''Variations:'''<br />
<br />
* Some old Samsung devices: <code>boot.img</code> is just a kernel with a baked in <code>initramfs</code> ([[deviceinfo_flash_methods#Isorec_or_bootimg.3F|more]])<br />
* qcdt: <code>boot.img</code> has a <code>dtb</code> appended (instead of appending it to the kernel, [[deviceinfo_bootimg_qcdt|more]])<br />
<br />
=== dtb ===<br />
<br />
The binary device tree, this is a file containing a description of the hardware in the device since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called <code>zImage-dtb</code> for some Android kernels (older Android kernels do not generate a <code>dtb</code> file at all and have hardcoded the information directly in the kernel source). In mainline kernels, <code>dtb</code> files for all supported boards are created at once.<br />
<br />
=== dri ===<br />
<br />
[https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure Direct Rendering Infrastructure], the modern Linux kernel API for drawing to the screen.<br />
<br />
=== drm/kvm ===<br />
<br />
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.<br />
<br />
=== FDE ===<br />
<br />
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with luks, preventing the phone data to be retrieved without password if the device is turned off. This can optionally be disabled with <code>--no-fde</code> for debugging purposes.<br />
<br />
=== fbdev/framebuffer ===<br />
<br />
[https://en.wikipedia.org/wiki/Linux_framebuffer Linux framebuffer] a (more or less?) deprecated API from the Linux kernel that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.<br />
<br />
=== IDA ===<br />
<br />
The proprietary software [https://en.wikipedia.org/wiki/IDA_Pro Interactive Disassembler] is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source [[firmware]]. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.<br />
<br />
=== lk (little kernel) ===<br />
<br />
''[https://github.com/littlekernel/lk <code>lk</code>] is the kernel which fastboot runs on - at least all new-ish qualcomm devices are using <code>lk</code> and new-ish mediatek devices too''<br />
<br />
=== OpenRC ===<br />
<br />
[https://en.wikipedia.org/wiki/OpenRC OpenRC] is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.<br />
<br />
=== Weston ===<br />
<br />
[https://github.com/wayland-project/weston Weston] is the reference implementation of a Wayland compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.<br />
<br />
We have chosen Weston as demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as demo useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See [https://github.com/postmarketOS/pmbootstrap/issues/62 issue #62]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Glossary&diff=1167Glossary2017-10-22T10:52:37Z<p>Robinp: /* android-msm */</p>
<hr />
<div>If you found a technical term related to this project, that you had to research to understand, please add it here (alphabetically sorted).<br />
<br />
See also:<br />
<br />
* [https://wiki.alpinelinux.org/wiki/Alpine_Linux:Glossary Alpine Linux:Glossary]<br />
<br />
<br />
-----<br />
<br />
=== [https://alpinelinux.org/ Alpine Linux] ===<br />
<br />
The minimal Linux distribution which postmarketOS is based upon. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as closely as possible. Alpine developers do not see their distribution as &quot;GNU/Linux&quot;. That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.<br />
<br />
=== android-msm ===<br />
<br />
The Google-modified Linux version 3.4 kernel as base for all Qualcomm devices.<br />
<br />
=== apk ===<br />
<br />
One of the following:<br />
<br />
* Android app format<br />
* Alpine Linux package (also ends in <code>.apk</code>, but totally incompatible!), which are actually gzipped tar files<br />
* Alpine Linux package manager (apk)<br />
<br />
=== boot.img ===<br />
<br />
Android specific format, that usually consists of the Linux kernel (in modern versions with a <code>dtb</code> appended) and the <code>initramfs</code>. This file gets flashed to the boot or recovery partition of the Android device.<br />
<br />
'''Variations:'''<br />
<br />
* Some old Samsungs: <code>boot.img</code> is just a kernel with a baked in <code>initramfs</code> ([[deviceinfo_flash_methods#Isorec_or_bootimg.3F|more]])<br />
* qcdt: <code>boot.img</code> has a <code>dtb</code> appended (instead of appending it to the kernel, [[deviceinfo_bootimg_qcdt|more]])<br />
<br />
=== dtb ===<br />
<br />
The binary device tree, this is a file containing a description of the hardware in the device since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called <code>zImage-dtb</code> for some Android kernels (older Android kernels do not generate a <code>dtb</code> file at all and have hardcoded the information directly in the kernel source). In mainline kernels, <code>dtb</code> files for all supported boards are created at once.<br />
<br />
=== dri ===<br />
<br />
[https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure Direct Rendering Infrastructure], the modern Linux kernel API for drawing to the screen.<br />
<br />
=== drm/kvm ===<br />
<br />
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.<br />
<br />
=== FDE ===<br />
<br />
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with luks, preventing the phone data to be retrieved without password if the device is turned off. This can optionally be disabled with <code>--no-fde</code> for debugging purposes.<br />
<br />
=== fbdev/framebuffer ===<br />
<br />
[https://en.wikipedia.org/wiki/Linux_framebuffer Linux framebuffer] a (more or less?) deprecated API from the Linux kernel that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.<br />
<br />
=== IDA ===<br />
<br />
The proprietary software [https://en.wikipedia.org/wiki/IDA_Pro Interactive Disassembler] is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source [[firmware]]. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.<br />
<br />
=== lk (little kernel) ===<br />
<br />
''[https://github.com/littlekernel/lk <code>lk</code>] is the kernel which fastboot runs on - at least all new-ish qualcomm devices are using <code>lk</code> and new-ish mediatek devices too''<br />
<br />
=== OpenRC ===<br />
<br />
[https://en.wikipedia.org/wiki/OpenRC OpenRC] is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.<br />
<br />
=== Weston ===<br />
<br />
[https://github.com/wayland-project/weston Weston] is the reference implementation of a Wayland compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.<br />
<br />
We have chosen Weston as demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as demo useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See [https://github.com/postmarketOS/pmbootstrap/issues/62 issue #62]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Glossary&diff=1166Glossary2017-10-22T10:52:19Z<p>Robinp: /* android-msm */</p>
<hr />
<div>If you found a technical term related to this project, that you had to research to understand, please add it here (alphabetically sorted).<br />
<br />
See also:<br />
<br />
* [https://wiki.alpinelinux.org/wiki/Alpine_Linux:Glossary Alpine Linux:Glossary]<br />
<br />
<br />
-----<br />
<br />
=== [https://alpinelinux.org/ Alpine Linux] ===<br />
<br />
The minimal Linux distribution which postmarketOS is based upon. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as closely as possible. Alpine developers do not see their distribution as &quot;GNU/Linux&quot;. That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.<br />
<br />
=== android-msm ===<br />
<br />
The Google provided Linux version 3.4 kernel as base for all Qualcomm devices.<br />
<br />
=== apk ===<br />
<br />
One of the following:<br />
<br />
* Android app format<br />
* Alpine Linux package (also ends in <code>.apk</code>, but totally incompatible!), which are actually gzipped tar files<br />
* Alpine Linux package manager (apk)<br />
<br />
=== boot.img ===<br />
<br />
Android specific format, that usually consists of the Linux kernel (in modern versions with a <code>dtb</code> appended) and the <code>initramfs</code>. This file gets flashed to the boot or recovery partition of the Android device.<br />
<br />
'''Variations:'''<br />
<br />
* Some old Samsungs: <code>boot.img</code> is just a kernel with a baked in <code>initramfs</code> ([[deviceinfo_flash_methods#Isorec_or_bootimg.3F|more]])<br />
* qcdt: <code>boot.img</code> has a <code>dtb</code> appended (instead of appending it to the kernel, [[deviceinfo_bootimg_qcdt|more]])<br />
<br />
=== dtb ===<br />
<br />
The binary device tree, this is a file containing a description of the hardware in the device since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called <code>zImage-dtb</code> for some Android kernels (older Android kernels do not generate a <code>dtb</code> file at all and have hardcoded the information directly in the kernel source). In mainline kernels, <code>dtb</code> files for all supported boards are created at once.<br />
<br />
=== dri ===<br />
<br />
[https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure Direct Rendering Infrastructure], the modern Linux kernel API for drawing to the screen.<br />
<br />
=== drm/kvm ===<br />
<br />
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.<br />
<br />
=== FDE ===<br />
<br />
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with luks, preventing the phone data to be retrieved without password if the device is turned off. This can optionally be disabled with <code>--no-fde</code> for debugging purposes.<br />
<br />
=== fbdev/framebuffer ===<br />
<br />
[https://en.wikipedia.org/wiki/Linux_framebuffer Linux framebuffer] a (more or less?) deprecated API from the Linux kernel that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.<br />
<br />
=== IDA ===<br />
<br />
The proprietary software [https://en.wikipedia.org/wiki/IDA_Pro Interactive Disassembler] is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source [[firmware]]. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.<br />
<br />
=== lk (little kernel) ===<br />
<br />
''[https://github.com/littlekernel/lk <code>lk</code>] is the kernel which fastboot runs on - at least all new-ish qualcomm devices are using <code>lk</code> and new-ish mediatek devices too''<br />
<br />
=== OpenRC ===<br />
<br />
[https://en.wikipedia.org/wiki/OpenRC OpenRC] is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.<br />
<br />
=== Weston ===<br />
<br />
[https://github.com/wayland-project/weston Weston] is the reference implementation of a Wayland compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.<br />
<br />
We have chosen Weston as demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as demo useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See [https://github.com/postmarketOS/pmbootstrap/issues/62 issue #62]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Glossary&diff=1165Glossary2017-10-22T10:51:50Z<p>Robinp: /* Alpine Linux */</p>
<hr />
<div>If you found a technical term related to this project, that you had to research to understand, please add it here (alphabetically sorted).<br />
<br />
See also:<br />
<br />
* [https://wiki.alpinelinux.org/wiki/Alpine_Linux:Glossary Alpine Linux:Glossary]<br />
<br />
<br />
-----<br />
<br />
=== [https://alpinelinux.org/ Alpine Linux] ===<br />
<br />
The minimal Linux distribution which postmarketOS is based upon. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as closely as possible. Alpine developers do not see their distribution as &quot;GNU/Linux&quot;. That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.<br />
<br />
=== android-msm ===<br />
<br />
The Google provided 3.4 kernel as base for all Qualcomm devices.<br />
<br />
=== apk ===<br />
<br />
One of the following:<br />
<br />
* Android app format<br />
* Alpine Linux package (also ends in <code>.apk</code>, but totally incompatible!), which are actually gzipped tar files<br />
* Alpine Linux package manager (apk)<br />
<br />
=== boot.img ===<br />
<br />
Android specific format, that usually consists of the Linux kernel (in modern versions with a <code>dtb</code> appended) and the <code>initramfs</code>. This file gets flashed to the boot or recovery partition of the Android device.<br />
<br />
'''Variations:'''<br />
<br />
* Some old Samsungs: <code>boot.img</code> is just a kernel with a baked in <code>initramfs</code> ([[deviceinfo_flash_methods#Isorec_or_bootimg.3F|more]])<br />
* qcdt: <code>boot.img</code> has a <code>dtb</code> appended (instead of appending it to the kernel, [[deviceinfo_bootimg_qcdt|more]])<br />
<br />
=== dtb ===<br />
<br />
The binary device tree, this is a file containing a description of the hardware in the device since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called <code>zImage-dtb</code> for some Android kernels (older Android kernels do not generate a <code>dtb</code> file at all and have hardcoded the information directly in the kernel source). In mainline kernels, <code>dtb</code> files for all supported boards are created at once.<br />
<br />
=== dri ===<br />
<br />
[https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure Direct Rendering Infrastructure], the modern Linux kernel API for drawing to the screen.<br />
<br />
=== drm/kvm ===<br />
<br />
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.<br />
<br />
=== FDE ===<br />
<br />
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with luks, preventing the phone data to be retrieved without password if the device is turned off. This can optionally be disabled with <code>--no-fde</code> for debugging purposes.<br />
<br />
=== fbdev/framebuffer ===<br />
<br />
[https://en.wikipedia.org/wiki/Linux_framebuffer Linux framebuffer] a (more or less?) deprecated API from the Linux kernel that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.<br />
<br />
=== IDA ===<br />
<br />
The proprietary software [https://en.wikipedia.org/wiki/IDA_Pro Interactive Disassembler] is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source [[firmware]]. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.<br />
<br />
=== lk (little kernel) ===<br />
<br />
''[https://github.com/littlekernel/lk <code>lk</code>] is the kernel which fastboot runs on - at least all new-ish qualcomm devices are using <code>lk</code> and new-ish mediatek devices too''<br />
<br />
=== OpenRC ===<br />
<br />
[https://en.wikipedia.org/wiki/OpenRC OpenRC] is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.<br />
<br />
=== Weston ===<br />
<br />
[https://github.com/wayland-project/weston Weston] is the reference implementation of a Wayland compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.<br />
<br />
We have chosen Weston as demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as demo useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See [https://github.com/postmarketOS/pmbootstrap/issues/62 issue #62]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Deviceinfo_reference&diff=1163Deviceinfo reference2017-10-22T10:16:28Z<p>Robinp: wikified</p>
<hr />
<div>Most of the variables in <code>deviceinfo</code> have self-explanatory names and are used both when you are building postmarketOS and during runtime (it is available at <code>/etc/deviceinfo</code>).<br />
<br />
All variables start with <code>deviceinfo_</code> in the file - this is omitted here to save space.<br />
<br />
== device ==<br />
<br />
{| class="wikitable sortable"<br />
!Variable<br />
!Description<br />
!Possibles values<br />
|-<br />
| <code>format_version</code><br />
| Used to distinguish between different versions of this file.<br />
| <code>0</code><br />
|-<br />
| <code>name</code><br />
| Device model (e.g. <code>Google Nexus 5</code>)<br />
|<br />
<br />
|-<br />
| <code>manufacturer</code><br />
| Device manufacturer (e.g. <code>LG</code>)<br />
|<br />
<br />
|-<br />
| <code>date</code><br />
| Release date of the device<br />
|<br />
<br />
|-<br />
| <code>keyboard</code><br />
| The device has a hardware keyboard.<br />
| <code>true</code>, <code>false</code><br />
|-<br />
| <code>nonfree</code><br />
| Components of the device, that only run with closed source firmware. We have to do more research on this topic and specify a list of possible values, for now all devices have <code>????</code> here.<br />
| <code>????</code><br />
|-<br />
| <code>dtb</code><br />
| Name of the [[Glossary#dtb|device tree blob]] file. This will be necessary for the [[Mainline kernel]]; see also [https://github.com/postmarketOS/pmbootstrap/issues/91 #91]. This can be left blank during initial porting.<br />
|<br />
<br />
|-<br />
| <code>modules_initfs</code><br />
| Kernel modules to include in the initramfs image. Note: modules to be loaded ''after'' the initramfs can be specified like in a <code>modules-load.conf</code> ([https://github.com/postmarketOS/pmbootstrap/tree/master/aports/device/device-samsung-i9070 example]).<br />
|<br />
<br />
|-<br />
| <code>external_disk</code><br />
| Does the device have an sdcard or other external storage medium?<br />
| <code>true</code>, <code>false</code><br />
|-<br />
| <code>external_disk_install</code><br />
| Allow installing to sdcard<br />
| <code>true</code>, <code>false</code><br />
|-<br />
| <code>flash_methods</code><br />
| Method used to flash the device ([[deviceinfo_flash_methods |more info]])<br />
|<br />
|-<br />
| <code>arch</code><br />
| Device architecture, must be supported by Alpine Linux<br />
| <code>armhf</code>, <code>aarch64</code><br />
<br />
|-<br />
| <code>dev_touchscreen</code><br />
| Path to the touchscreen device (needed for initramfs on-screen-keyboard, [[deviceinfo_dev_touchscreen|more info]])<br />
| e.g. <code>/dev/input/event3</code><br />
|-<br />
| <code>dev_keyboard</code><br />
| Path to the keyboard device, if your device has any (needed for initramfs password unlocking)<br />
| e.g. <code>/dev/input/event1</code> <br />
|-<br />
| <code>msm_refresher</code><br />
| Enable msm-fb-refresher for devices that only implement double buffering (graphics).<br />
| <code>true</code>,<code>false</code>(default)<br />
|-<br />
| <code>swap_size_recommended</code><br />
| Set recommended swap file size for device. If unset, no swap file will be created for the device.<br />
| Integer, in MB.<br />
|}<br />
<br />
=== flash ===<br />
<br />
These are used for flashing and booting the device, and most of them are fastboot specific. '''[https://github.com/postmarketOS/pmbootstrap/wiki/How-to-find-device-specific-information#fastboot-bootimg-flash-offsets Here is a guide on how to get these values for a specific Android device (by extracting the <code>boot.img</code>)]'''<br />
<br />
{| class="wikitable sortable"<br />
! Variable<br />
! Description<br />
! Possible values<br />
|-<br />
| <code>flash_offset_kernel</code><br />
| Kernel offset used for flashing<br />
|<br />
<br />
|-<br />
| <code>flash_offset_ramdisk</code><br />
| Ramdisk offset used for flashing<br />
|<br />
<br />
|-<br />
| <code>flash_offset_second</code><br />
| Used for flashing<br />
|<br />
<br />
|-<br />
| <code>flash_offset_tags</code><br />
| Used for flashing<br />
|<br />
<br />
|-<br />
| <code>flash_offset_base</code><br />
| Used for flashing<br />
| Default: <code>0x10000000</code><br />
|-<br />
| <code>flash_pagesize</code><br />
| Page size<br />
| Usually <code>2048</code><br />
|-<br />
| <code>flash_sparse</code><br />
| Set this to true if your device expects a [https://github.com/postmarketOS/pmbootstrap/wiki/Troubleshooting#invalid-sparse-file-format-at-header-magi sparse system image] flashed<br />
|<br />
<br />
|-<br />
| <code>kernel_cmdline</code><br />
| Kernel command line<br />
|<br />
<br />
|-<br />
| <code>generate_bootimg</code><br />
| Set this to true for fastboot device, so the <code>mkinitfs</code> command will generate a <code>boot.img</code> file after creating the <code>initfs</code>. Add <code>mkbootimg</code> as dependency to your device's APKBUILD!<br />
| <code>true, false</code><br />
|-<br />
| <code>bootimg_qcdt</code><br />
| Append <code>dtb</code> file to <code>boot.img</code> ([[deviceinfo_bootimg_qcdt|more info]])<br />
|<br />
|-<br />
| <code>generate_legacy_uboot_initfs</code><br />
| For the [https://github.com/postmarketOS/pmbootstrap/wiki/nokia-rx51-%28Nokia-N900%29 N900], we use a legacy version of the [https://en.wikipedia.org/wiki/Das_U-Boot uboot] bootloader right now. When setting this variable to true, the initramfs will generate an uboot legacy compatible initramfs file. Modern versions of uboot can load regular initramfs files.<br />
| <code>true, false</code><br />
<br />
|-<br />
| <code>heimdall_partition_kernel</code><br />
| Only relevant for [[Deviceinfo_flash_methods|heimdall]] flash methods, the partition where the kernel or boot.img will be stored.<br />
| default: <code>"KERNEL"</code><br />
|-<br />
| <code>heimdall_partition_initfs</code><br />
| Only relevant for the [[Deviceinfo_flash_methods#heimdall-isorec|heimdall-isorec]] flash method, the partition where the initramfs will be stored.<br />
| default: <code>"RECOVERY"</code><br />
|-<br />
| <code>heimdall_partition_system</code><br />
| Only relevant for [[Deviceinfo_flash_methods|heimdall]] flash methods, the partition where the system image will be stored (see also: [[partition-layout]]).<br />
| default: <code>"SYSTEM"</code><br />
|}<br />
<br />
== weston ==<br />
<br />
{{note|We used to duplicate options from the [https://manpages.debian.org/unstable/weston/weston.ini.5.en.html weston.ini], but we stopped that. [https://github.com/postmarketOS/pmbootstrap/pull/739] If you need to set weston specific options from your device (such as the output backend or the keymap), please add a weston.ini file to your aport [https://github.com/postmarketOS/pmbootstrap/blob/e7dfe9b9041f0c2ec94295df16afeeec1d9bafd8/aports/device/device-nokia-rx51/APKBUILD#L66-L70].}}<br />
<br />
{| class="wikitable sortable"<br />
! Variable<br />
! Description<br />
! Possibles values<br />
|-<br />
| <code>weston_pixman_type</code><br />
| (optional) Use it as a workaround for [https://github.com/postmarketOS/pmbootstrap/issues/54 issue #54].<br />
| mostly <code>&quot;2&quot;</code> for ARGB, [https://github.com/postmarketOS/pmbootstrap/issues/141#issuecomment-314211363 all values]<br />
|}<br />
<br />
== splash ==<br />
<br />
{| class="wikitable sortable"<br />
! Variable<br />
! Description<br />
! Possibles values<br />
|-<br />
| <code>screen_width</code><br />
| The width of the display<br />
| 800, 720, 1440... anything really<br />
|-<br />
| <code>screen_height</code><br />
| The height of the display<br />
| 1280, 2560... other<br />
|}</div>Robinphttps://wiki.postmarketos.org/index.php?title=Porting_to_a_new_device&diff=1162Porting to a new device2017-10-22T06:54:33Z<p>Robinp: /* Device-specific package */</p>
<hr />
<div>=== Introduction ===<br />
{{note|Please use a spare device for experimenting with postmarketOS! You won't be able to use typical phone features right now, such as making calls, writing SMS, using Wi-Fi, using Bluetooth. Although everything has been tested, there is no guarantee that you won't break your device.}}<br />
<br />
If you have ''any'' questions, feel free to ask in the [[Matrix and IRC|matrix/irc channel]] or [https://github.com/postmarketOS/pmbootstrap/issues bug tracker]! This is a wiki, so '''please adjust everything that isn't detailed enough or would have helped you with porting.''' Please write your porting '''progress to the [[Devices]] page''', even if you didn't get very far. This helps to determine what can be improved to make porting easier. We even have a [[Help:Device Page|tutorial for that]].<br />
<br />
=== Initialization ===<br />
<br />
* Clone the repository: <code>git clone https://github.com/postmarketOS/pmbootstrap</code><br />
* Run <code>./pmbootstrap.py init</code> and configure for a new device<br />
* Open a second terminal and run <code>./pmbootstrap.py log</code> to get detailed output from the following pmbootstrap commands<br />
<br />
=== Device-specific package ===<br />
<br />
Create an appropriate <code>device-$vendor-$name</code> package in the <code>aports/device</code> folder:<br />
<br />
<pre class="shell">cp -r aports/device/device-samsung-i9100 aports/device/device-vendor-name</pre><br />
The important files are <code>APKBUILD</code> (''build recipe, [[Glossary#apk|apk is an Alpine Linux term]]'') and [[deviceinfo]]. Please adjust them as necessary. For more info, see [[How to find device specific information]], particularly the section "Fastboot (boot.img) flash offsets".<br />
<br />
Note that if your device uses '''fastboot''' or [https://wiki.postmarketos.org/wiki/Deviceinfo_flash_methods#Isorec_or_bootimg.3F '''heimdall-bootimg'''], you will need to add <code>mkbootimg</code> to the <code>depends=</code> list in the <code>APKBUILD</code>, and the following variables at the end of <code>deviceinfo</code> ([https://wiki.postmarketos.org/wiki/How_to_find_device_specific_information#Fastboot_.28boot.img.29_flash_offsets guide], [https://github.com/postmarketOS/pmbootstrap/blob/eddf81a730b68076e59b66f2a6163e6587b7fc84/aports/device/device-sony-yuga/deviceinfo#L22-L28 example]):<br />
<br />
<pre class="shell"># Fastboot related<br />
deviceinfo_generate_bootimg=&quot;true&quot;<br />
deviceinfo_flash_offset_base=&quot;&quot;<br />
deviceinfo_flash_offset_kernel=&quot;&quot;<br />
deviceinfo_flash_offset_ramdisk=&quot;&quot;<br />
deviceinfo_flash_offset_second=&quot;&quot;<br />
deviceinfo_flash_offset_tags=&quot;&quot;<br />
deviceinfo_flash_pagesize=&quot;&quot;</pre><br />
A post-install script can be chttps://wiki.postmarketos.org/wiki/How_to_find_device_specific_information#Fastboot_.28boot.img.29_flash_offsetsreated to append device-specific partitions to <code>/etc/fstab</code>. See [https://github.com/postmarketOS/pmbootstrap/blob/ed8fba54c31c3ccd1f1f59c7194fffecc63ca7c4/aports/device/device-nokia-rx51/device-nokia-rx51.post-install#L12 the post-install script] for <code>device-nokia-rx51</code> for an example.<br />
<br />
Once the device package is configured, you will need to update checksums in the APKBUILD to match the new configuration files. You can do that by running:<br />
<br />
<pre class="shell">./pmbootstrap.py checksum device-$vendor-$name</pre><br />
Now, you can build your device package with:<br />
<br />
<pre class="shell">./pmbootstrap.py build device-$vendor-$name</pre><br />
<br />
=== Kernel package ===<br />
<br />
While the goal is to use a mainline kernel for all devices in the long run, this certainly can not be done in one step when porting to a new device. Create a new package for the kernel by copying the kernel package of the most similar device with an existing port. For example:<br />
<br />
<pre class="shell">cp -r aports/device/linux-lg-mako aports/device/linux-vendor-name</pre><br />
Now edit the <code>APKBUILD</code>. Replace the kernel source with a kernel suitable for your device. For Android devices we usually use the [https://wiki.postmarketos.org/wiki/How_to_find_device_specific_information#LineageOS_kernel_source_repository kernels from LineageOS]. Copy the right [https://wiki.postmarketos.org/wiki/How_to_find_device_specific_information#Kernel_defconfig_.28default_config.29 default config] from your kernel's source folder into your new <code>linux-...</code> folder and adjust its file name. Please adjust the comments in the <code>APKBUILD</code> file about which defconfig you have used, and which modifications you have made. Please also adjust the <code>pkgver</code>/<code>pkgrel</code> to match the [https://stackoverflow.com/a/12151781 kernel version].<br />
<br />
Next, generate the checksum for the kernel package files using:<br />
<br />
<pre class="shell">./pmbootstrap.py checksum linux-$vendor-$name</pre><br />
Now, before building the kernel itself, it is required to run the kernel's [https://en.wikipedia.org/wiki/Menuconfig menuconfig] with:<br />
<br />
<pre class="shell">./pmbootstrap.py menuconfig linux-$vendor-$name</pre><br />
The first time, you run the menuconfig command, you will get prompted about new config options, that the default config does not address (in Android's build process, these options get ignored, but in pmOS they must be specified). Please accept the defaults it presents.<br/>After that, you will be shown a menu, in which the [https://wiki.postmarketos.org/wiki/Kernel_configuration#Required required kernel options] must be set for pmOS to work.<br />
<br />
The easiest way is getting out of the menu with "Exit", and confirming when asked whether the changes should be saved. Then run the following to see what needs to be changed in your config:<br />
<pre class="shell">./pmbootstrap.py kconfig_check</pre><br />
Adjust your kernel config until <code>kconfig_check</code> doesn't complain anymore.<br />
<br />
Once you have configured the kernel, build it (the arch specification is necessary here, because we're really compiling code - the device package just contains text/scripts and no native code, therefore it is architecture independent):<br />
<br />
<pre class="shell">./pmbootstrap.py build linux-$vendor-$name --arch=armhf</pre><br />
''NOTE'': The <code>linux-lg-mako</code> package has a patch called <code>gpu-msm-fix-gcc5-compile.patch</code>, to fix compiler errors with GCC6. If your kernel doesn't need that specific patch (if it does not apply correctly, as in [https://github.com/postmarketOS/pmbootstrap/issues/14#issuecomment-305083767 this] report), just remove the file, and remove it from the <code>source=</code> line in the <code>APKBUILD</code>.<br />
<br />
Important: You will need to '''patch your kernel to get it working with GCC6''' - read [[how to create a patch when packaging software]] for instructions.<br />
<br />
If your manufacturer has not released the source code of your kernel and you don't want to give up on porting your device, you can try the [[Using-prebuilt-kernels|prebuilt kernels]] approach.<br />
<br />
==== Appended device trees ====<br />
<br />
Some devices need an appended device tree to boot. In LineageOS kernels this will mean that beside the generated <code>zImage</code> there is also a <code>zImage-dtb</code> file. To use this you have to enable in your kernel appending the <code>dtb</code> as in [https://github.com/postmarketOS/pmbootstrap/blob/51af907534a1518c22f78c006ae880d495ec3985/aports/linux-lg-hammerhead/config-lg-hammerhead.armhf#L674 lg-hammerhead] and change the package step in the build script to use the <code>dtb</code> file:<br />
<br />
<pre class="shell"># Change zImage to zImage-dtb on this command: <br />
install -Dm644 &quot;$srcdir/build/arch/arm/boot/zImage-dtb&quot; \<br />
&quot;$pkgdir/boot/vmlinuz-$_flavor&quot;</pre><br />
In Android kernels, you usually enable <code>BUILD_ARM_APPENDED_DTB_IMAGE</code> and get an image with <code>dtb</code> appended and the filename will be <code>zImage-dtb</code>.<br />
<br />
In the mainline kernel instead, you enable [https://github.com/postmarketOS/pmbootstrap/blob/51af907534a1518c22f78c006ae880d495ec3985/aports/linux-nokia-rx51/config-nokia-rx51.armhf#L555 <code>ARM_APPENDED_DTB</code>] (without trialing **_IMAGE**) and will get a bunch of <code>.dtb</code> files for the boards that are selected in the kernel config. In this case you need to manually append the correct <code>.dtb</code> file to the compiled kernel image <code>zImage</code>. An example of this is in the kernel package for the [https://github.com/postmarketOS/pmbootstrap/blob/51af907534a1518c22f78c006ae880d495ec3985/aports/linux-nokia-rx51/APKBUILD#L94-L96 nokia n900]:<br />
<br />
<pre class="shell">cd &quot;$srcdir/build/arch/arm/boot&quot;<br />
cat zImage dts/omap3-n900.dtb &gt; zImage-dtb</pre><br />
<br />
Is it possible that your device need the dtb file appended to the boot.img instead of the kernel itself. In that case you have to pack all the generated dtb files into a single master dtb.img file (see example [https://github.com/postmarketOS/pmbootstrap/blob/cfbf06ee71eed6f9bc1ec40087c3a6c69ab629c6/aports/device/linux-huawei-y530/APKBUILD#L115-L116 here] and [https://github.com/postmarketOS/pmbootstrap/blob/cfbf06ee71eed6f9bc1ec40087c3a6c69ab629c6/aports/device/linux-huawei-y530/APKBUILD#L124-L126 here]) and add the variable <code>deviceinfo_bootimg_qcdt="true"</code> in the <code>deviceinfo</code>.<br />
<br />
''If you are unsure, whether your device has an appended dtb file, use [https://github.com/PabloCastellano/extract-dtb extract-dtb] on an existing kernel image or boot.img file (e.g. from LineageOS or TWRP). <code>extract-dtb</code> is packaged for postmarketOS, you can build it with <code>pmbootstrap build extract-dtb</code>.''<br />
<br />
=== Installation ===<br />
<br />
If you want to install to the system partition of an image file, run the following:<br />
<br />
<pre class="shell">./pmbootstrap.py install --no-fde</pre><br />
If you want to install to a SD card, insert it and run the following. Replace mmcblk0 with the actual device name (<code>lsblk</code> is handy to find out the correct device name).<br />
<br />
<pre class="shell">./pmbootstrap.py install --no-fde --sdcard=/dev/mmcblk0</pre><br />
<br />
The <code>--no-fde</code> disables '''f'''ull '''d'''isk '''e'''ncryption. You can enable it once you have graphical output and touchscreen or physical keyboard working, so you can actually type in the password. Additional porting steps to get that working are described [[Osk-sdl#Porting_to_New_Devices|here]].<br />
<br />
=== Flashing ===<br />
<br />
Before you can run any flash command, you must put your device in the flashing mode. It is usually done holding Volume Down &amp; Power simultaneously when the device is switched off but it may vary depending on the device. For more information see the specific page for your device in the [https://wiki.lineageos.org/devices LineageOS Wiki].<br />
<br />
If you want to install to the system partition, run the following (not for the SD card installation!):<br />
<br />
<pre class="shell">./pmbootstrap.py flasher flash_system</pre><br />
<br />
If you have a device, that works with fastboot, you can boot the kernel now without flashing it:<br />
<br />
<pre class="shell">./pmbootstrap.py flasher boot</pre><br />
Otherwise, you will need to flash the kernel to the device boot partition:<br />
<br />
<pre class="shell">./pmbootstrap.py flasher flash_kernel</pre><br />
<br />
=== Alternative to flashing: export ===<br />
<br />
If the flashing method does not work, it is also possible to export all generated image files to a specific directory (with symlinks), so you can flash it manually with your host Linux system (or even on Windows with proprietary flashers such as Odin, if this is the only way it works for you):<br />
<br />
<pre class="shell">./pmbootstrap flasher export</pre><br />
=== After flashing ===<br />
<br />
If you are lucky, your screen may give some clues that you are booted into pmOS. If not, do not get discouraged, the graphics on your device may not yet be setup correctly. The next steps are to see if you can connect to the device through telnet over USB. See the [[Boot process]] and [[Inspecting the initramfs]] pages for more details. Also check [[Tuning sysfs]].<br />
<br />
Don't forget to [[Help:Device_Page|create a specific wiki page for your device]], and add it to the [[devices]] page. If you noticed anything that was unclear or discovered something useful, please help to improve the wiki! Feel free to ask / help on [[Matrix-and-IRC|IRC or Matrix group]].<br />
<br />
=== Adding osk-sdl support ===<br />
<br />
If the display & the touchscreen interface are working, then it's time to add support for osk-sdl, so that you are able to use full disk encryption on the root filesystem. Instructions for adding support can be found here: [[Osk-sdl#Porting_to_New_Devices|Porting Osk-SDL to New Devices]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Porting_to_a_new_device&diff=1161Porting to a new device2017-10-22T06:52:20Z<p>Robinp: wikified</p>
<hr />
<div>=== Introduction ===<br />
{{note|Please use a spare device for experimenting with postmarketOS! You won't be able to use typical phone features right now, such as making calls, writing SMS, using Wi-Fi, using Bluetooth. Although everything has been tested, there is no guarantee that you won't break your device.}}<br />
<br />
If you have ''any'' questions, feel free to ask in the [[Matrix and IRC|matrix/irc channel]] or [https://github.com/postmarketOS/pmbootstrap/issues bug tracker]! This is a wiki, so '''please adjust everything that isn't detailed enough or would have helped you with porting.''' Please write your porting '''progress to the [[Devices]] page''', even if you didn't get very far. This helps to determine what can be improved to make porting easier. We even have a [[Help:Device Page|tutorial for that]].<br />
<br />
=== Initialization ===<br />
<br />
* Clone the repository: <code>git clone https://github.com/postmarketOS/pmbootstrap</code><br />
* Run <code>./pmbootstrap.py init</code> and configure for a new device<br />
* Open a second terminal and run <code>./pmbootstrap.py log</code> to get detailed output from the following pmbootstrap commands<br />
<br />
=== Device-specific package ===<br />
<br />
Create an appropriate <code>device-$vendor-$name</code> package in the <code>aports/device</code> folder:<br />
<br />
<pre class="shell">cp -r aports/device/device-samsung-i9100 aports/device/device-vendor-name</pre><br />
The important files are <code>APKBUILD</code> (''build recipe, [[Glossary#apk|apk is an Alpine Linux term]]'') and [[deviceinfo]]. Please adjust them as necessary. (More info [[How_to_find_device_specific_information#Fastboot_.28boot.img.29_flash_offsets]])<br/>Note that if your device uses '''fastboot''' or [https://wiki.postmarketos.org/wiki/Deviceinfo_flash_methods#Isorec_or_bootimg.3F '''heimdall-bootimg'''], you will need to add <code>mkbootimg</code> to the <code>depends=</code> list in the <code>APKBUILD</code>, and the following variables at the end of <code>deviceinfo</code> ([https://wiki.postmarketos.org/wiki/How_to_find_device_specific_information#Fastboot_.28boot.img.29_flash_offsets guide], [https://github.com/postmarketOS/pmbootstrap/blob/eddf81a730b68076e59b66f2a6163e6587b7fc84/aports/device/device-sony-yuga/deviceinfo#L22-L28 example]):<br />
<br />
<pre class="shell"># Fastboot related<br />
deviceinfo_generate_bootimg=&quot;true&quot;<br />
deviceinfo_flash_offset_base=&quot;&quot;<br />
deviceinfo_flash_offset_kernel=&quot;&quot;<br />
deviceinfo_flash_offset_ramdisk=&quot;&quot;<br />
deviceinfo_flash_offset_second=&quot;&quot;<br />
deviceinfo_flash_offset_tags=&quot;&quot;<br />
deviceinfo_flash_pagesize=&quot;&quot;</pre><br />
A post-install script can be chttps://wiki.postmarketos.org/wiki/How_to_find_device_specific_information#Fastboot_.28boot.img.29_flash_offsetsreated to append device-specific partitions to <code>/etc/fstab</code>. See [https://github.com/postmarketOS/pmbootstrap/blob/ed8fba54c31c3ccd1f1f59c7194fffecc63ca7c4/aports/device/device-nokia-rx51/device-nokia-rx51.post-install#L12 the post-install script] for <code>device-nokia-rx51</code> for an example.<br />
<br />
Once the device package is configured, you will need to update checksums in the APKBUILD to match the new configuration files. You can do that by running:<br />
<br />
<pre class="shell">./pmbootstrap.py checksum device-$vendor-$name</pre><br />
Now, you can build your device package with:<br />
<br />
<pre class="shell">./pmbootstrap.py build device-$vendor-$name</pre><br />
<br />
=== Kernel package ===<br />
<br />
While the goal is to use a mainline kernel for all devices in the long run, this certainly can not be done in one step when porting to a new device. Create a new package for the kernel by copying the kernel package of the most similar device with an existing port. For example:<br />
<br />
<pre class="shell">cp -r aports/device/linux-lg-mako aports/device/linux-vendor-name</pre><br />
Now edit the <code>APKBUILD</code>. Replace the kernel source with a kernel suitable for your device. For Android devices we usually use the [https://wiki.postmarketos.org/wiki/How_to_find_device_specific_information#LineageOS_kernel_source_repository kernels from LineageOS]. Copy the right [https://wiki.postmarketos.org/wiki/How_to_find_device_specific_information#Kernel_defconfig_.28default_config.29 default config] from your kernel's source folder into your new <code>linux-...</code> folder and adjust its file name. Please adjust the comments in the <code>APKBUILD</code> file about which defconfig you have used, and which modifications you have made. Please also adjust the <code>pkgver</code>/<code>pkgrel</code> to match the [https://stackoverflow.com/a/12151781 kernel version].<br />
<br />
Next, generate the checksum for the kernel package files using:<br />
<br />
<pre class="shell">./pmbootstrap.py checksum linux-$vendor-$name</pre><br />
Now, before building the kernel itself, it is required to run the kernel's [https://en.wikipedia.org/wiki/Menuconfig menuconfig] with:<br />
<br />
<pre class="shell">./pmbootstrap.py menuconfig linux-$vendor-$name</pre><br />
The first time, you run the menuconfig command, you will get prompted about new config options, that the default config does not address (in Android's build process, these options get ignored, but in pmOS they must be specified). Please accept the defaults it presents.<br/>After that, you will be shown a menu, in which the [https://wiki.postmarketos.org/wiki/Kernel_configuration#Required required kernel options] must be set for pmOS to work.<br />
<br />
The easiest way is getting out of the menu with "Exit", and confirming when asked whether the changes should be saved. Then run the following to see what needs to be changed in your config:<br />
<pre class="shell">./pmbootstrap.py kconfig_check</pre><br />
Adjust your kernel config until <code>kconfig_check</code> doesn't complain anymore.<br />
<br />
Once you have configured the kernel, build it (the arch specification is necessary here, because we're really compiling code - the device package just contains text/scripts and no native code, therefore it is architecture independent):<br />
<br />
<pre class="shell">./pmbootstrap.py build linux-$vendor-$name --arch=armhf</pre><br />
''NOTE'': The <code>linux-lg-mako</code> package has a patch called <code>gpu-msm-fix-gcc5-compile.patch</code>, to fix compiler errors with GCC6. If your kernel doesn't need that specific patch (if it does not apply correctly, as in [https://github.com/postmarketOS/pmbootstrap/issues/14#issuecomment-305083767 this] report), just remove the file, and remove it from the <code>source=</code> line in the <code>APKBUILD</code>.<br />
<br />
Important: You will need to '''patch your kernel to get it working with GCC6''' - read [[how to create a patch when packaging software]] for instructions.<br />
<br />
If your manufacturer has not released the source code of your kernel and you don't want to give up on porting your device, you can try the [[Using-prebuilt-kernels|prebuilt kernels]] approach.<br />
<br />
==== Appended device trees ====<br />
<br />
Some devices need an appended device tree to boot. In LineageOS kernels this will mean that beside the generated <code>zImage</code> there is also a <code>zImage-dtb</code> file. To use this you have to enable in your kernel appending the <code>dtb</code> as in [https://github.com/postmarketOS/pmbootstrap/blob/51af907534a1518c22f78c006ae880d495ec3985/aports/linux-lg-hammerhead/config-lg-hammerhead.armhf#L674 lg-hammerhead] and change the package step in the build script to use the <code>dtb</code> file:<br />
<br />
<pre class="shell"># Change zImage to zImage-dtb on this command: <br />
install -Dm644 &quot;$srcdir/build/arch/arm/boot/zImage-dtb&quot; \<br />
&quot;$pkgdir/boot/vmlinuz-$_flavor&quot;</pre><br />
In Android kernels, you usually enable <code>BUILD_ARM_APPENDED_DTB_IMAGE</code> and get an image with <code>dtb</code> appended and the filename will be <code>zImage-dtb</code>.<br />
<br />
In the mainline kernel instead, you enable [https://github.com/postmarketOS/pmbootstrap/blob/51af907534a1518c22f78c006ae880d495ec3985/aports/linux-nokia-rx51/config-nokia-rx51.armhf#L555 <code>ARM_APPENDED_DTB</code>] (without trialing **_IMAGE**) and will get a bunch of <code>.dtb</code> files for the boards that are selected in the kernel config. In this case you need to manually append the correct <code>.dtb</code> file to the compiled kernel image <code>zImage</code>. An example of this is in the kernel package for the [https://github.com/postmarketOS/pmbootstrap/blob/51af907534a1518c22f78c006ae880d495ec3985/aports/linux-nokia-rx51/APKBUILD#L94-L96 nokia n900]:<br />
<br />
<pre class="shell">cd &quot;$srcdir/build/arch/arm/boot&quot;<br />
cat zImage dts/omap3-n900.dtb &gt; zImage-dtb</pre><br />
<br />
Is it possible that your device need the dtb file appended to the boot.img instead of the kernel itself. In that case you have to pack all the generated dtb files into a single master dtb.img file (see example [https://github.com/postmarketOS/pmbootstrap/blob/cfbf06ee71eed6f9bc1ec40087c3a6c69ab629c6/aports/device/linux-huawei-y530/APKBUILD#L115-L116 here] and [https://github.com/postmarketOS/pmbootstrap/blob/cfbf06ee71eed6f9bc1ec40087c3a6c69ab629c6/aports/device/linux-huawei-y530/APKBUILD#L124-L126 here]) and add the variable <code>deviceinfo_bootimg_qcdt="true"</code> in the <code>deviceinfo</code>.<br />
<br />
''If you are unsure, whether your device has an appended dtb file, use [https://github.com/PabloCastellano/extract-dtb extract-dtb] on an existing kernel image or boot.img file (e.g. from LineageOS or TWRP). <code>extract-dtb</code> is packaged for postmarketOS, you can build it with <code>pmbootstrap build extract-dtb</code>.''<br />
<br />
=== Installation ===<br />
<br />
If you want to install to the system partition of an image file, run the following:<br />
<br />
<pre class="shell">./pmbootstrap.py install --no-fde</pre><br />
If you want to install to a SD card, insert it and run the following. Replace mmcblk0 with the actual device name (<code>lsblk</code> is handy to find out the correct device name).<br />
<br />
<pre class="shell">./pmbootstrap.py install --no-fde --sdcard=/dev/mmcblk0</pre><br />
<br />
The <code>--no-fde</code> disables '''f'''ull '''d'''isk '''e'''ncryption. You can enable it once you have graphical output and touchscreen or physical keyboard working, so you can actually type in the password. Additional porting steps to get that working are described [[Osk-sdl#Porting_to_New_Devices|here]].<br />
<br />
=== Flashing ===<br />
<br />
Before you can run any flash command, you must put your device in the flashing mode. It is usually done holding Volume Down &amp; Power simultaneously when the device is switched off but it may vary depending on the device. For more information see the specific page for your device in the [https://wiki.lineageos.org/devices LineageOS Wiki].<br />
<br />
If you want to install to the system partition, run the following (not for the SD card installation!):<br />
<br />
<pre class="shell">./pmbootstrap.py flasher flash_system</pre><br />
<br />
If you have a device, that works with fastboot, you can boot the kernel now without flashing it:<br />
<br />
<pre class="shell">./pmbootstrap.py flasher boot</pre><br />
Otherwise, you will need to flash the kernel to the device boot partition:<br />
<br />
<pre class="shell">./pmbootstrap.py flasher flash_kernel</pre><br />
<br />
=== Alternative to flashing: export ===<br />
<br />
If the flashing method does not work, it is also possible to export all generated image files to a specific directory (with symlinks), so you can flash it manually with your host Linux system (or even on Windows with proprietary flashers such as Odin, if this is the only way it works for you):<br />
<br />
<pre class="shell">./pmbootstrap flasher export</pre><br />
=== After flashing ===<br />
<br />
If you are lucky, your screen may give some clues that you are booted into pmOS. If not, do not get discouraged, the graphics on your device may not yet be setup correctly. The next steps are to see if you can connect to the device through telnet over USB. See the [[Boot process]] and [[Inspecting the initramfs]] pages for more details. Also check [[Tuning sysfs]].<br />
<br />
Don't forget to [[Help:Device_Page|create a specific wiki page for your device]], and add it to the [[devices]] page. If you noticed anything that was unclear or discovered something useful, please help to improve the wiki! Feel free to ask / help on [[Matrix-and-IRC|IRC or Matrix group]].<br />
<br />
=== Adding osk-sdl support ===<br />
<br />
If the display & the touchscreen interface are working, then it's time to add support for osk-sdl, so that you are able to use full disk encryption on the root filesystem. Instructions for adding support can be found here: [[Osk-sdl#Porting_to_New_Devices|Porting Osk-SDL to New Devices]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Plasma_Mobile&diff=1160Plasma Mobile2017-10-22T06:43:26Z<p>Robinp: /* Overview */</p>
<hr />
<div>{{Infobox interface<br />
| name = Plasma Mobile<br />
| image = File:Plasma-mobile.png<br />
| imagecaption = Plasma Mobile running in qemu<br />
| graphics = KWin on Wayland or Xorg<br />
| toolkit = QT5<br />
}}<br />
<br />
== Overview ==<br />
<br />
The basic minimum shell has been ported to postmarketOS, and can now be tested.<br />
<br />
Currently, Plasma Mobile is not available from the "master" branch, to use it you will need to check out the "postmarketos-ui-plasma-mobile" branch from the git repository. Once it is considered stable it will be merged with the "master" branch (see [https://github.com/postmarketOS/pmbootstrap/issues/378 #378] for more info and progress).<br />
<br />
To install it on your device run <code>./pmbootstrap.py init</code> and choose <code>plasma-mobile</code> in the interface section. Alternatively manually install it with <code>./pmbootstrap.py install --add plasma-mobile,plasma-phone-components,dbus-nox11</code>.<br />
<br />
For instructions on running Plasma Mobile you can use the KDE website: https://community.kde.org/Plasma/Mobile/RunningApps<br />
<br />
''Packaging efforts have been documented [[Packaging-Plasma-Mobile|here]].''<br />
<br />
== Running ==<br />
<br />
If the device supports OpenGL, the Plasma Shell will automatically launch upon boot. If it doesn't, you'll have to SSH in and add the following to <code>~/.config/kdeglobals</code>:<br />
<pre>[QtQuickRendererSettings]<br />
SceneGraphBackend=software</pre><br />
<br />
Then, reboot again to have it launch automatically upon boot.<br />
<br />
<br />
<br />
If you've chosen to install Plasma Mobile manually instead of in <code>./pmbootstrap.py init</code> you'll have to follow the following instructions.<br />
<br />
Setup the required environment variables for kwin:<br />
<br />
<pre>export QT_QPA_PLATFORM=wayland<br />
export QT_QPA_PLATFORMTHEME=KDE<br />
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1<br />
export XDG_CURRENT_DESKTOP=KDE<br />
export KSCREEN_BACKEND=QScreen<br />
<br />
export KDE_FULL_SESSION=1<br />
export KDE_SESSION_VERSION=5<br />
export KWIN_COMPOSE=Q<br />
<br />
export $(dbus-launch)</pre><br />
Right now kwin fails due to lacking permissions on <code>/dev/fb0</code>, so as a workaround you can chown it to your user.<br />
<br />
<pre># chown user:user /dev/fb0</pre><br />
<br />
Then execute <code>ck-launch-session kwin_wayland --framebuffer --xwayland -- /usr/bin/plasmashell -p org.kde.satellite.phone</code>. As this way you can not view the logs, it's advisable to add <code>2&gt; /tmp/kwin_log.txt</code> to the end of the command, so it ends up looking like <code>ck-launch-session kwin_wayland --framebuffer --xwayland -- /usr/bin/plasmashell -p org.kde.satellite.phone 2&gt; /tmp/kwin_log.txt</code>. This will make it log to <code>/tmp/kwin_log.txt</code> instead of stdout.<br />
<br />
== Debugging ==<br />
<br />
Create <code>~/.config/QtProject/qtlogging.ini</code> with the following content:<br />
<br />
<pre>[Rules]<br />
org.kde.kwindowsystem.info=true<br />
org.kde.kwindowsystem.warning=true<br />
org.kde.kwindowsystem.critical=true<br />
org.kde.kwindowsystem.debug=true<br />
kwin_core.info=true<br />
kwin_core.warning=true<br />
kwin_core.critical=true<br />
kwin_core.debug=true<br />
kwineffects.info=true<br />
kwineffects.warning=true<br />
kwineffects.critical=true<br />
kwineffects.debug=true<br />
libkwineffects.info=true<br />
libkwineffects.warning=true<br />
libkwineffects.critical=true<br />
libkwineffects.debug=true<br />
libkwinglutils.info=true<br />
libkwinglutils.warning=true<br />
libkwinglutils.critical=true<br />
libkwinglutils.debug=true<br />
libkwinxrenderutils.info=true<br />
libkwinxrenderutils.warning=true<br />
libkwinxrenderutils.critical=true<br />
libkwinxrenderutils.debug=true<br />
kwin_wayland_drm.info=true<br />
kwin_wayland_drm.warning=true<br />
kwin_wayland_drm.critical=true<br />
kwin_wayland_drm.debug=true<br />
kwin_wayland_framebuffer.info=true<br />
kwin_wayland_framebuffer.warning=true<br />
kwin_wayland_framebuffer.critical=true<br />
kwin_wayland_framebuffer.debug=true<br />
kwin_wayland_hwcomposer.debug=true<br />
kwin_wayland_backend.info=true<br />
kwin_wayland_backend.warning=true<br />
kwin_wayland_backend.critical=true<br />
kwin_wayland_backend.debug=true<br />
kwin_wayland_x11windowed.info=true<br />
kwin_wayland_x11windowed.warning=true<br />
kwin_wayland_x11windowed.critical=true<br />
kwin_wayland_x11windowed.debug=true<br />
kwin_platform_x11_standalone.info=true<br />
kwin_platform_x11_standalone.warning=true<br />
kwin_platform_x11_standalone.critical=true<br />
kwin_platform_x11_standalone.debug=true<br />
kwin_libinput.info=true<br />
kwin_libinput.warning=true<br />
kwin_libinput.critical=true<br />
kwin_libinput.debug=true<br />
kwin_tabbox.info=true<br />
kwin_tabbox.warning=true<br />
kwin_tabbox.critical=true<br />
kwin_tabbox.debug=true<br />
kwin_decorations.info=true<br />
kwin_decorations.warning=true<br />
kwin_decorations.critical=true<br />
kwin_decorations.debug=true<br />
kwin_scripting.info=true<br />
kwin_scripting.warning=true<br />
kwin_scripting.critical=true<br />
kwin_scripting.debug=true<br />
kwin_xkbcommon.info=true<br />
kwin_xkbcommon.warning=true<br />
kwin_xkbcommon.critical=true<br />
kwin_xkbcommon.debug=true<br />
kwin_qpa_plugin.info=true<br />
kwin_qpa_plugin.warning=true<br />
kwin_qpa_plugin.critical=true<br />
kwin_qpa_plugin.debug=true</pre><br />
<br />
<br />
[[Category:Interface]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Plasma_Mobile&diff=1159Plasma Mobile2017-10-22T06:30:27Z<p>Robinp: fixed typo</p>
<hr />
<div>{{Infobox interface<br />
| name = Plasma Mobile<br />
| image = File:Plasma-mobile.png<br />
| imagecaption = Plasma Mobile running in qemu<br />
| graphics = KWin on Wayland or Xorg<br />
| toolkit = QT5<br />
}}<br />
<br />
== Overview ==<br />
<br />
The basic minimum shell has been ported to postmarketOS, and can now be tested.<br />
<br />
Currently, Plasma Mobile is not available from the "master" branch, to use it you will need to check out the "postmarketos-ui-plasma-mobile" branch from the git repository. Once it is considered stable it will be merged with the "master" branch (see [https://github.com/postmarketOS/pmbootstrap/issues/378 #378] for more info).<br />
<br />
To install it on your device run <code>./pmbootstrap.py init</code> and choose <code>plasma-mobile</code> in the interface section. Alternatively manually install it with <code>./pmbootstrap.py install --add plasma-mobile,plasma-phone-components,dbus-nox11</code>.<br />
<br />
For instructions on running Plasma Mobile you can use the KDE website: https://community.kde.org/Plasma/Mobile/RunningApps<br />
<br />
''Packaging efforts have been documented [[Packaging-Plasma-Mobile|here]].''<br />
<br />
== Running ==<br />
<br />
If the device supports OpenGL, the Plasma Shell will automatically launch upon boot. If it doesn't, you'll have to SSH in and add the following to <code>~/.config/kdeglobals</code>:<br />
<pre>[QtQuickRendererSettings]<br />
SceneGraphBackend=software</pre><br />
<br />
Then, reboot again to have it launch automatically upon boot.<br />
<br />
<br />
<br />
If you've chosen to install Plasma Mobile manually instead of in <code>./pmbootstrap.py init</code> you'll have to follow the following instructions.<br />
<br />
Setup the required environment variables for kwin:<br />
<br />
<pre>export QT_QPA_PLATFORM=wayland<br />
export QT_QPA_PLATFORMTHEME=KDE<br />
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1<br />
export XDG_CURRENT_DESKTOP=KDE<br />
export KSCREEN_BACKEND=QScreen<br />
<br />
export KDE_FULL_SESSION=1<br />
export KDE_SESSION_VERSION=5<br />
export KWIN_COMPOSE=Q<br />
<br />
export $(dbus-launch)</pre><br />
Right now kwin fails due to lacking permissions on <code>/dev/fb0</code>, so as a workaround you can chown it to your user.<br />
<br />
<pre># chown user:user /dev/fb0</pre><br />
<br />
Then execute <code>ck-launch-session kwin_wayland --framebuffer --xwayland -- /usr/bin/plasmashell -p org.kde.satellite.phone</code>. As this way you can not view the logs, it's advisable to add <code>2&gt; /tmp/kwin_log.txt</code> to the end of the command, so it ends up looking like <code>ck-launch-session kwin_wayland --framebuffer --xwayland -- /usr/bin/plasmashell -p org.kde.satellite.phone 2&gt; /tmp/kwin_log.txt</code>. This will make it log to <code>/tmp/kwin_log.txt</code> instead of stdout.<br />
<br />
== Debugging ==<br />
<br />
Create <code>~/.config/QtProject/qtlogging.ini</code> with the following content:<br />
<br />
<pre>[Rules]<br />
org.kde.kwindowsystem.info=true<br />
org.kde.kwindowsystem.warning=true<br />
org.kde.kwindowsystem.critical=true<br />
org.kde.kwindowsystem.debug=true<br />
kwin_core.info=true<br />
kwin_core.warning=true<br />
kwin_core.critical=true<br />
kwin_core.debug=true<br />
kwineffects.info=true<br />
kwineffects.warning=true<br />
kwineffects.critical=true<br />
kwineffects.debug=true<br />
libkwineffects.info=true<br />
libkwineffects.warning=true<br />
libkwineffects.critical=true<br />
libkwineffects.debug=true<br />
libkwinglutils.info=true<br />
libkwinglutils.warning=true<br />
libkwinglutils.critical=true<br />
libkwinglutils.debug=true<br />
libkwinxrenderutils.info=true<br />
libkwinxrenderutils.warning=true<br />
libkwinxrenderutils.critical=true<br />
libkwinxrenderutils.debug=true<br />
kwin_wayland_drm.info=true<br />
kwin_wayland_drm.warning=true<br />
kwin_wayland_drm.critical=true<br />
kwin_wayland_drm.debug=true<br />
kwin_wayland_framebuffer.info=true<br />
kwin_wayland_framebuffer.warning=true<br />
kwin_wayland_framebuffer.critical=true<br />
kwin_wayland_framebuffer.debug=true<br />
kwin_wayland_hwcomposer.debug=true<br />
kwin_wayland_backend.info=true<br />
kwin_wayland_backend.warning=true<br />
kwin_wayland_backend.critical=true<br />
kwin_wayland_backend.debug=true<br />
kwin_wayland_x11windowed.info=true<br />
kwin_wayland_x11windowed.warning=true<br />
kwin_wayland_x11windowed.critical=true<br />
kwin_wayland_x11windowed.debug=true<br />
kwin_platform_x11_standalone.info=true<br />
kwin_platform_x11_standalone.warning=true<br />
kwin_platform_x11_standalone.critical=true<br />
kwin_platform_x11_standalone.debug=true<br />
kwin_libinput.info=true<br />
kwin_libinput.warning=true<br />
kwin_libinput.critical=true<br />
kwin_libinput.debug=true<br />
kwin_tabbox.info=true<br />
kwin_tabbox.warning=true<br />
kwin_tabbox.critical=true<br />
kwin_tabbox.debug=true<br />
kwin_decorations.info=true<br />
kwin_decorations.warning=true<br />
kwin_decorations.critical=true<br />
kwin_decorations.debug=true<br />
kwin_scripting.info=true<br />
kwin_scripting.warning=true<br />
kwin_scripting.critical=true<br />
kwin_scripting.debug=true<br />
kwin_xkbcommon.info=true<br />
kwin_xkbcommon.warning=true<br />
kwin_xkbcommon.critical=true<br />
kwin_xkbcommon.debug=true<br />
kwin_qpa_plugin.info=true<br />
kwin_qpa_plugin.warning=true<br />
kwin_qpa_plugin.critical=true<br />
kwin_qpa_plugin.debug=true</pre><br />
<br />
<br />
[[Category:Interface]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Plasma_Mobile&diff=1158Plasma Mobile2017-10-22T06:30:03Z<p>Robinp: added info about installing plasma-mobile</p>
<hr />
<div>{{Infobox interface<br />
| name = Plasma Mobile<br />
| image = File:Plasma-mobile.png<br />
| imagecaption = Plasma Mobile running in qemu<br />
| graphics = KWin on Wayland or Xorg<br />
| toolkit = QT5<br />
}}<br />
<br />
== Overview ==<br />
<br />
The basic minimum shell has been ported to postmarketOS, and can now be tested.<br />
<br />
Currently, Plasma Mobile is not available from the "master" branch, to use it you will need to check out the "postmarketos-ui-plasma-mobile" branch from the git repository. Once it is considered stable it will be merged with the "master" branch (see [https://github.com/postmarketOS/pmbootstrap/issues/378 #378] for more info.<br />
<br />
To install it on your device run <code>./pmbootstrap.py init</code> and choose <code>plasma-mobile</code> in the interface section. Alternatively manually install it with <code>./pmbootstrap.py install --add plasma-mobile,plasma-phone-components,dbus-nox11</code>.<br />
<br />
For instructions on running Plasma Mobile you can use the KDE website: https://community.kde.org/Plasma/Mobile/RunningApps<br />
<br />
''Packaging efforts have been documented [[Packaging-Plasma-Mobile|here]].''<br />
<br />
== Running ==<br />
<br />
If the device supports OpenGL, the Plasma Shell will automatically launch upon boot. If it doesn't, you'll have to SSH in and add the following to <code>~/.config/kdeglobals</code>:<br />
<pre>[QtQuickRendererSettings]<br />
SceneGraphBackend=software</pre><br />
<br />
Then, reboot again to have it launch automatically upon boot.<br />
<br />
<br />
<br />
If you've chosen to install Plasma Mobile manually instead of in <code>./pmbootstrap.py init</code> you'll have to follow the following instructions.<br />
<br />
Setup the required environment variables for kwin:<br />
<br />
<pre>export QT_QPA_PLATFORM=wayland<br />
export QT_QPA_PLATFORMTHEME=KDE<br />
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1<br />
export XDG_CURRENT_DESKTOP=KDE<br />
export KSCREEN_BACKEND=QScreen<br />
<br />
export KDE_FULL_SESSION=1<br />
export KDE_SESSION_VERSION=5<br />
export KWIN_COMPOSE=Q<br />
<br />
export $(dbus-launch)</pre><br />
Right now kwin fails due to lacking permissions on <code>/dev/fb0</code>, so as a workaround you can chown it to your user.<br />
<br />
<pre># chown user:user /dev/fb0</pre><br />
<br />
Then execute <code>ck-launch-session kwin_wayland --framebuffer --xwayland -- /usr/bin/plasmashell -p org.kde.satellite.phone</code>. As this way you can not view the logs, it's advisable to add <code>2&gt; /tmp/kwin_log.txt</code> to the end of the command, so it ends up looking like <code>ck-launch-session kwin_wayland --framebuffer --xwayland -- /usr/bin/plasmashell -p org.kde.satellite.phone 2&gt; /tmp/kwin_log.txt</code>. This will make it log to <code>/tmp/kwin_log.txt</code> instead of stdout.<br />
<br />
== Debugging ==<br />
<br />
Create <code>~/.config/QtProject/qtlogging.ini</code> with the following content:<br />
<br />
<pre>[Rules]<br />
org.kde.kwindowsystem.info=true<br />
org.kde.kwindowsystem.warning=true<br />
org.kde.kwindowsystem.critical=true<br />
org.kde.kwindowsystem.debug=true<br />
kwin_core.info=true<br />
kwin_core.warning=true<br />
kwin_core.critical=true<br />
kwin_core.debug=true<br />
kwineffects.info=true<br />
kwineffects.warning=true<br />
kwineffects.critical=true<br />
kwineffects.debug=true<br />
libkwineffects.info=true<br />
libkwineffects.warning=true<br />
libkwineffects.critical=true<br />
libkwineffects.debug=true<br />
libkwinglutils.info=true<br />
libkwinglutils.warning=true<br />
libkwinglutils.critical=true<br />
libkwinglutils.debug=true<br />
libkwinxrenderutils.info=true<br />
libkwinxrenderutils.warning=true<br />
libkwinxrenderutils.critical=true<br />
libkwinxrenderutils.debug=true<br />
kwin_wayland_drm.info=true<br />
kwin_wayland_drm.warning=true<br />
kwin_wayland_drm.critical=true<br />
kwin_wayland_drm.debug=true<br />
kwin_wayland_framebuffer.info=true<br />
kwin_wayland_framebuffer.warning=true<br />
kwin_wayland_framebuffer.critical=true<br />
kwin_wayland_framebuffer.debug=true<br />
kwin_wayland_hwcomposer.debug=true<br />
kwin_wayland_backend.info=true<br />
kwin_wayland_backend.warning=true<br />
kwin_wayland_backend.critical=true<br />
kwin_wayland_backend.debug=true<br />
kwin_wayland_x11windowed.info=true<br />
kwin_wayland_x11windowed.warning=true<br />
kwin_wayland_x11windowed.critical=true<br />
kwin_wayland_x11windowed.debug=true<br />
kwin_platform_x11_standalone.info=true<br />
kwin_platform_x11_standalone.warning=true<br />
kwin_platform_x11_standalone.critical=true<br />
kwin_platform_x11_standalone.debug=true<br />
kwin_libinput.info=true<br />
kwin_libinput.warning=true<br />
kwin_libinput.critical=true<br />
kwin_libinput.debug=true<br />
kwin_tabbox.info=true<br />
kwin_tabbox.warning=true<br />
kwin_tabbox.critical=true<br />
kwin_tabbox.debug=true<br />
kwin_decorations.info=true<br />
kwin_decorations.warning=true<br />
kwin_decorations.critical=true<br />
kwin_decorations.debug=true<br />
kwin_scripting.info=true<br />
kwin_scripting.warning=true<br />
kwin_scripting.critical=true<br />
kwin_scripting.debug=true<br />
kwin_xkbcommon.info=true<br />
kwin_xkbcommon.warning=true<br />
kwin_xkbcommon.critical=true<br />
kwin_xkbcommon.debug=true<br />
kwin_qpa_plugin.info=true<br />
kwin_qpa_plugin.warning=true<br />
kwin_qpa_plugin.critical=true<br />
kwin_qpa_plugin.debug=true</pre><br />
<br />
<br />
[[Category:Interface]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=User-Interfaces&diff=1157User-Interfaces2017-10-22T06:25:22Z<p>Robinp: wikified "weston"</p>
<hr />
<div>At the moment [[Weston]] is the default UI for postmarketOS. It is simple and helps us to keep researching and developing the base of pmOS but in the future we will also support other more sophisticated and fancy User Interfaces.<br />
<br />
Here is a list showing examples and the on-going work on this topic.<br />
<br />
== User Interfaces ==<br />
<br />
=== Weston ===<br />
<br />
Project page: https://github.com/wayland-project/weston<br />
<br />
Default minimal interface based on XWayland. It allows developers to do &quot;simple&quot; things like running firefox and opening a terminal, plus testing the touchscreen and other peripherals.<br />
<br />
Photos:<br />
<br />
* [http://i.imgur.com/5XtSNzp.jpg Running Youtube in Weston]<br />
<br />
=== Plasma Mobile ===<br />
<br />
Project page: https://plasma-mobile.org/<br />
<br />
Based on KDE.<br />
<br />
Work in Progress.<br />
<br />
For more information, see [[Plasma Mobile]] and issues [https://github.com/postmarketOS/pmbootstrap/issues/161 #161], [https://github.com/postmarketOS/pmbootstrap/issues/378 #378].<br />
<br />
=== Hildon ===<br />
<br />
Hildon is an application framework originally developed for mobile devices (PDAs, mobile phones, etc.) running the Linux operating system as well as the Symbian operating system. It was developed by Nokia for the Maemo operating system and is now a part of GNOME. It focuses on providing a finger-friendly interface. It is primarily a set of GTK+ extensions that provide mobile-device–oriented functionality, but also provides a desktop environment that includes a task navigator for opening and switching between programs, a control panel for user settings, and status bar, task bar and home applets. It is standard on the Maemo platform used by the Nokia Internet Tablets and the [https://github.com/postmarketOS/pmbootstrap/wiki/nokia-rx51-%28Nokia-N900%29 Nokia N900] smartphone.<br />
<br />
Hildon is based on GTK2 and there is a work in progress port to GTK3.<br />
<br />
For more information, see [[Hildon]] and PR [https://github.com/postmarketOS/pmbootstrap/pull/461 #461].<br />
<br />
=== Others ===<br />
<br />
See issue [https://github.com/postmarketOS/pmbootstrap/issues/62 #62] for more information on other UIs that could be ported to postmarketOS. Some of these are:<br />
<br />
* [https://ubports.com/ ubports] (Fork of the discontinued Ubuntu Phone project)<br />
* mer/SailfishOS related:<br />
** [https://www.reddit.com/r/linux/comments/73amlm/so_how_open_is_sailfish_os_really/ Which components of SailfishOS are open?]<br />
** [https://git.merproject.org/mer-core/lipstick lipstick] ([https://www.reddit.com/r/linux/comments/6djq1z/postmarketos_aiming_for_a_10_year_lifecycle_for/di3yc7w/ relevant comment])<br />
** [https://github.com/qwazix/glacier-controls-spec glacier] ([https://www.reddit.com/r/linux/comments/6djq1z/postmarketos_aiming_for_a_10_year_lifecycle_for/di4iekw/ relevant comment])<br />
* sway<br />
** [http://i.imgur.com/rwCM4AY.jpg Photo]<br />
* [https://github.com/postmarketOS/pmbootstrap/issues/629 LuneOS] (continuation of webOS, HP's discontinued and open sourced mobile operating system with Wayland and QT5)<br />
<br />
== How to choose a different UI ==<br />
<br />
You have to configure <code>pmbootstrap</code> before generating the system image either by <code>pmbootstrap init</code> or <code>pmbootstrap config</code>:<br />
<br />
<pre>$ ./pmbootstrap init<br />
[11:23:07] Target device (either an existing one, or a new one for porting).<br />
[11:23:07] Available (17): asus-grouper, htc-ace, htc-bravo, lg-d855, lg-hammerhead, lg-mako, motorola-titan, mozilla-flame, nokia-rx51, qemu-aarch64, qemu-amd64, qemu-vexpress, samsung-i9070, samsung-i9100, samsung-maguro, samsung-n7100, sony-amami<br />
[11:23:07] Device [motorola-titan]: <br />
[11:23:08] Available user interfaces (1): weston, none<br />
[11:23:08] User interface [weston]: </pre><br />
<pre>$ ./pmbootstrap config ui weston</pre><br />
<br />
[[Category:Interface]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Weston&diff=1156Weston2017-10-22T06:21:18Z<p>Robinp: </p>
<hr />
<div>{{Infobox interface<br />
| name = Weston<br />
| image = <br />
| imagecaption = <br />
| graphics =<br />
| toolkit =<br />
}}<br />
<br />
Weston is the reference implementation of a Wayland compositor.<br />
<br />
=== Installation ===<br />
* <code>pmbootstrap init</code><br />
* <code>User interface: weston</code><br />
<br />
more info here about using Weston</div>Robinphttps://wiki.postmarketos.org/index.php?title=Weston&diff=1155Weston2017-10-22T06:19:41Z<p>Robinp: added "interface" infobox</p>
<hr />
<div>{{Infobox interface<br />
| name = Weston<br />
| image = <br />
| imagecaption = <br />
| graphics =<br />
| toolkit =<br />
}}<br />
<br />
Weston is the reference implementation of a Wayland compositor.<br />
<br />
info here about using Weston</div>Robinphttps://wiki.postmarketos.org/index.php?title=Weston&diff=1154Weston2017-10-22T06:17:12Z<p>Robinp: added empty stub page "Weston"</p>
<hr />
<div>Weston is the reference implementation of a Wayland compositor.<br />
<br />
info here about using Weston</div>Robinphttps://wiki.postmarketos.org/index.php?title=Glossary&diff=1153Glossary2017-10-22T06:14:18Z<p>Robinp: removed redundant CR</p>
<hr />
<div>If you found a technical term related to this project, that you had to research to understand, please add it here (alphabetically sorted).<br />
<br />
See also:<br />
<br />
* [https://wiki.alpinelinux.org/wiki/Alpine_Linux:Glossary Alpine Linux:Glossary]<br />
<br />
<br />
-----<br />
<br />
=== [https://alpinelinux.org/ Alpine Linux] ===<br />
<br />
The minimal Linux distribution, that postmarketOS is based on. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as close as possible. Alpine developers do not see their distribution as &quot;GNU/Linux&quot;. That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.<br />
<br />
=== android-msm ===<br />
<br />
The Google provided 3.4 kernel as base for all Qualcomm devices.<br />
<br />
=== apk ===<br />
<br />
One of the following:<br />
<br />
* Android app format<br />
* Alpine Linux package (also ends in <code>.apk</code>, but totally incompatible!), which are actually gzipped tar files<br />
* Alpine Linux package manager (apk)<br />
<br />
=== boot.img ===<br />
<br />
Android specific format, that usually consists of the Linux kernel (in modern versions with a <code>dtb</code> appended) and the <code>initramfs</code>. This file gets flashed to the boot or recovery partition of the Android device.<br />
<br />
'''Variations:'''<br />
<br />
* Some old Samsungs: <code>boot.img</code> is just a kernel with a baked in <code>initramfs</code> ([[deviceinfo_flash_methods#Isorec_or_bootimg.3F|more]])<br />
* qcdt: <code>boot.img</code> has a <code>dtb</code> appended (instead of appending it to the kernel, [[deviceinfo_bootimg_qcdt|more]])<br />
<br />
=== dtb ===<br />
<br />
The binary device tree, this is a file containing a description of the hardware in the device since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called <code>zImage-dtb</code> for some Android kernels (older Android kernels do not generate a <code>dtb</code> file at all and have hardcoded the information directly in the kernel source). In mainline kernels, <code>dtb</code> files for all supported boards are created at once.<br />
<br />
=== dri ===<br />
<br />
[https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure Direct Rendering Infrastructure], the modern Linux kernel API for drawing to the screen.<br />
<br />
=== drm/kvm ===<br />
<br />
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.<br />
<br />
=== FDE ===<br />
<br />
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with luks, preventing the phone data to be retrieved without password if the device is turned off. This can optionally be disabled with <code>--no-fde</code> for debugging purposes.<br />
<br />
=== fbdev/framebuffer ===<br />
<br />
[https://en.wikipedia.org/wiki/Linux_framebuffer Linux framebuffer] a (more or less?) deprecated API from the Linux kernel that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.<br />
<br />
=== IDA ===<br />
<br />
The proprietary software [https://en.wikipedia.org/wiki/IDA_Pro Interactive Disassembler] is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source [[firmware]]. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.<br />
<br />
=== lk (little kernel) ===<br />
<br />
''[https://github.com/littlekernel/lk <code>lk</code>] is the kernel which fastboot runs on - at least all new-ish qualcomm devices are using <code>lk</code> and new-ish mediatek devices too''<br />
<br />
=== OpenRC ===<br />
<br />
[https://en.wikipedia.org/wiki/OpenRC OpenRC] is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.<br />
<br />
=== Weston ===<br />
<br />
[https://github.com/wayland-project/weston Weston] is the reference implementation of a Wayland compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.<br />
<br />
We have chosen Weston as demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as demo useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See [https://github.com/postmarketOS/pmbootstrap/issues/62 issue #62]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Glossary&diff=1152Glossary2017-10-22T06:14:01Z<p>Robinp: removed redundant comma</p>
<hr />
<div>If you found a technical term related to this project, that you had to research to understand, please add it here (alphabetically sorted).<br />
<br />
See also:<br />
<br />
* [https://wiki.alpinelinux.org/wiki/Alpine_Linux:Glossary Alpine Linux:Glossary]<br />
<br />
<br />
-----<br />
<br />
=== [https://alpinelinux.org/ Alpine Linux] ===<br />
<br />
The minimal Linux distribution, that postmarketOS is based on. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as close as possible. Alpine developers do not see their distribution as &quot;GNU/Linux&quot;. That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.<br />
<br />
=== android-msm ===<br />
<br />
The Google provided 3.4 kernel as base for all Qualcomm devices.<br />
<br />
=== apk ===<br />
<br />
One of the following:<br />
<br />
* Android app format<br />
* Alpine Linux package (also ends in <code>.apk</code>, but totally incompatible!), which are actually gzipped tar files<br />
* Alpine Linux package manager (apk)<br />
<br />
=== boot.img ===<br />
<br />
Android specific format, that usually consists of the Linux kernel (in modern versions with a <code>dtb</code> appended) and the <code>initramfs</code>. This file gets flashed to the boot or recovery partition of the Android device.<br />
<br />
'''Variations:'''<br />
<br />
* Some old Samsungs: <code>boot.img</code> is just a kernel with a baked in <code>initramfs</code> ([[deviceinfo_flash_methods#Isorec_or_bootimg.3F|more]])<br />
* qcdt: <code>boot.img</code> has a <code>dtb</code> appended (instead of appending it to the kernel, [[deviceinfo_bootimg_qcdt|more]])<br />
<br />
=== dtb ===<br />
<br />
The binary device tree, this is a file containing a description of the hardware in the device since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called <code>zImage-dtb</code> for some Android kernels (older Android kernels do not generate a <code>dtb</code> file at all and have hardcoded the information directly in the kernel source). In mainline kernels, <code>dtb</code> files for all supported boards are created at once.<br />
<br />
=== dri ===<br />
<br />
[https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure Direct Rendering Infrastructure], the modern Linux kernel API for drawing to the screen.<br />
<br />
<br />
=== drm/kvm ===<br />
<br />
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.<br />
<br />
=== FDE ===<br />
<br />
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with luks, preventing the phone data to be retrieved without password if the device is turned off. This can optionally be disabled with <code>--no-fde</code> for debugging purposes.<br />
<br />
=== fbdev/framebuffer ===<br />
<br />
[https://en.wikipedia.org/wiki/Linux_framebuffer Linux framebuffer] a (more or less?) deprecated API from the Linux kernel that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.<br />
<br />
=== IDA ===<br />
<br />
The proprietary software [https://en.wikipedia.org/wiki/IDA_Pro Interactive Disassembler] is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source [[firmware]]. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.<br />
<br />
=== lk (little kernel) ===<br />
<br />
''[https://github.com/littlekernel/lk <code>lk</code>] is the kernel which fastboot runs on - at least all new-ish qualcomm devices are using <code>lk</code> and new-ish mediatek devices too''<br />
<br />
=== OpenRC ===<br />
<br />
[https://en.wikipedia.org/wiki/OpenRC OpenRC] is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.<br />
<br />
=== Weston ===<br />
<br />
[https://github.com/wayland-project/weston Weston] is the reference implementation of a Wayland compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.<br />
<br />
We have chosen Weston as demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as demo useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See [https://github.com/postmarketOS/pmbootstrap/issues/62 issue #62]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Glossary&diff=1151Glossary2017-10-22T06:13:40Z<p>Robinp: removed redundant trailing/leading spaces</p>
<hr />
<div>If you found a technical term related to this project, that you had to research to understand, please add it here (alphabetically sorted).<br />
<br />
See also:<br />
<br />
* [https://wiki.alpinelinux.org/wiki/Alpine_Linux:Glossary Alpine Linux:Glossary]<br />
<br />
<br />
-----<br />
<br />
=== [https://alpinelinux.org/ Alpine Linux] ===<br />
<br />
The minimal Linux distribution, that postmarketOS is based on. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as close as possible. Alpine developers do not see their distribution as &quot;GNU/Linux&quot;. That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.<br />
<br />
=== android-msm ===<br />
<br />
The Google provided 3.4 kernel as base for all Qualcomm devices.<br />
<br />
=== apk ===<br />
<br />
One of the following:<br />
<br />
* Android app format<br />
* Alpine Linux package (also ends in <code>.apk</code>, but totally incompatible!), which are actually gzipped tar files<br />
* Alpine Linux package manager (apk)<br />
<br />
=== boot.img ===<br />
<br />
Android specific format, that usually consists of the Linux kernel (in modern versions with a <code>dtb</code> appended) and the <code>initramfs</code>. This file gets flashed to the boot or recovery partition of the Android device.<br />
<br />
'''Variations:'''<br />
<br />
* Some old Samsungs: <code>boot.img</code> is just a kernel with a baked in <code>initramfs</code> ([[deviceinfo_flash_methods#Isorec_or_bootimg.3F|more]])<br />
* qcdt: <code>boot.img</code> has a <code>dtb</code> appended (instead of appending it to the kernel, [[deviceinfo_bootimg_qcdt|more]])<br />
<br />
=== dtb ===<br />
<br />
The binary device tree, this is a file containing a description of the hardware in the device since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called <code>zImage-dtb</code> for some Android kernels (older Android kernels do not generate a <code>dtb</code> file at all and have hardcoded the information directly in the kernel source). In mainline kernels, <code>dtb</code> files for all supported boards are created at once.<br />
<br />
=== dri ===<br />
<br />
[https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure Direct Rendering Infrastructure], the modern Linux kernel API for drawing to the screen.<br />
<br />
<br />
=== drm/kvm ===<br />
<br />
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.<br />
<br />
=== FDE ===<br />
<br />
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with luks, preventing the phone data to be retrieved without password if the device is turned off. This can optionally be disabled with <code>--no-fde</code> for debugging purposes.<br />
<br />
=== fbdev/framebuffer ===<br />
<br />
[https://en.wikipedia.org/wiki/Linux_framebuffer Linux framebuffer] a (more or less?) deprecated API from the Linux kernel, that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.<br />
<br />
=== IDA ===<br />
<br />
The proprietary software [https://en.wikipedia.org/wiki/IDA_Pro Interactive Disassembler] is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source [[firmware]]. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.<br />
<br />
=== lk (little kernel) ===<br />
<br />
''[https://github.com/littlekernel/lk <code>lk</code>] is the kernel which fastboot runs on - at least all new-ish qualcomm devices are using <code>lk</code> and new-ish mediatek devices too''<br />
<br />
=== OpenRC ===<br />
<br />
[https://en.wikipedia.org/wiki/OpenRC OpenRC] is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.<br />
<br />
=== Weston ===<br />
<br />
[https://github.com/wayland-project/weston Weston] is the reference implementation of a Wayland compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.<br />
<br />
We have chosen Weston as demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as demo useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See [https://github.com/postmarketOS/pmbootstrap/issues/62 issue #62]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Glossary&diff=1150Glossary2017-10-22T06:13:16Z<p>Robinp: fixed typos</p>
<hr />
<div>If you found a technical term related to this project, that you had to research to understand, please add it here (alphabetically sorted).<br />
<br />
See also:<br />
<br />
* [https://wiki.alpinelinux.org/wiki/Alpine_Linux:Glossary Alpine Linux:Glossary]<br />
<br />
<br />
-----<br />
<br />
=== [https://alpinelinux.org/ Alpine Linux] ===<br />
<br />
The minimal Linux distribution, that postmarketOS is based on. Actually, pmOS only adds a few packages on top of it, and provides the installer and development environment - that is the plan, to keep following upstream as close as possible. Alpine developers do not see their distribution as &quot;GNU/Linux&quot;. That being said, it works a lot like a typical Desktop Linux distribution. You have your package manager, the typical shell commands, you can install typical Linux software, and so on.<br />
<br />
=== android-msm ===<br />
<br />
The Google provided 3.4 kernel as base for all Qualcomm devices.<br />
<br />
=== apk ===<br />
<br />
One of the following:<br />
<br />
* Android app format<br />
* Alpine Linux package (also ends in <code>.apk</code>, but totally incompatible!), which are actually gzipped tar files<br />
* Alpine Linux package manager (apk)<br />
<br />
=== boot.img ===<br />
<br />
Android specific format, that usually consists of the Linux kernel (in modern versions with a <code>dtb</code> appended) and the <code>initramfs</code>. This file gets flashed to the boot or recovery partition of the Android device.<br />
<br />
'''Variations:'''<br />
<br />
* Some old Samsungs: <code>boot.img</code> is just a kernel with a baked in <code>initramfs</code> ([[deviceinfo_flash_methods#Isorec_or_bootimg.3F|more]])<br />
* qcdt: <code>boot.img</code> has a <code>dtb</code> appended (instead of appending it to the kernel, [[deviceinfo_bootimg_qcdt|more]])<br />
<br />
=== dtb ===<br />
<br />
The binary device tree, this is a file containing a description of the hardware in the device since phones don't have discoverable busses like x86 platforms. These are created from dts files in the kernel repository and produce a file called <code>zImage-dtb</code> for some Android kernels (older Android kernels do not generate a <code>dtb</code> file at all and have hardcoded the information directly in the kernel source). In mainline kernels, <code>dtb</code> files for all supported boards are created at once.<br />
<br />
=== dri ===<br />
<br />
[https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure Direct Rendering Infrastructure], the modern Linux kernel API for drawing to the screen.<br />
<br />
<br />
=== drm/kvm ===<br />
<br />
This is a slightly more complicated API than fbdev (and it replaces all fbdev functionality), it still provides a framebuffer but also has options to integrate hardware acceleration for 2D and 3D. All opensource fbdev drivers should be portable to a drm driver.<br />
<br />
=== FDE ===<br />
<br />
Full Disk Encryption, by default the rootfs created by pmbootstrap is fully encrypted with luks, preventing the phone data to be retrieved without password if the device is turned off. This can optionally be disabled with <code>--no-fde</code> for debugging purposes.<br />
<br />
=== fbdev / framebuffer ===<br />
<br />
[https://en.wikipedia.org/wiki/Linux_framebuffer Linux framebuffer] a (more or less?) deprecated API from the Linux kernel, that allows drawing to the screen. Newer drivers use the DRI API instead (see above). Android devices usually have drivers for framebuffer, instead of DRI.<br />
<br />
=== IDA ===<br />
<br />
The proprietary software [https://en.wikipedia.org/wiki/IDA_Pro Interactive Disassembler] is state of the art in the reverse engineering scene. It can be used to reverse engineer all kinds of blobs where the source code is not available, such as closed-source [[firmware]]. Disassembling is hard, and there's a high learning curve involved. It also features a decompiler, which produces (non-working) C code for better understanding.<br />
<br />
=== lk (little kernel) ===<br />
<br />
''[https://github.com/littlekernel/lk <code>lk</code>] is the kernel which fastboot runs on - at least all new-ish qualcomm devices are using <code>lk</code> and new-ish mediatek devices too''<br />
<br />
=== OpenRC ===<br />
<br />
[https://en.wikipedia.org/wiki/OpenRC OpenRC] is a dependency-based init for Unix-like systems. It is the default init system of Alpine Linux.<br />
<br />
=== Weston ===<br />
<br />
[https://github.com/wayland-project/weston Weston] is the reference implementation of a Wayland compositor. It has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11.<br />
<br />
We have chosen Weston as demo because we didn't want to use X11, as this is slowly dying. Also there's libweston, which might come in handy later (you can write your own desktop environment and inherit the hardware compatibility from weston). Weston is nice as demo useful at this moment of the development, but not usable as phone interface, so we'll need different desktop environments packaged sooner or later. See [https://github.com/postmarketOS/pmbootstrap/issues/62 issue #62]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Category:Hardware&diff=562Category:Hardware2017-09-02T03:30:07Z<p>Robinp: Created blank page</p>
<hr />
<div></div>Robinphttps://wiki.postmarketos.org/index.php?title=AR9271&diff=561AR92712017-09-02T03:29:45Z<p>Robinp: /* Devices using this chipset */</p>
<hr />
<div>The Atheros AR9271 is a widely-available wifi chipset which has both drivers and firmware released under free software licences. Given that the majority of wifi chipsets used in mobile phones (particularly Samsung models) are not free software, it is a viable alternative to use as an external adapter, plugged into the USB port. As such, we should ensure that it is working correctly under pmOS for the devices and kernels supported here.<br />
<br />
==Devices using this chipset==<br />
* Technoethical N150: TET-N150<br />
<br />
<br />
[[Category:Hardware]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=Devices&diff=560Devices2017-09-02T03:29:11Z<p>Robinp: /* External GPS units */</p>
<hr />
<div>Please add devices you're porting here, and write your porting progress in the wiki page.<br />
<br />
== Officially supported ==<br />
<br />
Devices will be officially supported in <code>pmbootstrap</code> when the encrypted root partition can be unlocked and graphical output works.<br />
<br />
{| class="wikitable sortable"<br />
! rowspan="2" | Device<br />
! rowspan="2" | Codename<br />
! colspan="15" | Status<br />
|-<br />
! 3D<br />
! Audio<br />
! Flashing<br />
! Mainline<br />
! Screen<br />
! Touch<br />
! Usbnet<br />
! Wifi<br />
! Xwayland<br />
! Bluetooth<br />
! GPS<br />
! Accelerometers<br />
! Camera<br />
! Mobile data<br />
! Voice<br />
|-<br />
| style="white-space: nowrap;" | [[Google Galaxy Nexus GSM (samsung-maguro)|Google Galaxy Nexus (GSM)]]<br />
| style="white-space: nowrap;" | samsung-maguro<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Google Nexus 4 (lg-mako)|Google Nexus 4]]<br />
| style="white-space: nowrap;" | lg-mako<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Google Nexus 5 (lg-hammerhead)|Google Nexus 5 (GSM)]]<br />
| style="white-space: nowrap;" | lg-hammerhead<br />
| <br />
| <br />
| Y<br />
| P<br />
| P<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Google Nexus 7 2012 (asus-grouper)|Google Nexus 7 (2012)]]<br />
| style="white-space: nowrap;" | asus-grouper<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| P<br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[HTC Desire (htc-bravo)|HTC Desire]]<br />
| style="white-space: nowrap;" | htc-bravo<br />
| <br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[HTC Desire HD (htc-ace)|HTC Desire HD]]<br />
| style="white-space: nowrap;" | htc-ace<br />
| <br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[LG G3 Europe (lg-d855)|LG G3 Europe]]<br />
| style="white-space: nowrap;" | lg-d855<br />
| <br />
| <br />
| P<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[LG G Watch R (lg-lenok)]]<br />
| style="white-space: nowrap;" | lg-lenok<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Moto G 2014 (motorola-titan)]]<br />
| style="white-space: nowrap;" | motorola-titan<br />
| <br />
| <br />
| P<br />
| <br />
| P<br />
| Y<br />
| Y<br />
| P<br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Mozilla Flame (t2m-flame)]]<br />
| style="white-space: nowrap;" | t2m-flame<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| P<br />
| Y<br />
| P<br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[nokia-rx51 (Nokia N900)|Nokia N900]]<br />
| style="white-space: nowrap;" | nokia-rx51<br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
| Y<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[QEMU ARM (qemu-vexpress)]]<br />
| style="white-space: nowrap;" | qemu-vexpress<br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| <br />
| <br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[QEMU amd64 (qemu-amd64)]]<br />
| style="white-space: nowrap;" | qemu-amd64<br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| <br />
| <br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Galaxy Note II (samsung-n7100)]]<br />
| style="white-space: nowrap;" | samsung-n7100<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Samsung Galaxy S Advance (samsung-i9070)]]<br />
| style="white-space: nowrap;" | samsung-i9070<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Samsung Galaxy SII (samsung-i9100)]]<br />
| style="white-space: nowrap;" | samsung-i9100<br />
| <br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Sony Xperia Z1 Compact (sony-amami)|Sony Xperia Z1 Compact]]<br />
| style="white-space: nowrap;" | sony-amami<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Sony Xperia Z2 Tablet (sony-castor-windy)]]<br />
| style="white-space: nowrap;" | sony-castor-windy<br />
| Y<br />
| <br />
| Y<br />
| P<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
| -<br />
| -<br />
|}<br />
<br />
=== Status Legend ===<br />
<br />
{| class="wikitable"<br />
! Code<br />
! Meaning<br />
|-<br />
| Y<br />
| Yes, fully implemented<br />
|-<br />
| P<br />
| Partially implemented<br />
|-<br />
| -<br />
| Not applicable<br />
|}<br />
<br />
== Work in progress ==<br />
<br />
{| class="wikitable sortable"<br />
! Device<br />
! Codename<br />
! Status<br />
|-<br />
| [[Apple-iPod-Touch-1G|Apple iPod Touch 1G]]<br />
| apple-ipt1g<br />
|<br />
|-<br />
| [[Asus-tf101-(ASUS-Transformer-TF101)|ASUS Eee Pad Transformer]]<br />
| asus-tf101<br />
| Kernel does not compile<br />
|-<br />
| [[BlackBerry-Bold-Touch-9900-(Dakota)|BlackBerry Bold Touch 9900]]<br />
| blackberry-dakota<br />
|<br />
|-<br />
| [[Coolpad-Sky-3-E502-(Modena-2)|Coolpad Modena 2]]<br />
| coolpad-modena2<br />
|<br />
|-<br />
| [[Fairphone-2|Fairphone 2]]<br />
| fairphone-fp2<br />
|<br />
|-<br />
| [[Hp-tenderloin-(HP-Touchpad)|HP Touchpad]]<br />
| hp-tenderloin<br />
| Need novacom packaged for Alpine<br />
|-<br />
| [[Htc-vision-(HTC-Desire-Z)|HTC Desire Z]]<br />
| htc-vision<br />
| Kernel compiles, not tested<br />
|-<br />
| [[Htc-monarudo-(HTC-Droid-DNA)|HTC Droid DNA]]<br />
| htc-monarudo<br />
|<br />
|-<br />
| [[Huawei-Ascend-Y530|Huawei Ascend Y530]]<br />
| huawei-y530<br />
|<br />
|-<br />
| [[Jolla-sbj-(Jolla-phone)|Jolla Phone]]<br />
| jolla-sbj<br />
| Kernel compiles, can't get fastboot to work<br />
|-<br />
| [[Landrover-a9|Land Rover A9]]<br />
| landrover-a9<br />
|<br />
|-<br />
| [[Samsung-g800f-(Samsung-Galaxy-S5-mini)|Samsung Galaxy S5 mini]]<br />
| samsung-g800f<br />
|<br />
|-<br />
| [[Samsung-S7562|Samsung Galaxy S Duos]]<br />
| samsung-s7562<br />
|<br />
|-<br />
| [[Semc-anzu-(Xperia-Arc)|Sony Ericsson Xperia Arc]]<br />
| semc-anzu<br />
|<br />
|-<br />
| [[Xperia-Z2|Sony Xperia Z2]]<br />
| sony-sirius<br />
|<br />
|-<br />
| [[Xperia-E-Dual|Sony Xperia E Dual]]<br />
| sony-nanhu<br />
|<br />
|-<br />
| [[Xperia-Z3C|Sony Xperia Z3C]]<br />
| sony-aries<br />
|<br />
|-<br />
| [[Xperia-Z|Sony Xperia Z]]<br />
| sony-yuga<br />
|<br />
|}<br />
<br />
<br />
==Other supported hardware==<br />
There are a variety of devices which pmOS users will likely plug into their phones. If the device is free software compliant (drivers and firmware), we should ensure it works with the OS. This is particularly relevant if the hardware offers an alternative to a non-free piece of hardware which is part of a supported device, such as external wifi adapters and gps units. These devices are listed below.<br />
<br />
===External wifi adapters===<br />
<br />
Atheros [[AR9271]] chipset<br />
<br />
===External GPS units===<br />
<br />
[[Category:Hardware]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=AR9271&diff=559AR92712017-09-02T03:27:23Z<p>Robinp: </p>
<hr />
<div>The Atheros AR9271 is a widely-available wifi chipset which has both drivers and firmware released under free software licences. Given that the majority of wifi chipsets used in mobile phones (particularly Samsung models) are not free software, it is a viable alternative to use as an external adapter, plugged into the USB port. As such, we should ensure that it is working correctly under pmOS for the devices and kernels supported here.<br />
<br />
==Devices using this chipset==<br />
* Technoethical N150: TET-N150</div>Robinphttps://wiki.postmarketos.org/index.php?title=AR9271&diff=558AR92712017-09-02T03:24:27Z<p>Robinp: </p>
<hr />
<div>The Atheros AR9271 is a widely-available wifi chipset which has both drivers and firmware released under free software licences. Given that the majority of wifi chipset used in mobile phones (particularly Samsung models) are not free software, it is a viable alternative to use as an external adapter, plugged into the USB port. As such, we should ensure that it is working correctly under pmOS for the devices and kernels supported here.<br />
<br />
==Devices using this chipset==<br />
* Technoethical N150: TET-N150</div>Robinphttps://wiki.postmarketos.org/index.php?title=AR9271&diff=557AR92712017-09-02T03:23:51Z<p>Robinp: </p>
<hr />
<div>The Atheros AR9271 is a widely-available wifi chipset which has both drivers and firmware released under free software licences. Given that the majority of wifi chipset used in mobile phones (particularly Samsung models) are not free software, it is a viable alternative to use as an external adapter, plugged into the USB port. As such, we should ensure that it is working correctly under pmOS for the devices and kernels supported here.<br />
<br />
==Devices using this chipset==<br />
* Technoethical N150: TET-N150<br />
* Technoethical N150 with high-gain antenna: TET-N150HGA</div>Robinphttps://wiki.postmarketos.org/index.php?title=Devices&diff=556Devices2017-09-02T03:21:43Z<p>Robinp: /* External wifi adapters */</p>
<hr />
<div>Please add devices you're porting here, and write your porting progress in the wiki page.<br />
<br />
== Officially supported ==<br />
<br />
Devices will be officially supported in <code>pmbootstrap</code> when the encrypted root partition can be unlocked and graphical output works.<br />
<br />
{| class="wikitable sortable"<br />
! rowspan="2" | Device<br />
! rowspan="2" | Codename<br />
! colspan="15" | Status<br />
|-<br />
! 3D<br />
! Audio<br />
! Flashing<br />
! Mainline<br />
! Screen<br />
! Touch<br />
! Usbnet<br />
! Wifi<br />
! Xwayland<br />
! Bluetooth<br />
! GPS<br />
! Accelerometers<br />
! Camera<br />
! Mobile data<br />
! Voice<br />
|-<br />
| style="white-space: nowrap;" | [[Google Galaxy Nexus GSM (samsung-maguro)|Google Galaxy Nexus (GSM)]]<br />
| style="white-space: nowrap;" | samsung-maguro<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Google Nexus 4 (lg-mako)|Google Nexus 4]]<br />
| style="white-space: nowrap;" | lg-mako<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Google Nexus 5 (lg-hammerhead)|Google Nexus 5 (GSM)]]<br />
| style="white-space: nowrap;" | lg-hammerhead<br />
| <br />
| <br />
| Y<br />
| P<br />
| P<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Google Nexus 7 2012 (asus-grouper)|Google Nexus 7 (2012)]]<br />
| style="white-space: nowrap;" | asus-grouper<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| P<br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[HTC Desire (htc-bravo)|HTC Desire]]<br />
| style="white-space: nowrap;" | htc-bravo<br />
| <br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[HTC Desire HD (htc-ace)|HTC Desire HD]]<br />
| style="white-space: nowrap;" | htc-ace<br />
| <br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[LG G3 Europe (lg-d855)|LG G3 Europe]]<br />
| style="white-space: nowrap;" | lg-d855<br />
| <br />
| <br />
| P<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[LG G Watch R (lg-lenok)]]<br />
| style="white-space: nowrap;" | lg-lenok<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Moto G 2014 (motorola-titan)]]<br />
| style="white-space: nowrap;" | motorola-titan<br />
| <br />
| <br />
| P<br />
| <br />
| P<br />
| Y<br />
| Y<br />
| P<br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Mozilla Flame (t2m-flame)]]<br />
| style="white-space: nowrap;" | t2m-flame<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| P<br />
| Y<br />
| P<br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[nokia-rx51 (Nokia N900)|Nokia N900]]<br />
| style="white-space: nowrap;" | nokia-rx51<br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
| Y<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[QEMU ARM (qemu-vexpress)]]<br />
| style="white-space: nowrap;" | qemu-vexpress<br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| <br />
| <br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[QEMU amd64 (qemu-amd64)]]<br />
| style="white-space: nowrap;" | qemu-amd64<br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| <br />
| <br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Galaxy Note II (samsung-n7100)]]<br />
| style="white-space: nowrap;" | samsung-n7100<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Samsung Galaxy S Advance (samsung-i9070)]]<br />
| style="white-space: nowrap;" | samsung-i9070<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Samsung Galaxy SII (samsung-i9100)]]<br />
| style="white-space: nowrap;" | samsung-i9100<br />
| <br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Sony Xperia Z1 Compact (sony-amami)|Sony Xperia Z1 Compact]]<br />
| style="white-space: nowrap;" | sony-amami<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Sony Xperia Z2 Tablet (sony-castor-windy)]]<br />
| style="white-space: nowrap;" | sony-castor-windy<br />
| Y<br />
| <br />
| Y<br />
| P<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
| -<br />
| -<br />
|}<br />
<br />
=== Status Legend ===<br />
<br />
{| class="wikitable"<br />
! Code<br />
! Meaning<br />
|-<br />
| Y<br />
| Yes, fully implemented<br />
|-<br />
| P<br />
| Partially implemented<br />
|-<br />
| -<br />
| Not applicable<br />
|}<br />
<br />
== Work in progress ==<br />
<br />
{| class="wikitable sortable"<br />
! Device<br />
! Codename<br />
! Status<br />
|-<br />
| [[Apple-iPod-Touch-1G|Apple iPod Touch 1G]]<br />
| apple-ipt1g<br />
|<br />
|-<br />
| [[Asus-tf101-(ASUS-Transformer-TF101)|ASUS Eee Pad Transformer]]<br />
| asus-tf101<br />
| Kernel does not compile<br />
|-<br />
| [[BlackBerry-Bold-Touch-9900-(Dakota)|BlackBerry Bold Touch 9900]]<br />
| blackberry-dakota<br />
|<br />
|-<br />
| [[Coolpad-Sky-3-E502-(Modena-2)|Coolpad Modena 2]]<br />
| coolpad-modena2<br />
|<br />
|-<br />
| [[Fairphone-2|Fairphone 2]]<br />
| fairphone-fp2<br />
|<br />
|-<br />
| [[Hp-tenderloin-(HP-Touchpad)|HP Touchpad]]<br />
| hp-tenderloin<br />
| Need novacom packaged for Alpine<br />
|-<br />
| [[Htc-vision-(HTC-Desire-Z)|HTC Desire Z]]<br />
| htc-vision<br />
| Kernel compiles, not tested<br />
|-<br />
| [[Htc-monarudo-(HTC-Droid-DNA)|HTC Droid DNA]]<br />
| htc-monarudo<br />
|<br />
|-<br />
| [[Huawei-Ascend-Y530|Huawei Ascend Y530]]<br />
| huawei-y530<br />
|<br />
|-<br />
| [[Jolla-sbj-(Jolla-phone)|Jolla Phone]]<br />
| jolla-sbj<br />
| Kernel compiles, can't get fastboot to work<br />
|-<br />
| [[Landrover-a9|Land Rover A9]]<br />
| landrover-a9<br />
|<br />
|-<br />
| [[Samsung-g800f-(Samsung-Galaxy-S5-mini)|Samsung Galaxy S5 mini]]<br />
| samsung-g800f<br />
|<br />
|-<br />
| [[Samsung-S7562|Samsung Galaxy S Duos]]<br />
| samsung-s7562<br />
|<br />
|-<br />
| [[Semc-anzu-(Xperia-Arc)|Sony Ericsson Xperia Arc]]<br />
| semc-anzu<br />
|<br />
|-<br />
| [[Xperia-Z2|Sony Xperia Z2]]<br />
| sony-sirius<br />
|<br />
|-<br />
| [[Xperia-E-Dual|Sony Xperia E Dual]]<br />
| sony-nanhu<br />
|<br />
|-<br />
| [[Xperia-Z3C|Sony Xperia Z3C]]<br />
| sony-aries<br />
|<br />
|-<br />
| [[Xperia-Z|Sony Xperia Z]]<br />
| sony-yuga<br />
|<br />
|}<br />
<br />
<br />
==Other supported hardware==<br />
There are a variety of devices which pmOS users will likely plug into their phones. If the device is free software compliant (drivers and firmware), we should ensure it works with the OS. This is particularly relevant if the hardware offers an alternative to a non-free piece of hardware which is part of a supported device, such as external wifi adapters and gps units. These devices are listed below.<br />
<br />
===External wifi adapters===<br />
<br />
Atheros [[AR9271]] chipset<br />
<br />
===External GPS units===</div>Robinphttps://wiki.postmarketos.org/index.php?title=Devices&diff=555Devices2017-09-02T02:41:09Z<p>Robinp: /* Other supported hardware */</p>
<hr />
<div>Please add devices you're porting here, and write your porting progress in the wiki page.<br />
<br />
== Officially supported ==<br />
<br />
Devices will be officially supported in <code>pmbootstrap</code> when the encrypted root partition can be unlocked and graphical output works.<br />
<br />
{| class="wikitable sortable"<br />
! rowspan="2" | Device<br />
! rowspan="2" | Codename<br />
! colspan="15" | Status<br />
|-<br />
! 3D<br />
! Audio<br />
! Flashing<br />
! Mainline<br />
! Screen<br />
! Touch<br />
! Usbnet<br />
! Wifi<br />
! Xwayland<br />
! Bluetooth<br />
! GPS<br />
! Accelerometers<br />
! Camera<br />
! Mobile data<br />
! Voice<br />
|-<br />
| style="white-space: nowrap;" | [[Google Galaxy Nexus GSM (samsung-maguro)|Google Galaxy Nexus (GSM)]]<br />
| style="white-space: nowrap;" | samsung-maguro<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Google Nexus 4 (lg-mako)|Google Nexus 4]]<br />
| style="white-space: nowrap;" | lg-mako<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Google Nexus 5 (lg-hammerhead)|Google Nexus 5 (GSM)]]<br />
| style="white-space: nowrap;" | lg-hammerhead<br />
| <br />
| <br />
| Y<br />
| P<br />
| P<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Google Nexus 7 2012 (asus-grouper)|Google Nexus 7 (2012)]]<br />
| style="white-space: nowrap;" | asus-grouper<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| P<br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[HTC Desire (htc-bravo)|HTC Desire]]<br />
| style="white-space: nowrap;" | htc-bravo<br />
| <br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[HTC Desire HD (htc-ace)|HTC Desire HD]]<br />
| style="white-space: nowrap;" | htc-ace<br />
| <br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[LG G3 Europe (lg-d855)|LG G3 Europe]]<br />
| style="white-space: nowrap;" | lg-d855<br />
| <br />
| <br />
| P<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[LG G Watch R (lg-lenok)]]<br />
| style="white-space: nowrap;" | lg-lenok<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Moto G 2014 (motorola-titan)]]<br />
| style="white-space: nowrap;" | motorola-titan<br />
| <br />
| <br />
| P<br />
| <br />
| P<br />
| Y<br />
| Y<br />
| P<br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Mozilla Flame (t2m-flame)]]<br />
| style="white-space: nowrap;" | t2m-flame<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| P<br />
| Y<br />
| P<br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[nokia-rx51 (Nokia N900)|Nokia N900]]<br />
| style="white-space: nowrap;" | nokia-rx51<br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
| Y<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[QEMU ARM (qemu-vexpress)]]<br />
| style="white-space: nowrap;" | qemu-vexpress<br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| <br />
| <br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[QEMU amd64 (qemu-amd64)]]<br />
| style="white-space: nowrap;" | qemu-amd64<br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| <br />
| <br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Galaxy Note II (samsung-n7100)]]<br />
| style="white-space: nowrap;" | samsung-n7100<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Samsung Galaxy S Advance (samsung-i9070)]]<br />
| style="white-space: nowrap;" | samsung-i9070<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Samsung Galaxy SII (samsung-i9100)]]<br />
| style="white-space: nowrap;" | samsung-i9100<br />
| <br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Sony Xperia Z1 Compact (sony-amami)|Sony Xperia Z1 Compact]]<br />
| style="white-space: nowrap;" | sony-amami<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Sony Xperia Z2 Tablet (sony-castor-windy)]]<br />
| style="white-space: nowrap;" | sony-castor-windy<br />
| Y<br />
| <br />
| Y<br />
| P<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
| -<br />
| -<br />
|}<br />
<br />
=== Status Legend ===<br />
<br />
{| class="wikitable"<br />
! Code<br />
! Meaning<br />
|-<br />
| Y<br />
| Yes, fully implemented<br />
|-<br />
| P<br />
| Partially implemented<br />
|-<br />
| -<br />
| Not applicable<br />
|}<br />
<br />
== Work in progress ==<br />
<br />
{| class="wikitable sortable"<br />
! Device<br />
! Codename<br />
! Status<br />
|-<br />
| [[Apple-iPod-Touch-1G|Apple iPod Touch 1G]]<br />
| apple-ipt1g<br />
|<br />
|-<br />
| [[Asus-tf101-(ASUS-Transformer-TF101)|ASUS Eee Pad Transformer]]<br />
| asus-tf101<br />
| Kernel does not compile<br />
|-<br />
| [[BlackBerry-Bold-Touch-9900-(Dakota)|BlackBerry Bold Touch 9900]]<br />
| blackberry-dakota<br />
|<br />
|-<br />
| [[Coolpad-Sky-3-E502-(Modena-2)|Coolpad Modena 2]]<br />
| coolpad-modena2<br />
|<br />
|-<br />
| [[Fairphone-2|Fairphone 2]]<br />
| fairphone-fp2<br />
|<br />
|-<br />
| [[Hp-tenderloin-(HP-Touchpad)|HP Touchpad]]<br />
| hp-tenderloin<br />
| Need novacom packaged for Alpine<br />
|-<br />
| [[Htc-vision-(HTC-Desire-Z)|HTC Desire Z]]<br />
| htc-vision<br />
| Kernel compiles, not tested<br />
|-<br />
| [[Htc-monarudo-(HTC-Droid-DNA)|HTC Droid DNA]]<br />
| htc-monarudo<br />
|<br />
|-<br />
| [[Huawei-Ascend-Y530|Huawei Ascend Y530]]<br />
| huawei-y530<br />
|<br />
|-<br />
| [[Jolla-sbj-(Jolla-phone)|Jolla Phone]]<br />
| jolla-sbj<br />
| Kernel compiles, can't get fastboot to work<br />
|-<br />
| [[Landrover-a9|Land Rover A9]]<br />
| landrover-a9<br />
|<br />
|-<br />
| [[Samsung-g800f-(Samsung-Galaxy-S5-mini)|Samsung Galaxy S5 mini]]<br />
| samsung-g800f<br />
|<br />
|-<br />
| [[Samsung-S7562|Samsung Galaxy S Duos]]<br />
| samsung-s7562<br />
|<br />
|-<br />
| [[Semc-anzu-(Xperia-Arc)|Sony Ericsson Xperia Arc]]<br />
| semc-anzu<br />
|<br />
|-<br />
| [[Xperia-Z2|Sony Xperia Z2]]<br />
| sony-sirius<br />
|<br />
|-<br />
| [[Xperia-E-Dual|Sony Xperia E Dual]]<br />
| sony-nanhu<br />
|<br />
|-<br />
| [[Xperia-Z3C|Sony Xperia Z3C]]<br />
| sony-aries<br />
|<br />
|-<br />
| [[Xperia-Z|Sony Xperia Z]]<br />
| sony-yuga<br />
|<br />
|}<br />
<br />
<br />
==Other supported hardware==<br />
There are a variety of devices which pmOS users will likely plug into their phones. If the device is free software compliant (drivers and firmware), we should ensure it works with the OS. This is particularly relevant if the hardware offers an alternative to a non-free piece of hardware which is part of a supported device, such as external wifi adapters and gps units. These devices are listed below.<br />
<br />
===External wifi adapters===<br />
<br />
[[AR9271]]<br />
<br />
<br />
===External GPS units===</div>Robinphttps://wiki.postmarketos.org/index.php?title=Devices&diff=554Devices2017-09-02T02:39:01Z<p>Robinp: added ar9271 wifi adapter to "other supported hardware" section</p>
<hr />
<div>Please add devices you're porting here, and write your porting progress in the wiki page.<br />
<br />
== Officially supported ==<br />
<br />
Devices will be officially supported in <code>pmbootstrap</code> when the encrypted root partition can be unlocked and graphical output works.<br />
<br />
{| class="wikitable sortable"<br />
! rowspan="2" | Device<br />
! rowspan="2" | Codename<br />
! colspan="15" | Status<br />
|-<br />
! 3D<br />
! Audio<br />
! Flashing<br />
! Mainline<br />
! Screen<br />
! Touch<br />
! Usbnet<br />
! Wifi<br />
! Xwayland<br />
! Bluetooth<br />
! GPS<br />
! Accelerometers<br />
! Camera<br />
! Mobile data<br />
! Voice<br />
|-<br />
| style="white-space: nowrap;" | [[Google Galaxy Nexus GSM (samsung-maguro)|Google Galaxy Nexus (GSM)]]<br />
| style="white-space: nowrap;" | samsung-maguro<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Google Nexus 4 (lg-mako)|Google Nexus 4]]<br />
| style="white-space: nowrap;" | lg-mako<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Google Nexus 5 (lg-hammerhead)|Google Nexus 5 (GSM)]]<br />
| style="white-space: nowrap;" | lg-hammerhead<br />
| <br />
| <br />
| Y<br />
| P<br />
| P<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Google Nexus 7 2012 (asus-grouper)|Google Nexus 7 (2012)]]<br />
| style="white-space: nowrap;" | asus-grouper<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| P<br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[HTC Desire (htc-bravo)|HTC Desire]]<br />
| style="white-space: nowrap;" | htc-bravo<br />
| <br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[HTC Desire HD (htc-ace)|HTC Desire HD]]<br />
| style="white-space: nowrap;" | htc-ace<br />
| <br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[LG G3 Europe (lg-d855)|LG G3 Europe]]<br />
| style="white-space: nowrap;" | lg-d855<br />
| <br />
| <br />
| P<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[LG G Watch R (lg-lenok)]]<br />
| style="white-space: nowrap;" | lg-lenok<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Moto G 2014 (motorola-titan)]]<br />
| style="white-space: nowrap;" | motorola-titan<br />
| <br />
| <br />
| P<br />
| <br />
| P<br />
| Y<br />
| Y<br />
| P<br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Mozilla Flame (t2m-flame)]]<br />
| style="white-space: nowrap;" | t2m-flame<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| P<br />
| Y<br />
| P<br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[nokia-rx51 (Nokia N900)|Nokia N900]]<br />
| style="white-space: nowrap;" | nokia-rx51<br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
| Y<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[QEMU ARM (qemu-vexpress)]]<br />
| style="white-space: nowrap;" | qemu-vexpress<br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| <br />
| <br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[QEMU amd64 (qemu-amd64)]]<br />
| style="white-space: nowrap;" | qemu-amd64<br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| <br />
| <br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Galaxy Note II (samsung-n7100)]]<br />
| style="white-space: nowrap;" | samsung-n7100<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| <br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Samsung Galaxy S Advance (samsung-i9070)]]<br />
| style="white-space: nowrap;" | samsung-i9070<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Samsung Galaxy SII (samsung-i9100)]]<br />
| style="white-space: nowrap;" | samsung-i9100<br />
| <br />
| <br />
| <br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Sony Xperia Z1 Compact (sony-amami)|Sony Xperia Z1 Compact]]<br />
| style="white-space: nowrap;" | sony-amami<br />
| <br />
| <br />
| Y<br />
| <br />
| Y<br />
| Y<br />
| Y<br />
| <br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| style="white-space: nowrap;" | [[Sony Xperia Z2 Tablet (sony-castor-windy)]]<br />
| style="white-space: nowrap;" | sony-castor-windy<br />
| Y<br />
| <br />
| Y<br />
| P<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
| Y<br />
|<br />
|<br />
|<br />
|<br />
| -<br />
| -<br />
|}<br />
<br />
=== Status Legend ===<br />
<br />
{| class="wikitable"<br />
! Code<br />
! Meaning<br />
|-<br />
| Y<br />
| Yes, fully implemented<br />
|-<br />
| P<br />
| Partially implemented<br />
|-<br />
| -<br />
| Not applicable<br />
|}<br />
<br />
== Work in progress ==<br />
<br />
{| class="wikitable sortable"<br />
! Device<br />
! Codename<br />
! Status<br />
|-<br />
| [[Apple-iPod-Touch-1G|Apple iPod Touch 1G]]<br />
| apple-ipt1g<br />
|<br />
|-<br />
| [[Asus-tf101-(ASUS-Transformer-TF101)|ASUS Eee Pad Transformer]]<br />
| asus-tf101<br />
| Kernel does not compile<br />
|-<br />
| [[BlackBerry-Bold-Touch-9900-(Dakota)|BlackBerry Bold Touch 9900]]<br />
| blackberry-dakota<br />
|<br />
|-<br />
| [[Coolpad-Sky-3-E502-(Modena-2)|Coolpad Modena 2]]<br />
| coolpad-modena2<br />
|<br />
|-<br />
| [[Fairphone-2|Fairphone 2]]<br />
| fairphone-fp2<br />
|<br />
|-<br />
| [[Hp-tenderloin-(HP-Touchpad)|HP Touchpad]]<br />
| hp-tenderloin<br />
| Need novacom packaged for Alpine<br />
|-<br />
| [[Htc-vision-(HTC-Desire-Z)|HTC Desire Z]]<br />
| htc-vision<br />
| Kernel compiles, not tested<br />
|-<br />
| [[Htc-monarudo-(HTC-Droid-DNA)|HTC Droid DNA]]<br />
| htc-monarudo<br />
|<br />
|-<br />
| [[Huawei-Ascend-Y530|Huawei Ascend Y530]]<br />
| huawei-y530<br />
|<br />
|-<br />
| [[Jolla-sbj-(Jolla-phone)|Jolla Phone]]<br />
| jolla-sbj<br />
| Kernel compiles, can't get fastboot to work<br />
|-<br />
| [[Landrover-a9|Land Rover A9]]<br />
| landrover-a9<br />
|<br />
|-<br />
| [[Samsung-g800f-(Samsung-Galaxy-S5-mini)|Samsung Galaxy S5 mini]]<br />
| samsung-g800f<br />
|<br />
|-<br />
| [[Samsung-S7562|Samsung Galaxy S Duos]]<br />
| samsung-s7562<br />
|<br />
|-<br />
| [[Semc-anzu-(Xperia-Arc)|Sony Ericsson Xperia Arc]]<br />
| semc-anzu<br />
|<br />
|-<br />
| [[Xperia-Z2|Sony Xperia Z2]]<br />
| sony-sirius<br />
|<br />
|-<br />
| [[Xperia-E-Dual|Sony Xperia E Dual]]<br />
| sony-nanhu<br />
|<br />
|-<br />
| [[Xperia-Z3C|Sony Xperia Z3C]]<br />
| sony-aries<br />
|<br />
|-<br />
| [[Xperia-Z|Sony Xperia Z]]<br />
| sony-yuga<br />
|<br />
|}<br />
<br />
<br />
==Other supported hardware==<br />
There are a variety of devices which pmOS users will likely plug into their phones. If the device is free software compliant (drivers and firmware), we should ensure it works with the OS. These devices are listed below.<br />
<br />
===External wifi adapters===<br />
<br />
[[AR9271]]</div>Robinphttps://wiki.postmarketos.org/index.php?title=AR9271&diff=553AR92712017-09-02T02:36:15Z<p>Robinp: added basic info on relevance of ar9271 chipset</p>
<hr />
<div>The Atheros AR9271 is a widely-available wifi chipset which has both drivers and firmware released under free software licences. Given that the majority of wifi chipset used in mobile phones (particularly Samsung models) are not free software, it is a viable alternative to use as an external adapter, plugged into the USB port. As such, we should ensure that it is working correctly under pmOS for the devices and kernels supported here.</div>Robinp