https://wiki.postmarketos.org/api.php?action=feedcontributions&user=Onny&feedformat=atompostmarketOS - User contributions [en]2024-03-28T16:30:29ZUser contributionsMediaWiki 1.39.6https://wiki.postmarketos.org/index.php?title=Nokia_7.2_(nokia-daredevil)&diff=53987Nokia 7.2 (nokia-daredevil)2023-12-17T18:52:28Z<p>Onny: /* Unlock bootloader */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = HMD Global<br />
| name = Nokia 7.2<br />
| codename = nokia-daredevil<br />
| image = File:nokia-daredevil.jpg<br />
| imagecaption = CHANGE_ME<br />
| releaseyear = 2019<br />
| originalsoftware = Android<br />
| originalversion = 9<br />
| chipset = Qualcomm Snapdragon 660 (SDM660)<br />
| cpu = 4x2.2 GHz Kryo 260 Gold & 4x1.8 GHz Kryo 260 Silver<br />
| gpu = Adreno 512<br />
| storage = 64 GB, 128 GB<br />
| display = 1080x2280 IPS<br />
| memory = 4 GB, 6 GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --><br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = <!-- The display is working? --><br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = <!-- Instead of a Linux kernel fork, it is possible to run mainline. --><br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = untested<br />
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device --><br />
| status_nfc = <!-- Near-Field Communication (NFC) works --><br />
| status_usba = <!-- Full-sized USB-A port works (Usually applicable to SBCs and laptops) --><br />
| status_hdmidp = <!-- Video and audio output with HDMI or DisplayPort works --><br />
| status_keyboard = <!-- Keyboard works (Mark "-" if device doesn't have a keyboard) --><br />
| status_touchpad = <!-- Touchpad works (Usually applicable to laptops) --><br />
| status_irtx = <!-- Infrared (IR) port works --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_magnet = <!-- Magnetometer works --><br />
| status_light = <!-- Ambient light sensor works --><br />
| status_proximity = <!-- Proximity sensor works --><br />
| status_hall = <!-- Hall effect sensor works --><br />
| status_barometer = <!-- Barometer works --><br />
| status_powersensor = <!-- Power sensor works --><br />
| status_fossbootloader = <!-- Device has a free and open source bootloader --><br />
| booting = no <!-- The device is booting at all, can be yes/no *IMPORTANT* --><br />
<br />
<!-- you can also use these lines if you need to:<br />
if the device haven't originally ran Android OS, e.g. Nokia N900<br />
| n-android = ✔<br />
Version of the kernel that pmos is running<br />
| pmoskernel = 3.x.x<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Selfisekai]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== Variants ==<br />
<br />
{| class="wikitable" style="margin:auto"<br />
|+ Device variants<br />
|-<br />
! Model ID !! FCC report !! RAM !! Storage !! SIM slots !! NFC !! Notes<br />
|-<br />
| TA-1178 || [https://fcc.report/FCC-ID/2AJOTTA-1178 2AJOTTA-1178] || || || 1 || ||<br />
|-<br />
| TA-1181 || [https://fcc.report/FCC-ID/2AJOTTA-1181 2AJOTTA-1181] || || || || ||<br />
|-<br />
| TA-1193 || none || 6 GB || 64 GB || 2 || N || India version<br />
|-<br />
| TA-1196 || [https://fcc.report/FCC-ID/2AJOTTA-1196 2AJOTTA-1196] || 6 GB || 128 GB || 2 || Y || same as TA-1178 except 2 SIM slots - per FCC cover letter<br />
|}<br />
<br />
== How to enter flash mode ==<br />
{{note|This device has a [[Bootloader#HMD Global|locked bootloader]].}}<br />
<br />
=== Unlock bootloader ===<br />
<br />
Bootloader unlocking was originally supported, but HMD Global [https://nokiamob.net/2019/11/02/official-nokia-mobile-will-remove-the-option-to-unlock-the-nokia-7-2-and-nokia-6-2-bootloader/ removed the option in December 2019 upgrade], saying some bullshit about regretting the "inconvenience" of allowing us to use our devices as we want to.<br />
<br />
One possible solution is to downgrade the device to an earlier official Android version.<br />
<br />
# Perform normal factory reset in settings to erase Google account information, so you won't be locked from FRP<br />
# Power off your phone and connect it to your computer via USB<br />
# Enter fastboot mode by pressing both {{Button|Power}} + {{Button|Volume Up}} + {{Button|Volume Down}} at the same time<br />
# Choose "recovery mode" here with volume keys and power key to confirm<br />
# When you see 'no command' displays on the phone, hold {{Button|Power}} and press {{Button|Volume Up}} once<br />
# Download the ZIP file according to your device model from here https://forum.xda-developers.com/t/experimental-downgrade-this-phone-back-to-android-10.4360147/<br />
# Flash this using ADB using the command <code>adb sideload *update_enchanted.zip</code><br />
# Go into factory and select 'wipe data / factory reset' again<br />
# Enable OEM unlocking in Developer settings, then boot into fastboot and run <code>fastboot flashing unlock</code><br />
<br />
== Installation ==<br />
Use [[pmbootstrap]] to build your own installation image.<br />
<br />
<!-- Expand this with the commands needed for flashing, add --sdcard to install if it makes sense etc. --><br />
<source lang="shell-session"><br />
$ pmbootstrap init<br />
$ pmbootstrap install --fde<br />
</source><br />
<br />
<!-- add more sections below as necessary, e.g. WiFi, photos, ... --><br />
<br />
== See also ==<br />
* manufacturer kernel source: https://nokiaphones-opensource.azureedge.net/download/phones/Nokia7.2_V1.400.tar.bz2 ([https://www.nokia.com/phones/en_int/opensource page])<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Onnyhttps://wiki.postmarketos.org/index.php?title=Nokia_7.2_(nokia-daredevil)&diff=53983Nokia 7.2 (nokia-daredevil)2023-12-17T18:48:59Z<p>Onny: /* Unlock bootloader */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = HMD Global<br />
| name = Nokia 7.2<br />
| codename = nokia-daredevil<br />
| image = File:nokia-daredevil.jpg<br />
| imagecaption = CHANGE_ME<br />
| releaseyear = 2019<br />
| originalsoftware = Android<br />
| originalversion = 9<br />
| chipset = Qualcomm Snapdragon 660 (SDM660)<br />
| cpu = 4x2.2 GHz Kryo 260 Gold & 4x1.8 GHz Kryo 260 Silver<br />
| gpu = Adreno 512<br />
| storage = 64 GB, 128 GB<br />
| display = 1080x2280 IPS<br />
| memory = 4 GB, 6 GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --><br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = <!-- The display is working? --><br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = <!-- Instead of a Linux kernel fork, it is possible to run mainline. --><br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = untested<br />
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device --><br />
| status_nfc = <!-- Near-Field Communication (NFC) works --><br />
| status_usba = <!-- Full-sized USB-A port works (Usually applicable to SBCs and laptops) --><br />
| status_hdmidp = <!-- Video and audio output with HDMI or DisplayPort works --><br />
| status_keyboard = <!-- Keyboard works (Mark "-" if device doesn't have a keyboard) --><br />
| status_touchpad = <!-- Touchpad works (Usually applicable to laptops) --><br />
| status_irtx = <!-- Infrared (IR) port works --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_magnet = <!-- Magnetometer works --><br />
| status_light = <!-- Ambient light sensor works --><br />
| status_proximity = <!-- Proximity sensor works --><br />
| status_hall = <!-- Hall effect sensor works --><br />
| status_barometer = <!-- Barometer works --><br />
| status_powersensor = <!-- Power sensor works --><br />
| status_fossbootloader = <!-- Device has a free and open source bootloader --><br />
| booting = no <!-- The device is booting at all, can be yes/no *IMPORTANT* --><br />
<br />
<!-- you can also use these lines if you need to:<br />
if the device haven't originally ran Android OS, e.g. Nokia N900<br />
| n-android = ✔<br />
Version of the kernel that pmos is running<br />
| pmoskernel = 3.x.x<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Selfisekai]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== Variants ==<br />
<br />
{| class="wikitable" style="margin:auto"<br />
|+ Device variants<br />
|-<br />
! Model ID !! FCC report !! RAM !! Storage !! SIM slots !! NFC !! Notes<br />
|-<br />
| TA-1178 || [https://fcc.report/FCC-ID/2AJOTTA-1178 2AJOTTA-1178] || || || 1 || ||<br />
|-<br />
| TA-1181 || [https://fcc.report/FCC-ID/2AJOTTA-1181 2AJOTTA-1181] || || || || ||<br />
|-<br />
| TA-1193 || none || 6 GB || 64 GB || 2 || N || India version<br />
|-<br />
| TA-1196 || [https://fcc.report/FCC-ID/2AJOTTA-1196 2AJOTTA-1196] || 6 GB || 128 GB || 2 || Y || same as TA-1178 except 2 SIM slots - per FCC cover letter<br />
|}<br />
<br />
== How to enter flash mode ==<br />
{{note|This device has a [[Bootloader#HMD Global|locked bootloader]].}}<br />
<br />
=== Unlock bootloader ===<br />
<br />
Bootloader unlocking was originally supported, but HMD Global [https://nokiamob.net/2019/11/02/official-nokia-mobile-will-remove-the-option-to-unlock-the-nokia-7-2-and-nokia-6-2-bootloader/ removed the option in December 2019 upgrade], saying some bullshit about regretting the "inconvenience" of allowing us to use our devices as we want to.<br />
<br />
One possible solution is to downgrade the device to an earlier official Android version.<br />
<br />
# Perform normal factory reset in settings to erase Google account information, so you won't be locked from FRP<br />
# Power off your phone and connect it to your computer via USB<br />
# Enter fastboot mode by pressing both {{Button|Power}} + {{Button|Volume Up}} + {{Button|Volume Down}} at the same time<br />
# Choose "recovery mode" here with volume keys and power key to confirm<br />
# When you see 'no command' displays on the phone, hold {{Button|Power}} and press {{Button|Volume Up}} once<br />
# Download the ZIP file according to your device model from here https://forum.xda-developers.com/t/experimental-downgrade-this-phone-back-to-android-10.4360147/<br />
# Flash this using ADB using the command <code>adb sideload *update_enchanted.zip</code><br />
# Enable OEM unlocking in Developer settings, then boot into fastboot (hold volume down and power) and run <code>fastboot flashing unlock</code><br />
<br />
== Installation ==<br />
Use [[pmbootstrap]] to build your own installation image.<br />
<br />
<!-- Expand this with the commands needed for flashing, add --sdcard to install if it makes sense etc. --><br />
<source lang="shell-session"><br />
$ pmbootstrap init<br />
$ pmbootstrap install --fde<br />
</source><br />
<br />
<!-- add more sections below as necessary, e.g. WiFi, photos, ... --><br />
<br />
== See also ==<br />
* manufacturer kernel source: https://nokiaphones-opensource.azureedge.net/download/phones/Nokia7.2_V1.400.tar.bz2 ([https://www.nokia.com/phones/en_int/opensource page])<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Onnyhttps://wiki.postmarketos.org/index.php?title=Nokia_7.2_(nokia-daredevil)&diff=53982Nokia 7.2 (nokia-daredevil)2023-12-17T18:47:38Z<p>Onny: /* Boot modes */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = HMD Global<br />
| name = Nokia 7.2<br />
| codename = nokia-daredevil<br />
| image = File:nokia-daredevil.jpg<br />
| imagecaption = CHANGE_ME<br />
| releaseyear = 2019<br />
| originalsoftware = Android<br />
| originalversion = 9<br />
| chipset = Qualcomm Snapdragon 660 (SDM660)<br />
| cpu = 4x2.2 GHz Kryo 260 Gold & 4x1.8 GHz Kryo 260 Silver<br />
| gpu = Adreno 512<br />
| storage = 64 GB, 128 GB<br />
| display = 1080x2280 IPS<br />
| memory = 4 GB, 6 GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --><br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = <!-- The display is working? --><br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = <!-- Instead of a Linux kernel fork, it is possible to run mainline. --><br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = untested<br />
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device --><br />
| status_nfc = <!-- Near-Field Communication (NFC) works --><br />
| status_usba = <!-- Full-sized USB-A port works (Usually applicable to SBCs and laptops) --><br />
| status_hdmidp = <!-- Video and audio output with HDMI or DisplayPort works --><br />
| status_keyboard = <!-- Keyboard works (Mark "-" if device doesn't have a keyboard) --><br />
| status_touchpad = <!-- Touchpad works (Usually applicable to laptops) --><br />
| status_irtx = <!-- Infrared (IR) port works --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_magnet = <!-- Magnetometer works --><br />
| status_light = <!-- Ambient light sensor works --><br />
| status_proximity = <!-- Proximity sensor works --><br />
| status_hall = <!-- Hall effect sensor works --><br />
| status_barometer = <!-- Barometer works --><br />
| status_powersensor = <!-- Power sensor works --><br />
| status_fossbootloader = <!-- Device has a free and open source bootloader --><br />
| booting = no <!-- The device is booting at all, can be yes/no *IMPORTANT* --><br />
<br />
<!-- you can also use these lines if you need to:<br />
if the device haven't originally ran Android OS, e.g. Nokia N900<br />
| n-android = ✔<br />
Version of the kernel that pmos is running<br />
| pmoskernel = 3.x.x<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Selfisekai]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== Variants ==<br />
<br />
{| class="wikitable" style="margin:auto"<br />
|+ Device variants<br />
|-<br />
! Model ID !! FCC report !! RAM !! Storage !! SIM slots !! NFC !! Notes<br />
|-<br />
| TA-1178 || [https://fcc.report/FCC-ID/2AJOTTA-1178 2AJOTTA-1178] || || || 1 || ||<br />
|-<br />
| TA-1181 || [https://fcc.report/FCC-ID/2AJOTTA-1181 2AJOTTA-1181] || || || || ||<br />
|-<br />
| TA-1193 || none || 6 GB || 64 GB || 2 || N || India version<br />
|-<br />
| TA-1196 || [https://fcc.report/FCC-ID/2AJOTTA-1196 2AJOTTA-1196] || 6 GB || 128 GB || 2 || Y || same as TA-1178 except 2 SIM slots - per FCC cover letter<br />
|}<br />
<br />
== How to enter flash mode ==<br />
{{note|This device has a [[Bootloader#HMD Global|locked bootloader]].}}<br />
<br />
=== Unlock bootloader ===<br />
<br />
Bootloader unlocking was originally supported, but HMD Global [https://nokiamob.net/2019/11/02/official-nokia-mobile-will-remove-the-option-to-unlock-the-nokia-7-2-and-nokia-6-2-bootloader/ removed the option in December 2019 upgrade], saying some bullshit about regretting the "inconvenience" of allowing us to use our devices as we want to.<br />
<br />
One possible solution is to downgrade the device to an earlier official Android version.<br />
<br />
# Please perform normal factory reset in settings to erase Google account information, so you won't be locked from FRP<br />
# Power off your phone and connect it to your computer via USB<br />
# Enter fastboot mode by pressing both {{Button|Power}} + {{Button|Volume Up}} + {{Button|Volume Down}} at the same time<br />
# Choose "recovery mode" here with volume keys and power key to confirm<br />
# When you see 'no command' displays on the phone, hold {{Button|Power}} and press {{Button|Volume Up}} once<br />
# Download the ZIP file according to your device model from here https://forum.xda-developers.com/t/experimental-downgrade-this-phone-back-to-android-10.4360147/<br />
# Flash this using ADB using the command <code>adb sideload *update_enchanted.zip</code><br />
# Enable OEM unlocking in Developer settings, then boot into fastboot (hold volume down and power) and run <code>fastboot flashing unlock</code><br />
<br />
== Installation ==<br />
Use [[pmbootstrap]] to build your own installation image.<br />
<br />
<!-- Expand this with the commands needed for flashing, add --sdcard to install if it makes sense etc. --><br />
<source lang="shell-session"><br />
$ pmbootstrap init<br />
$ pmbootstrap install --fde<br />
</source><br />
<br />
<!-- add more sections below as necessary, e.g. WiFi, photos, ... --><br />
<br />
== See also ==<br />
* manufacturer kernel source: https://nokiaphones-opensource.azureedge.net/download/phones/Nokia7.2_V1.400.tar.bz2 ([https://www.nokia.com/phones/en_int/opensource page])<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Onnyhttps://wiki.postmarketos.org/index.php?title=Nokia_7.2_(nokia-daredevil)&diff=53981Nokia 7.2 (nokia-daredevil)2023-12-17T18:47:20Z<p>Onny: /* Possible solution */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = HMD Global<br />
| name = Nokia 7.2<br />
| codename = nokia-daredevil<br />
| image = File:nokia-daredevil.jpg<br />
| imagecaption = CHANGE_ME<br />
| releaseyear = 2019<br />
| originalsoftware = Android<br />
| originalversion = 9<br />
| chipset = Qualcomm Snapdragon 660 (SDM660)<br />
| cpu = 4x2.2 GHz Kryo 260 Gold & 4x1.8 GHz Kryo 260 Silver<br />
| gpu = Adreno 512<br />
| storage = 64 GB, 128 GB<br />
| display = 1080x2280 IPS<br />
| memory = 4 GB, 6 GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --><br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = <!-- The display is working? --><br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = <!-- Instead of a Linux kernel fork, it is possible to run mainline. --><br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = untested<br />
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device --><br />
| status_nfc = <!-- Near-Field Communication (NFC) works --><br />
| status_usba = <!-- Full-sized USB-A port works (Usually applicable to SBCs and laptops) --><br />
| status_hdmidp = <!-- Video and audio output with HDMI or DisplayPort works --><br />
| status_keyboard = <!-- Keyboard works (Mark "-" if device doesn't have a keyboard) --><br />
| status_touchpad = <!-- Touchpad works (Usually applicable to laptops) --><br />
| status_irtx = <!-- Infrared (IR) port works --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_magnet = <!-- Magnetometer works --><br />
| status_light = <!-- Ambient light sensor works --><br />
| status_proximity = <!-- Proximity sensor works --><br />
| status_hall = <!-- Hall effect sensor works --><br />
| status_barometer = <!-- Barometer works --><br />
| status_powersensor = <!-- Power sensor works --><br />
| status_fossbootloader = <!-- Device has a free and open source bootloader --><br />
| booting = no <!-- The device is booting at all, can be yes/no *IMPORTANT* --><br />
<br />
<!-- you can also use these lines if you need to:<br />
if the device haven't originally ran Android OS, e.g. Nokia N900<br />
| n-android = ✔<br />
Version of the kernel that pmos is running<br />
| pmoskernel = 3.x.x<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Selfisekai]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== Variants ==<br />
<br />
{| class="wikitable" style="margin:auto"<br />
|+ Device variants<br />
|-<br />
! Model ID !! FCC report !! RAM !! Storage !! SIM slots !! NFC !! Notes<br />
|-<br />
| TA-1178 || [https://fcc.report/FCC-ID/2AJOTTA-1178 2AJOTTA-1178] || || || 1 || ||<br />
|-<br />
| TA-1181 || [https://fcc.report/FCC-ID/2AJOTTA-1181 2AJOTTA-1181] || || || || ||<br />
|-<br />
| TA-1193 || none || 6 GB || 64 GB || 2 || N || India version<br />
|-<br />
| TA-1196 || [https://fcc.report/FCC-ID/2AJOTTA-1196 2AJOTTA-1196] || 6 GB || 128 GB || 2 || Y || same as TA-1178 except 2 SIM slots - per FCC cover letter<br />
|}<br />
<br />
== Boot modes ==<br />
<br />
By holding various button combinations while booting the device can be made to boot into different modes.<br />
<br />
Unplug from USB, power off the device and press and hold the below buttons to enter the specific boot mode.<br />
<br />
{| class="wikitable" <br />
|-<br />
! Boot mode<br />
! {{Button|Power}}<br />
! {{Button|Volume Up}}<br />
! {{Button|Volume Down}}<br />
|-<br />
| Recovery<br />
| Y<br />
| Y<br />
| Y<br />
|}<br />
<br />
<br />
== How to enter flash mode ==<br />
{{note|This device has a [[Bootloader#HMD Global|locked bootloader]].}}<br />
<br />
=== Unlock bootloader ===<br />
<br />
Bootloader unlocking was originally supported, but HMD Global [https://nokiamob.net/2019/11/02/official-nokia-mobile-will-remove-the-option-to-unlock-the-nokia-7-2-and-nokia-6-2-bootloader/ removed the option in December 2019 upgrade], saying some bullshit about regretting the "inconvenience" of allowing us to use our devices as we want to.<br />
<br />
One possible solution is to downgrade the device to an earlier official Android version.<br />
<br />
# Please perform normal factory reset in settings to erase Google account information, so you won't be locked from FRP<br />
# Power off your phone and connect it to your computer via USB<br />
# Enter fastboot mode by pressing both {{Button|Power}} + {{Button|Volume Up}} + {{Button|Volume Down}} at the same time<br />
# Choose "recovery mode" here with volume keys and power key to confirm<br />
# When you see 'no command' displays on the phone, hold {{Button|Power}} and press {{Button|Volume Up}} once<br />
# Download the ZIP file according to your device model from here https://forum.xda-developers.com/t/experimental-downgrade-this-phone-back-to-android-10.4360147/<br />
# Flash this using ADB using the command <code>adb sideload *update_enchanted.zip</code><br />
# Enable OEM unlocking in Developer settings, then boot into fastboot (hold volume down and power) and run <code>fastboot flashing unlock</code><br />
<br />
== Installation ==<br />
Use [[pmbootstrap]] to build your own installation image.<br />
<br />
<!-- Expand this with the commands needed for flashing, add --sdcard to install if it makes sense etc. --><br />
<source lang="shell-session"><br />
$ pmbootstrap init<br />
$ pmbootstrap install --fde<br />
</source><br />
<br />
<!-- add more sections below as necessary, e.g. WiFi, photos, ... --><br />
<br />
== See also ==<br />
* manufacturer kernel source: https://nokiaphones-opensource.azureedge.net/download/phones/Nokia7.2_V1.400.tar.bz2 ([https://www.nokia.com/phones/en_int/opensource page])<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Onnyhttps://wiki.postmarketos.org/index.php?title=Nokia_7.2_(nokia-daredevil)&diff=53980Nokia 7.2 (nokia-daredevil)2023-12-17T18:47:02Z<p>Onny: /* How to enter flash mode */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = HMD Global<br />
| name = Nokia 7.2<br />
| codename = nokia-daredevil<br />
| image = File:nokia-daredevil.jpg<br />
| imagecaption = CHANGE_ME<br />
| releaseyear = 2019<br />
| originalsoftware = Android<br />
| originalversion = 9<br />
| chipset = Qualcomm Snapdragon 660 (SDM660)<br />
| cpu = 4x2.2 GHz Kryo 260 Gold & 4x1.8 GHz Kryo 260 Silver<br />
| gpu = Adreno 512<br />
| storage = 64 GB, 128 GB<br />
| display = 1080x2280 IPS<br />
| memory = 4 GB, 6 GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --><br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = <!-- The display is working? --><br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = <!-- Instead of a Linux kernel fork, it is possible to run mainline. --><br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = untested<br />
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device --><br />
| status_nfc = <!-- Near-Field Communication (NFC) works --><br />
| status_usba = <!-- Full-sized USB-A port works (Usually applicable to SBCs and laptops) --><br />
| status_hdmidp = <!-- Video and audio output with HDMI or DisplayPort works --><br />
| status_keyboard = <!-- Keyboard works (Mark "-" if device doesn't have a keyboard) --><br />
| status_touchpad = <!-- Touchpad works (Usually applicable to laptops) --><br />
| status_irtx = <!-- Infrared (IR) port works --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_magnet = <!-- Magnetometer works --><br />
| status_light = <!-- Ambient light sensor works --><br />
| status_proximity = <!-- Proximity sensor works --><br />
| status_hall = <!-- Hall effect sensor works --><br />
| status_barometer = <!-- Barometer works --><br />
| status_powersensor = <!-- Power sensor works --><br />
| status_fossbootloader = <!-- Device has a free and open source bootloader --><br />
| booting = no <!-- The device is booting at all, can be yes/no *IMPORTANT* --><br />
<br />
<!-- you can also use these lines if you need to:<br />
if the device haven't originally ran Android OS, e.g. Nokia N900<br />
| n-android = ✔<br />
Version of the kernel that pmos is running<br />
| pmoskernel = 3.x.x<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Selfisekai]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== Variants ==<br />
<br />
{| class="wikitable" style="margin:auto"<br />
|+ Device variants<br />
|-<br />
! Model ID !! FCC report !! RAM !! Storage !! SIM slots !! NFC !! Notes<br />
|-<br />
| TA-1178 || [https://fcc.report/FCC-ID/2AJOTTA-1178 2AJOTTA-1178] || || || 1 || ||<br />
|-<br />
| TA-1181 || [https://fcc.report/FCC-ID/2AJOTTA-1181 2AJOTTA-1181] || || || || ||<br />
|-<br />
| TA-1193 || none || 6 GB || 64 GB || 2 || N || India version<br />
|-<br />
| TA-1196 || [https://fcc.report/FCC-ID/2AJOTTA-1196 2AJOTTA-1196] || 6 GB || 128 GB || 2 || Y || same as TA-1178 except 2 SIM slots - per FCC cover letter<br />
|}<br />
<br />
== Boot modes ==<br />
<br />
By holding various button combinations while booting the device can be made to boot into different modes.<br />
<br />
Unplug from USB, power off the device and press and hold the below buttons to enter the specific boot mode.<br />
<br />
{| class="wikitable" <br />
|-<br />
! Boot mode<br />
! {{Button|Power}}<br />
! {{Button|Volume Up}}<br />
! {{Button|Volume Down}}<br />
|-<br />
| Recovery<br />
| Y<br />
| Y<br />
| Y<br />
|}<br />
<br />
<br />
== How to enter flash mode ==<br />
{{note|This device has a [[Bootloader#HMD Global|locked bootloader]].}}<br />
<br />
=== Unlock bootloader ===<br />
<br />
Bootloader unlocking was originally supported, but HMD Global [https://nokiamob.net/2019/11/02/official-nokia-mobile-will-remove-the-option-to-unlock-the-nokia-7-2-and-nokia-6-2-bootloader/ removed the option in December 2019 upgrade], saying some bullshit about regretting the "inconvenience" of allowing us to use our devices as we want to.<br />
<br />
One possible solution is to downgrade the device to an earlier official Android version.<br />
<br />
# Please perform normal factory reset in settings to erase Google account information, so you won't be locked from FRP<br />
# Power off your phone and connect it to your computer via USB<br />
# Enter fastboot mode by pressing both {{Button|Power}} + {{Button|Volume Up}} + {{Button|Volume Down}} at the same time<br />
# Choose "recovery mode" here with volume keys and power key to confirm<br />
# When you see 'no command' displays on the phone, hold {{Button|Power}} and press {{Button|Volume Up}} once<br />
# Download the ZIP file according to your device model from here https://forum.xda-developers.com/t/experimental-downgrade-this-phone-back-to-android-10.4360147/<br />
# Flash this using ADB using the command <code>adb sideload *update_enchanted.zip</code><br />
# Enable OEM unlocking in Developer settings, then boot into fastboot (hold volume down and power) and run <code>fastboot flashing unlock</code><br />
<br />
=== Possible solution ===<br />
Downgrade might be possible. Some weird zip files supposedly can do that:<br />
<br />
== Installation ==<br />
Use [[pmbootstrap]] to build your own installation image.<br />
<br />
<!-- Expand this with the commands needed for flashing, add --sdcard to install if it makes sense etc. --><br />
<source lang="shell-session"><br />
$ pmbootstrap init<br />
$ pmbootstrap install --fde<br />
</source><br />
<br />
<!-- add more sections below as necessary, e.g. WiFi, photos, ... --><br />
<br />
== See also ==<br />
* manufacturer kernel source: https://nokiaphones-opensource.azureedge.net/download/phones/Nokia7.2_V1.400.tar.bz2 ([https://www.nokia.com/phones/en_int/opensource page])<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Onnyhttps://wiki.postmarketos.org/index.php?title=Nokia_7.2_(nokia-daredevil)&diff=53978Nokia 7.2 (nokia-daredevil)2023-12-17T18:26:07Z<p>Onny: /* How to enter flash mode */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = HMD Global<br />
| name = Nokia 7.2<br />
| codename = nokia-daredevil<br />
| image = File:nokia-daredevil.jpg<br />
| imagecaption = CHANGE_ME<br />
| releaseyear = 2019<br />
| originalsoftware = Android<br />
| originalversion = 9<br />
| chipset = Qualcomm Snapdragon 660 (SDM660)<br />
| cpu = 4x2.2 GHz Kryo 260 Gold & 4x1.8 GHz Kryo 260 Silver<br />
| gpu = Adreno 512<br />
| storage = 64 GB, 128 GB<br />
| display = 1080x2280 IPS<br />
| memory = 4 GB, 6 GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --><br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = <!-- The display is working? --><br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = <!-- Instead of a Linux kernel fork, it is possible to run mainline. --><br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = untested<br />
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device --><br />
| status_nfc = <!-- Near-Field Communication (NFC) works --><br />
| status_usba = <!-- Full-sized USB-A port works (Usually applicable to SBCs and laptops) --><br />
| status_hdmidp = <!-- Video and audio output with HDMI or DisplayPort works --><br />
| status_keyboard = <!-- Keyboard works (Mark "-" if device doesn't have a keyboard) --><br />
| status_touchpad = <!-- Touchpad works (Usually applicable to laptops) --><br />
| status_irtx = <!-- Infrared (IR) port works --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_magnet = <!-- Magnetometer works --><br />
| status_light = <!-- Ambient light sensor works --><br />
| status_proximity = <!-- Proximity sensor works --><br />
| status_hall = <!-- Hall effect sensor works --><br />
| status_barometer = <!-- Barometer works --><br />
| status_powersensor = <!-- Power sensor works --><br />
| status_fossbootloader = <!-- Device has a free and open source bootloader --><br />
| booting = no <!-- The device is booting at all, can be yes/no *IMPORTANT* --><br />
<br />
<!-- you can also use these lines if you need to:<br />
if the device haven't originally ran Android OS, e.g. Nokia N900<br />
| n-android = ✔<br />
Version of the kernel that pmos is running<br />
| pmoskernel = 3.x.x<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Selfisekai]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== Variants ==<br />
<br />
{| class="wikitable" style="margin:auto"<br />
|+ Device variants<br />
|-<br />
! Model ID !! FCC report !! RAM !! Storage !! SIM slots !! NFC !! Notes<br />
|-<br />
| TA-1178 || [https://fcc.report/FCC-ID/2AJOTTA-1178 2AJOTTA-1178] || || || 1 || ||<br />
|-<br />
| TA-1181 || [https://fcc.report/FCC-ID/2AJOTTA-1181 2AJOTTA-1181] || || || || ||<br />
|-<br />
| TA-1193 || none || 6 GB || 64 GB || 2 || N || India version<br />
|-<br />
| TA-1196 || [https://fcc.report/FCC-ID/2AJOTTA-1196 2AJOTTA-1196] || 6 GB || 128 GB || 2 || Y || same as TA-1178 except 2 SIM slots - per FCC cover letter<br />
|}<br />
<br />
== Boot modes ==<br />
<br />
By holding various button combinations while booting the device can be made to boot into different modes.<br />
<br />
Unplug from USB, power off the device and press and hold the below buttons to enter the specific boot mode.<br />
<br />
{| class="wikitable" <br />
|-<br />
! Boot mode<br />
! {{Button|Power}}<br />
! {{Button|Volume Up}}<br />
! {{Button|Volume Down}}<br />
|-<br />
| Recovery<br />
| Y<br />
| Y<br />
| Y<br />
|}<br />
<br />
<br />
== How to enter flash mode ==<br />
{{note|This device has a [[Bootloader#HMD Global|locked bootloader]].}}<br />
<br />
=== Unlocking issue ===<br />
Bootloader unlocking was originally supported, but HMD Global [https://nokiamob.net/2019/11/02/official-nokia-mobile-will-remove-the-option-to-unlock-the-nokia-7-2-and-nokia-6-2-bootloader/ removed the option in December 2019 upgrade], saying some bullshit about regretting the "inconvenience" of allowing us to use our devices as we want to.<br />
<br />
=== Possible solution ===<br />
Downgrade might be possible. Some weird zip files supposedly can do that: https://forum.xda-developers.com/t/experimental-downgrade-this-phone-back-to-android-10.4360147/<br />
<br />
=== Unlock ===<br />
Enable OEM unlocking in Developer settings, then boot into fastboot (hold volume down and power) and run <code>fastboot flashing unlock</code>.<br />
<br />
== Installation ==<br />
Use [[pmbootstrap]] to build your own installation image.<br />
<br />
<!-- Expand this with the commands needed for flashing, add --sdcard to install if it makes sense etc. --><br />
<source lang="shell-session"><br />
$ pmbootstrap init<br />
$ pmbootstrap install --fde<br />
</source><br />
<br />
<!-- add more sections below as necessary, e.g. WiFi, photos, ... --><br />
<br />
== See also ==<br />
* manufacturer kernel source: https://nokiaphones-opensource.azureedge.net/download/phones/Nokia7.2_V1.400.tar.bz2 ([https://www.nokia.com/phones/en_int/opensource page])<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Onnyhttps://wiki.postmarketos.org/index.php?title=Apple_iPad_Air_2_(apple-ipad5,3)&diff=28417Apple iPad Air 2 (apple-ipad5,3)2022-06-09T10:28:57Z<p>Onny: Update linux support</p>
<hr />
<div>A mainline fork for this device is available [https://github.com/konradybcio/linux-apple here] with further instructions [https://konradybcio.pl/linuxona7/ here]. Still needs to be tested and ported to postmarketOS.<br />
<br />
{{Infobox device<br />
| manufacturer = Apple<br />
| name = iPad Air 2<br />
| codename = ipad5,3<br />
| image = File:ipad5,3.jpg<br />
| imagecaption = iPad Air 2<br />
| releaseyear = 2014<br />
| originalsoftware = iOS 8<br />
| chipset = Apple A8X<br />
| cpu = 3x Apple Typhoon@1.5GHz<br />
| gpu = PowerVR GXA6850<br />
| storage = 32GB<br />
| display = 2048x1536<br />
| memory = 2GB<br />
| architecture = aarch64<br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth = <br />
| status_camera = <br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| status = does not boot<br />
| booting = no<br />
| n-android = ✔<br />
| whet_dhry = 2904.0<br />
| status_otg = -<br />
}}<br />
<br />
== Contributors ==<br />
* nergzd723<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
Plug in the cable, hold Power and Home key for 2-4 seconds for device to power off completely, so the backlight is dimmed, then release the Power key and continue holding the Home key for 8 seconds until you get a new DFU device. Run checkra1n.<br />
<br />
== Installation ==</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Apple_iPhone_6_(apple-iphone6)&diff=28416Apple iPhone 6 (apple-iphone6)2022-06-09T10:27:54Z<p>Onny: Update linux support</p>
<hr />
<div>A mainline fork for this device is available [https://github.com/konradybcio/linux-apple here] with further instructions [https://konradybcio.pl/linuxona7/ here]. Still needs to be tested and ported to postmarketOS.<br />
<br />
{{Infobox device<br />
| manufacturer = Apple<br />
| name = iPhone 6<br />
| codename = apple-iphone6<br />
| image = File:Apple-iphone6.jpg<br />
| releaseyear = 2014<br />
| originalsoftware = iOS 8<br />
| chipset = Apple A8<br />
| cpu = 1.4 GHz dual core 64-bit ARMv8<br />
| gpu = PowerVR GX6450<br />
| storage = 16, 32, 64, 128 GB<br />
| display = 750 x 1334 (IPS LCD, 4.7")<br />
| memory = 1 GB<br />
| architecture = <br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth = <br />
| status_camera = <br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
<!-- | status = no port yet --><br />
| booting = no<br />
| n-android = ✔<br />
| pmoskernel = <br />
| status_otg = <br />
}}<br />
<br />
== Contributors ==<br />
<br />
== Maintainer(s) ==<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
<br />
/* Not yet */<br />
<br />
== See also ==<br />
* [https://www.gsmarena.com/apple_iphone_6-6378.php GSMArena page]<br />
* [https://github.com/SoMainline/adt_collection/blob/master/a8/n61.adt Apple Device Tree (adt)]<br />
* [https://github.com/konradybcio/linux-apple Mainline kernel fork]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Apple_iPhone_5s_(apple-iphone5s)&diff=28415Apple iPhone 5s (apple-iphone5s)2022-06-09T10:23:23Z<p>Onny: Update linux support</p>
<hr />
<div>A mainline fork for this device is available [https://github.com/konradybcio/linux-apple here] with further instructions [https://konradybcio.pl/linuxona7/ here]. Still needs to be tested and ported to postmarketOS.<br />
<br />
{{Infobox device<br />
| manufacturer = Apple<br />
| name = iPhone 5s<br />
| codename = apple-iphone5s<br />
| image = File:apple-iphone5s.png<br />
| releaseyear = 2013<br />
| originalsoftware = iOS 7<br />
| chipset = Apple A7<br />
| cpu = Dual core (2x 1.3 GHz Cyclone)<br />
| gpu = PowerVR G6430 (quad-core)<br />
| storage = 16, 32, 64 GB<br />
| display = 640×1136 (326 ppi)<br />
| memory = 1 GB<br />
| architecture = aarch64<br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth = <br />
| status_camera = <br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| status = no port yet<br />
| booting = no<br />
| n-android = ✔<br />
| pmoskernel = <br />
| status_otg = <br />
| whet_dhry =<br />
}}<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
Only works on macOS right now!<br />
<br />
1. Install checkra1n<br />
2. Boot pongoOS: `/Applications/checkra1n.app/Contents/MacOS/checkra1n -pc`</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_S5_Neo_(samsung-s5neolte)&diff=26291Samsung Galaxy S5 Neo (samsung-s5neolte)2022-03-16T14:44:58Z<p>Onny: Change architecture to aarch64</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy S5 Neo<br />
| codename = samsung-s5neolte<br />
| image = File:<br />
| imagecaption = Samsung Galaxy S5 Neo<br />
| releaseyear = 2015<br />
| releasemonth = August<br />
| originalsoftware = Android 7.0 (Nougat)<br />
| chipset = Exynos 7580 Octa<br />
| cpu = 1.6 GHz octa-core Cortex-A53 <br />
| gpu = Mali-T720MP2<br />
| storage = 16 GB<br />
| display = 1080 x 1920 Super AMOLED<br />
| memory = 2 GB<br />
| architecture = aarch64<br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel =<br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| status = booting<br />
<br />
| booting = N<br />
| pmoskernel = 3.10.108<br />
| whet_dhry =<br />
| status_otg =<br />
}}<br />
<br />
== How to enter flash mode ==<br />
<br />
Press and hold {{button|Volume Down}} + {{button|Home}} + {{button|Power}} simultaneously. Then click {{button|Volume Up}} to confirm.<br />
<br />
== See also ==<br />
* {{MR|3005|pmaports}} Initial merge request</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_S5_Neo_(samsung-s5neolte)&diff=26290Samsung Galaxy S5 Neo (samsung-s5neolte)2022-03-16T14:05:00Z<p>Onny: Add link to inital MR</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy S5 Neo<br />
| codename = samsung-s5neolte<br />
| image = File:<br />
| imagecaption = Samsung Galaxy S5 Neo<br />
| releaseyear = 2015<br />
| releasemonth = August<br />
| originalsoftware = Android 7.0 (Nougat)<br />
| chipset = Exynos 7580 Octa<br />
| cpu = 1.6 GHz octa-core Cortex-A53 <br />
| gpu = Mali-T720MP2<br />
| storage = 16 GB<br />
| display = 1080 x 1920 Super AMOLED<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel =<br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| status = booting<br />
<br />
| booting = N<br />
| pmoskernel = 3.10.108<br />
| whet_dhry =<br />
| status_otg =<br />
}}<br />
<br />
== How to enter flash mode ==<br />
<br />
Press and hold {{button|Volume Down}} + {{button|Home}} + {{button|Power}} simultaneously. Then click {{button|Volume Up}} to confirm.<br />
<br />
== See also ==<br />
* {{MR|3005|pmaports}} Initial merge request</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_S_Advance_(samsung-janice)&diff=26063Samsung Galaxy S Advance (samsung-janice)2022-03-04T12:17:44Z<p>Onny: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy S Advance<br />
| codename = samsung-janice<br />
| image = File:Samsung Galaxy S Advance weston demo.jpg<br />
| imagecaption = Samsung Galaxy S Advance running Weston demos<br />
| releaseyear = 2012<br />
| originalsoftware = Android 2.3.6 on Linux 2.6.35<br />
| chipset = [[ST-Ericsson NovaThor U8500]]<br />
| cpu = Dual-core 1.0 GHz Cortex-A9<br />
| gpu = Mali-400<br />
| storage = 8/16 GB<br />
| display = 480x800 AMOLED<br />
| memory = 768 MB<br />
| architecture = armv7<br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde =<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = Y<br />
| status_accel = Y<br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| booting = yes<br />
}}<br />
<br />
=== Contributors ===<br />
* drebrez<br />
<br />
== Installation ==<br />
The mainline kernel can only be booted through U-Boot, not directly with the Samsung bootloader. U-Boot is installed as intermediate bootloader on the boot partition, so it does not replace the Samsung bootloader entirely. pmbootstrap can only support one bootloader configuration at the moment, which is why U-Boot is also recommended when installing the downstream kernel.<br />
<br />
Boot into Download Mode using {{Button|Power}} + {{Button|Volume Down}} + {{Button|Home}} and follow follow the [[ST-Ericsson_NovaThor_U8500#U-Boot_on_Samsung_NovaThor_U8500_Devices|the NovaThor U8500 U-Boot installation instructions]] to install U-Boot.<br />
<br />
Finally, just follow the [[Installation guide]].<br />
<br />
=== How drebrez made wifi work ===<br />
<br />
* build the kernel module (dhd.ko for samsung-janice)<br />
* get the vendor files for the [https://github.com/Epirex/android_vendor_samsung_u8500 Samsung U8500 devices]<br />
* load the module using insmod with the firmware_path and nvram_path parameters<br />
<br />
<code>insmod dhd.ko firmware_path=/etc/wifi/bcmdhd_sta.bin nvram_path=/etc/wifi/nvram_net.txt</code><br />
<br />
* set a mac address<br />
<br />
<code>ifconfig wlan0 hw ether 01:02:03:04:05:06</code><br />
<br />
Proceed with the generic instruction on how to scan for networks and [[WiFi#Connecting_to_APs]].<br />
<br />
=== Links ===<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-janice Device package]<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-janice.dts Upstream devicetree] in Torvalds' kernel tree<br />
<br />
=== Photos ===<br />
* [https://i.imgur.com/MuVLljM.jpg Initramfs asking for the password via telnet]<br />
* [https://i.imgur.com/maobRbj.jpg postmarketOS demo menu (XWayland)]<br />
* [https://i.imgur.com/Nop8uu4.jpg Weston-terminal running in fullscreen mode]<br />
<br />
=== Videos ===<br />
* [http://i.imgur.com/9c66GAs.mp4 Weston with various programs running]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_S_Advance_(samsung-janice)&diff=25326Samsung Galaxy S Advance (samsung-janice)2022-01-29T15:02:14Z<p>Onny: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy S Advance<br />
| codename = samsung-janice<br />
| image = File:Samsung Galaxy S Advance weston demo.jpg<br />
| imagecaption = Samsung Galaxy S Advance running Weston demos<br />
| releaseyear = 2012<br />
| originalsoftware = Android 2.3.6 on Linux 2.6.35<br />
| chipset = [[ST-Ericsson NovaThor U8500]]<br />
| cpu = Dual-core 1.0 GHz Cortex-A9<br />
| gpu = Mali-400<br />
| storage = 8/16 GB<br />
| display = 480x800 AMOLED<br />
| memory = 768 MB<br />
| architecture = armv7<br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch =<br />
| status_screen = Y<br />
| status_wifi =<br />
| status_xwayland = Y<br />
| status_fde =<br />
| status_mainline = Y<br />
| status_battery =<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| booting = yes<br />
}}<br />
<br />
=== Contributors ===<br />
* drebrez<br />
<br />
== Installation ==<br />
The mainline kernel can only be booted through U-Boot, not directly with the Samsung bootloader. U-Boot is installed as intermediate bootloader on the boot partition, so it does not replace the Samsung bootloader entirely. pmbootstrap can only support one bootloader configuration at the moment, which is why U-Boot is also recommended when installing the downstream kernel.<br />
<br />
Boot into Download Mode using {{Button|Power}} + {{Button|Volume Down}} + {{Button|Home}} and follow follow the [[ST-Ericsson_NovaThor_U8500#U-Boot_on_Samsung_NovaThor_U8500_Devices|the NovaThor U8500 U-Boot installation instructions]] to install U-Boot.<br />
<br />
Finally, just follow the [[Installation guide]].<br />
<br />
=== How drebrez made wifi work ===<br />
<br />
* build the kernel module (dhd.ko for samsung-janice)<br />
* get the vendor files for the [https://github.com/Epirex/android_vendor_samsung_u8500 Samsung U8500 devices]<br />
* load the module using insmod with the firmware_path and nvram_path parameters<br />
<br />
<code>insmod dhd.ko firmware_path=/etc/wifi/bcmdhd_sta.bin nvram_path=/etc/wifi/nvram_net.txt</code><br />
<br />
* set a mac address<br />
<br />
<code>ifconfig wlan0 hw ether 01:02:03:04:05:06</code><br />
<br />
Proceed with the generic instruction on how to scan for networks and [[WiFi#Connecting_to_APs]].<br />
<br />
=== Links ===<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-janice Device package]<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-janice.dts Upstream devicetree] in Torvalds' kernel tree<br />
<br />
=== Photos ===<br />
* [https://i.imgur.com/MuVLljM.jpg Initramfs asking for the password via telnet]<br />
* [https://i.imgur.com/maobRbj.jpg postmarketOS demo menu (XWayland)]<br />
* [https://i.imgur.com/Nop8uu4.jpg Weston-terminal running in fullscreen mode]<br />
<br />
=== Videos ===<br />
* [http://i.imgur.com/9c66GAs.mp4 Weston with various programs running]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_S_Advance_(samsung-janice)&diff=25315Samsung Galaxy S Advance (samsung-janice)2022-01-29T14:01:22Z<p>Onny: /* Links */ Cleanup links</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy S Advance<br />
| codename = samsung-janice<br />
| image = File:Samsung Galaxy S Advance weston demo.jpg<br />
| imagecaption = Samsung Galaxy S Advance running Weston demos<br />
| releaseyear = 2012<br />
| originalsoftware = Android 2.3.6 on Linux 2.6.35<br />
| chipset = [[ST-Ericsson NovaThor U8500]]<br />
| cpu = Dual-core 1.0 GHz Cortex-A9<br />
| gpu = Mali-400<br />
| storage = 8/16 GB<br />
| display = 480x800 AMOLED<br />
| memory = 768 MB<br />
| architecture = armv7<br />
| status_usbnet =<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi =<br />
| status_xwayland = Y<br />
| status_fde =<br />
| status_mainline = Y<br />
| status_battery =<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| booting = yes<br />
}}<br />
<br />
=== Contributors ===<br />
* drebrez<br />
<br />
== Installation ==<br />
The mainline kernel can only be booted through U-Boot, not directly with the Samsung bootloader. U-Boot is installed as intermediate bootloader on the boot partition, so it does not replace the Samsung bootloader entirely. pmbootstrap can only support one bootloader configuration at the moment, which is why U-Boot is also recommended when installing the downstream kernel.<br />
<br />
Boot into Download Mode using {{Button|Power}} + {{Button|Volume Down}} + {{Button|Home}} and follow follow the [[ST-Ericsson_NovaThor_U8500#U-Boot_on_Samsung_NovaThor_U8500_Devices|the NovaThor U8500 U-Boot installation instructions]] to install U-Boot.<br />
<br />
Finally, just follow the [[Installation guide]].<br />
<br />
=== How drebrez made wifi work ===<br />
<br />
* build the kernel module (dhd.ko for samsung-janice)<br />
* get the vendor files for the [https://github.com/Epirex/android_vendor_samsung_u8500 Samsung U8500 devices]<br />
* load the module using insmod with the firmware_path and nvram_path parameters<br />
<br />
<code>insmod dhd.ko firmware_path=/etc/wifi/bcmdhd_sta.bin nvram_path=/etc/wifi/nvram_net.txt</code><br />
<br />
* set a mac address<br />
<br />
<code>ifconfig wlan0 hw ether 01:02:03:04:05:06</code><br />
<br />
Proceed with the generic instruction on how to scan for networks and [[WiFi#Connecting_to_APs]].<br />
<br />
=== Links ===<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-janice Device package]<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-janice.dts Upstream devicetree] in Torvalds' kernel tree<br />
<br />
=== Photos ===<br />
* [https://i.imgur.com/MuVLljM.jpg Initramfs asking for the password via telnet]<br />
* [https://i.imgur.com/maobRbj.jpg postmarketOS demo menu (XWayland)]<br />
* [https://i.imgur.com/Nop8uu4.jpg Weston-terminal running in fullscreen mode]<br />
<br />
=== Videos ===<br />
* [http://i.imgur.com/9c66GAs.mp4 Weston with various programs running]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_S_Advance_(samsung-janice)&diff=25314Samsung Galaxy S Advance (samsung-janice)2022-01-29T14:00:16Z<p>Onny: /* How drebrez made wifi work */ Cleanup wifi setup instruction</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy S Advance<br />
| codename = samsung-janice<br />
| image = File:Samsung Galaxy S Advance weston demo.jpg<br />
| imagecaption = Samsung Galaxy S Advance running Weston demos<br />
| releaseyear = 2012<br />
| originalsoftware = Android 2.3.6 on Linux 2.6.35<br />
| chipset = [[ST-Ericsson NovaThor U8500]]<br />
| cpu = Dual-core 1.0 GHz Cortex-A9<br />
| gpu = Mali-400<br />
| storage = 8/16 GB<br />
| display = 480x800 AMOLED<br />
| memory = 768 MB<br />
| architecture = armv7<br />
| status_usbnet =<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi =<br />
| status_xwayland = Y<br />
| status_fde =<br />
| status_mainline = Y<br />
| status_battery =<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| booting = yes<br />
}}<br />
<br />
=== Contributors ===<br />
* drebrez<br />
<br />
== Installation ==<br />
The mainline kernel can only be booted through U-Boot, not directly with the Samsung bootloader. U-Boot is installed as intermediate bootloader on the boot partition, so it does not replace the Samsung bootloader entirely. pmbootstrap can only support one bootloader configuration at the moment, which is why U-Boot is also recommended when installing the downstream kernel.<br />
<br />
Boot into Download Mode using {{Button|Power}} + {{Button|Volume Down}} + {{Button|Home}} and follow follow the [[ST-Ericsson_NovaThor_U8500#U-Boot_on_Samsung_NovaThor_U8500_Devices|the NovaThor U8500 U-Boot installation instructions]] to install U-Boot.<br />
<br />
Finally, just follow the [[Installation guide]].<br />
<br />
=== How drebrez made wifi work ===<br />
<br />
* build the kernel module (dhd.ko for samsung-janice)<br />
* get the vendor files for the [https://github.com/Epirex/android_vendor_samsung_u8500 Samsung U8500 devices]<br />
* load the module using insmod with the firmware_path and nvram_path parameters<br />
<br />
<code>insmod dhd.ko firmware_path=/etc/wifi/bcmdhd_sta.bin nvram_path=/etc/wifi/nvram_net.txt</code><br />
<br />
* set a mac address<br />
<br />
<code>ifconfig wlan0 hw ether 01:02:03:04:05:06</code><br />
<br />
Proceed with the generic instruction on how to scan for networks and [[WiFi#Connecting_to_APs]].<br />
<br />
=== Links ===<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-janice Device package]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-samsung-janice Kernel package]<br />
* [https://github.com/Epirex/Samsung_STE_Kernel/tree/marshmallow Epirex's Kernel]<br />
* [https://github.com/Epirex/android_vendor_samsung_u8500 Epirex's vendor files]<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-janice.dts Upstream devicetree] in Torvalds' kernel tree<br />
<br />
=== Photos ===<br />
* [https://i.imgur.com/MuVLljM.jpg Initramfs asking for the password via telnet]<br />
* [https://i.imgur.com/maobRbj.jpg postmarketOS demo menu (XWayland)]<br />
* [https://i.imgur.com/Nop8uu4.jpg Weston-terminal running in fullscreen mode]<br />
<br />
=== Videos ===<br />
* [http://i.imgur.com/9c66GAs.mp4 Weston with various programs running]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=WiFi&diff=25313WiFi2022-01-29T13:57:22Z<p>Onny: /* Using wpa_supplicant */ Adding infos on how to scan for networks</p>
<hr />
<div>== General information ==<br />
To get wireless LAN working, most WiFi chips need a proprietary firmware blob. While it would be more secure to replace that with open source software in the long term, it isn't feasible right now, so we try to get it working with that closed source firmware.<br /><br />
A great place to start looking for information about many available WiFi chips is [https://wireless.wiki.kernel.org/en/users/drivers this kernel.org page]. It often provides driver sources and the required firmware blobs as well. For a start if you want Internet working try the [[USB Internet]] guide.<br />
<br />
{{note|Instead of mounting Android's firmware partition, we package the files ourselves (see the [[FAQ#Why_don.27t_we_use_firmware_files_from_Android.27s_firmware_partition.3F|FAQ]]).}}<br />
<br />
Useful links:<br />
* [[Firmware|How to find WiFi firmware files]]<br />
* [[Device_specific_package#Proprietary_firmware_or_userland_blobs|How to package WiFi firmware]]<br />
<br />
== Qualcomm WiFi ==<br />
<br />
Devices with Qualcomm WiFi chips are usually very easy to get working. <br />
<br />
You need to find the firmware files for your device, the main file is called <code>wcnss.mdt</code> and there should also be more files which are called <code>wcnss.b00</code>, <code>wcnss.b01</code>, etc. Copy them all onto your device into <code>/lib/firmware/postmarketos</code>.<br />
There may also be files starting with WCNSS, e.g. <code>WCNSS_cfg.dat WCNSS_qcom_cfg.ini WCNSS_qcom_wlan_nv.bin</code> - those should go into some path like <code>/lib/firmware/postmarketos/wlan/prima</code> or <code>/lib/firmware/postmarketos/wlan/qca_cld</code> depending on the device. You can use existing firmware packages as examples for which files go where, e.g. <code>aports/firmware/firmware-xiaomi-armani</code>.<br />
<br />
Then you can run as root (<code>sudo -i</code> first) <code>echo 1 > /dev/wcnss_wlan</code> and <code>echo sta > /sys/module/wlan/parameters/fwpath</code>. Check the output of <code>ip link</code> and a <code>wlan0</code> interface should have appeared! Now you can use NetworkManager to [[#Connecting_to_APs|connect to a WiFi network]]!<br />
<br />
If that didn't work, please check the [[#Debugging|debugging]] section how to find out what went wrong.<br />
<br />
For packaging, see [[Device_specific_package#Proprietary_firmware_or_userland_blobs|that page]] and add the <code>wcnss-wlan</code> package (which runs the two commands above at boot automatically) as a dependency to the WiFi subpackage.<br />
<br />
Test your packaging by flashing a new rootfs which includes your changes and see if WiFi works without any manual configuration.<br />
<br />
== Broadcom WiFi ==<br />
<br />
{{todo|This section needs expansion.}}<br />
<br />
Devices with Broadcom WiFi chips usually have the path to the firmware hardcoded in the kernel, mostly to <code>/system/vendor/firmware</code>. <br />
<br />
In most cases you should be able to set <code>CONFIG_BCMDHD_FW_PATH</code> and <code>CONFIG_BCMDHD_NVRAM_PATH</code> in the kernel config. In other cases, you need to patch the kernel and change the path to <code>/lib/firmware/postmarketos</code> (see [https://gitlab.com/postmarketOS/pmbootstrap/blob/2fe8eb0fdfa37381d521844b6137c03593279002/aports/linux-samsung-i9070/04_change_dhd_firmware_dir.patch this patch]).<br />
<br />
You can use the command <code>git grep "lib/firmware/postmarketos" device/linux-*</code> in pmaports to find how it's done for other devices.<br />
<br />
An example of how Broadcom was made to work can be found at [[Samsung_Galaxy_S_Advance_(samsung-i9070)#How_drebrez_made_wifi_work]] and [https://github.com/postmarketOS/pmbootstrap/pull/138/commits in the corresponding GitHub pull request]. Another example is [[Medion_Lifetab_S9714_(medion-kai)#How_bonsaiblue_made_wifi_work]].<br />
<br />
Here's a quick rundown of the steps required to get Broadcom WiFi up and running:<br />
<br />
* Locate the nvram and firmware files. You might be able to use the ones from <code>firmware-aosp-broadcom-wlan</code>, but if they don't work you can package your own.<br />
* Modify your kernel config to point to the new firmware paths.<br />
* Modify your kernel APKBUILD to build modules, so that you can use bcmdhd.<br />
* Add a modules-load.conf file to your device package and put the bcmdhd module name (usually dhd) in it, then modify the APKBUILD to install the file. (This will auto-load the dhd module on startup.)<br />
<br />
See the [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-i9070 Galaxy S Advance device package], [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-samsung-i9070 Galaxy S Advance linux package] and [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/firmware-samsung-i9070 Galaxy S Advance firmware package] for reference.<br />
<br />
== Mediatek WiFi ==<br />
{{todo|Improve this section to include a general explanation for all MTK SoCs}}<br />
{{note|There is at least one MediaTek device in pmaports with WiFi working. [[Vernee_Thor_(vernee-k506)#SoC_features|Vernee Thor Wifi Guide]]}}<br />
<br />
=== Introduction, software ===<br />
Devices with Mediatek WiFi chips are much more complicated to get working. The best way to know how your specific SoC works is to look at the init.rc scripts from an Android ROM available for your phone and look for the chip initialization (search for "/dev/stp", "mtk_stp" and "wmt").<br />
<br />
Usually, you may notice <code>wmt_loader</code> and <code>6620_loader</code> programs doing some work to initialize the wireless communication hardware. The tool called <code>6620_launcher</code> which (probably) loads the firmware from the filesystem into the kernel. Depending on device, <code>6620_launcher</code> can use different protocols for communicating with chip. This tool is a binary included in the Android installation and linked against the bionic libc, and could not be run on postmarketOS because it uses linking against musl. There are several solutions to this problem:<br />
* [https://github.com/MediaDeb/android_hardware_mediatek/blob/master/combo_tool/src/stp_uart_launcher.c Proprietary source code version of the original tool is available on GitHub], and it can be compiled.<br />
* [https://gitlab.com/Dahrkael/openmttools openmttools] written by [https://wiki.postmarketos.org/wiki/User:Dahrkael Dahrkael]. At the time of writing this edit, openmttools does not support UART protocol.<br />
<br />
The [https://github.com/MediaDeb MediaDeb project] has made systemd unit files running more or less the commands above on two of their supported devices:<br />
* wifi_loader.service: runs <code>mt6620_loader.sh</code> (which does <code>mknod</code>) & runs <code>wifi_loader</code> bin<br />
* mt6620_launcher.service: runs 6620_launcher (<code>/usr/sbin/6620_launcher -b 4000000 -p /lib/firmware/ -d /dev/ttyMT2</code>)<br />
* wifi.service: runs <code>echo 1 > /dev/wmtWifi</code><br />
<br />
=== MT6589 ===<br />
On the [[Fairphone_1_(fairphone-fp1)|Fairphone 1]], the order for initialization should be the following (based on the init.rc files from Android):<br />
<pre><br />
# Install the files mt6628_ant_m1.cfg mt6628_patch_e1_hdr.bin mt6628_patch_e2_0_hdr.bin mt6628_patch_e2_1_hdr.bin WIFI_RAM_CODE_MT6628 WMT.cfg into /system/etc/firmware/ (path could be patched in the kernel sources)<br />
insmod mtk_hif_sdio.ko<br />
insmod mtk_stp_wmt.ko<br />
insmod mtk_stp_uart.ko<br />
insmod mtk_stp_gps.ko<br />
insmod mtk_stp_bt.ko<br />
insmod mtk_wmt_wifi.ko<br />
<br />
mknod /dev/stpwmt c 190 0<br />
mknod /dev/stpgps c 191 0<br />
mknod /dev/stpbt c 192 0<br />
mknod /dev/wmtWifi c 153 0<br />
<br />
insmod wlan_mt6628.ko<br />
<br />
6620_launcher -p /system/etc/firmware/<br />
<br />
echo 1 > /dev/wmtWifi<br />
</pre><br />
<br />
=== MT6577 (MT8317) with MT6628 combochip ===<br />
<br />
This section describes how [[user:Arzamas-16|arzamas-16]] made Wi-Fi work on Acer Iconia B1-A71 (not yet in pmaports) which has mt8317 (tablet revision of mt6577) SoC and mt6628 combochip on [https://github.com/arzam16/mt6577_kernel_Acer_B1_A71 downstream kernel (v3.4.113)]. The combochip on my device uses '''UART''' to communicate with operating system. Please keep in mind this section is meant to describe a set of «hacks» I went thru rather than being a complete guide. Also [https://www.urbandictionary.com/define.php?term=ymmv YMMV] but at the time of writing scanning for networks, and connecting†, and accessing the internet work.<br />
<br />
'''Following my steps will not make wifi work on mt67xx''' as these SoCs are more modern than the ancient stuff I have, and they use more tools which may be incompatible with those I describe below. I recommend checking out Dahrkael's and MediaDeb projects (see above).<br />
<br />
† there are 2 methods you can get working Wi-Fi right now: using the downstream executables and their dependencies or using the modern software offered by postmarketOS.<br />
{|class="wikitable"<br />
! Method<br />
! Pros<br />
! Cons<br />
|-<br />
|Using downstream executables<br />
|Less time demanding.<br />
|Could only be configured through console. Incompatible with networkmanager. Effectively crashes wpa_supplicant and networkmanager services. Requires running many outdated proprietary executables. Needs a lot of space to store these binaries. Less flexible configuring.<br />
|-<br />
|Modern approach<br />
|Compatible with postmarketOS services. Configurable via GUI (tested in XFCE4). Uses more fresh open source software. Less dependent on precompiled binaries.<br />
|Takes a lot of time in case when your device is specific or very old.<br />
|-<br />
|}<br />
<br />
==== Sorting out possible issues with downstream kernels ====<br />
'''1.''' Ensure that kernel modules are compiled and packaged into your pmOS installation! In my <code>linux-.../APKBUILD</code> I package them the following way:<br />
<pre><br />
package() {<br />
downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor" "$_outdir"<br />
# Modules<br />
unset LDFLAGS<br />
make O="$_outdir" ARCH="$_carch" CC="${CC:-gcc}" \<br />
KBUILD_BUILD_VERSION="$((pkgrel + 1))-postmarketOS" \<br />
INSTALL_MOD_PATH="$pkgdir" \<br />
modules_install<br />
<br />
}<br />
</pre><br />
In my case, they have been installed to <code>/lib/modules/3.4.113/kernel/mediatek/kernel/drivers/combo</code><br />
<br />
'''2.''' For some downstream mediatek kernels gcc6 complains about <code>gl_kal.h</code>, if you will get such errors apply [https://github.com/arzam16/mt6577_kernel_Acer_B1_A71/commit/72995fe0f9a1e30979d2dbe293b4af40add051f0 this simple kernel patch]!<br />
<br />
'''3.''' In order to be able to connect to password-protected networks, be sure to have [https://github.com/arzam16/mt6577_kernel_Acer_B1_A71/commit/b54456513f1a00548cbfcea94839976231402d98 this kernel patch] applied!<br />
<br />
'''4.''' All downstream kernels I've worked with have many hardcoded paths specific to Android. As stated at the top of this page, postmarketOS packages firmware blobs so they will definitely be in the other path. You can either:<br />
* Manually replace hardcoded paths once in the source code<br />
* Make firmware paths customizable with kernel config options so you could change many paths with a single kconfig change. See my commits which do it with [https://github.com/arzam16/mt6577_kernel_Acer_B1_A71/commit/3200ab47b0cf20864cb10bdf2315c2fad8b569f5 wifi] and [https://github.com/arzam16/mt6577_kernel_Acer_B1_A71/commit/7f6105f85b83bdcb289ac34c5eee2c0a4f91b179 nvram] paths. In my kernel config for postmarketOS I've set:<br />
<pre><br />
CONFIG_MTK_WMT_FW_PATH="/lib/firmware/postmarketos/"<br />
CONFIG_MTK_NVRAM_PATH="/lib/firmware/postmarketos/"<br />
</pre><br />
<br />
==== Dumping firmware from Android ====<br />
This step should be done prior to flashing postmarketOS. If you plan to bring up wifi using downstream executables then also check the steps in corresponding section prior to flashing postmarketOS.<br />
Dump the following:<br />
* Contents of <code>/system/etc/firmware/</code> (there should be ~10 files)<br />
* <code>/data/nvram</code> directory<br />
After flashing postmarketOS, copy the dumped files to <code>/lib/firmware/postmarketos</code> so the structure will look like<br />
<pre><br />
giordano:~$ ll /lib/firmware/postmarketos/<br />
total 3.9M<br />
drwxr-xr-x 3 root 4.0K Aug 24 21:57 .<br />
drwxr-xr-x 3 root 4.0K Jan 1 2012 ..<br />
drwxr-xr-x 5 root 4.0K Aug 24 21:57 nvram/<br />
-rw-r--r-- 1 root 682K Aug 24 21:53 DSP_ROM<br />
(some stuff)<br />
-rw-r--r-- 1 root 28K Aug 24 21:53 mt6628_patch_e1_hdr.bin<br />
-rw-r--r-- 1 root 25K Aug 24 21:53 mt6628_patch_e2_hdr.bin<br />
</pre><br />
<br />
==== Loading modules ====<br />
First of all, it's important to understand how Wi-Fi initialization happens on your device when running Android. For this, you will need to acquire .rc scripts from the ramdisk. Look for init.rc and whatever it invokes. In my case I had 2 files: init.rc and init.project.rc. Here is the part related to wifi from init.rc (omitting unnecessary stuff like numerous chmod's and chown's):<br />
{{note|Notice that .rc files mention mt662'''0''' while in fact the combochip in my device is mt662'''8'''. Check where the /system/lib/modules/wlan.ko links to!}}<br />
<pre><br />
#<br />
# MT6620 related device nodes & configuration (begin)<br />
#<br />
<br />
# STP, WMT, GPS, FM and BT Driver<br />
insmod /system/lib/modules/mtk_hif_sdio.ko<br />
insmod /system/lib/modules/mtk_stp_wmt.ko<br />
insmod /system/lib/modules/mtk_stp_uart.ko<br />
insmod /system/lib/modules/mtk_stp_gps.ko<br />
insmod /system/lib/modules/mtk_stp_bt.ko<br />
insmod /system/lib/modules/mtk_wmt_wifi.ko<br />
<br />
# Create char device file for WMT, GPS, BT, FM, WIFI<br />
mknod /dev/stpwmt c 190 0;<br />
mknod /dev/stpgps c 191 0;<br />
mknod /dev/stpbt c 192 0;<br />
mknod /dev/wmtWifi c 153 0<br />
<br />
# Load WiFi Driver<br />
insmod /system/lib/modules/wlan.ko (COMMENT: this is a symlink to wlan_mt6628.ko)<br />
<br />
#<br />
# MT6620 related device nodes & configuration (end)<br />
#<br />
</pre><br />
<br />
The next step is to load said modules and I wrote a simple script for doing this on my device: [https://gist.github.com/arzam16/6b7680a82df394f8bb0b12af09b34b23 Github Gist], invokation: <code>sudo ./01-load-wifi-modules.sh</code>. At this point we've replicated the work done in init.rc on Android regarding wifi.<br />
{{note|The modules should be loaded at every boot}}<br />
<br />
==== Programs overview ====<br />
Here is the part related to wifi from init.project.rc (omitting unnecessary parts like detailed service parameters):<br />
<pre><br />
service 6620_launcher /system/bin/6620_launcher -m 1 -b 4000000 -p /system/etc/firmware/ -d /dev/ttyMT2 (config omitted...)<br />
service stp_dump /system/bin/stp_dump3 (config omitted...)<br />
service hald /system/bin/hald (config omitted...) <br />
service p2p_supplicant (config omitted...)<br />
service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \<br />
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -e/data/misc/wifi/entropy.bin -ddd<br />
(config omitted...)<br />
service ap_daemon (config omitted...)<br />
</pre><br />
<br />
Now it's necessary to sort out which programs (services) are required to start wifi. Below is a very short description of programs mentioned in my init.project.rc file.<br />
* 6620_launcher<sup>'''required'''</sup> establishes a connection with a combochip, does some simple initialization and uploads a firmware blob.<br />
* stp_dump3 is used for debugging. Comments in the code say this program can break/disrupt wpa_supplicant.<br />
* hald<sup>'''required'''</sup>. On Android it loads and unloads kernel modules and manages combochip power. In fact, on postmarketOS this whole program could be replaced with one (worst case: two) shell command (more on that below).<br />
* p2p_supplicant manages features such as Wi-Fi Direct. I don't need it in my case.<br />
* wpa_supplicant<sup>'''required'''</sup> manages wifi connection. A vital part of wireless networking.<br />
* ap_daemon allows to create a wireless access point. I don't need it in my case.<br />
<br />
As we can see, only 6620_launcher, and hald, and wpa_supplicant are required to start wifi.<br />
<br />
==== (1) Bringing up wifi using downstream executables ====<br />
{{warning|This method is frowned upon in postmarketOS community. We encourage you to use as much open source software as possible. Proceed on your own!}}<br />
In this part I will lack some details but you'll be able to easily figure out what to do.<br />
<br />
{{note|Note to save <code>/misc/wifi/wpa_supplicant.conf</code> from Android to prevent unnecessary headache. Better if it already has your network saved.}}<br />
<br />
'''1.''' From the running Android, dump:<br />
* <code>/system/bin/linker</code>, do not forget it as this thing is very important<br />
* <code>/system/bin/6620_launcher</code><br />
* <code>/system/bin/wpa_supplicant</code><br />
* The whole <code>/system/lib</code> directory<br />
Recreate same structure in your postmarketOS installation: put dumped <code>/system/...</code> stuff in the root.<br />
<br />
'''2.''' Stop and disable wpa_supplicant and networkmanager, I've made a stupid script for this:<br />
<pre><br />
#!/bin/sh<br />
<br />
for s in "networkmanager" "wpa_supplicant"; do<br />
sudo rc-update del "$s" default<br />
sudo rc-service "$s" stop<br />
rc-service "$s" status<br />
done</pre><br />
<br />
'''3.''' After you've loaded the kernel modules, start the 6620_loader using parameters from the .rc scripts from your device '''but''' change the path to firmware. As [https://wiki.postmarketos.org/wiki/Vernee_Thor_(vernee-k506) Vernee Thor wiki page] states, this program needs to keep running, so better send it to background with &. Example:<br />
<pre><br />
/system/bin/6620_launcher -m 1 -b 4000000 -p /lib/firmware/postmarketos/ -d /dev/ttyMT2 &<br />
</pre><br />
Hit enter second time to return to console.<br />
<br />
'''4.''' Power on the combochip:<br />
<pre><br />
echo -n '1' > /dev/wmtWifi<br />
</pre><br />
This takes few seconds to run and you will see some logs from 6620_launcher indicating uploading firmware into the combochip which has been turned on.<br />
<br />
'''5.''' Launch wpa_supplicant parameters from the .rc scripts from your device. It's safe to omit entropy file and don't forget to supply the conf file. Depending on the wpa_supplicant implementation, you may or may ''not'' see the log output. You can also run this program in background using the <code>&</code>. Example:<br />
<pre><br />
/system/bin/wpa_supplicant -iwlan0 -Dnl80211 -c/home/user/my_wifi_network.conf -ddd<br />
</pre><br />
<br />
'''6.''' The last thing is to acquire an IP address from your access point! Use whatever program you want, I used <code>dhcpcd</code><br />
<br />
==== (2) Bringing up wifi using modern approach ====<br />
{{note|Author of this section performed all these steps directly on live postmarketOS installation. You packaging experience with pmbootstrap may vary}}<br />
'''1.''' The first and the hardest step is to find compatible <code>6620_launcher</code> and build it.<br />
<br />
The problem is Mediatek doesn't provide the source code of this tool as part of the kernel source code. Chances are extremely low but if your device vendor supplies <code>6620_launcher</code> source code, you saved yourself tons of time. In my case I went straight to Github and began searching for the source code, usually there are various versions accidentally shared either by mediatek or device vendors.<br />
<br />
<sup>Another '''huge problem''' is how Mediatek does versioning of <code>6620_launcher</code> - all executables I've seen have "1.0-release" version code but their functionality varies to the greatest extent. For example, the MediaDeb Project's source code did '''not''' work on my device at all because it invokes IOCTL calls which are not supported by the old WMT driver at all. You will need to either rely on luck or carefully read through the source code.</sup><br />
<br />
You can use my [https://github.com/search?l=C&q=CUST_COMBO_PATCH_PATH&type=Code Github search query] but you'll need to sign into your account. At the time of writing, there are 66 repositories with <code>6620_launcher</code>.<br />
<br />
I also had to load my <code>6620_launcher</code> from Android into [https://ghidra-sre.org/ Ghidra SRE] on my PC to compare algorithms with sources on GH and to dump strings - some of them are unique to specific versions and it makes searching easier, for example my version doesn't have this string: <code>"SOC chip no need do combo chip power on.\n"</code>. <br />
<br />
After all of this, I've found working <code>stp_uart_launcher</code> in [https://github.com/wedoinnov/HD5_lichee/blob/cc52f12aad006f9ed12a6dbd308873989396f7e5/buildroot/target/dragonboard/src/testcases/wifitester/stp_uart_launcher/stp_uart_launcher.c wedoinnov/HD5_lichee repo], omitting the firmware blobs. '''Most likely this tool will work on other old''' mt6575/mt6577/mt8317/mt8377 '''devices''' with mt6620/mt6628 combochips <u>that work over UART</u>.<br />
<br />
'''2.''' After you've loaded the kernel modules, start the freshly compiled <code>6620_launcher</code> using parameters from the .rc scripts from your device '''but''' change the path to firmware. As [https://wiki.postmarketos.org/wiki/Vernee_Thor_(vernee-k506) Vernee Thor wiki page] states, this program needs to keep running, so better send it to background with <code>&</code>. Example:<br />
<pre><br />
/home/user/wifi/HD5_lichee/6620_launcher -m 1 -b 4000000 -p /lib/firmware/postmarketos/ -d /dev/ttyMT2 &<br />
</pre><br />
Hit enter second time to return to console.<br />
<br />
'''3.''' Power on the combochip:<br />
<pre><br />
echo -n '1' > /dev/wmtWifi<br />
</pre><br />
This takes few seconds to run and you will see some logs from <code>6620_launcher</code> indicating uploading firmware into the combochip which has been turned on.<br />
<br />
'''4.''' Wait for a few seconds for the network interface to initialize and now you will be able to connect to wifi using network manager of your desktop environment. Enjoy the internet!<br />
<br />
{{note|There's a bug when the password prompt doesn't appear upon connecting to secure network in XFCE4. Use <code>nmtui</code> to work it around.}}<br />
<br />
== HiSilicon WiFi ==<br />
{{note|This section is in WIP state. Feel free to add more information.}}<br />
<br />
=== Introduction, software ===<br />
Devices with HiSilicon WiFi chips are comparatively easy to get working. If following instructions don't work for your device, you'll need to look at the *.rc scripts from an Android ROM available for your phone, as well as any other relevant for wifi scripts that they point to (search for hisi, hi110x, hi1101, hi1102, connectivity). In them you'll find `echo` (or `write` that can be translated to `echo`) commands that need to be run to initialize the wireless communication hardware.<br />
<br />
The path to the firmware is usually hardcoded in the kernel and firmware files themselves to <code>/vendor/firmware</code> or <code>/system/vendor/firmware</code>, so if you want to change the path to <code>/lib/firmware/postmarketos</code> you'll need to patch the kernel and edit the *_cfg firmware files (see [https://gitlab.com/postmarketOS/pmaports/-/blob/master/device/testing/linux-huawei-warsaw/06-change-bfgx-and-wifi-cfg-paths.patch this patch]).<br />
<br />
An example of how HiSilicon was made to work can be found at https://wiki.postmarketos.org/wiki/User:Ignapk#How_ignapk_made_wifi_work and [https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2221 the corresponding merge request]<br />
<br />
For packaging, see [[Device_specific_package#Proprietary_firmware_or_userland_blobs|that page]] and add the <code>hisi-wlan</code> package as a dependency to the WiFi subpackage.<br />
<br />
=== Hi1101 ===<br />
On the [[Huawei_P8_Lite_(huawei-alice)|Huawei P8 Lite]], the order of the initialization should be the following (based on the *.rc files from Android [https://github.com/DarkJoker360/android_vendor_huawei_alice/blob/cm-14.1/proprietary/bin/start_connectivity_hisi#L17-L20 1] [https://github.com/DarkJoker360/android_device_huawei_alice/blob/cm-14.1/rootdir/etc/init.hi6210sft.rc#L889-L891 2]):<br />
<pre><br />
# Install the firmware blobs into /system/vendor/firmware<br />
echo 1 > /sys/devices/hi110x_ps/bfg_lowpower_enable<br />
echo 12 > /sys/devices/hi110x_power/powerpin_state<br />
echo 1 > /proc/wifi_enable/wifi_start<br />
echo 1 > /proc/oam_enable/oam_start<br />
</pre><br />
<br />
=== Hi1102 ===<br />
On the [[Huawei_P10_Lite_(huawei-warsaw)|Huawei P10 Lite]], the order of the initialization should be the following (based on the *.rc files from Android):<br />
<pre><br />
# Install the files bfgx_and_wifi_cfg, wifi_cfg, bfgx_cfg, cr4_asic.bin, CPU_RAM_SCHED.bin, CPU_RAM_WBS.bin into /vendor/firmware/ (path could be<br />
# patched in the kernel sources) and make sure the wifi and platform drivers are set as builtin, not modules (Y instead of M in kernel config)<br />
echo 1 > /sys/hisys/boot/plat<br />
echo 1 > /sys/hisys/boot/wifi<br />
# The above commands can be run automatically on boot by installing hisi-wlan package<br />
</pre><br />
<br />
== Debugging ==<br />
<br />
First check, if the network interface is available by running <code>ip link</code> (<code>wlan0</code> on most phones).<br />
<br />
If the network interface is not listed and you've followed the section for your WiFi chip above, it's most likely an error of missing or misplaced firmware files:<br />
* <code>dmesg</code><br />
* <code>tail /var/log/firmwareload.log</code><br />
<br />
If no issue pops up in the log files, it could also be that you are missing a configuration option in kernel config.<br />
For example: in the [[Sony_Xperia_Z_(sony-yuga)|Sony Xperia Z]] downstream kernel we needed to enable these config options to get WiFi working:<br />
<pre><br />
#<br />
# Qualcomm Atheros Prima WLAN module<br />
#<br />
-# CONFIG_PRIMA_WLAN is not set<br />
+CONFIG_PRIMA_WLAN=y<br />
+# CONFIG_PRIMA_WLAN_BTAMP is not set<br />
+CONFIG_PRIMA_WLAN_LFR=y<br />
+CONFIG_PRIMA_WLAN_OKC=y<br />
+# CONFIG_PRIMA_WLAN_11AC_HIGH_TP is not set<br />
+# CONFIG_QCOM_VOWIFI_11R is not set<br />
+CONFIG_QCOM_TDLS=y<br />
</pre><br />
<br />
In case you need any more help, just ask in our [[Matrix_and_IRC|Matrix/IRC channel]]!<br />
<br />
== Connecting to APs ==<br />
<br />
=== Using NetworkManager ===<br />
<br />
You can use NetworkManager from the command line either with <code>nmtui</code> (a terminal user interface) or <code>nmcli</code>.<br />
<br />
To use <code>nmtui</code>, just run <code>sudo nmtui</code> in your terminal.<br />
<br />
To use <code>nmcli</code>, you can use the following commands, modified for your use case:<br />
<pre><br />
$ sudo nmcli device wifi list ifname wlan0<br />
$ sudo nmcli device wifi connect "$SSID" password "$PASSWORD" ifname "wlan0"<br />
</pre><br />
<br />
=== Using wpa_supplicant ===<br />
<br />
{{note|In most cases using NetworkManager is preferred! You might need to set your wlan interface to unmanaged in NetworkManager or stop NetworkManager to configure it manually.}}<br />
<br />
postmarketOS currently configures the wpa_supplicant service to start on boot. This service will fail to start unless <code>/etc/wpa_supplicant/wpa_supplicant.conf</code> has been defined. This can be configured using the <code>wpa_passphrase</code> utility:<br />
<br />
<pre>$ wpa_passphrase YOUR_SSID YOUR_PASSPHRASE | sudo tee /etc/wpa_supplicant/wpa_supplicant.conf</pre><br />
<br />
Note: If you are connecting to a hidden wireless network, make sure to add line "scan_ssid=1" after the ssid line in your generated conf file<br />
<br />
Scanning for networks is possible with these commands<br />
<pre>ifconfig wlan0 up<br />
iw dev wlan0 scan</pre><br />
<br />
Next you'll need to set up the <code>networking</code> service by adding interfaces to <code>/etc/network/interfaces</code>. In some cases, the loopback device may need to precede the wlan interface:<br />
<br />
<pre>auto lo <br />
iface lo inet loopback <br />
auto wlan0 <br />
iface wlan0 inet dhcp</pre><br />
Finally, set the networking service to start on boot:<br />
<br />
<pre>$ sudo rc-update add networking default</pre><br />
Note that on some systems (e.g. the RX51 [this seems not to be required on RX-51 as of 16th May 2018 but YMMV]) you may have to configure wpa_supplicant to use the Linux kernel wireless extensions by editing <code>/etc/conf.d/wpa_supplicant</code>:<br />
<br />
<pre>wpa_supplicant_args=&quot;-Dwext&quot;</pre><br />
You will have to reboot, or manually restart the aforementioned services, before your device will connect to the access point.<br />
<br />
=== Using wpa_supplicant (manually) ===<br />
<br />
If you experience problems or just want to test wifi you can start wpa supplicant (using -Dwext or nl80211 driver) and the dhcp service:<br />
<br />
<pre><br />
sudo wpa_supplicant -u -Dnl80211 -B -c /etc/wpa_supplicant/wpa_supplicant.conf -iwlan0<br />
sudo udhcpc -i wlan0<br />
</pre><br />
<br />
== See also ==<br />
* [[Samsung_Galaxy_S_Advance_(samsung-i9070)#How_drebrez_made_wifi_work|samsung-i9070: How drebrez made wifi work]]<br />
<br />
[[Category:Guide]]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_S_Advance_(samsung-janice)&diff=25312Samsung Galaxy S Advance (samsung-janice)2022-01-29T13:53:51Z<p>Onny: Remove downstream installation instructions</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy S Advance<br />
| codename = samsung-janice<br />
| image = File:Samsung Galaxy S Advance weston demo.jpg<br />
| imagecaption = Samsung Galaxy S Advance running Weston demos<br />
| releaseyear = 2012<br />
| originalsoftware = Android 2.3.6 on Linux 2.6.35<br />
| chipset = [[ST-Ericsson NovaThor U8500]]<br />
| cpu = Dual-core 1.0 GHz Cortex-A9<br />
| gpu = Mali-400<br />
| storage = 8/16 GB<br />
| display = 480x800 AMOLED<br />
| memory = 768 MB<br />
| architecture = armv7<br />
| status_usbnet =<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi =<br />
| status_xwayland = Y<br />
| status_fde =<br />
| status_mainline = Y<br />
| status_battery =<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| booting = yes<br />
}}<br />
<br />
=== Contributors ===<br />
* drebrez<br />
<br />
== Installation ==<br />
The mainline kernel can only be booted through U-Boot, not directly with the Samsung bootloader. U-Boot is installed as intermediate bootloader on the boot partition, so it does not replace the Samsung bootloader entirely. pmbootstrap can only support one bootloader configuration at the moment, which is why U-Boot is also recommended when installing the downstream kernel.<br />
<br />
Boot into Download Mode using {{Button|Power}} + {{Button|Volume Down}} + {{Button|Home}} and follow follow the [[ST-Ericsson_NovaThor_U8500#U-Boot_on_Samsung_NovaThor_U8500_Devices|the NovaThor U8500 U-Boot installation instructions]] to install U-Boot.<br />
<br />
Finally, just follow the [[Installation guide]].<br />
<br />
=== How drebrez made wifi work ===<br />
<br />
* build the kernel module (dhd.ko for samsung-janice)<br />
* get the vendor files for the [https://github.com/Epirex/android_vendor_samsung_u8500 Samsung U8500 devices]<br />
* load the module using insmod with the firmware_path and nvram_path parameters<br />
<br />
<code>insmod dhd.ko firmware_path=/etc/wifi/bcmdhd_sta.bin nvram_path=/etc/wifi/nvram_net.txt</code><br />
<br />
* set a mac address<br />
<br />
<code>ifconfig wlan0 hw ether 01:02:03:04:05:06</code><br />
<br />
* bring the interface up<br />
<br />
<code>ifconfig wlan0 up</code><br />
<br />
* scan to find out what WiFi networks are detected<br />
<br />
<code>iw dev wlan0 scan</code><br />
<br />
* connect to WPA/WPA2 WiFi network<br />
<br />
<code>wpa_passphrase wifi_ssid wifi_key &gt;&gt; /etc/wpa_supplicant.conf</code><br />
<br />
* start wpa_supplicant to connect to the network<br />
<br />
<code>wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf</code><br />
<br />
* verify that you are indeed connected to the SSID<br />
<br />
<code>iw wlan0 link</code><br />
<br />
* start udhcpc to get an ip address<br />
<br />
<code>udhcpc -b -i wlan0</code><br />
<br />
=== Links ===<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-janice Device package]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-samsung-janice Kernel package]<br />
* [https://github.com/Epirex/Samsung_STE_Kernel/tree/marshmallow Epirex's Kernel]<br />
* [https://github.com/Epirex/android_vendor_samsung_u8500 Epirex's vendor files]<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-janice.dts Upstream devicetree] in Torvalds' kernel tree<br />
<br />
=== Photos ===<br />
* [https://i.imgur.com/MuVLljM.jpg Initramfs asking for the password via telnet]<br />
* [https://i.imgur.com/maobRbj.jpg postmarketOS demo menu (XWayland)]<br />
* [https://i.imgur.com/Nop8uu4.jpg Weston-terminal running in fullscreen mode]<br />
<br />
=== Videos ===<br />
* [http://i.imgur.com/9c66GAs.mp4 Weston with various programs running]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_S_Advance_(samsung-janice)&diff=25311Samsung Galaxy S Advance (samsung-janice)2022-01-29T13:49:21Z<p>Onny: Add mainlne installation instructions</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy S Advance<br />
| codename = samsung-janice<br />
| image = File:Samsung Galaxy S Advance weston demo.jpg<br />
| imagecaption = Samsung Galaxy S Advance running Weston demos<br />
| releaseyear = 2012<br />
| originalsoftware = Android 2.3.6 on Linux 2.6.35<br />
| chipset = [[ST-Ericsson NovaThor U8500]]<br />
| cpu = Dual-core 1.0 GHz Cortex-A9<br />
| gpu = Mali-400<br />
| storage = 8/16 GB<br />
| display = 480x800 AMOLED<br />
| memory = 768 MB<br />
| architecture = armv7<br />
| status_usbnet =<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi =<br />
| status_xwayland = Y<br />
| status_fde =<br />
| status_mainline = Y<br />
| status_battery =<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| booting = yes<br />
}}<br />
<br />
=== Contributors ===<br />
* drebrez<br />
<br />
== Installation ==<br />
The mainline kernel can only be booted through U-Boot, not directly with the Samsung bootloader. U-Boot is installed as intermediate bootloader on the boot partition, so it does not replace the Samsung bootloader entirely. pmbootstrap can only support one bootloader configuration at the moment, which is why U-Boot is also recommended when installing the downstream kernel.<br />
<br />
Boot into Download Mode using {{Button|Power}} + {{Button|Volume Down}} + {{Button|Home}} and follow follow the [[ST-Ericsson_NovaThor_U8500#U-Boot_on_Samsung_NovaThor_U8500_Devices|the NovaThor U8500 U-Boot installation instructions]] to install U-Boot.<br />
<br />
Finally, just follow the [[Installation guide]].<br />
<br />
=== Boot process ===<br />
<br />
Unlike most other Android devices, the samsung-janice can not boot a <code>boot.img</code> (which consists of <code>kernel</code> + <code>initramfs</code>). Instead, the <code>boot.img</code> file is just a regular kernel.<br />
<br />
However, it is possible to directly integrate a <code>initramfs</code> into the kernel at kernel compile time (this is totally different from the boot.img approach, if this is unclear to you, please ask in the channel), and this is what the Android ROMs do on the samsung-janice. While it is not a big deal in the Android compilation process, it is a problem for postmarketOS, because we want to be able to build the <code>initramfs</code> independently from the kernel.<br />
<br />
The following workaround is currently implemented:<br />
<br />
* We flash the ''real'' initramfs to the kernel2 partition (this partition usually contains a backup of the stock kernel)<br />
* The initramfs [https://github.com/postmarketOS/pmbootstrap/blob/master/aports/device/linux-samsung-janice/init init script built into the kernel] checks if the kernel2 partition contains a compressed initramfs, and if it does, it extracts it and passes execution to the real initramfs init script.<br />
* This idea is based on something called [https://forum.xda-developers.com/galaxy-s2/orig-development/isorec-isolated-recovery-galaxy-s2-t3291176 &quot;isorec&quot;].<br />
<br />
=== Device partitions ===<br />
<br />
The following partitions are used for the postmarketOS:<br />
<br />
* Kernel =&gt; /dev/mmcblk0p15 (16MB)<br />
* Kernel2 =&gt; /dev/mmcblk0p17 (16MB)<br />
<br />
Possible partitions for the postmarketOS system image:<br />
<br />
* SYSTEM =&gt; /dev/mmcblk0p3 (600MB)<br />
* DATAFS =&gt; /dev/mmcblk0p5 (2GB)<br />
<br />
=== Flashing with heimdall ===<br />
<br />
In order to flash the kernel and the initramfs using <code>heimdall</code> you simply have to call <code>pmbootstrap flasher flash_kernel</code><br />
<br />
This will write in the partitions specified in the [https://github.com/postmarketOS/pmbootstrap/blob/master/aports/device/device-samsung-janice/deviceinfo#L18-L19 deviceinfo] file.<br />
<br />
At the moment is not possible to write the system image file (samsung-janice.img) using heimdall. A temporary solution is to use the TWRP shell to perform a command like this:<br /><br />
<code>dd if=samsung-janice.img of=/dev/mmcblk0p5</code><br />
<br />
=== How drebrez made wifi work ===<br />
<br />
* build the kernel module (dhd.ko for samsung-janice)<br />
* get the vendor files for the [https://github.com/Epirex/android_vendor_samsung_u8500 Samsung U8500 devices]<br />
* load the module using insmod with the firmware_path and nvram_path parameters<br />
<br />
<code>insmod dhd.ko firmware_path=/etc/wifi/bcmdhd_sta.bin nvram_path=/etc/wifi/nvram_net.txt</code><br />
<br />
* set a mac address<br />
<br />
<code>ifconfig wlan0 hw ether 01:02:03:04:05:06</code><br />
<br />
* bring the interface up<br />
<br />
<code>ifconfig wlan0 up</code><br />
<br />
* scan to find out what WiFi networks are detected<br />
<br />
<code>iw dev wlan0 scan</code><br />
<br />
* connect to WPA/WPA2 WiFi network<br />
<br />
<code>wpa_passphrase wifi_ssid wifi_key &gt;&gt; /etc/wpa_supplicant.conf</code><br />
<br />
* start wpa_supplicant to connect to the network<br />
<br />
<code>wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf</code><br />
<br />
* verify that you are indeed connected to the SSID<br />
<br />
<code>iw wlan0 link</code><br />
<br />
* start udhcpc to get an ip address<br />
<br />
<code>udhcpc -b -i wlan0</code><br />
<br />
=== Links ===<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-janice Device package]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-samsung-janice Kernel package]<br />
* [https://github.com/Epirex/Samsung_STE_Kernel/tree/marshmallow Epirex's Kernel]<br />
* [https://github.com/Epirex/android_vendor_samsung_u8500 Epirex's vendor files]<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-janice.dts Upstream devicetree] in Torvalds' kernel tree<br />
<br />
=== Photos ===<br />
* [https://i.imgur.com/MuVLljM.jpg Initramfs asking for the password via telnet]<br />
* [https://i.imgur.com/maobRbj.jpg postmarketOS demo menu (XWayland)]<br />
* [https://i.imgur.com/Nop8uu4.jpg Weston-terminal running in fullscreen mode]<br />
<br />
=== Videos ===<br />
* [http://i.imgur.com/9c66GAs.mp4 Weston with various programs running]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_S_Advance_(samsung-janice)&diff=25310Samsung Galaxy S Advance (samsung-janice)2022-01-29T13:25:06Z<p>Onny: Updated device page to reflect mainline work</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy S Advance<br />
| codename = samsung-janice<br />
| image = File:Samsung Galaxy S Advance weston demo.jpg<br />
| imagecaption = Samsung Galaxy S Advance running Weston demos<br />
| releaseyear = 2012<br />
| originalsoftware = Android 2.3.6 on Linux 2.6.35<br />
| chipset = [[ST-Ericsson NovaThor U8500]]<br />
| cpu = Dual-core 1.0 GHz Cortex-A9<br />
| gpu = Mali-400<br />
| storage = 8/16 GB<br />
| display = 480x800 AMOLED<br />
| memory = 768 MB<br />
| architecture = armv7<br />
| status_usbnet =<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi =<br />
| status_xwayland = Y<br />
| status_fde =<br />
| status_mainline = Y<br />
| status_battery =<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| booting = yes<br />
}}<br />
<br />
=== Contributors ===<br />
* drebrez<br />
<br />
=== Boot process ===<br />
<br />
Unlike most other Android devices, the samsung-janice can not boot a <code>boot.img</code> (which consists of <code>kernel</code> + <code>initramfs</code>). Instead, the <code>boot.img</code> file is just a regular kernel.<br />
<br />
However, it is possible to directly integrate a <code>initramfs</code> into the kernel at kernel compile time (this is totally different from the boot.img approach, if this is unclear to you, please ask in the channel), and this is what the Android ROMs do on the samsung-janice. While it is not a big deal in the Android compilation process, it is a problem for postmarketOS, because we want to be able to build the <code>initramfs</code> independently from the kernel.<br />
<br />
The following workaround is currently implemented:<br />
<br />
* We flash the ''real'' initramfs to the kernel2 partition (this partition usually contains a backup of the stock kernel)<br />
* The initramfs [https://github.com/postmarketOS/pmbootstrap/blob/master/aports/device/linux-samsung-janice/init init script built into the kernel] checks if the kernel2 partition contains a compressed initramfs, and if it does, it extracts it and passes execution to the real initramfs init script.<br />
* This idea is based on something called [https://forum.xda-developers.com/galaxy-s2/orig-development/isorec-isolated-recovery-galaxy-s2-t3291176 &quot;isorec&quot;].<br />
<br />
=== Device partitions ===<br />
<br />
The following partitions are used for the postmarketOS:<br />
<br />
* Kernel =&gt; /dev/mmcblk0p15 (16MB)<br />
* Kernel2 =&gt; /dev/mmcblk0p17 (16MB)<br />
<br />
Possible partitions for the postmarketOS system image:<br />
<br />
* SYSTEM =&gt; /dev/mmcblk0p3 (600MB)<br />
* DATAFS =&gt; /dev/mmcblk0p5 (2GB)<br />
<br />
=== Flashing with heimdall ===<br />
<br />
In order to flash the kernel and the initramfs using <code>heimdall</code> you simply have to call <code>pmbootstrap flasher flash_kernel</code><br />
<br />
This will write in the partitions specified in the [https://github.com/postmarketOS/pmbootstrap/blob/master/aports/device/device-samsung-janice/deviceinfo#L18-L19 deviceinfo] file.<br />
<br />
At the moment is not possible to write the system image file (samsung-janice.img) using heimdall. A temporary solution is to use the TWRP shell to perform a command like this:<br /><br />
<code>dd if=samsung-janice.img of=/dev/mmcblk0p5</code><br />
<br />
=== How drebrez made wifi work ===<br />
<br />
* build the kernel module (dhd.ko for samsung-janice)<br />
* get the vendor files for the [https://github.com/Epirex/android_vendor_samsung_u8500 Samsung U8500 devices]<br />
* load the module using insmod with the firmware_path and nvram_path parameters<br />
<br />
<code>insmod dhd.ko firmware_path=/etc/wifi/bcmdhd_sta.bin nvram_path=/etc/wifi/nvram_net.txt</code><br />
<br />
* set a mac address<br />
<br />
<code>ifconfig wlan0 hw ether 01:02:03:04:05:06</code><br />
<br />
* bring the interface up<br />
<br />
<code>ifconfig wlan0 up</code><br />
<br />
* scan to find out what WiFi networks are detected<br />
<br />
<code>iw dev wlan0 scan</code><br />
<br />
* connect to WPA/WPA2 WiFi network<br />
<br />
<code>wpa_passphrase wifi_ssid wifi_key &gt;&gt; /etc/wpa_supplicant.conf</code><br />
<br />
* start wpa_supplicant to connect to the network<br />
<br />
<code>wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf</code><br />
<br />
* verify that you are indeed connected to the SSID<br />
<br />
<code>iw wlan0 link</code><br />
<br />
* start udhcpc to get an ip address<br />
<br />
<code>udhcpc -b -i wlan0</code><br />
<br />
=== Links ===<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-janice Device package]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-samsung-janice Kernel package]<br />
* [https://github.com/Epirex/Samsung_STE_Kernel/tree/marshmallow Epirex's Kernel]<br />
* [https://github.com/Epirex/android_vendor_samsung_u8500 Epirex's vendor files]<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-janice.dts Upstream devicetree] in Torvalds' kernel tree<br />
<br />
=== Photos ===<br />
* [https://i.imgur.com/MuVLljM.jpg Initramfs asking for the password via telnet]<br />
* [https://i.imgur.com/maobRbj.jpg postmarketOS demo menu (XWayland)]<br />
* [https://i.imgur.com/Nop8uu4.jpg Weston-terminal running in fullscreen mode]<br />
<br />
=== Videos ===<br />
* [http://i.imgur.com/9c66GAs.mp4 Weston with various programs running]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_Note_4_(samsung-trltexx)&diff=25303Samsung Galaxy Note 4 (samsung-trltexx)2022-01-28T22:38:19Z<p>Onny: USB networking works</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy Note 4<br />
| codename = samsung-trltexx<br />
| image = File:Samsung-trltexx-weston.jpeg<br />
| imagecaption = Samsung Galaxy Note 4<br />
| releaseyear = 2014<br />
| releasemonth = October<br />
| originalsoftware = Android 4.4.4 (KitKat)<br />
| chipset = Qualcomm Snapdragon 805 (APQ8084) <br />
| cpu = 2.7 GHz quad-core Krait 450 <br />
| gpu = Adreno 420<br />
| storage = 32/64 GB<br />
| display = 1440 x 2560 Super AMOLED<br />
| memory = 3 GB<br />
| architecture = armv7<br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = <br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel =<br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| status = booting<br />
<br />
| booting = N<br />
| pmoskernel = 3.10.0<br />
| whet_dhry =<br />
| status_otg =<br />
}}<br />
{{note|Please note that this page is about the models with Qualcomm chipset SM-N910A/F/G/P/T/V/X. The model with the Exynos SoC is called [[Samsung Galaxy Note 4 (samsung-treltexx)|treltexx]]}}<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
<br />
Press and hold {{button|Volume Down}} + {{button|Home}} + {{button|Power}} simultaneously. Then click {{button|Volume Up}} to confirm.<br />
<br />
== See also ==<br />
* {{MR|2456|pmaports}} Initial merge request<br />
<br />
== Notes ==<br />
N-910A (AT&T Note 4) cannot be rooted. Bootloader cannot be unlocked.</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_Note_4_(samsung-trltexx)&diff=25302Samsung Galaxy Note 4 (samsung-trltexx)2022-01-28T22:33:49Z<p>Onny: Updated hardware support reflecting recent work in PR</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy Note 4<br />
| codename = samsung-trltexx<br />
| image = File:Samsung-trltexx-weston.jpeg<br />
| imagecaption = Samsung Galaxy Note 4<br />
| releaseyear = 2014<br />
| releasemonth = October<br />
| originalsoftware = Android 4.4.4 (KitKat)<br />
| chipset = Qualcomm Snapdragon 805 (APQ8084) <br />
| cpu = 2.7 GHz quad-core Krait 450 <br />
| gpu = Adreno 420<br />
| storage = 32/64 GB<br />
| display = 1440 x 2560 Super AMOLED<br />
| memory = 3 GB<br />
| architecture = armv7<br />
| status_usbnet = <br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = <br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel =<br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| status = booting<br />
<br />
| booting = N<br />
| pmoskernel = 3.10.0<br />
| whet_dhry =<br />
| status_otg =<br />
}}<br />
{{note|Please note that this page is about the models with Qualcomm chipset SM-N910A/F/G/P/T/V/X. The model with the Exynos SoC is called [[Samsung Galaxy Note 4 (samsung-treltexx)|treltexx]]}}<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
<br />
Press and hold {{button|Volume Down}} + {{button|Home}} + {{button|Power}} simultaneously. Then click {{button|Volume Up}} to confirm.<br />
<br />
== See also ==<br />
* {{MR|2456|pmaports}} Initial merge request<br />
<br />
== Notes ==<br />
N-910A (AT&T Note 4) cannot be rooted. Bootloader cannot be unlocked.</div>Onnyhttps://wiki.postmarketos.org/index.php?title=File:Signal-2022-01-28-231112_001.jpeg&diff=25301File:Signal-2022-01-28-231112 001.jpeg2022-01-28T22:32:30Z<p>Onny: Onny moved page File:Signal-2022-01-28-231112 001.jpeg to File:Samsung-trltexx-weston.jpeg</p>
<hr />
<div>#REDIRECT [[File:Samsung-trltexx-weston.jpeg]]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=File:Samsung-trltexx-weston.jpeg&diff=25300File:Samsung-trltexx-weston.jpeg2022-01-28T22:32:30Z<p>Onny: Onny moved page File:Signal-2022-01-28-231112 001.jpeg to File:Samsung-trltexx-weston.jpeg</p>
<hr />
<div></div>Onnyhttps://wiki.postmarketos.org/index.php?title=File:Samsung-trltexx-weston.jpeg&diff=25299File:Samsung-trltexx-weston.jpeg2022-01-28T22:31:58Z<p>Onny: </p>
<hr />
<div></div>Onnyhttps://wiki.postmarketos.org/index.php?title=ST-Ericsson_NovaThor_U8500&diff=24451ST-Ericsson NovaThor U85002021-12-27T15:23:46Z<p>Onny: /* Modem */ Add infos about implementing modem support</p>
<hr />
<div>{{Infobox soc<br />
| name = NovaThor U8500<br />
| image = File:Phos-on-st-ericsson-href.jpg<br />
| imagecaption = Phosh running on the ST-Ericsson U8500 HREF (Hardware Reference Design)<br />
| manufacturer = ST-Ericsson<br />
| arch = armv7<br />
| cpu = 2x 1 GHz ARM Cortex-A9<br />
| gpu = ARM Mali-400 MP<br />
| year = 2011<br />
| process = 40<br />
| mainline = yes<br />
| status_cpu = Y<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = Y<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio =<br />
| status_video =<br />
| status_thermal = Y<br />
| status_wifi = -<br />
| status_bluetooth = -<br />
| status_modem =<br />
| status_gps = -<br />
| status_camera =<br />
}}<br />
<br />
== Devices with this chipset ==<br />
<br />
This chipset is used similarly in the following devices:<br />
<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='ST-Ericsson NovaThor U8500' OR Devices.chipset='[[ST-Ericsson NovaThor U8500]]' OR Devices.chipset='NovaThor U8500'<br />
|more results text=<br />
}}<br />
<br />
Other devices using this chipset but not yet ported to postmarketOS (remove once they are ported):<br />
<br />
* Samsung have released a number of phones on the platform:<br />
** Samsung GT-I9060 codename Godin is mentioned in the Codina kernel drop but appears to never have been produced, instead another device has the model numer GT-I9060.<br />
** Samsung Galaxy Beam GT-I8530 codename Gavini ({{wikipedia|Samsung_Galaxy_Beam_i8530|wikipedia}}, [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-gavini.dts upstream devicetree])<br />
** Samsung Galaxy Exhibit T599 (seems to be a variant of GT-I8160/Codina according to the code dumps, "Codina T-mobile" is mentioned)<br />
** Samsung Galaxy Amp SGH-I407 codename Kyle ([https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-kyle.dts upstream devicetree])<br />
** Samsung Galaxy 070 YP-GI2 codename Hendrix seems to have been intended as a NovaThor U8500 device but ended up using a Marvell chip. This is not confirmed.<br />
** Sources also mentions, at one point, a product called "Venus" but no other information exists.<br />
* Sony refers to the U8500 platform as "RioGrande" and there is one kernel for all the Sony devices: [https://github.com/XperiaSTE/android_kernel_sony_u8500 RioGrande kernel source code]<br />
** Sony Xperia Go (sony-lotus) ({{wikipedia|Sony_Xperia_Go|wikipedia}})<br />
** Sony Xperia Sola (sony-pepper) ({{wikipedia|Sony_Xperia_sola|wikipedia}})<br />
* Motorola XT760<br />
* HTC Desire 400 dual SIM<br />
* HTC One SU, ST & SC<br />
* HTC Sensation Z710t<br />
<br />
== Charging ==<br />
<br />
[[File:samsung-universal-charger.jpg|thumb|right|Samsung universal charger of a type that can charge the Li-Ion batteries for all U8500 mobile phones.]]<br />
The U8500 has a companion power management IC (PMIC, also known as analog baseband, AB) ASIC called AB8500/AB8505 that takes care of the charging. In difference from many other charging ICs this chip is not autonoumous and will not charge the phone without the right software to instruct it, respond to interrupts etc. So in short: the phone will not charge unless the kernel has started and provides the right driver for the charger portions of the AB8500.<br />
<br />
The mainline kernel for the U8500 does not as of now (2021-03-20) yet support charging. To work with these phones an external battery charger is recommended, or you have to regularly revert to the original firmware just to charge, and if your battery depletes completely before you do that you have a problem.<br />
<br />
linusw [https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/log/?h=ux500-href-charging-v5.16-rc1 is currently working] (2021-12-23) on mainlining a battery driver for this chipset, as he stated [https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2779#note_794276875 here]. <br />
<br />
[https://www.wish.com/product/58a9a5a13661365289c8bf9b?share=web This type of charger at Wish] can charge all of these batteries. It is a noname product simply named "Multi-connector USB Battery charger" that originates in China and often found in webstores such as Aliexpress or Wish. The charger comes with a US plug, so you may additionally need a US-to-european power converter to use it.<br />
<br />
== Audio ==<br />
As stated [https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2779#note_794276875 here], getting Audio work requires more work. linusw made some [https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson.git/log/?h=ux500-audio-rewrite not yet working experiments].<br />
<br />
== Modem ==<br />
linusw shared some thoughts on how modem support could be implemented [https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2779#note_795379658 here].<br />
<br />
== USB-to-serial Cable for Samsung NovaThor U8500 devices ==<br />
<br />
The Samsung U8500 models use a modified microUSB cable for [[serial debugging]]. As per the [[Serial debugging:Cable schematics|cable schematics page]] the [[Micro-USB Interface Controller]] the required resistance used on all Samsung U8500 models is 619KΩ to GND.<br />
<br />
== Flash and SDcard Layout on Samsung NovaThor U8500 Devices ==<br />
<br />
When working with these devices, we install U-Boot, the kernel (<code>zImage</code>) and a small initial ramdisk (<code>initrd</code>) in the internal flash of the phone. The installation is done in three steps:<br />
<br />
# U-Boot is installed on the Samsung U8500 devices using the Samsung open source flashing tool '''Heimdall'''. This is the open source reimplementation of Samsungs ''Odin'' tool. This has to be done manually ''before'' you can use <code>pmbootstrap</code>.<br />
# The kernel and inital ramdisk is then installed using U-Boot. After installing U-Boot, any time we want to reflash the phone internal eMMC kernel image and initial ramdisk, we do this using U-Boot's ''fastboot'' implementation, and on the host side we use the Android '''fastboot''' command-line tool to do the reflashing of new kernels. <code>pmbootstrap flash</code> will hide these details, but it's good to know.<br />
# The root filesystem for PostmarketOS will be stored on the external SDcard, so you will need to set up an SDcard using <code>pmbootstrap install --sdcard=/dev/nnnn</code>.<br />
<br />
== U-Boot on Samsung NovaThor U8500 Devices ==<br />
<br />
There is a port of (mainline) U-Boot for U8500 currently maintained at: https://github.com/stericsson-mainline/u-boot<br />
<br />
It contains a board called <code>stemmy</code>, which is intended for all Samsung devices using U8500 (see above). It provides a simple Android fastboot interface as replacement for Samsung's proprietary flashing procedure. As a device tree compatible bootloader, it can be also used to boot mainline without any hacks in the Linux kernel.<br />
<br />
{{note|'''Note:''' In this case, U-Boot does '''not''' replace the Samsung bootloader. Instead, it is packaged into an Android boot image (if necessary), and flashed to the Android boot partition replacing the Linux kernel. The kernel will be loaded from an offset into the boot partition.}}<br />
<br />
=== Installation ===<br />
<br />
Heimdall [https://github.com/Benjamin-Dobell/Heimdall can be found here] but is packaged into most major Linux distributions such as Debian, Ubuntu and Fedora.<br />
<br />
Pre-built U-boot images are available from: https://github.com/novathor-mainline/u-boot/releases. Alternatively, you can build it from source. See [[#Building]] below.<br />
<br />
Choose the Android boot image (<code>u-boot.img</code>) or the raw binary (<code>u-boot.bin</code>), depending on your device. Most newer devices (e.g. <code>samsung-golden</code> and <code>samsung-skomer</code>) use the Android boot image format, but some older (e.g. <code>samsung-janice</code>) use the raw binary.<br />
<br />
{| class="wikitable"<br />
|+ U-boot binary format per phone<br />
|-<br />
! Product name !! Model !! Codename !! U-Boot !! Notes<br />
|-<br />
| Galaxy S Advance || GT-I9070 || Janice || <code>u-boot.bin</code> ||<br />
|-<br />
| Galaxy Beam || GT-I8530 || Gavini || <code>u-boot.bin</code> || Needs U-Boot 2021.01<br />
|-<br />
| Galaxy Ace 2 || GT-I8160 || Codina || <code>u-boot.bin</code> ||<br />
|-<br />
| Galaxy Exhibit || SGH-T599 || Codina TMO || <code>u-boot.bin</code> ||<br />
|-<br />
| Galaxy S III mini || GT-I8190N || Golden || <code>u-boot.img</code> ||<br />
|-<br />
| Galaxy Xcover 2 || GT-S7710 || Skomer || <code>u-boot.img</code> ||<br />
|-<br />
| Galaxy Amp || SGH-I407 || Kyle || <code>u-boot.img</code> ||<br />
|}<br />
<br />
To get into "custom OS install" hold volume down and home key down and press power on. The phone will vibrate and issue a warning ("A custom OS can cause critical problems...") if you are OK with this risk, press volume up to continue. When the phone shows the Android robot and says '''Downloading...''' you can use Heimdall to download U-Boot.<br />
<br />
Install it normally to the boot partition replacing the default Kernel (notice capital K on Kernel):<br />
<br />
heimdall flash --Kernel u-boot.[bin|img]<br />
<br />
If this doesn't work, especially if you have messages in the console such as "Android recovery image size=322449, ramdisk size=0" then the phone is not booting from the <tt>Kernel</tt> partition but from <tt>Kernel2</tt> so try this instead:<br />
<br />
heimdall flash --Kernel2 u-boot.[bin|img]<br />
<br />
=== Usage ===<br />
U-Boot will try to boot an Android boot image from the <code>boot</code> partition by default. Pressing one of the volume keys during boot allows to change that behavior:<br />
* <code>Volume Down</code>: Enter Fastboot mode<br />
* <code>Volume Up</code>: Boot into recovery (<code>recovery</code> partition)<br />
<br />
{{note|'''Note:''' Since the <code>boot</code> partition is already used for U-Boot itself, U-Boot reads the Android boot image with 1 MB offset from the <code>boot</code> partition. This offset is applied automatically when using <code>fastboot flash boot boot.img</code>.}}<br />
<br />
In Fastboot mode, kernels can be directly booted from RAM using <code>fastboot boot ...</code>. Alternatively, partitions can be flashed using <code>fastboot flash <partition> ...</code>.<br />
<br />
U-Boot itself can be also flashed from U-Boot using <code>fastboot flash u-boot u-boot.img</code> (in this case, it will not apply the offset for the <code>boot</code> partition).<br />
<br />
=== Building ===<br />
'''Requirements:''' ARM cross compiler (e.g. <code>arm-none-eabi-gcc</code>)<br />
<br />
export CROSS_COMPILE=arm-none-eabi-<br />
make stemmy_defconfig<br />
make<br />
<br />
If your device uses Android boot images, package it into an Android boot image:<br />
mkbootimg --kernel u-boot.bin --base=0x00000000 --kernel_offset=0x00100000 --ramdisk_offset=0x02000000 --tags_offset=0x00000100 --output=u-boot.img<br />
<br />
== Kernel Hacking on NovaThor U8500 ==<br />
<br />
These sections detail some tricks needed when working on kernel development.<br />
<br />
Some details can be found at the external page for [[https://dflund.se/~triad/krad/ux500/ Ux500 mainline work]].<br />
<br />
=== Assembling a Custom boot.img ===<br />
<br />
When used with PostmarketOS the <code>boot.img</code> that you flash into the phone should come out of the [[Installing pmbootstrap|pmbootstrap]] utility, but if you for some reason want to assemble the <code>boot.img</code> using some prefabricated kernel, ramdisk and device tree, the process is like this this:<br />
<br />
mkbootimg --kernel zImage --ramdisk initrd --second foo.dtb --base=0x00000000 --kernel_offset=0x00008000 --ramdisk_offset=0x02000000 --second_offset=0x00f00000 --tags_offset=0x00000100 --output=boot.img<br />
<br />
Or using <code>abootimg</code>:<br />
<br />
abootimg --create boot.img -k zImage -r initrd -s foo.dtb -c "pagesize=0x800" -c "kerneladdr=0x8000" -c "ramdiskaddr=0x02000000" -c "secondaddr=0x00f00000" -c "tagsaddr=0x100"<br />
<br />
Notice how this puts the device tree binary <code>foo.dtb</code> into the "second bootloader firmware".<br />
<br />
If you are booting PostmarkeOS with a custom kernel, the <code>initrd</code> you pass must better be a PostmarkeOS initramfs. This can be found in a path like <code>.local/var/pmbootstrap/chroot_native/mnt/rootfs_samsung-skomer/boot/initramfs-postmarketos-stericsson</code>. The initrd is used to set up, detect and load the rest of the rootfs from the SDcard volume so it is pretty vital.<br />
<br />
=== Flashing a Custom Kernel ===<br />
<br />
You install a custom kernel into the device by booting into U-Boot as described above, go to '''fastboot''' mode by holding down {{Button|Power}} + {{Button|Volume Down}} or by holding {{Button|Volume Down}} while you insert the serial cable. Then you can flash a new kernel image like this:<br />
<br />
fastboot flash boot boot.img<br />
<br />
After this reboot the phone and your new kernel should start.<br />
<br />
== See also ==<br />
* This chipset has a [{{wikipedia|NovaThor|wikipedia page}}]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=ST-Ericsson_NovaThor_U8500&diff=24450ST-Ericsson NovaThor U85002021-12-27T15:22:40Z<p>Onny: /* Audio */ Add info on audio status</p>
<hr />
<div>{{Infobox soc<br />
| name = NovaThor U8500<br />
| image = File:Phos-on-st-ericsson-href.jpg<br />
| imagecaption = Phosh running on the ST-Ericsson U8500 HREF (Hardware Reference Design)<br />
| manufacturer = ST-Ericsson<br />
| arch = armv7<br />
| cpu = 2x 1 GHz ARM Cortex-A9<br />
| gpu = ARM Mali-400 MP<br />
| year = 2011<br />
| process = 40<br />
| mainline = yes<br />
| status_cpu = Y<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = Y<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio =<br />
| status_video =<br />
| status_thermal = Y<br />
| status_wifi = -<br />
| status_bluetooth = -<br />
| status_modem =<br />
| status_gps = -<br />
| status_camera =<br />
}}<br />
<br />
== Devices with this chipset ==<br />
<br />
This chipset is used similarly in the following devices:<br />
<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='ST-Ericsson NovaThor U8500' OR Devices.chipset='[[ST-Ericsson NovaThor U8500]]' OR Devices.chipset='NovaThor U8500'<br />
|more results text=<br />
}}<br />
<br />
Other devices using this chipset but not yet ported to postmarketOS (remove once they are ported):<br />
<br />
* Samsung have released a number of phones on the platform:<br />
** Samsung GT-I9060 codename Godin is mentioned in the Codina kernel drop but appears to never have been produced, instead another device has the model numer GT-I9060.<br />
** Samsung Galaxy Beam GT-I8530 codename Gavini ({{wikipedia|Samsung_Galaxy_Beam_i8530|wikipedia}}, [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-gavini.dts upstream devicetree])<br />
** Samsung Galaxy Exhibit T599 (seems to be a variant of GT-I8160/Codina according to the code dumps, "Codina T-mobile" is mentioned)<br />
** Samsung Galaxy Amp SGH-I407 codename Kyle ([https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-kyle.dts upstream devicetree])<br />
** Samsung Galaxy 070 YP-GI2 codename Hendrix seems to have been intended as a NovaThor U8500 device but ended up using a Marvell chip. This is not confirmed.<br />
** Sources also mentions, at one point, a product called "Venus" but no other information exists.<br />
* Sony refers to the U8500 platform as "RioGrande" and there is one kernel for all the Sony devices: [https://github.com/XperiaSTE/android_kernel_sony_u8500 RioGrande kernel source code]<br />
** Sony Xperia Go (sony-lotus) ({{wikipedia|Sony_Xperia_Go|wikipedia}})<br />
** Sony Xperia Sola (sony-pepper) ({{wikipedia|Sony_Xperia_sola|wikipedia}})<br />
* Motorola XT760<br />
* HTC Desire 400 dual SIM<br />
* HTC One SU, ST & SC<br />
* HTC Sensation Z710t<br />
<br />
== Charging ==<br />
<br />
[[File:samsung-universal-charger.jpg|thumb|right|Samsung universal charger of a type that can charge the Li-Ion batteries for all U8500 mobile phones.]]<br />
The U8500 has a companion power management IC (PMIC, also known as analog baseband, AB) ASIC called AB8500/AB8505 that takes care of the charging. In difference from many other charging ICs this chip is not autonoumous and will not charge the phone without the right software to instruct it, respond to interrupts etc. So in short: the phone will not charge unless the kernel has started and provides the right driver for the charger portions of the AB8500.<br />
<br />
The mainline kernel for the U8500 does not as of now (2021-03-20) yet support charging. To work with these phones an external battery charger is recommended, or you have to regularly revert to the original firmware just to charge, and if your battery depletes completely before you do that you have a problem.<br />
<br />
linusw [https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/log/?h=ux500-href-charging-v5.16-rc1 is currently working] (2021-12-23) on mainlining a battery driver for this chipset, as he stated [https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2779#note_794276875 here]. <br />
<br />
[https://www.wish.com/product/58a9a5a13661365289c8bf9b?share=web This type of charger at Wish] can charge all of these batteries. It is a noname product simply named "Multi-connector USB Battery charger" that originates in China and often found in webstores such as Aliexpress or Wish. The charger comes with a US plug, so you may additionally need a US-to-european power converter to use it.<br />
<br />
== Audio ==<br />
As stated [https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2779#note_794276875 here], getting Audio work requires more work. linusw made some [https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson.git/log/?h=ux500-audio-rewrite not yet working experiments].<br />
<br />
== USB-to-serial Cable for Samsung NovaThor U8500 devices ==<br />
<br />
The Samsung U8500 models use a modified microUSB cable for [[serial debugging]]. As per the [[Serial debugging:Cable schematics|cable schematics page]] the [[Micro-USB Interface Controller]] the required resistance used on all Samsung U8500 models is 619KΩ to GND.<br />
<br />
== Flash and SDcard Layout on Samsung NovaThor U8500 Devices ==<br />
<br />
When working with these devices, we install U-Boot, the kernel (<code>zImage</code>) and a small initial ramdisk (<code>initrd</code>) in the internal flash of the phone. The installation is done in three steps:<br />
<br />
# U-Boot is installed on the Samsung U8500 devices using the Samsung open source flashing tool '''Heimdall'''. This is the open source reimplementation of Samsungs ''Odin'' tool. This has to be done manually ''before'' you can use <code>pmbootstrap</code>.<br />
# The kernel and inital ramdisk is then installed using U-Boot. After installing U-Boot, any time we want to reflash the phone internal eMMC kernel image and initial ramdisk, we do this using U-Boot's ''fastboot'' implementation, and on the host side we use the Android '''fastboot''' command-line tool to do the reflashing of new kernels. <code>pmbootstrap flash</code> will hide these details, but it's good to know.<br />
# The root filesystem for PostmarketOS will be stored on the external SDcard, so you will need to set up an SDcard using <code>pmbootstrap install --sdcard=/dev/nnnn</code>.<br />
<br />
== U-Boot on Samsung NovaThor U8500 Devices ==<br />
<br />
There is a port of (mainline) U-Boot for U8500 currently maintained at: https://github.com/stericsson-mainline/u-boot<br />
<br />
It contains a board called <code>stemmy</code>, which is intended for all Samsung devices using U8500 (see above). It provides a simple Android fastboot interface as replacement for Samsung's proprietary flashing procedure. As a device tree compatible bootloader, it can be also used to boot mainline without any hacks in the Linux kernel.<br />
<br />
{{note|'''Note:''' In this case, U-Boot does '''not''' replace the Samsung bootloader. Instead, it is packaged into an Android boot image (if necessary), and flashed to the Android boot partition replacing the Linux kernel. The kernel will be loaded from an offset into the boot partition.}}<br />
<br />
=== Installation ===<br />
<br />
Heimdall [https://github.com/Benjamin-Dobell/Heimdall can be found here] but is packaged into most major Linux distributions such as Debian, Ubuntu and Fedora.<br />
<br />
Pre-built U-boot images are available from: https://github.com/novathor-mainline/u-boot/releases. Alternatively, you can build it from source. See [[#Building]] below.<br />
<br />
Choose the Android boot image (<code>u-boot.img</code>) or the raw binary (<code>u-boot.bin</code>), depending on your device. Most newer devices (e.g. <code>samsung-golden</code> and <code>samsung-skomer</code>) use the Android boot image format, but some older (e.g. <code>samsung-janice</code>) use the raw binary.<br />
<br />
{| class="wikitable"<br />
|+ U-boot binary format per phone<br />
|-<br />
! Product name !! Model !! Codename !! U-Boot !! Notes<br />
|-<br />
| Galaxy S Advance || GT-I9070 || Janice || <code>u-boot.bin</code> ||<br />
|-<br />
| Galaxy Beam || GT-I8530 || Gavini || <code>u-boot.bin</code> || Needs U-Boot 2021.01<br />
|-<br />
| Galaxy Ace 2 || GT-I8160 || Codina || <code>u-boot.bin</code> ||<br />
|-<br />
| Galaxy Exhibit || SGH-T599 || Codina TMO || <code>u-boot.bin</code> ||<br />
|-<br />
| Galaxy S III mini || GT-I8190N || Golden || <code>u-boot.img</code> ||<br />
|-<br />
| Galaxy Xcover 2 || GT-S7710 || Skomer || <code>u-boot.img</code> ||<br />
|-<br />
| Galaxy Amp || SGH-I407 || Kyle || <code>u-boot.img</code> ||<br />
|}<br />
<br />
To get into "custom OS install" hold volume down and home key down and press power on. The phone will vibrate and issue a warning ("A custom OS can cause critical problems...") if you are OK with this risk, press volume up to continue. When the phone shows the Android robot and says '''Downloading...''' you can use Heimdall to download U-Boot.<br />
<br />
Install it normally to the boot partition replacing the default Kernel (notice capital K on Kernel):<br />
<br />
heimdall flash --Kernel u-boot.[bin|img]<br />
<br />
If this doesn't work, especially if you have messages in the console such as "Android recovery image size=322449, ramdisk size=0" then the phone is not booting from the <tt>Kernel</tt> partition but from <tt>Kernel2</tt> so try this instead:<br />
<br />
heimdall flash --Kernel2 u-boot.[bin|img]<br />
<br />
=== Usage ===<br />
U-Boot will try to boot an Android boot image from the <code>boot</code> partition by default. Pressing one of the volume keys during boot allows to change that behavior:<br />
* <code>Volume Down</code>: Enter Fastboot mode<br />
* <code>Volume Up</code>: Boot into recovery (<code>recovery</code> partition)<br />
<br />
{{note|'''Note:''' Since the <code>boot</code> partition is already used for U-Boot itself, U-Boot reads the Android boot image with 1 MB offset from the <code>boot</code> partition. This offset is applied automatically when using <code>fastboot flash boot boot.img</code>.}}<br />
<br />
In Fastboot mode, kernels can be directly booted from RAM using <code>fastboot boot ...</code>. Alternatively, partitions can be flashed using <code>fastboot flash <partition> ...</code>.<br />
<br />
U-Boot itself can be also flashed from U-Boot using <code>fastboot flash u-boot u-boot.img</code> (in this case, it will not apply the offset for the <code>boot</code> partition).<br />
<br />
=== Building ===<br />
'''Requirements:''' ARM cross compiler (e.g. <code>arm-none-eabi-gcc</code>)<br />
<br />
export CROSS_COMPILE=arm-none-eabi-<br />
make stemmy_defconfig<br />
make<br />
<br />
If your device uses Android boot images, package it into an Android boot image:<br />
mkbootimg --kernel u-boot.bin --base=0x00000000 --kernel_offset=0x00100000 --ramdisk_offset=0x02000000 --tags_offset=0x00000100 --output=u-boot.img<br />
<br />
== Kernel Hacking on NovaThor U8500 ==<br />
<br />
These sections detail some tricks needed when working on kernel development.<br />
<br />
Some details can be found at the external page for [[https://dflund.se/~triad/krad/ux500/ Ux500 mainline work]].<br />
<br />
=== Assembling a Custom boot.img ===<br />
<br />
When used with PostmarketOS the <code>boot.img</code> that you flash into the phone should come out of the [[Installing pmbootstrap|pmbootstrap]] utility, but if you for some reason want to assemble the <code>boot.img</code> using some prefabricated kernel, ramdisk and device tree, the process is like this this:<br />
<br />
mkbootimg --kernel zImage --ramdisk initrd --second foo.dtb --base=0x00000000 --kernel_offset=0x00008000 --ramdisk_offset=0x02000000 --second_offset=0x00f00000 --tags_offset=0x00000100 --output=boot.img<br />
<br />
Or using <code>abootimg</code>:<br />
<br />
abootimg --create boot.img -k zImage -r initrd -s foo.dtb -c "pagesize=0x800" -c "kerneladdr=0x8000" -c "ramdiskaddr=0x02000000" -c "secondaddr=0x00f00000" -c "tagsaddr=0x100"<br />
<br />
Notice how this puts the device tree binary <code>foo.dtb</code> into the "second bootloader firmware".<br />
<br />
If you are booting PostmarkeOS with a custom kernel, the <code>initrd</code> you pass must better be a PostmarkeOS initramfs. This can be found in a path like <code>.local/var/pmbootstrap/chroot_native/mnt/rootfs_samsung-skomer/boot/initramfs-postmarketos-stericsson</code>. The initrd is used to set up, detect and load the rest of the rootfs from the SDcard volume so it is pretty vital.<br />
<br />
=== Flashing a Custom Kernel ===<br />
<br />
You install a custom kernel into the device by booting into U-Boot as described above, go to '''fastboot''' mode by holding down {{Button|Power}} + {{Button|Volume Down}} or by holding {{Button|Volume Down}} while you insert the serial cable. Then you can flash a new kernel image like this:<br />
<br />
fastboot flash boot boot.img<br />
<br />
After this reboot the phone and your new kernel should start.<br />
<br />
== See also ==<br />
* This chipset has a [{{wikipedia|NovaThor|wikipedia page}}]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=ST-Ericsson_NovaThor_U8500&diff=24449ST-Ericsson NovaThor U85002021-12-27T15:19:44Z<p>Onny: /* Charging */</p>
<hr />
<div>{{Infobox soc<br />
| name = NovaThor U8500<br />
| image = File:Phos-on-st-ericsson-href.jpg<br />
| imagecaption = Phosh running on the ST-Ericsson U8500 HREF (Hardware Reference Design)<br />
| manufacturer = ST-Ericsson<br />
| arch = armv7<br />
| cpu = 2x 1 GHz ARM Cortex-A9<br />
| gpu = ARM Mali-400 MP<br />
| year = 2011<br />
| process = 40<br />
| mainline = yes<br />
| status_cpu = Y<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = Y<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio =<br />
| status_video =<br />
| status_thermal = Y<br />
| status_wifi = -<br />
| status_bluetooth = -<br />
| status_modem =<br />
| status_gps = -<br />
| status_camera =<br />
}}<br />
<br />
== Devices with this chipset ==<br />
<br />
This chipset is used similarly in the following devices:<br />
<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='ST-Ericsson NovaThor U8500' OR Devices.chipset='[[ST-Ericsson NovaThor U8500]]' OR Devices.chipset='NovaThor U8500'<br />
|more results text=<br />
}}<br />
<br />
Other devices using this chipset but not yet ported to postmarketOS (remove once they are ported):<br />
<br />
* Samsung have released a number of phones on the platform:<br />
** Samsung GT-I9060 codename Godin is mentioned in the Codina kernel drop but appears to never have been produced, instead another device has the model numer GT-I9060.<br />
** Samsung Galaxy Beam GT-I8530 codename Gavini ({{wikipedia|Samsung_Galaxy_Beam_i8530|wikipedia}}, [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-gavini.dts upstream devicetree])<br />
** Samsung Galaxy Exhibit T599 (seems to be a variant of GT-I8160/Codina according to the code dumps, "Codina T-mobile" is mentioned)<br />
** Samsung Galaxy Amp SGH-I407 codename Kyle ([https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-kyle.dts upstream devicetree])<br />
** Samsung Galaxy 070 YP-GI2 codename Hendrix seems to have been intended as a NovaThor U8500 device but ended up using a Marvell chip. This is not confirmed.<br />
** Sources also mentions, at one point, a product called "Venus" but no other information exists.<br />
* Sony refers to the U8500 platform as "RioGrande" and there is one kernel for all the Sony devices: [https://github.com/XperiaSTE/android_kernel_sony_u8500 RioGrande kernel source code]<br />
** Sony Xperia Go (sony-lotus) ({{wikipedia|Sony_Xperia_Go|wikipedia}})<br />
** Sony Xperia Sola (sony-pepper) ({{wikipedia|Sony_Xperia_sola|wikipedia}})<br />
* Motorola XT760<br />
* HTC Desire 400 dual SIM<br />
* HTC One SU, ST & SC<br />
* HTC Sensation Z710t<br />
<br />
==Charging==<br />
<br />
[[File:samsung-universal-charger.jpg|thumb|right|Samsung universal charger of a type that can charge the Li-Ion batteries for all U8500 mobile phones.]]<br />
The U8500 has a companion power management IC (PMIC, also known as analog baseband, AB) ASIC called AB8500/AB8505 that takes care of the charging. In difference from many other charging ICs this chip is not autonoumous and will not charge the phone without the right software to instruct it, respond to interrupts etc. So in short: the phone will not charge unless the kernel has started and provides the right driver for the charger portions of the AB8500.<br />
<br />
The mainline kernel for the U8500 does not as of now (2021-03-20) yet support charging. To work with these phones an external battery charger is recommended, or you have to regularly revert to the original firmware just to charge, and if your battery depletes completely before you do that you have a problem.<br />
<br />
linusw [https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/log/?h=ux500-href-charging-v5.16-rc1 is currently working] (2021-12-23) on mainlining a battery driver for this chipset, as he stated [https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2779#note_794276875 here]. <br />
<br />
[https://www.wish.com/product/58a9a5a13661365289c8bf9b?share=web This type of charger at Wish] can charge all of these batteries. It is a noname product simply named "Multi-connector USB Battery charger" that originates in China and often found in webstores such as Aliexpress or Wish. The charger comes with a US plug, so you may additionally need a US-to-european power converter to use it.<br />
<br />
== USB-to-serial Cable for Samsung NovaThor U8500 devices ==<br />
<br />
The Samsung U8500 models use a modified microUSB cable for [[serial debugging]]. As per the [[Serial debugging:Cable schematics|cable schematics page]] the [[Micro-USB Interface Controller]] the required resistance used on all Samsung U8500 models is 619KΩ to GND.<br />
<br />
== Flash and SDcard Layout on Samsung NovaThor U8500 Devices ==<br />
<br />
When working with these devices, we install U-Boot, the kernel (<code>zImage</code>) and a small initial ramdisk (<code>initrd</code>) in the internal flash of the phone. The installation is done in three steps:<br />
<br />
# U-Boot is installed on the Samsung U8500 devices using the Samsung open source flashing tool '''Heimdall'''. This is the open source reimplementation of Samsungs ''Odin'' tool. This has to be done manually ''before'' you can use <code>pmbootstrap</code>.<br />
# The kernel and inital ramdisk is then installed using U-Boot. After installing U-Boot, any time we want to reflash the phone internal eMMC kernel image and initial ramdisk, we do this using U-Boot's ''fastboot'' implementation, and on the host side we use the Android '''fastboot''' command-line tool to do the reflashing of new kernels. <code>pmbootstrap flash</code> will hide these details, but it's good to know.<br />
# The root filesystem for PostmarketOS will be stored on the external SDcard, so you will need to set up an SDcard using <code>pmbootstrap install --sdcard=/dev/nnnn</code>.<br />
<br />
== U-Boot on Samsung NovaThor U8500 Devices ==<br />
<br />
There is a port of (mainline) U-Boot for U8500 currently maintained at: https://github.com/stericsson-mainline/u-boot<br />
<br />
It contains a board called <code>stemmy</code>, which is intended for all Samsung devices using U8500 (see above). It provides a simple Android fastboot interface as replacement for Samsung's proprietary flashing procedure. As a device tree compatible bootloader, it can be also used to boot mainline without any hacks in the Linux kernel.<br />
<br />
{{note|'''Note:''' In this case, U-Boot does '''not''' replace the Samsung bootloader. Instead, it is packaged into an Android boot image (if necessary), and flashed to the Android boot partition replacing the Linux kernel. The kernel will be loaded from an offset into the boot partition.}}<br />
<br />
=== Installation ===<br />
<br />
Heimdall [https://github.com/Benjamin-Dobell/Heimdall can be found here] but is packaged into most major Linux distributions such as Debian, Ubuntu and Fedora.<br />
<br />
Pre-built U-boot images are available from: https://github.com/novathor-mainline/u-boot/releases. Alternatively, you can build it from source. See [[#Building]] below.<br />
<br />
Choose the Android boot image (<code>u-boot.img</code>) or the raw binary (<code>u-boot.bin</code>), depending on your device. Most newer devices (e.g. <code>samsung-golden</code> and <code>samsung-skomer</code>) use the Android boot image format, but some older (e.g. <code>samsung-janice</code>) use the raw binary.<br />
<br />
{| class="wikitable"<br />
|+ U-boot binary format per phone<br />
|-<br />
! Product name !! Model !! Codename !! U-Boot !! Notes<br />
|-<br />
| Galaxy S Advance || GT-I9070 || Janice || <code>u-boot.bin</code> ||<br />
|-<br />
| Galaxy Beam || GT-I8530 || Gavini || <code>u-boot.bin</code> || Needs U-Boot 2021.01<br />
|-<br />
| Galaxy Ace 2 || GT-I8160 || Codina || <code>u-boot.bin</code> ||<br />
|-<br />
| Galaxy Exhibit || SGH-T599 || Codina TMO || <code>u-boot.bin</code> ||<br />
|-<br />
| Galaxy S III mini || GT-I8190N || Golden || <code>u-boot.img</code> ||<br />
|-<br />
| Galaxy Xcover 2 || GT-S7710 || Skomer || <code>u-boot.img</code> ||<br />
|-<br />
| Galaxy Amp || SGH-I407 || Kyle || <code>u-boot.img</code> ||<br />
|}<br />
<br />
To get into "custom OS install" hold volume down and home key down and press power on. The phone will vibrate and issue a warning ("A custom OS can cause critical problems...") if you are OK with this risk, press volume up to continue. When the phone shows the Android robot and says '''Downloading...''' you can use Heimdall to download U-Boot.<br />
<br />
Install it normally to the boot partition replacing the default Kernel (notice capital K on Kernel):<br />
<br />
heimdall flash --Kernel u-boot.[bin|img]<br />
<br />
If this doesn't work, especially if you have messages in the console such as "Android recovery image size=322449, ramdisk size=0" then the phone is not booting from the <tt>Kernel</tt> partition but from <tt>Kernel2</tt> so try this instead:<br />
<br />
heimdall flash --Kernel2 u-boot.[bin|img]<br />
<br />
=== Usage ===<br />
U-Boot will try to boot an Android boot image from the <code>boot</code> partition by default. Pressing one of the volume keys during boot allows to change that behavior:<br />
* <code>Volume Down</code>: Enter Fastboot mode<br />
* <code>Volume Up</code>: Boot into recovery (<code>recovery</code> partition)<br />
<br />
{{note|'''Note:''' Since the <code>boot</code> partition is already used for U-Boot itself, U-Boot reads the Android boot image with 1 MB offset from the <code>boot</code> partition. This offset is applied automatically when using <code>fastboot flash boot boot.img</code>.}}<br />
<br />
In Fastboot mode, kernels can be directly booted from RAM using <code>fastboot boot ...</code>. Alternatively, partitions can be flashed using <code>fastboot flash <partition> ...</code>.<br />
<br />
U-Boot itself can be also flashed from U-Boot using <code>fastboot flash u-boot u-boot.img</code> (in this case, it will not apply the offset for the <code>boot</code> partition).<br />
<br />
=== Building ===<br />
'''Requirements:''' ARM cross compiler (e.g. <code>arm-none-eabi-gcc</code>)<br />
<br />
export CROSS_COMPILE=arm-none-eabi-<br />
make stemmy_defconfig<br />
make<br />
<br />
If your device uses Android boot images, package it into an Android boot image:<br />
mkbootimg --kernel u-boot.bin --base=0x00000000 --kernel_offset=0x00100000 --ramdisk_offset=0x02000000 --tags_offset=0x00000100 --output=u-boot.img<br />
<br />
== Kernel Hacking on NovaThor U8500 ==<br />
<br />
These sections detail some tricks needed when working on kernel development.<br />
<br />
Some details can be found at the external page for [[https://dflund.se/~triad/krad/ux500/ Ux500 mainline work]].<br />
<br />
=== Assembling a Custom boot.img ===<br />
<br />
When used with PostmarketOS the <code>boot.img</code> that you flash into the phone should come out of the [[Installing pmbootstrap|pmbootstrap]] utility, but if you for some reason want to assemble the <code>boot.img</code> using some prefabricated kernel, ramdisk and device tree, the process is like this this:<br />
<br />
mkbootimg --kernel zImage --ramdisk initrd --second foo.dtb --base=0x00000000 --kernel_offset=0x00008000 --ramdisk_offset=0x02000000 --second_offset=0x00f00000 --tags_offset=0x00000100 --output=boot.img<br />
<br />
Or using <code>abootimg</code>:<br />
<br />
abootimg --create boot.img -k zImage -r initrd -s foo.dtb -c "pagesize=0x800" -c "kerneladdr=0x8000" -c "ramdiskaddr=0x02000000" -c "secondaddr=0x00f00000" -c "tagsaddr=0x100"<br />
<br />
Notice how this puts the device tree binary <code>foo.dtb</code> into the "second bootloader firmware".<br />
<br />
If you are booting PostmarkeOS with a custom kernel, the <code>initrd</code> you pass must better be a PostmarkeOS initramfs. This can be found in a path like <code>.local/var/pmbootstrap/chroot_native/mnt/rootfs_samsung-skomer/boot/initramfs-postmarketos-stericsson</code>. The initrd is used to set up, detect and load the rest of the rootfs from the SDcard volume so it is pretty vital.<br />
<br />
=== Flashing a Custom Kernel ===<br />
<br />
You install a custom kernel into the device by booting into U-Boot as described above, go to '''fastboot''' mode by holding down {{Button|Power}} + {{Button|Volume Down}} or by holding {{Button|Volume Down}} while you insert the serial cable. Then you can flash a new kernel image like this:<br />
<br />
fastboot flash boot boot.img<br />
<br />
After this reboot the phone and your new kernel should start.<br />
<br />
== See also ==<br />
* This chipset has a [{{wikipedia|NovaThor|wikipedia page}}]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=ST-Ericsson_NovaThor_U8500&diff=24448ST-Ericsson NovaThor U85002021-12-27T15:17:30Z<p>Onny: /* Charging */ Update on ongoing mainlining work</p>
<hr />
<div>{{Infobox soc<br />
| name = NovaThor U8500<br />
| image = File:Phos-on-st-ericsson-href.jpg<br />
| imagecaption = Phosh running on the ST-Ericsson U8500 HREF (Hardware Reference Design)<br />
| manufacturer = ST-Ericsson<br />
| arch = armv7<br />
| cpu = 2x 1 GHz ARM Cortex-A9<br />
| gpu = ARM Mali-400 MP<br />
| year = 2011<br />
| process = 40<br />
| mainline = yes<br />
| status_cpu = Y<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = Y<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio =<br />
| status_video =<br />
| status_thermal = Y<br />
| status_wifi = -<br />
| status_bluetooth = -<br />
| status_modem =<br />
| status_gps = -<br />
| status_camera =<br />
}}<br />
<br />
== Devices with this chipset ==<br />
<br />
This chipset is used similarly in the following devices:<br />
<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='ST-Ericsson NovaThor U8500' OR Devices.chipset='[[ST-Ericsson NovaThor U8500]]' OR Devices.chipset='NovaThor U8500'<br />
|more results text=<br />
}}<br />
<br />
Other devices using this chipset but not yet ported to postmarketOS (remove once they are ported):<br />
<br />
* Samsung have released a number of phones on the platform:<br />
** Samsung GT-I9060 codename Godin is mentioned in the Codina kernel drop but appears to never have been produced, instead another device has the model numer GT-I9060.<br />
** Samsung Galaxy Beam GT-I8530 codename Gavini ({{wikipedia|Samsung_Galaxy_Beam_i8530|wikipedia}}, [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-gavini.dts upstream devicetree])<br />
** Samsung Galaxy Exhibit T599 (seems to be a variant of GT-I8160/Codina according to the code dumps, "Codina T-mobile" is mentioned)<br />
** Samsung Galaxy Amp SGH-I407 codename Kyle ([https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-kyle.dts upstream devicetree])<br />
** Samsung Galaxy 070 YP-GI2 codename Hendrix seems to have been intended as a NovaThor U8500 device but ended up using a Marvell chip. This is not confirmed.<br />
** Sources also mentions, at one point, a product called "Venus" but no other information exists.<br />
* Sony refers to the U8500 platform as "RioGrande" and there is one kernel for all the Sony devices: [https://github.com/XperiaSTE/android_kernel_sony_u8500 RioGrande kernel source code]<br />
** Sony Xperia Go (sony-lotus) ({{wikipedia|Sony_Xperia_Go|wikipedia}})<br />
** Sony Xperia Sola (sony-pepper) ({{wikipedia|Sony_Xperia_sola|wikipedia}})<br />
* Motorola XT760<br />
* HTC Desire 400 dual SIM<br />
* HTC One SU, ST & SC<br />
* HTC Sensation Z710t<br />
<br />
==Charging==<br />
<br />
[[File:samsung-universal-charger.jpg|thumb|right|Samsung universal charger of a type that can charge the Li-Ion batteries for all U8500 mobile phones.]]<br />
The U8500 has a companion power management IC (PMIC, also known as analog baseband, AB) ASIC called AB8500/AB8505 that takes care of the charging. In difference from many other charging ICs this chip is not autonoumous and will not charge the phone without the right software to instruct it, respond to interrupts etc. So in short: the phone will not charge unless the kernel has started and provides the right driver for the charger portions of the AB8500.<br />
<br />
The mainline kernel for the U8500 does not as of now (2021-03-20) yet support charging. To work with these phones an external battery charger is recommended, or you have to regularly revert to the original firmware just to charge, and if your battery depletes completely before you do that you have a problem.<br />
<br />
linusw [https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/log/?h=ux500-href-charging-v5.16-rc1 is currently working] (2021-12-23) on mainlining a battery driver for this chipset. <br />
<br />
[https://www.wish.com/product/58a9a5a13661365289c8bf9b?share=web This type of charger at Wish] can charge all of these batteries. It is a noname product simply named "Multi-connector USB Battery charger" that originates in China and often found in webstores such as Aliexpress or Wish. The charger comes with a US plug, so you may additionally need a US-to-european power converter to use it.<br />
<br />
== USB-to-serial Cable for Samsung NovaThor U8500 devices ==<br />
<br />
The Samsung U8500 models use a modified microUSB cable for [[serial debugging]]. As per the [[Serial debugging:Cable schematics|cable schematics page]] the [[Micro-USB Interface Controller]] the required resistance used on all Samsung U8500 models is 619KΩ to GND.<br />
<br />
== Flash and SDcard Layout on Samsung NovaThor U8500 Devices ==<br />
<br />
When working with these devices, we install U-Boot, the kernel (<code>zImage</code>) and a small initial ramdisk (<code>initrd</code>) in the internal flash of the phone. The installation is done in three steps:<br />
<br />
# U-Boot is installed on the Samsung U8500 devices using the Samsung open source flashing tool '''Heimdall'''. This is the open source reimplementation of Samsungs ''Odin'' tool. This has to be done manually ''before'' you can use <code>pmbootstrap</code>.<br />
# The kernel and inital ramdisk is then installed using U-Boot. After installing U-Boot, any time we want to reflash the phone internal eMMC kernel image and initial ramdisk, we do this using U-Boot's ''fastboot'' implementation, and on the host side we use the Android '''fastboot''' command-line tool to do the reflashing of new kernels. <code>pmbootstrap flash</code> will hide these details, but it's good to know.<br />
# The root filesystem for PostmarketOS will be stored on the external SDcard, so you will need to set up an SDcard using <code>pmbootstrap install --sdcard=/dev/nnnn</code>.<br />
<br />
== U-Boot on Samsung NovaThor U8500 Devices ==<br />
<br />
There is a port of (mainline) U-Boot for U8500 currently maintained at: https://github.com/stericsson-mainline/u-boot<br />
<br />
It contains a board called <code>stemmy</code>, which is intended for all Samsung devices using U8500 (see above). It provides a simple Android fastboot interface as replacement for Samsung's proprietary flashing procedure. As a device tree compatible bootloader, it can be also used to boot mainline without any hacks in the Linux kernel.<br />
<br />
{{note|'''Note:''' In this case, U-Boot does '''not''' replace the Samsung bootloader. Instead, it is packaged into an Android boot image (if necessary), and flashed to the Android boot partition replacing the Linux kernel. The kernel will be loaded from an offset into the boot partition.}}<br />
<br />
=== Installation ===<br />
<br />
Heimdall [https://github.com/Benjamin-Dobell/Heimdall can be found here] but is packaged into most major Linux distributions such as Debian, Ubuntu and Fedora.<br />
<br />
Pre-built U-boot images are available from: https://github.com/novathor-mainline/u-boot/releases. Alternatively, you can build it from source. See [[#Building]] below.<br />
<br />
Choose the Android boot image (<code>u-boot.img</code>) or the raw binary (<code>u-boot.bin</code>), depending on your device. Most newer devices (e.g. <code>samsung-golden</code> and <code>samsung-skomer</code>) use the Android boot image format, but some older (e.g. <code>samsung-janice</code>) use the raw binary.<br />
<br />
{| class="wikitable"<br />
|+ U-boot binary format per phone<br />
|-<br />
! Product name !! Model !! Codename !! U-Boot !! Notes<br />
|-<br />
| Galaxy S Advance || GT-I9070 || Janice || <code>u-boot.bin</code> ||<br />
|-<br />
| Galaxy Beam || GT-I8530 || Gavini || <code>u-boot.bin</code> || Needs U-Boot 2021.01<br />
|-<br />
| Galaxy Ace 2 || GT-I8160 || Codina || <code>u-boot.bin</code> ||<br />
|-<br />
| Galaxy Exhibit || SGH-T599 || Codina TMO || <code>u-boot.bin</code> ||<br />
|-<br />
| Galaxy S III mini || GT-I8190N || Golden || <code>u-boot.img</code> ||<br />
|-<br />
| Galaxy Xcover 2 || GT-S7710 || Skomer || <code>u-boot.img</code> ||<br />
|-<br />
| Galaxy Amp || SGH-I407 || Kyle || <code>u-boot.img</code> ||<br />
|}<br />
<br />
To get into "custom OS install" hold volume down and home key down and press power on. The phone will vibrate and issue a warning ("A custom OS can cause critical problems...") if you are OK with this risk, press volume up to continue. When the phone shows the Android robot and says '''Downloading...''' you can use Heimdall to download U-Boot.<br />
<br />
Install it normally to the boot partition replacing the default Kernel (notice capital K on Kernel):<br />
<br />
heimdall flash --Kernel u-boot.[bin|img]<br />
<br />
If this doesn't work, especially if you have messages in the console such as "Android recovery image size=322449, ramdisk size=0" then the phone is not booting from the <tt>Kernel</tt> partition but from <tt>Kernel2</tt> so try this instead:<br />
<br />
heimdall flash --Kernel2 u-boot.[bin|img]<br />
<br />
=== Usage ===<br />
U-Boot will try to boot an Android boot image from the <code>boot</code> partition by default. Pressing one of the volume keys during boot allows to change that behavior:<br />
* <code>Volume Down</code>: Enter Fastboot mode<br />
* <code>Volume Up</code>: Boot into recovery (<code>recovery</code> partition)<br />
<br />
{{note|'''Note:''' Since the <code>boot</code> partition is already used for U-Boot itself, U-Boot reads the Android boot image with 1 MB offset from the <code>boot</code> partition. This offset is applied automatically when using <code>fastboot flash boot boot.img</code>.}}<br />
<br />
In Fastboot mode, kernels can be directly booted from RAM using <code>fastboot boot ...</code>. Alternatively, partitions can be flashed using <code>fastboot flash <partition> ...</code>.<br />
<br />
U-Boot itself can be also flashed from U-Boot using <code>fastboot flash u-boot u-boot.img</code> (in this case, it will not apply the offset for the <code>boot</code> partition).<br />
<br />
=== Building ===<br />
'''Requirements:''' ARM cross compiler (e.g. <code>arm-none-eabi-gcc</code>)<br />
<br />
export CROSS_COMPILE=arm-none-eabi-<br />
make stemmy_defconfig<br />
make<br />
<br />
If your device uses Android boot images, package it into an Android boot image:<br />
mkbootimg --kernel u-boot.bin --base=0x00000000 --kernel_offset=0x00100000 --ramdisk_offset=0x02000000 --tags_offset=0x00000100 --output=u-boot.img<br />
<br />
== Kernel Hacking on NovaThor U8500 ==<br />
<br />
These sections detail some tricks needed when working on kernel development.<br />
<br />
Some details can be found at the external page for [[https://dflund.se/~triad/krad/ux500/ Ux500 mainline work]].<br />
<br />
=== Assembling a Custom boot.img ===<br />
<br />
When used with PostmarketOS the <code>boot.img</code> that you flash into the phone should come out of the [[Installing pmbootstrap|pmbootstrap]] utility, but if you for some reason want to assemble the <code>boot.img</code> using some prefabricated kernel, ramdisk and device tree, the process is like this this:<br />
<br />
mkbootimg --kernel zImage --ramdisk initrd --second foo.dtb --base=0x00000000 --kernel_offset=0x00008000 --ramdisk_offset=0x02000000 --second_offset=0x00f00000 --tags_offset=0x00000100 --output=boot.img<br />
<br />
Or using <code>abootimg</code>:<br />
<br />
abootimg --create boot.img -k zImage -r initrd -s foo.dtb -c "pagesize=0x800" -c "kerneladdr=0x8000" -c "ramdiskaddr=0x02000000" -c "secondaddr=0x00f00000" -c "tagsaddr=0x100"<br />
<br />
Notice how this puts the device tree binary <code>foo.dtb</code> into the "second bootloader firmware".<br />
<br />
If you are booting PostmarkeOS with a custom kernel, the <code>initrd</code> you pass must better be a PostmarkeOS initramfs. This can be found in a path like <code>.local/var/pmbootstrap/chroot_native/mnt/rootfs_samsung-skomer/boot/initramfs-postmarketos-stericsson</code>. The initrd is used to set up, detect and load the rest of the rootfs from the SDcard volume so it is pretty vital.<br />
<br />
=== Flashing a Custom Kernel ===<br />
<br />
You install a custom kernel into the device by booting into U-Boot as described above, go to '''fastboot''' mode by holding down {{Button|Power}} + {{Button|Volume Down}} or by holding {{Button|Volume Down}} while you insert the serial cable. Then you can flash a new kernel image like this:<br />
<br />
fastboot flash boot boot.img<br />
<br />
After this reboot the phone and your new kernel should start.<br />
<br />
== See also ==<br />
* This chipset has a [{{wikipedia|NovaThor|wikipedia page}}]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_S_Advance_(samsung-i9070)&diff=24342Samsung Galaxy S Advance (samsung-i9070)2021-12-21T10:58:37Z<p>Onny: Onny moved page Samsung Galaxy S Advance (samsung-i9070) to Samsung Galaxy S Advance (samsung-janice): Change device codename</p>
<hr />
<div>#REDIRECT [[Samsung Galaxy S Advance (samsung-janice)]]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_S_Advance_(samsung-janice)&diff=24341Samsung Galaxy S Advance (samsung-janice)2021-12-21T10:58:36Z<p>Onny: Onny moved page Samsung Galaxy S Advance (samsung-i9070) to Samsung Galaxy S Advance (samsung-janice): Change device codename</p>
<hr />
<div>{{note| This device is still running on armhf, although the processor supports armv7. If you own it, change it and test it [https://wiki.postmarketos.org/wiki/Tips_and_tricks#Update_the_architecture_of_your_device that] way.}}<br />
{{note| The device is already supported in the mainline kernel: chipset [[ST-Ericsson NovaThor U8500]], and a devicetree exists for it exists upstream}}<br />
{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy S Advance<br />
| codename = samsung-janice<br />
| image = File:Samsung Galaxy S Advance weston demo.jpg<br />
| imagecaption = Samsung Galaxy S Advance running Weston demos<br />
| releaseyear = 2012<br />
| originalsoftware = Android 2.3.6 on Linux 2.6.35<br />
| chipset = [[ST-Ericsson NovaThor U8500]]<br />
| cpu = Dual-core 1.0 GHz Cortex-A9<br />
| gpu = Mali-400<br />
| storage = 8/16 GB<br />
| display = 480x800 AMOLED<br />
| memory = 768 MB<br />
| architecture = armv7<br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = Y<br />
| status_mainline =<br />
| status_battery = Y<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| booting = yes<br />
}}<br />
<br />
=== Contributors ===<br />
* drebrez<br />
<br />
=== What works ===<br />
* Compiling the kernel<br />
* Flashing with heimdall (see below)<br />
* Booting initramfs<br />
* Network through USB<br />
* SSH<br />
* Weston with touchscreen<br />
* Wifi (Details below and in [https://github.com/postmarketOS/pmbootstrap/pull/138 #138])<br />
<br />
=== Boot process ===<br />
<br />
Unlike most other Android devices, the samsung-janice can not boot a <code>boot.img</code> (which consists of <code>kernel</code> + <code>initramfs</code>). Instead, the <code>boot.img</code> file is just a regular kernel.<br />
<br />
However, it is possible to directly integrate a <code>initramfs</code> into the kernel at kernel compile time (this is totally different from the boot.img approach, if this is unclear to you, please ask in the channel), and this is what the Android ROMs do on the samsung-janice. While it is not a big deal in the Android compilation process, it is a problem for postmarketOS, because we want to be able to build the <code>initramfs</code> independently from the kernel.<br />
<br />
The following workaround is currently implemented:<br />
<br />
* We flash the ''real'' initramfs to the kernel2 partition (this partition usually contains a backup of the stock kernel)<br />
* The initramfs [https://github.com/postmarketOS/pmbootstrap/blob/master/aports/device/linux-samsung-janice/init init script built into the kernel] checks if the kernel2 partition contains a compressed initramfs, and if it does, it extracts it and passes execution to the real initramfs init script.<br />
* This idea is based on something called [https://forum.xda-developers.com/galaxy-s2/orig-development/isorec-isolated-recovery-galaxy-s2-t3291176 &quot;isorec&quot;].<br />
<br />
=== Device partitions ===<br />
<br />
The following partitions are used for the postmarketOS:<br />
<br />
* Kernel =&gt; /dev/mmcblk0p15 (16MB)<br />
* Kernel2 =&gt; /dev/mmcblk0p17 (16MB)<br />
<br />
Possible partitions for the postmarketOS system image:<br />
<br />
* SYSTEM =&gt; /dev/mmcblk0p3 (600MB)<br />
* DATAFS =&gt; /dev/mmcblk0p5 (2GB)<br />
<br />
=== Flashing with heimdall ===<br />
<br />
In order to flash the kernel and the initramfs using <code>heimdall</code> you simply have to call <code>pmbootstrap flasher flash_kernel</code><br />
<br />
This will write in the partitions specified in the [https://github.com/postmarketOS/pmbootstrap/blob/master/aports/device/device-samsung-janice/deviceinfo#L18-L19 deviceinfo] file.<br />
<br />
At the moment is not possible to write the system image file (samsung-janice.img) using heimdall. A temporary solution is to use the TWRP shell to perform a command like this:<br /><br />
<code>dd if=samsung-janice.img of=/dev/mmcblk0p5</code><br />
<br />
=== How drebrez made wifi work ===<br />
<br />
* build the kernel module (dhd.ko for samsung-janice)<br />
* get the vendor files for the [https://github.com/Epirex/android_vendor_samsung_u8500 Samsung U8500 devices]<br />
* load the module using insmod with the firmware_path and nvram_path parameters<br />
<br />
<code>insmod dhd.ko firmware_path=/etc/wifi/bcmdhd_sta.bin nvram_path=/etc/wifi/nvram_net.txt</code><br />
<br />
* set a mac address<br />
<br />
<code>ifconfig wlan0 hw ether 01:02:03:04:05:06</code><br />
<br />
* bring the interface up<br />
<br />
<code>ifconfig wlan0 up</code><br />
<br />
* scan to find out what WiFi networks are detected<br />
<br />
<code>iw dev wlan0 scan</code><br />
<br />
* connect to WPA/WPA2 WiFi network<br />
<br />
<code>wpa_passphrase wifi_ssid wifi_key &gt;&gt; /etc/wpa_supplicant.conf</code><br />
<br />
* start wpa_supplicant to connect to the network<br />
<br />
<code>wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf</code><br />
<br />
* verify that you are indeed connected to the SSID<br />
<br />
<code>iw wlan0 link</code><br />
<br />
* start udhcpc to get an ip address<br />
<br />
<code>udhcpc -b -i wlan0</code><br />
<br />
=== Links ===<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-janice Device package]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-samsung-janice Kernel package]<br />
* [https://github.com/Epirex/Samsung_STE_Kernel/tree/marshmallow Epirex's Kernel]<br />
* [https://github.com/Epirex/android_vendor_samsung_u8500 Epirex's vendor files]<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-janice.dts Upstream devicetree] in Torvalds' kernel tree<br />
<br />
=== Photos ===<br />
* [https://i.imgur.com/MuVLljM.jpg Initramfs asking for the password via telnet]<br />
* [https://i.imgur.com/maobRbj.jpg postmarketOS demo menu (XWayland)]<br />
* [https://i.imgur.com/Nop8uu4.jpg Weston-terminal running in fullscreen mode]<br />
<br />
=== Videos ===<br />
* [http://i.imgur.com/9c66GAs.mp4 Weston with various programs running]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_S_Advance_(samsung-janice)&diff=24340Samsung Galaxy S Advance (samsung-janice)2021-12-21T10:58:22Z<p>Onny: Change code name to samsung-janice</p>
<hr />
<div>{{note| This device is still running on armhf, although the processor supports armv7. If you own it, change it and test it [https://wiki.postmarketos.org/wiki/Tips_and_tricks#Update_the_architecture_of_your_device that] way.}}<br />
{{note| The device is already supported in the mainline kernel: chipset [[ST-Ericsson NovaThor U8500]], and a devicetree exists for it exists upstream}}<br />
{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy S Advance<br />
| codename = samsung-janice<br />
| image = File:Samsung Galaxy S Advance weston demo.jpg<br />
| imagecaption = Samsung Galaxy S Advance running Weston demos<br />
| releaseyear = 2012<br />
| originalsoftware = Android 2.3.6 on Linux 2.6.35<br />
| chipset = [[ST-Ericsson NovaThor U8500]]<br />
| cpu = Dual-core 1.0 GHz Cortex-A9<br />
| gpu = Mali-400<br />
| storage = 8/16 GB<br />
| display = 480x800 AMOLED<br />
| memory = 768 MB<br />
| architecture = armv7<br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = Y<br />
| status_mainline =<br />
| status_battery = Y<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| booting = yes<br />
}}<br />
<br />
=== Contributors ===<br />
* drebrez<br />
<br />
=== What works ===<br />
* Compiling the kernel<br />
* Flashing with heimdall (see below)<br />
* Booting initramfs<br />
* Network through USB<br />
* SSH<br />
* Weston with touchscreen<br />
* Wifi (Details below and in [https://github.com/postmarketOS/pmbootstrap/pull/138 #138])<br />
<br />
=== Boot process ===<br />
<br />
Unlike most other Android devices, the samsung-janice can not boot a <code>boot.img</code> (which consists of <code>kernel</code> + <code>initramfs</code>). Instead, the <code>boot.img</code> file is just a regular kernel.<br />
<br />
However, it is possible to directly integrate a <code>initramfs</code> into the kernel at kernel compile time (this is totally different from the boot.img approach, if this is unclear to you, please ask in the channel), and this is what the Android ROMs do on the samsung-janice. While it is not a big deal in the Android compilation process, it is a problem for postmarketOS, because we want to be able to build the <code>initramfs</code> independently from the kernel.<br />
<br />
The following workaround is currently implemented:<br />
<br />
* We flash the ''real'' initramfs to the kernel2 partition (this partition usually contains a backup of the stock kernel)<br />
* The initramfs [https://github.com/postmarketOS/pmbootstrap/blob/master/aports/device/linux-samsung-janice/init init script built into the kernel] checks if the kernel2 partition contains a compressed initramfs, and if it does, it extracts it and passes execution to the real initramfs init script.<br />
* This idea is based on something called [https://forum.xda-developers.com/galaxy-s2/orig-development/isorec-isolated-recovery-galaxy-s2-t3291176 &quot;isorec&quot;].<br />
<br />
=== Device partitions ===<br />
<br />
The following partitions are used for the postmarketOS:<br />
<br />
* Kernel =&gt; /dev/mmcblk0p15 (16MB)<br />
* Kernel2 =&gt; /dev/mmcblk0p17 (16MB)<br />
<br />
Possible partitions for the postmarketOS system image:<br />
<br />
* SYSTEM =&gt; /dev/mmcblk0p3 (600MB)<br />
* DATAFS =&gt; /dev/mmcblk0p5 (2GB)<br />
<br />
=== Flashing with heimdall ===<br />
<br />
In order to flash the kernel and the initramfs using <code>heimdall</code> you simply have to call <code>pmbootstrap flasher flash_kernel</code><br />
<br />
This will write in the partitions specified in the [https://github.com/postmarketOS/pmbootstrap/blob/master/aports/device/device-samsung-janice/deviceinfo#L18-L19 deviceinfo] file.<br />
<br />
At the moment is not possible to write the system image file (samsung-janice.img) using heimdall. A temporary solution is to use the TWRP shell to perform a command like this:<br /><br />
<code>dd if=samsung-janice.img of=/dev/mmcblk0p5</code><br />
<br />
=== How drebrez made wifi work ===<br />
<br />
* build the kernel module (dhd.ko for samsung-janice)<br />
* get the vendor files for the [https://github.com/Epirex/android_vendor_samsung_u8500 Samsung U8500 devices]<br />
* load the module using insmod with the firmware_path and nvram_path parameters<br />
<br />
<code>insmod dhd.ko firmware_path=/etc/wifi/bcmdhd_sta.bin nvram_path=/etc/wifi/nvram_net.txt</code><br />
<br />
* set a mac address<br />
<br />
<code>ifconfig wlan0 hw ether 01:02:03:04:05:06</code><br />
<br />
* bring the interface up<br />
<br />
<code>ifconfig wlan0 up</code><br />
<br />
* scan to find out what WiFi networks are detected<br />
<br />
<code>iw dev wlan0 scan</code><br />
<br />
* connect to WPA/WPA2 WiFi network<br />
<br />
<code>wpa_passphrase wifi_ssid wifi_key &gt;&gt; /etc/wpa_supplicant.conf</code><br />
<br />
* start wpa_supplicant to connect to the network<br />
<br />
<code>wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf</code><br />
<br />
* verify that you are indeed connected to the SSID<br />
<br />
<code>iw wlan0 link</code><br />
<br />
* start udhcpc to get an ip address<br />
<br />
<code>udhcpc -b -i wlan0</code><br />
<br />
=== Links ===<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-janice Device package]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-samsung-janice Kernel package]<br />
* [https://github.com/Epirex/Samsung_STE_Kernel/tree/marshmallow Epirex's Kernel]<br />
* [https://github.com/Epirex/android_vendor_samsung_u8500 Epirex's vendor files]<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ste-ux500-samsung-janice.dts Upstream devicetree] in Torvalds' kernel tree<br />
<br />
=== Photos ===<br />
* [https://i.imgur.com/MuVLljM.jpg Initramfs asking for the password via telnet]<br />
* [https://i.imgur.com/maobRbj.jpg postmarketOS demo menu (XWayland)]<br />
* [https://i.imgur.com/Nop8uu4.jpg Weston-terminal running in fullscreen mode]<br />
<br />
=== Videos ===<br />
* [http://i.imgur.com/9c66GAs.mp4 Weston with various programs running]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_S5_Neo_(samsung-s5neolte)&diff=24258Samsung Galaxy S5 Neo (samsung-s5neolte)2021-12-16T18:29:03Z<p>Onny: Initial page for new model</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy S5 Neo<br />
| codename = samsung-s5neolte<br />
| image = File:<br />
| imagecaption = Samsung Galaxy S5 Neo<br />
| releaseyear = 2015<br />
| releasemonth = August<br />
| originalsoftware = Android 7.0 (Nougat)<br />
| chipset = Exynos 7580 Octa<br />
| cpu = 1.6 GHz octa-core Cortex-A53 <br />
| gpu = Mali-T720MP2<br />
| storage = 16 GB<br />
| display = 1080 x 1920 Super AMOLED<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel =<br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| status = booting<br />
<br />
| booting = N<br />
| pmoskernel = 3.10.108<br />
| whet_dhry =<br />
| status_otg =<br />
}}<br />
<br />
== How to enter flash mode ==<br />
<br />
Press and hold {{button|Volume Down}} + {{button|Home}} + {{button|Power}} simultaneously. Then click {{button|Volume Up}} to confirm.</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Apple_iPhone_7/7%2B_(apple-iphone7)&diff=21909Apple iPhone 7/7+ (apple-iphone7)2021-08-27T10:18:18Z<p>Onny: /* How to enter flash mode */</p>
<hr />
<div>These two devices can boot Android (via Project Sandcastle) so a postmarketOS port could be possible once flash storage drivers are added.<br />
<br />
{{Infobox device<br />
| manufacturer = Apple<br />
| name = iPhone 7/7 plus<br />
| codename = apple-iphone7<br />
| image = File:apple-iphone7.jpg<br />
| imagecaption = The iPhone 7, Booting PostmarketOS<br />
| releaseyear = 2016<br />
| originalsoftware = iOS 10.0.1<br />
| chipset = Apple A10 Fusion<br />
| cpu = 2.34GHz quad-core 64-bit<br />
| gpu = Custom PowerVR GT7600 Plus (6 core)<br />
| storage = 32, 128, 256 GB<br />
| display = 1334×750 (326 ppi) (iPhone 7) 1920x1080 (401 ppi) (iPhone 7+)<br />
| memory = 2 GB (iPhone 7) 3 GB (iPhone 7+)<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = P<br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = Y<br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = N<br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = no port yet<br />
| booting = Y<br />
| n-android = ✔<br />
| pmoskernel = 5.4.12<br />
| status_otg = P<br />
<br />
<!--<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Onny]]<br />
<br />
== Maintainer(s) ==<br />
<!-- Only if this device doesn't run on linux-postmarketos yet! --><br />
<!-- This person needs to be willing to answer questions from users of this device --><br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
No proper flash mode, but kernel can be booted via [https://checkra.in/ checkra1n/PongoOS].<br />
<br />
First you have to enter DFU mode.<br />
* Power off your phone and connect it to your computer via USB<br />
* Hold down {{Button|Volume Down}} + {{Button|Power}} for 8 seconds<br />
* Release {{Button|Power}} and keep holding {{Button|Volume Down}} for another 10 seconds<br />
The screen should stay blank if everything went good.<br />
<br />
To enter PongoOS, from where we can load the Linux kernel, run follwoing command on the host machine:<br />
<source lang="bash"><br />
$ ./checkra1n -cpE<br />
</source><br />
<br />
PongoOS will start booting and printing messages on the screen.<br />
<br />
== Installation ==<br />
<br />
There is a manual method described in [https://blog.project-insanity.org/2020/04/22/linux-with-wayland-is-now-running-on-iphone-7/ this] blog post.<br />
<br />
After [https://gitlab.com/postmarketOS/pmbootstrap/-/merge_requests/2098 this pull request is merged], one could possibly boot the kernel by just running<br />
$ pmbootstrap flasher boot<br />
<br />
== See also ==<br />
* [https://projectsandcastle.org/ Project Sandcastle] provides the basic Linux port to Apple silicon<br />
* {{MR|2289|pmaports}} Initial merge request<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-apple-iphone7 Device package]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-apple-iphone7 Kernel package]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Apple_iPhone_7/7%2B_(apple-iphone7)&diff=21908Apple iPhone 7/7+ (apple-iphone7)2021-08-27T10:18:05Z<p>Onny: /* How to enter flash mode */</p>
<hr />
<div>These two devices can boot Android (via Project Sandcastle) so a postmarketOS port could be possible once flash storage drivers are added.<br />
<br />
{{Infobox device<br />
| manufacturer = Apple<br />
| name = iPhone 7/7 plus<br />
| codename = apple-iphone7<br />
| image = File:apple-iphone7.jpg<br />
| imagecaption = The iPhone 7, Booting PostmarketOS<br />
| releaseyear = 2016<br />
| originalsoftware = iOS 10.0.1<br />
| chipset = Apple A10 Fusion<br />
| cpu = 2.34GHz quad-core 64-bit<br />
| gpu = Custom PowerVR GT7600 Plus (6 core)<br />
| storage = 32, 128, 256 GB<br />
| display = 1334×750 (326 ppi) (iPhone 7) 1920x1080 (401 ppi) (iPhone 7+)<br />
| memory = 2 GB (iPhone 7) 3 GB (iPhone 7+)<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = P<br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = Y<br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = N<br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = no port yet<br />
| booting = Y<br />
| n-android = ✔<br />
| pmoskernel = 5.4.12<br />
| status_otg = P<br />
<br />
<!--<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Onny]]<br />
<br />
== Maintainer(s) ==<br />
<!-- Only if this device doesn't run on linux-postmarketos yet! --><br />
<!-- This person needs to be willing to answer questions from users of this device --><br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
No proper flash mode, but kernel can be booted via [https://checkra.in/ checkra1n/PongoOS].<br />
<br />
First you have to enter DFU mode.<br />
* Power off your phone and connect it to your computer via USB<br />
* Hold down {{Button|Volume Down}} + {{Button|Power}} for 8 seconds<br />
* Release {{Button|Power}} and keep holding {{Button|Volume Down}} for another 10 seconds<br />
The screen should stay blank if everything went good<br />
<br />
To enter PongoOS, from where we can load the Linux kernel, run follwoing command on the host machine:<br />
<source lang="bash"><br />
$ ./checkra1n -cpE<br />
</source><br />
<br />
PongoOS will start booting and printing messages on the screen.<br />
<br />
== Installation ==<br />
<br />
There is a manual method described in [https://blog.project-insanity.org/2020/04/22/linux-with-wayland-is-now-running-on-iphone-7/ this] blog post.<br />
<br />
After [https://gitlab.com/postmarketOS/pmbootstrap/-/merge_requests/2098 this pull request is merged], one could possibly boot the kernel by just running<br />
$ pmbootstrap flasher boot<br />
<br />
== See also ==<br />
* [https://projectsandcastle.org/ Project Sandcastle] provides the basic Linux port to Apple silicon<br />
* {{MR|2289|pmaports}} Initial merge request<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-apple-iphone7 Device package]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-apple-iphone7 Kernel package]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Apple_iPhone_7/7%2B_(apple-iphone7)&diff=21907Apple iPhone 7/7+ (apple-iphone7)2021-08-27T10:10:46Z<p>Onny: /* How to enter flash mode */</p>
<hr />
<div>These two devices can boot Android (via Project Sandcastle) so a postmarketOS port could be possible once flash storage drivers are added.<br />
<br />
{{Infobox device<br />
| manufacturer = Apple<br />
| name = iPhone 7/7 plus<br />
| codename = apple-iphone7<br />
| image = File:apple-iphone7.jpg<br />
| imagecaption = The iPhone 7, Booting PostmarketOS<br />
| releaseyear = 2016<br />
| originalsoftware = iOS 10.0.1<br />
| chipset = Apple A10 Fusion<br />
| cpu = 2.34GHz quad-core 64-bit<br />
| gpu = Custom PowerVR GT7600 Plus (6 core)<br />
| storage = 32, 128, 256 GB<br />
| display = 1334×750 (326 ppi) (iPhone 7) 1920x1080 (401 ppi) (iPhone 7+)<br />
| memory = 2 GB (iPhone 7) 3 GB (iPhone 7+)<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = P<br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = Y<br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = N<br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = no port yet<br />
| booting = Y<br />
| n-android = ✔<br />
| pmoskernel = 5.4.12<br />
| status_otg = P<br />
<br />
<!--<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Onny]]<br />
<br />
== Maintainer(s) ==<br />
<!-- Only if this device doesn't run on linux-postmarketos yet! --><br />
<!-- This person needs to be willing to answer questions from users of this device --><br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
No proper flash mode, but kernel can be booted via [https://checkra.in/ checkra1n/PongoOS].<br />
<br />
First you have to enter DFU mode.<br />
* Power off your phone and connect it to your computer via USB<br />
* Hold down {{Button|Volume Down}} + {{Button|Power}} for 5 seconds (after Apple logo appeared)<br />
* Release {{Button|Power}} and keep holding {{Button|Volume Down}} for another 10 seconds<br />
<br />
To enter PongoOS, from where we can load the Linux kernel, run follwoing command on the host machine:<br />
<source lang="bash"><br />
$ ./checkra1n -cpE<br />
</source><br />
<br />
PongoOS will start booting and printing messages on the screen.<br />
<br />
== Installation ==<br />
<br />
There is a manual method described in [https://blog.project-insanity.org/2020/04/22/linux-with-wayland-is-now-running-on-iphone-7/ this] blog post.<br />
<br />
After [https://gitlab.com/postmarketOS/pmbootstrap/-/merge_requests/2098 this pull request is merged], one could possibly boot the kernel by just running<br />
$ pmbootstrap flasher boot<br />
<br />
== See also ==<br />
* [https://projectsandcastle.org/ Project Sandcastle] provides the basic Linux port to Apple silicon<br />
* {{MR|2289|pmaports}} Initial merge request<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-apple-iphone7 Device package]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-apple-iphone7 Kernel package]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Apple_iPhone_7/7%2B_(apple-iphone7)&diff=21906Apple iPhone 7/7+ (apple-iphone7)2021-08-27T10:07:36Z<p>Onny: /* How to enter flash mode */</p>
<hr />
<div>These two devices can boot Android (via Project Sandcastle) so a postmarketOS port could be possible once flash storage drivers are added.<br />
<br />
{{Infobox device<br />
| manufacturer = Apple<br />
| name = iPhone 7/7 plus<br />
| codename = apple-iphone7<br />
| image = File:apple-iphone7.jpg<br />
| imagecaption = The iPhone 7, Booting PostmarketOS<br />
| releaseyear = 2016<br />
| originalsoftware = iOS 10.0.1<br />
| chipset = Apple A10 Fusion<br />
| cpu = 2.34GHz quad-core 64-bit<br />
| gpu = Custom PowerVR GT7600 Plus (6 core)<br />
| storage = 32, 128, 256 GB<br />
| display = 1334×750 (326 ppi) (iPhone 7) 1920x1080 (401 ppi) (iPhone 7+)<br />
| memory = 2 GB (iPhone 7) 3 GB (iPhone 7+)<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = P<br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = Y<br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = N<br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = no port yet<br />
| booting = Y<br />
| n-android = ✔<br />
| pmoskernel = 5.4.12<br />
| status_otg = P<br />
<br />
<!--<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Onny]]<br />
<br />
== Maintainer(s) ==<br />
<!-- Only if this device doesn't run on linux-postmarketos yet! --><br />
<!-- This person needs to be willing to answer questions from users of this device --><br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
No proper flash mode, but kernel can be booted via [https://checkra.in/ checkra1n/PongoOS].<br />
<br />
First you have to enter DFU mode.<br />
* Power off your phone and connect it to your computer via USB<br />
* Hold down {{Button|Volume Down}} + {{Button|Power}} for 5 seconds (after Apple logo appeared)<br />
* Release {{Button|Power}} and keep holding {{Button|Volume Down}} for another 10 seconds<br />
<br />
To enter PongoOS, from where we can load the Linux kernel, run follwoing command on the host machine:<br />
<source lang="bash"><br />
$ ./checkra1n-cli -cpE<br />
</source><br />
<br />
PongoOS will start booting and printing messages on the screen.<br />
<br />
== Installation ==<br />
<br />
There is a manual method described in [https://blog.project-insanity.org/2020/04/22/linux-with-wayland-is-now-running-on-iphone-7/ this] blog post.<br />
<br />
After [https://gitlab.com/postmarketOS/pmbootstrap/-/merge_requests/2098 this pull request is merged], one could possibly boot the kernel by just running<br />
$ pmbootstrap flasher boot<br />
<br />
== See also ==<br />
* [https://projectsandcastle.org/ Project Sandcastle] provides the basic Linux port to Apple silicon<br />
* {{MR|2289|pmaports}} Initial merge request<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-apple-iphone7 Device package]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-apple-iphone7 Kernel package]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Apple_iPhone_7/7%2B_(apple-iphone7)&diff=21904Apple iPhone 7/7+ (apple-iphone7)2021-08-27T09:01:49Z<p>Onny: Add information on work about custom flasher implementation</p>
<hr />
<div>These two devices can boot Android (via Project Sandcastle) so a postmarketOS port could be possible once flash storage drivers are added.<br />
<br />
{{Infobox device<br />
| manufacturer = Apple<br />
| name = iPhone 7/7 plus<br />
| codename = apple-iphone7<br />
| image = File:apple-iphone7.jpg<br />
| imagecaption = The iPhone 7, Booting PostmarketOS<br />
| releaseyear = 2016<br />
| originalsoftware = iOS 10.0.1<br />
| chipset = Apple A10 Fusion<br />
| cpu = 2.34GHz quad-core 64-bit<br />
| gpu = Custom PowerVR GT7600 Plus (6 core)<br />
| storage = 32, 128, 256 GB<br />
| display = 1334×750 (326 ppi) (iPhone 7) 1920x1080 (401 ppi) (iPhone 7+)<br />
| memory = 2 GB (iPhone 7) 3 GB (iPhone 7+)<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = P<br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = Y<br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = N<br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = no port yet<br />
| booting = Y<br />
| n-android = ✔<br />
| pmoskernel = 5.4.12<br />
| status_otg = P<br />
<br />
<!--<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Onny]]<br />
<br />
== Maintainer(s) ==<br />
<!-- Only if this device doesn't run on linux-postmarketos yet! --><br />
<!-- This person needs to be willing to answer questions from users of this device --><br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
No proper flash mode, but kernel can be booted via [https://checkra.in/ checkra1n/PongoOS].<br />
<br />
First you have to enter DFU mode. Power off your phone and connect it to your computer via USB: Hold down {{Button|Volume Down}} + {{Button|Power}} for 5 seconds (after Apple logo appeared). Release {{Button|Power}} and keep holding {{Button|Volume Down}} for another 10 seconds.<br />
<br />
To enter PongoOS, from where we can load the Linux kernel, run follwoing command on the host machine:<br />
<source lang="bash"><br />
$ ./checkra1n-cli -cpE<br />
</source><br />
<br />
PongoOS will start booting and printing messages on the screen.<br />
<br />
== Installation ==<br />
<br />
There is a manual method described in [https://blog.project-insanity.org/2020/04/22/linux-with-wayland-is-now-running-on-iphone-7/ this] blog post.<br />
<br />
After [https://gitlab.com/postmarketOS/pmbootstrap/-/merge_requests/2098 this pull request is merged], one could possibly boot the kernel by just running<br />
$ pmbootstrap flasher boot<br />
<br />
== See also ==<br />
* [https://projectsandcastle.org/ Project Sandcastle] provides the basic Linux port to Apple silicon<br />
* {{MR|2289|pmaports}} Initial merge request<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-apple-iphone7 Device package]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-apple-iphone7 Kernel package]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Apple_iPhone_7/7%2B_(apple-iphone7)&diff=21903Apple iPhone 7/7+ (apple-iphone7)2021-08-27T08:34:11Z<p>Onny: Note about flash method implementation possibilities</p>
<hr />
<div>These two devices can boot Android (via Project Sandcastle) so a postmarketOS port could be possible once flash storage drivers are added.<br />
<br />
{{Infobox device<br />
| manufacturer = Apple<br />
| name = iPhone 7/7 plus<br />
| codename = apple-iphone7<br />
| image = File:apple-iphone7.jpg<br />
| imagecaption = The iPhone 7, Booting PostmarketOS<br />
| releaseyear = 2016<br />
| originalsoftware = iOS 10.0.1<br />
| chipset = Apple A10 Fusion<br />
| cpu = 2.34GHz quad-core 64-bit<br />
| gpu = Custom PowerVR GT7600 Plus (6 core)<br />
| storage = 32, 128, 256 GB<br />
| display = 1334×750 (326 ppi) (iPhone 7) 1920x1080 (401 ppi) (iPhone 7+)<br />
| memory = 2 GB (iPhone 7) 3 GB (iPhone 7+)<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = P<br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = Y<br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = N<br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = no port yet<br />
| booting = Y<br />
| n-android = ✔<br />
| pmoskernel = 5.4.12<br />
| status_otg = P<br />
<br />
<!--<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Onny]]<br />
<br />
== Maintainer(s) ==<br />
<!-- Only if this device doesn't run on linux-postmarketos yet! --><br />
<!-- This person needs to be willing to answer questions from users of this device --><br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
No proper flash mode, but kernel can be booted via [https://checkra.in/ checkra1n/PongoOS].<br />
<br />
First you have to enter DFU mode. Power off your phone and connect it to your computer via USB: Hold down {{Button|Volume Down}} + {{Button|Power}} for 5 seconds (after Apple logo appeared). Release {{Button|Power}} and keep holding {{Button|Volume Down}} for another 10 seconds.<br />
<br />
To enter PongoOS, from where we can load the Linux kernel, run follwoing command on the host machine:<br />
<source lang="bash"><br />
$ ./checkra1n-cli -cpE<br />
</source><br />
<br />
PongoOS will start booting and printing messages on the screen.<br />
<br />
== Installation ==<br />
<br />
There is a manual method described in [https://blog.project-insanity.org/2020/04/22/linux-with-wayland-is-now-running-on-iphone-7/ this] blog post.<br />
<br />
Further, as soon as [https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/24659 this package] gets merged into aports upstream, one could start implementing an additional flash method for Apple iPhones and iPods.<br />
<br />
== See also ==<br />
* [https://projectsandcastle.org/ Project Sandcastle] provides the basic Linux port to Apple silicon<br />
* {{MR|2289|pmaports}} Initial merge request<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-apple-iphone7 Device package]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-apple-iphone7 Kernel package]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_Note_4_(samsung-trltexx)&diff=21669Samsung Galaxy Note 4 (samsung-trltexx)2021-08-22T08:10:32Z<p>Onny: Fix link to inital merge request</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy Note 4<br />
| codename = samsung-trltexx<br />
| image = File:treltexx.jpg<br />
| imagecaption = Samsung Galaxy Note 4<br />
| releaseyear = 2014<br />
| releasemonth = October<br />
| originalsoftware = Android 4.4.4 (KitKat)<br />
| chipset = Qualcomm Snapdragon 805 (APQ8084) <br />
| cpu = 2.7 GHz quad-core Krait 450 <br />
| gpu = Adreno 420<br />
| storage = 32/64 GB<br />
| display = 1440 x 2560 Super AMOLED<br />
| memory = 3 GB<br />
| architecture = armv7<br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel =<br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| status = booting<br />
<br />
| booting = N<br />
| pmoskernel = 3.10.0<br />
| whet_dhry =<br />
| status_otg =<br />
}}<br />
<br />
Please note that this page is about the models with Qualcomm chipset SM-N910A/F/G/P/T/V/X.<br />
<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
<br />
Press and hold {{button|Volume Down}} + {{button|Home}} + {{button|Power}} simultaneously. Then click {{button|Volume Up}} to confirm.<br />
<br />
== See also ==<br />
* {{MR|2456|pmaports}} Initial merge request<br />
<br />
== Notes ==<br />
N-910A (AT&T Note 4) cannot be rooted. Bootloader cannot be unlocked.</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_Note_4_(samsung-trltexx)&diff=21602Samsung Galaxy Note 4 (samsung-trltexx)2021-08-21T07:27:54Z<p>Onny: Add info about downstream kernel version</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy Note 4<br />
| codename = samsung-trltexx<br />
| image = File:treltexx.jpg<br />
| imagecaption = Samsung Galaxy Note 4<br />
| releaseyear = 2014<br />
| releasemonth = October<br />
| originalsoftware = Android 4.4.4 (KitKat)<br />
| chipset = Qualcomm Snapdragon 805 (APQ8084) <br />
| cpu = 2.7 GHz quad-core Krait 450 <br />
| gpu = Adreno 420<br />
| storage = 32/64 GB<br />
| display = 1440 x 2560 Super AMOLED<br />
| memory = 3 GB<br />
| architecture = armv7<br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel =<br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| status = booting<br />
<br />
| booting = N<br />
| pmoskernel = 3.10.0<br />
| whet_dhry =<br />
| status_otg =<br />
}}<br />
<br />
Please note that this page is about the models with Qualcomm chipset SM-N910A/F/G/P/T/V/X.<br />
<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
<br />
Press and hold {{button|Volume Down}} + {{button|Home}} + {{button|Power}} simultaneously. Then click {{button|Volume Up}} to confirm.<br />
<br />
== See also ==<br />
* {{MR|2441|pmaports}} Initial merge request<br />
<br />
== Notes ==<br />
N-910A (AT&T Note 4) cannot be rooted. Bootloader cannot be unlocked.</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_Note_4_(samsung-trltexx)&diff=21601Samsung Galaxy Note 4 (samsung-trltexx)2021-08-21T07:23:49Z<p>Onny: Adjust hardware specifications</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy Note 4<br />
| codename = samsung-trltexx<br />
| image = File:treltexx.jpg<br />
| imagecaption = Samsung Galaxy Note 4<br />
| releaseyear = 2014<br />
| releasemonth = October<br />
| originalsoftware = Android 4.4.4 (KitKat)<br />
| chipset = Qualcomm Snapdragon 805 (APQ8084) <br />
| cpu = 2.7 GHz quad-core Krait 450 <br />
| gpu = Adreno 420<br />
| storage = 32/64 GB<br />
| display = 1440 x 2560 Super AMOLED<br />
| memory = 3 GB<br />
| architecture = armv7<br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel =<br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| status = booting<br />
<br />
| booting = N<br />
| pmoskernel =<br />
| whet_dhry =<br />
| status_otg =<br />
}}<br />
<br />
Please note that this page is about the models with Qualcomm chipset SM-N910A/F/G/P/T/V/X.<br />
<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
<br />
Press and hold {{button|Volume Down}} + {{button|Home}} + {{button|Power}} simultaneously. Then click {{button|Volume Up}} to confirm.<br />
<br />
== See also ==<br />
* {{MR|2441|pmaports}} Initial merge request<br />
<br />
== Notes ==<br />
N-910A (AT&T Note 4) cannot be rooted. Bootloader cannot be unlocked.</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_Note_4_(samsung-trltexx)&diff=21600Samsung Galaxy Note 4 (samsung-trltexx)2021-08-21T07:20:41Z<p>Onny: Inital page for Qualcomm models</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy Note 4<br />
| codename = samsung-trltexx<br />
| image = File:treltexx.jpg<br />
| imagecaption = Samsung Galaxy Note 4<br />
| releaseyear = 2014<br />
| releasemonth = September<br />
| originalsoftware = Android 4.4.4 (KitKat)<br />
| chipset = Exynos 5433<br />
| cpu = Octa-core (4x 1.3 GHz Cortex-A53 & 4x 1.9 GHz Cortex-A57)<br />
| gpu = Mali-T760 MP6<br />
| storage = 32 GB<br />
| display = 1440 x 2560 Super AMOLED<br />
| memory = 3 GB<br />
| architecture = armv7<br />
| status_usbnet = Y<br />
| status_flashing = P<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline = N<br />
| status_battery = Y<br />
| status_3d = N<br />
| status_accel =<br />
| status_audio = N<br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| status = booting<br />
| booting = Y<br />
| pmoskernel =<br />
| whet_dhry =<br />
| status_otg =<br />
}}<br />
<br />
Please note that this page is about the models with Qualcomm chipset SM-N910A/F/G/P/T/V/X<br />
<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
<br />
Press and hold {{button|Volume Down}} + {{button|Home}} + {{button|Power}} simultaneously. Then click {{button|Volume Up}} to confirm.<br />
<br />
== See also ==<br />
* {{MR|2441|pmaports}} Initial merge request<br />
<br />
== Notes ==<br />
N-910A (AT&T Note 4) cannot be rooted. Bootloader cannot be unlocked.</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_Note_4_(samsung-treltexx)&diff=21599Samsung Galaxy Note 4 (samsung-treltexx)2021-08-21T07:15:15Z<p>Onny: Add information about Exynos models</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy Note 4<br />
| codename = samsung-treltexx<br />
| image = File:treltexx.jpg<br />
| imagecaption = Samsung Galaxy Note 4<br />
| releaseyear = 2014<br />
| releasemonth = September<br />
| originalsoftware = Android 4.4.4 (KitKat)<br />
| chipset = Exynos 5433<br />
| cpu = Octa-core (4x 1.3 GHz Cortex-A53 & 4x 1.9 GHz Cortex-A57)<br />
| gpu = Mali-T760 MP6<br />
| storage = 32 GB<br />
| display = 1440 x 2560 Super AMOLED<br />
| memory = 3 GB<br />
| architecture = armv7<br />
| status_usbnet = Y<br />
| status_flashing = P<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline = N<br />
| status_battery = Y<br />
| status_3d = N<br />
| status_accel =<br />
| status_audio = N<br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| status = booting<br />
| booting = Y<br />
| pmoskernel =<br />
| whet_dhry =<br />
| status_otg =<br />
}}<br />
<br />
Please note that this page is about the models with Exynos chipset SM-N910C/H/K/L/S/U.<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
<br />
Press and hold {{button|Volume Down}} + {{button|Home}} + {{button|Power}} simultaneously. Then click {{button|Volume Up}} to confirm.<br />
<br />
== Mainline ==<br />
* Device might be a good mainline candidate, considering the Exynos 5433 is already supported upstream. https://elixir.bootlin.com/linux/latest/source/arch/arm64/boot/dts/exynos<br />
<br />
== See also ==<br />
* {{MR|2441|pmaports}} Initial merge request<br />
<br />
== Notes ==<br />
N-910A (AT&T Note 4) cannot be rooted. Bootloader cannot be unlocked.</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_Note_4_(samsung-treltexx)&diff=21583Samsung Galaxy Note 4 (samsung-treltexx)2021-08-20T11:24:44Z<p>Onny: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy Note 4<br />
| codename = samsung-treltexx<br />
| image = File:treltexx.jpg<br />
| imagecaption = Samsung Galaxy Note 4<br />
| releaseyear = 2014<br />
| releasemonth = September<br />
| originalsoftware = Android 4.4.4 (KitKat)<br />
| chipset = Exynos 5433<br />
| cpu = Octa-core (4x 1.3 GHz Cortex-A53 & 4x 1.9 GHz Cortex-A57)<br />
| gpu = Mali-T760 MP6<br />
| storage = 32 GB<br />
| display = 1440 x 2560 Super AMOLED<br />
| memory = 3 GB<br />
| architecture = armv7<br />
| status_usbnet = Y<br />
| status_flashing = P<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline = N<br />
| status_battery = Y<br />
| status_3d = N<br />
| status_accel =<br />
| status_audio = N<br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| status = booting<br />
| booting = Y<br />
| pmoskernel =<br />
| whet_dhry =<br />
| status_otg =<br />
}}<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
<br />
Press and hold {{button|Volume Down}} + {{button|Home}} + {{button|Power}} simultaneously. Then click {{button|Volume Up}} to confirm.<br />
<br />
== Mainline ==<br />
* Device might be a good mainline candidate, considering the Exynos 5433 is already supported upstream. https://elixir.bootlin.com/linux/latest/source/arch/arm64/boot/dts/exynos<br />
<br />
== See also ==<br />
* {{MR|2441|pmaports}} Initial merge request<br />
<br />
== Notes ==<br />
N-910A (AT&T Note 4) cannot be rooted. Bootloader cannot be unlocked.</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_Note_4_(samsung-treltexx)&diff=21582Samsung Galaxy Note 4 (samsung-treltexx)2021-08-20T11:00:32Z<p>Onny: Add info about entering flash mode</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy Note 4<br />
| codename = samsung-treltexx<br />
| image = File:treltexx.jpg<br />
| imagecaption = Samsung Galaxy Note 4<br />
| releaseyear = 2014<br />
| releasemonth = September<br />
| originalsoftware = Android 4.4.4 (KitKat)<br />
| chipset = Exynos 5433<br />
| cpu = Octa-core (4x 1.3 GHz Cortex-A53 & 4x 1.9 GHz Cortex-A57)<br />
| gpu = Mali-T760 MP6<br />
| storage = 32 GB<br />
| display = 1440 x 2560 Super AMOLED<br />
| memory = 3 GB<br />
| architecture = armv7<br />
| status_usbnet = Y<br />
| status_flashing = P<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline = N<br />
| status_battery = Y<br />
| status_3d = N<br />
| status_accel =<br />
| status_audio = N<br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| status = booting<br />
| booting = Y<br />
| pmoskernel =<br />
| whet_dhry =<br />
| status_otg =<br />
}}<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
<br />
Press and hold {{button|Volume Down}} + {{button|Home}} + {{button|Power}} simultaneously. Then click {{button|Volume Up}} to confirm.<br />
<br />
== Mainline ==<br />
* Device might be a good mainline candidate, considering the Exynos 5433 is already supported upstream. https://elixir.bootlin.com/linux/latest/source/arch/arm64/boot/dts/exynos<br />
<br />
== See also ==<br />
* {{MR|430|pmaports}} Initial merge request<br />
<br />
== Notes ==<br />
N-910A (AT&T Note 4) cannot be rooted. Bootloader cannot be unlocked.</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Manual_flashing&diff=21581Manual flashing2021-08-20T10:35:52Z<p>Onny: /* Heimdall */</p>
<hr />
<div>{{note|If you only need to slightly adjust the way <code>pmbootstrap</code> runs a flasher, you can grab the exact command it uses from the <code>pmbootstrap log</code> and modify it when running manually.}}<br />
Sometimes you just need to flash ready system image externally. Export the images that pmbootstrap generated with <code>pmbootstrap export</code> and read on, how to call the flashing application from your host OS.<br />
<br />
== Fastboot ==<br />
See <code>fastboot --help</code>, and expand this section if you find out something that would have helped you.<br />
<br />
LineageOS Recovery can be flashed with Odin. From LOS Recovery you can enter userspace fastbootd to flash .img files via fastboot.<br />
This was implemented in Android 10, provided the recovery supports entering into fastbootd. Yes, fastboot on a Samsung device. Tested and working on Tab S5e, but should work on all Samsung from A10 + with supporting recovery.<br />
<br />
== Odin ==<br />
[https://odinflashtool.com/ Odin] is an official flasher for many Samsung devices, runs only on Windows. Make sure you have the [https://samsungusbdriver.com/ latest Samsung USB drivers] installed before plugging in the smartphone in Odin mode.<br />
<br />
To flash your phone with it you will need .pit file containing information about all partitions, you can find one online or download it from the device e.g using Heimdall.<br />
<br />
== Heimdall ==<br />
[[File:heimdall-frontend.png|thumb|400px|right|Flash tab in heimdall-frontend]]<br />
[https://www.glassechidna.com.au/heimdall/ Heimdall] is an opensource alternative to Odin that runs on Windows, Mac and Linux and can flash many Samsung phones.<br />
Be aware that Heimdall doesn't support some Samsung phones (usually that uses different file than .pit).<br />
<br />
The user [[User:grimler|grimler]] maintains a Heimdall fork [https://git.sr.ht/~grimler/Heimdall here] with some additional patches, since the development at the official repository has stalled.<br />
<br />
=== Easy way ===<br />
Use ''heimdall-frontend''<br />
<br />
On tab Utilities you can obtain .pit file from the device by choosing save location and clicking download<br />
<br />
{{note|NEVER select "Repartition", it will most certainly brick your phone!}}<br />
When you have .pit file and required img files you can go to Flash tab, select your .pit file, add new partition, configure it (name and flashed file), optionally add more partitions and click Start to flash everything to the device.<br />
<br />
=== Hard way ===<br />
First, turn on your phone in download mode (You can use <br />
<code lang="bash"><br />
heimdall detect<br />
</code><br />
to see if Heimdall detects it.)<br />
<br />
To download .pit from the device:<br />
<br />
<code lang="bash"><br />
heimdall download-pit --output file.pit<br />
</code><br />
<br />
{{note|code below was not yet tested, I would advise against using it}}<br />
When you have .pit file and required img files you can flash your device with:<br />
<br />
<code lang="bash"><br />
heimdall flash --pit file.pit [--<partition name> <filename>] [--<partition identifier> <filename>]<br />
</code><br />
<br />
You should be able to flash several partitions at once<br />
<br />
[[Category:Guide]]</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_W_(samsung-i8150)&diff=21546Samsung Galaxy W (samsung-i8150)2021-08-19T11:14:11Z<p>Onny: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy W<br />
| codename = samsung-i8150<br />
| image = File:Samsungw-booting-screen-fix.jpeg<br />
| imagecaption = Samsung Galaxy W<br />
| releaseyear = 2011<br />
| originalsoftware = Android 2.3.5 (up to Android 2.3.6)<br />
| chipset = Qualcomm Snapdragon S2 MSM8255T<br />
| cpu = Dual-core 1.2 GHz Scorpion<br />
| gpu = Adreno 205<br />
| storage = 4 GB<br />
| display = 480 x 800<br />
| memory = 512 MB<br />
| architecture = armv7<br />
| status_usbnet =<br />
| status_flashing = N<br />
| status_touch = P<br />
| status_screen = Y<br />
| status_wifi =<br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline =<br />
| status_battery =<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls =<br />
<br />
| booting = yes<br />
<br />
| pmoskernel = 3.4.93<br />
}}<br />
<br />
== Contributors ==<br />
<br />
* onny<br />
<br />
== Rooting ==<br />
Follow [https://forum.xda-developers.com/t/howto-root-unroot-samsung-galaxy-w-i8150.1317394/ this guide] on how to root the phone. Updated download links can be found on later posts.<br />
<br />
== How to enter flash mode ==<br />
<br />
# Turn off phone<br />
# Connect USB cable<br />
# Hold {{button|Volume down}} + {{button|Home}} + {{button|Power}} until you get the "Warning!!" screen<br />
# Push {{button|Volume up}} to continue to ODIN mode, as per the instructions appearing on the screen<br />
<br />
== Installation ==<br />
<br />
* Install everything using an SD card <code>pmbootstrap install --sdcard=/dev/sd?</code><br />
* Insert the SD-Card on the device<br />
* Enter device into flash mode (ODIN), see above<br />
<br />
Since Heimdall flashing [https://github.com/Benjamin-Dobell/Heimdall/issues/489 seems currently broken] for this device, I had success using Odin Multi Downloader v4.43 on Windows 7 (KVM) to flash the boot.img into recovery.<br />
<br />
First prepare boot.img for flashing with Odin:<br />
<br />
$ pmbootstrap export<br />
$ cd /tmp/postmarketOS-export<br />
$ cp boot.img-samsung-i8150 recovery.img<br />
$ tar -cf recovery.tar recovery.img<br />
$ md5sum -t recovery.tar >> recovery.tar<br />
$ mv recovery.tar recovery.tar.md5<br />
<br />
Now we need to flash this file with Odin on Windows. I had luck with using Windows 7 on KVM. Further download and isntall following files inside Windows:<br />
<br />
* [https://samsungusbdriver.com/download/samsung-driver-v1-5-65-0 Samsung USB Driver v1.5.65]<br />
* [https://onny.project-insanity.org/files/samsungw/Odin%20Multi%20Downloader%20v4.43.exe Odin Multi Downlaoder v4.43]<br />
* [https://onny.project-insanity.org/files/samsungw/Ancora.ops Ancora.ops]<br />
<br />
Run Odin and plug your phone which should be already in download mode. Odin should detect your phone printing something like "Added!!!". Select OPS file and check "One Package". As "One Package" choose the recovery file "recovery.tar.md5". Click "Start".<br />
<br />
After a reboot try to get into recovery by holding {{button|Volume up}} + {{button|Home}} + {{button|Power}}. Release {{button|Power}} when Samsung logo appears. The phone should now boot the postmarketOS kernel.<br />
<br />
== See also ==<br />
* {{MR|2435|pmaports}} Initial merge request<br />
* Heimdall v1.4.2 [https://github.com/Benjamin-Dobell/Heimdall/issues/489 doesn't seem to work with this device], fails with protocol error<br />
-</div>Onnyhttps://wiki.postmarketos.org/index.php?title=File:Samsungw-booting-screen-fix.jpeg&diff=21545File:Samsungw-booting-screen-fix.jpeg2021-08-19T11:13:54Z<p>Onny: </p>
<hr />
<div><br />
== Licensing ==<br />
{{self|cc-zero}}</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_W_(samsung-i8150)&diff=21544Samsung Galaxy W (samsung-i8150)2021-08-19T11:00:28Z<p>Onny: /* See also */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy W<br />
| codename = samsung-i8150<br />
| image = File:Samsung-galaxy-w-booted.jpeg<br />
| imagecaption = Samsung Galaxy W<br />
| releaseyear = 2011<br />
| originalsoftware = Android 2.3.5 (up to Android 2.3.6)<br />
| chipset = Qualcomm Snapdragon S2 MSM8255T<br />
| cpu = Dual-core 1.2 GHz Scorpion<br />
| gpu = Adreno 205<br />
| storage = 4 GB<br />
| display = 480 x 800<br />
| memory = 512 MB<br />
| architecture = armv7<br />
| status_usbnet =<br />
| status_flashing = N<br />
| status_touch = P<br />
| status_screen = P<br />
| status_wifi =<br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline =<br />
| status_battery =<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls =<br />
<br />
| booting = yes<br />
<br />
| pmoskernel = 3.4.93<br />
}}<br />
<br />
== Contributors ==<br />
<br />
* onny<br />
<br />
== Rooting ==<br />
Follow [https://forum.xda-developers.com/t/howto-root-unroot-samsung-galaxy-w-i8150.1317394/ this guide] on how to root the phone. Updated download links can be found on later posts.<br />
<br />
== How to enter flash mode ==<br />
<br />
# Turn off phone<br />
# Connect USB cable<br />
# Hold {{button|Volume down}} + {{button|Home}} + {{button|Power}} until you get the "Warning!!" screen<br />
# Push {{button|Volume up}} to continue to ODIN mode, as per the instructions appearing on the screen<br />
<br />
== Installation ==<br />
<br />
* Install everything using an SD card <code>pmbootstrap install --sdcard=/dev/sd?</code><br />
* Insert the SD-Card on the device<br />
* Enter device into flash mode (ODIN), see above<br />
<br />
Since Heimdall flashing [https://github.com/Benjamin-Dobell/Heimdall/issues/489 seems currently broken] for this device, I had success using Odin Multi Downloader v4.43 on Windows 7 (KVM) to flash the boot.img into recovery.<br />
<br />
First prepare boot.img for flashing with Odin:<br />
<br />
$ pmbootstrap export<br />
$ cd /tmp/postmarketOS-export<br />
$ cp boot.img-samsung-i8150 recovery.img<br />
$ tar -cf recovery.tar recovery.img<br />
$ md5sum -t recovery.tar >> recovery.tar<br />
$ mv recovery.tar recovery.tar.md5<br />
<br />
Now we need to flash this file with Odin on Windows. I had luck with using Windows 7 on KVM. Further download and isntall following files inside Windows:<br />
<br />
* [https://samsungusbdriver.com/download/samsung-driver-v1-5-65-0 Samsung USB Driver v1.5.65]<br />
* [https://onny.project-insanity.org/files/samsungw/Odin%20Multi%20Downloader%20v4.43.exe Odin Multi Downlaoder v4.43]<br />
* [https://onny.project-insanity.org/files/samsungw/Ancora.ops Ancora.ops]<br />
<br />
Run Odin and plug your phone which should be already in download mode. Odin should detect your phone printing something like "Added!!!". Select OPS file and check "One Package". As "One Package" choose the recovery file "recovery.tar.md5". Click "Start".<br />
<br />
After a reboot try to get into recovery by holding {{button|Volume up}} + {{button|Home}} + {{button|Power}}. Release {{button|Power}} when Samsung logo appears. The phone should now boot the postmarketOS kernel.<br />
<br />
== See also ==<br />
* {{MR|2435|pmaports}} Initial merge request<br />
* Heimdall v1.4.2 [https://github.com/Benjamin-Dobell/Heimdall/issues/489 doesn't seem to work with this device], fails with protocol error<br />
-</div>Onnyhttps://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_W_(samsung-i8150)&diff=21543Samsung Galaxy W (samsung-i8150)2021-08-19T10:59:07Z<p>Onny: Add installation instructions</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy W<br />
| codename = samsung-i8150<br />
| image = File:Samsung-galaxy-w-booted.jpeg<br />
| imagecaption = Samsung Galaxy W<br />
| releaseyear = 2011<br />
| originalsoftware = Android 2.3.5 (up to Android 2.3.6)<br />
| chipset = Qualcomm Snapdragon S2 MSM8255T<br />
| cpu = Dual-core 1.2 GHz Scorpion<br />
| gpu = Adreno 205<br />
| storage = 4 GB<br />
| display = 480 x 800<br />
| memory = 512 MB<br />
| architecture = armv7<br />
| status_usbnet =<br />
| status_flashing = N<br />
| status_touch = P<br />
| status_screen = P<br />
| status_wifi =<br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline =<br />
| status_battery =<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls =<br />
<br />
| booting = yes<br />
<br />
| pmoskernel = 3.4.93<br />
}}<br />
<br />
== Contributors ==<br />
<br />
* onny<br />
<br />
== Rooting ==<br />
Follow [https://forum.xda-developers.com/t/howto-root-unroot-samsung-galaxy-w-i8150.1317394/ this guide] on how to root the phone. Updated download links can be found on later posts.<br />
<br />
== How to enter flash mode ==<br />
<br />
# Turn off phone<br />
# Connect USB cable<br />
# Hold {{button|Volume down}} + {{button|Home}} + {{button|Power}} until you get the "Warning!!" screen<br />
# Push {{button|Volume up}} to continue to ODIN mode, as per the instructions appearing on the screen<br />
<br />
== Installation ==<br />
<br />
* Install everything using an SD card <code>pmbootstrap install --sdcard=/dev/sd?</code><br />
* Insert the SD-Card on the device<br />
* Enter device into flash mode (ODIN), see above<br />
<br />
Since Heimdall flashing [https://github.com/Benjamin-Dobell/Heimdall/issues/489 seems currently broken] for this device, I had success using Odin Multi Downloader v4.43 on Windows 7 (KVM) to flash the boot.img into recovery.<br />
<br />
First prepare boot.img for flashing with Odin:<br />
<br />
$ pmbootstrap export<br />
$ cd /tmp/postmarketOS-export<br />
$ cp boot.img-samsung-i8150 recovery.img<br />
$ tar -cf recovery.tar recovery.img<br />
$ md5sum -t recovery.tar >> recovery.tar<br />
$ mv recovery.tar recovery.tar.md5<br />
<br />
Now we need to flash this file with Odin on Windows. I had luck with using Windows 7 on KVM. Further download and isntall following files inside Windows:<br />
<br />
* [https://samsungusbdriver.com/download/samsung-driver-v1-5-65-0 Samsung USB Driver v1.5.65]<br />
* [https://onny.project-insanity.org/files/samsungw/Odin%20Multi%20Downloader%20v4.43.exe Odin Multi Downlaoder v4.43]<br />
* [https://onny.project-insanity.org/files/samsungw/Ancora.ops Ancora.ops]<br />
<br />
Run Odin and plug your phone which should be already in download mode. Odin should detect your phone printing something like "Added!!!". Select OPS file and check "One Package". As "One Package" choose the recovery file "recovery.tar.md5". Click "Start".<br />
<br />
After a reboot try to get into recovery by holding {{button|Volume up}} + {{button|Home}} + {{button|Power}}. Release {{button|Power}} when Samsung logo appears. The phone should now boot the postmarketOS kernel.<br />
<br />
== See also ==<br />
* {{MR|2435|pmaports}} Initial merge request<br />
* https://mheinzerling.de/blog/cyanogenmod-samsung-galaxy-w/<br />
* Heimdall v1.4.2 [https://github.com/Benjamin-Dobell/Heimdall/issues/489 doesn't seem to work with this device], fails with protocol error<br />
-</div>Onny