Jump to content

Samsung Galaxy Tab 4 7.0 (samsung-degaswifi): Difference between revisions

From postmarketOS Wiki
Susurrus (talk | contribs)
m Move model number to dedicated field
This device already had a wiki page. However it was incomplete and was of little use. The device (samsung-degaswifi) for which the page was made had an MR to pmaports several years back. But, it was never merged
Line 3: Line 3:
| name = Galaxy Tab 4 7.0 Wi-Fi
| name = Galaxy Tab 4 7.0 Wi-Fi
| codename = samsung-degaswifi
| codename = samsung-degaswifi
| model = SM-T230
| model = SM-T230/SM-T230NU
| releaseyear = 2014
| releaseyear = 2014
| originalsoftware = Android
| originalsoftware = Android
Line 20: Line 20:
| status_touch = Y
| status_touch = Y
| status_screen = Y
| status_screen = Y
| status_wifi = N<!-- Wireless network works? -->
| status_wifi = Y<!-- Wireless network works? -->
| status_xwayland =Y <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? -->
| status_xwayland = N <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? -->
| status_fde = N<!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? -->
| status_fde = N<!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? -->
| status_mainline =N <!-- Instead of a Linux kernel fork, it is possible to run mainline. -->
| status_mainline =N <!-- Instead of a Linux kernel fork, it is possible to run mainline. -->
| status_battery = N<!-- Charging the battery with charging-sdl is possible -->
| status_battery = Y<!-- Charging the battery with charging-sdl is possible -->
| status_3d = N<!-- Hardware accelerated 3D graphics (e.g. with freedreno) -->
| status_3d = N<!-- Hardware accelerated 3D graphics (e.g. with freedreno) -->
| status_accel =Y <!-- The sensor that measures proper acceleration works -->
| status_audio = P <!-- Using the device's speakers/headphone jack works -->
| status_audio = N<!-- Using the device's speakers/headphone jack works -->
| status_bluetooth = Y <!-- It's possible to pair and use other devices via the bluetooth protocol -->
| status_bluetooth =N <!-- It's possible to pair and use other devices via the bluetooth protocol -->
| status_camera = P<!-- Taking photos and videos works. -->
| status_camera = N<!-- Taking photos and videos works. -->
| status_gps =N <!-- The Global Positioning System sensor works.  -->
| status_gps =N <!-- The Global Positioning System sensor works.  -->
| status_mobiledata = - <!-- Connecting to the Internet via cellular network. -->
| status_mobiledata = - <!-- Connecting to the Internet via cellular network. -->
| status_sms = -<!-- Sending and receiving short messages works as intended. -->
| status_sms = - <!-- Sending and receiving short messages works as intended. -->
| status_calls = -<!-- Talking to other people over the cellular network. -->
| status_calls = - <!-- Talking to other people over the cellular network. -->
| status_nfc = -
| status_otg = -
| status_emmc = Y
<!-- Sensors -->
| status_accel =Y <!-- The sensor that measures proper acceleration works -->
| status_magnet = - <!-- Magnetometer works -->
| status_light = - <!-- Ambient light sensor works -->
| status_proximity = - <!-- Proximity sensor works -->
| status_hall = - <!-- Hall effect sensor works -->
| status_barometer = - <!-- Barometer works -->
| status_powersensor = - <!-- Power sensor works -->
<!-- Misc -->
| status_dvb = - <!-- Built-in TV receiver works -->
| status_cameraflash = - <!-- Camera flash/torch works -->
| status_keyboard = - <!-- Keyboard works (Mark "-" if device doesn't have a keyboard) -->
| status_touchpad = - <!-- Touchpad works (Usually applicable to laptops) -->
| status_usba = - <!-- Full-sized USB-A port works (Usually applicable to SBCs and laptops) -->
| status_sdcard = Y<!-- SD/UFS card works -->
| status_hdmidp = - <!-- Video and audio output with HDMI or DisplayPort works -->
| status_irtx = N <!-- Infrared (IR) transmit works -->
| status_irrx = - <!-- Infrared (IR) receive works -->
| status_stylus = - <!--  -->
| status_haptics = - <!--  -->
| status_ethernet = - <!--  -->
| status_fossbootloader = - <!-- Device has a free and open source bootloader -->
 
| status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" -->
| status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" -->
| booting = yes <!-- The device is booting at all, can be yes/no *IMPORTANT* -->
| booting = yes <!-- The device is booting at all, can be yes/no *IMPORTANT* -->
Line 49: Line 74:
}}
}}


This is a port of postmarketOS for the Samsung Galaxy Tab 4 7.0 (degaswifi). While it has been tested on the SM-T230NU, it should theoretically work on the SM-T230 (degas) and the SM-T231 (degas3g)
'''This port WILL NOT WORK on any other variant of the the Samsung Galaxy Tab 4, like matisselte, matisseve, degaslte etc as these devices either have an a Qualcomm Snapdragon or an Exynos processor'''
== Contributors ==
== Contributors ==
* Luka Panio (cvbnm90i)
* Luka Panio (cvbnm90i)
* Vishal B (vishalbala-nps)


== Maintainer(s) ==
== Maintainer(s) ==
<!-- Only if this device doesn't run on linux-postmarketos yet! -->
<!-- Only if this device doesn't run on linux-postmarketos yet! -->
<!-- This person needs to be willing to answer questions from users of this device -->
<!-- This person needs to be willing to answer questions from users of this device -->
Luka Panio (cvbnm90i)
* Luka Panio (cvbnm90i)
* Vishal B (vishalbala-nps)
 
== Users owning this device ==
== Users owning this device ==
{{Device owners}}
{{Device owners}}
Line 63: Line 94:
<!-- you can use {{My devices}} on your profile page to show table with all your devices -->
<!-- you can use {{My devices}} on your profile page to show table with all your devices -->


== How to enter flash mode ==
== Available Boot Modes ==
* Recovery: {{Button|Power}} + {{Button|Home}} + {{Button|Vol up}}
* Recovery: {{Button|Power}} + {{Button|Home}} + {{Button|Vol up}}
* Odin mode: {{Button|Power}} + {{Button|Home}} + {{Button|Vol down}}
* Odin mode: {{Button|Power}} + {{Button|Home}} + {{Button|Vol down}}


Download the TWRP build [https://twrp.me/samsung/samsunggalaxytab470.html here]
== Flashing Recovery ==
 
Download a build of TWRP from [https://dl.twrp.me/degas/ here]. Use the 2.8.0.1 version as later versions crash when performing a factory reset
 
=== Flashing TWRP using heimdall ===
* Boot the device to download mode
* Run the command:
<code>heimdall flash --no-reboot --RECOVERY <PATH_TO_TWRP>.img</code>
* Upon a successful flash, hold the key combinations to boot to Recovery Mode. If all went well, the device should boot into TWRP Recovery
 
== Installation ==
== Installation ==
first do:
As of now, pmbootstrap flasher can be used to flash the kernel. Attempting to flash rootfs results in a bootloop. So, the best way to install postmarketOS is using TWRP Recovery. Installing to eMMC has been tested but, SD Card installation should work (untested)
pmbootstrap init
 
then
* Ensure you have flashed TWRP on your device. It is highly recommended to take a backup of all your important data as it will all be lost!
pmbootstrap install
 
pmbootstrap install sdcard=/dev/sd*
* Run the following:
pmbootstrap flasher flash_kernel
<code>pmbootstrap init</code>
 
Select the device (samsung-degaswifi) and ensure you choose one of the supported desktop environments (listed below)
 
After initializing pmbootstrap, create the zip by running:
 
<code>pmbootstrap install --android-recovery-zip --recovery-install-partition=data</code>
 
This installs postmarketOS onto the userdata partition as the system partition is too small.
 
After building the zip, export it by running:
 
<code>pmbootstrap export</code>
 
* Boot the device into recovery mode. Then go to Wipe -> Advanced Wipe and wipe the Cache, Internal Storage and Data Partition. Then go back to the home screen and select Advanced -> ADB Sideload
 
Connect the device to your computer and sideload postmarketOS by running:
<code>adb sideload /tmp/postmarketOS-export/postmarketOS-export</code>
 
Once the installation succeeds, Reboot the device and if all went well, the device should boot into postmarketOS
 
== Supported Desktop Environments ==
LXQT is highly recommended due to performance
 
All X11 based desktop environments should work (XFCE, LXQT and Mate have been tested). Wayland based desktop environments (like Gnome, KDE Plasma, Weston) will not work due to lack of KMS and DRM support in the kernel
 
Shelli and fbkeyboard do not work and will result in the device hanging at the postmarketOS logo
 
== Wifi and Bluetooth ==
This device has a Marvell Avstar 88WL8887 Wifi+Bluetooth combo. Necessary Firmware has been extracted from Stock Android and is available in the firmware-samsung-degaswifi package
 
Wifi works with decent speed and range. However, connecting to it requires superuser privileges (attempting to add the user to the neccesary group does not seem to work for some reason). Run the following command to connect to Wifi:
 
<code>sudo nmcli dev wifi connect <SSID> password <PASSWORD></code>
 
Bluetooth audio has been tested and works flawlessly. You may need to install additional packages for Bluetooth audio
 
== Audio ==
Internal Speakers and Microphone work thanks to kernel patches and Alsa UCM config copied over from samsung-goyawifi with some minor modification
 
Audio output and input from the headphone jack do not work
 
As of 27/01/2024 on pmos edge, there is a problem due to which pulseaudio keeps crashing and restarting. This is due to an upgrade of musl. You can fix this either by:
 
1. Removing pulseaudio entirely and replacing it with pipewire (neccesary patches exist in the kernel for pw support)
2. Downgrade musl. Instructions are [https://xdaforums.com/t/t110-t111-beta-linux-for-tab-3-lite-postmarketos.4349899/page-11#post-89176846 here]
 
== Camera ==
Both the front and back camera seems to be picked up by downstream kernel
 
<syntaxhighlight lang="shell-session">
samsung-degaswifi:~$ ls /dev | grep video
video0
video1
</syntaxhighlight>
 
However attempting to interact it results in an error:
 
<syntaxhighlight lang="shell-session">
samsung-degaswifi:~$ v4l2-ctl -d /dev/video1 --set-fmt-video=width=640,height=480,pixelformat=UYVY --stream-mmap --stream-count=1 --stream-to=test.raw
                VIDIOC_REQBUFS returned -1 (Invalid argument)
</syntaxhighlight>
 
I assume this is a problem with v4l2 as I am able to use the camera works with stock Android using the postmarketOS downstream kernel
 
== Mainline Support ==
No mainline support exists for this processor


== Mainline ==
== Credits ==
There is no upstream support for this SoC.
Huge thanks to cheadrian for their work on samsung-goyawifi. Many patches (like those for audio and memfd) and configuration (like Alsa UCM, Lightdm and Wifi firmware related) have been copied over from samsung-goyawifi with some minor modification. In case if anyone wishes to work on this device, do check goyawifi's [https://wiki.postmarketos.org/wiki/Samsung_Galaxy_Tab_3_Lite_7.0_(samsung-goyawifi) device page] and [https://xdaforums.com/t/t110-t111-beta-linux-for-tab-3-lite-postmarketos.4349899/ XDA forum post]


== See also ==
== See Also ==
* pmaports (yet to be merged): https://gitlab.com/vishalbala-nps/pmaports

Revision as of 17:40, 27 January 2024

Samsung Galaxy Tab 4 7.0 Wi-Fi
Manufacturer Samsung
Name Galaxy Tab 4 7.0 Wi-Fi
Codename samsung-degaswifi
Model SM-T230/SM-T230NU
Released 2014
Type handset
Hardware
Chipset Marvell PXA1088
CPU Quad-core 1.2 GHz Cortex-A7
GPU Vivante GC1000
Display 800x1280 TFT
Storage 8 GB
Memory 1.5 GB
Architecture armv7
Software
Original software Android
Original version 4.4.2
postmarketOS
Category testing
Pre-built images no
Mainline no
Features
Flashing
Works
USB Networking
Works
Internal storage
Works
SD card
Works
Battery
Works
Screen
Works
Touchscreen
Works
Multimedia
3D Acceleration
Broken
Audio
Partial
Camera
Partial
IR TX
Broken
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Broken
Miscellaneous
FDE
Broken
Sensors
Accelerometer
Works


This is a port of postmarketOS for the Samsung Galaxy Tab 4 7.0 (degaswifi). While it has been tested on the SM-T230NU, it should theoretically work on the SM-T230 (degas) and the SM-T231 (degas3g)

This port WILL NOT WORK on any other variant of the the Samsung Galaxy Tab 4, like matisselte, matisseve, degaslte etc as these devices either have an a Qualcomm Snapdragon or an Exynos processor

Contributors

  • Luka Panio (cvbnm90i)
  • Vishal B (vishalbala-nps)

Maintainer(s)

  • Luka Panio (cvbnm90i)
  • Vishal B (vishalbala-nps)

Users owning this device

  • Bastindo (Notes: SM-T230; dead LCD, home button and battery; only spare parts)
  • Beroset (Notes: SM-T230NU)
  • Deci (Notes: SM-T230NU, broken home button, effectively bricked  :\)
  • Lucia-selvlysende (Notes: SM-T230NU. Currently trying to install pmOS.)
  • Meek (Notes: SM-T231, running postmarketOS v24.06)
  • Thisisjeff1 (Notes: i have a ton of these stupid things)
  • Vishalbala
  • Zephyr1112 (Notes: Android 4.4.2 Touchwiz mod, 1.5/8GB - Stuck home button)


Available Boot Modes

  • Recovery: Power + Home + Vol up
  • Odin mode: Power + Home + Vol down

Flashing Recovery

Download a build of TWRP from here. Use the 2.8.0.1 version as later versions crash when performing a factory reset

Flashing TWRP using heimdall

  • Boot the device to download mode
  • Run the command:

heimdall flash --no-reboot --RECOVERY <PATH_TO_TWRP>.img

  • Upon a successful flash, hold the key combinations to boot to Recovery Mode. If all went well, the device should boot into TWRP Recovery

Installation

As of now, pmbootstrap flasher can be used to flash the kernel. Attempting to flash rootfs results in a bootloop. So, the best way to install postmarketOS is using TWRP Recovery. Installing to eMMC has been tested but, SD Card installation should work (untested)

  • Ensure you have flashed TWRP on your device. It is highly recommended to take a backup of all your important data as it will all be lost!
  • Run the following:

pmbootstrap init

Select the device (samsung-degaswifi) and ensure you choose one of the supported desktop environments (listed below)

After initializing pmbootstrap, create the zip by running:

pmbootstrap install --android-recovery-zip --recovery-install-partition=data

This installs postmarketOS onto the userdata partition as the system partition is too small.

After building the zip, export it by running:

pmbootstrap export

  • Boot the device into recovery mode. Then go to Wipe -> Advanced Wipe and wipe the Cache, Internal Storage and Data Partition. Then go back to the home screen and select Advanced -> ADB Sideload

Connect the device to your computer and sideload postmarketOS by running: adb sideload /tmp/postmarketOS-export/postmarketOS-export

Once the installation succeeds, Reboot the device and if all went well, the device should boot into postmarketOS

Supported Desktop Environments

LXQT is highly recommended due to performance

All X11 based desktop environments should work (XFCE, LXQT and Mate have been tested). Wayland based desktop environments (like Gnome, KDE Plasma, Weston) will not work due to lack of KMS and DRM support in the kernel

Shelli and fbkeyboard do not work and will result in the device hanging at the postmarketOS logo

Wifi and Bluetooth

This device has a Marvell Avstar 88WL8887 Wifi+Bluetooth combo. Necessary Firmware has been extracted from Stock Android and is available in the firmware-samsung-degaswifi package

Wifi works with decent speed and range. However, connecting to it requires superuser privileges (attempting to add the user to the neccesary group does not seem to work for some reason). Run the following command to connect to Wifi:

sudo nmcli dev wifi connect <SSID> password <PASSWORD>

Bluetooth audio has been tested and works flawlessly. You may need to install additional packages for Bluetooth audio

Audio

Internal Speakers and Microphone work thanks to kernel patches and Alsa UCM config copied over from samsung-goyawifi with some minor modification

Audio output and input from the headphone jack do not work

As of 27/01/2024 on pmos edge, there is a problem due to which pulseaudio keeps crashing and restarting. This is due to an upgrade of musl. You can fix this either by:

1. Removing pulseaudio entirely and replacing it with pipewire (neccesary patches exist in the kernel for pw support) 2. Downgrade musl. Instructions are here

Camera

Both the front and back camera seems to be picked up by downstream kernel

samsung-degaswifi:~$ ls /dev | grep video
video0
video1

However attempting to interact it results in an error:

samsung-degaswifi:~$ v4l2-ctl -d /dev/video1 --set-fmt-video=width=640,height=480,pixelformat=UYVY --stream-mmap --stream-count=1 --stream-to=test.raw
                VIDIOC_REQBUFS returned -1 (Invalid argument)

I assume this is a problem with v4l2 as I am able to use the camera works with stock Android using the postmarketOS downstream kernel

Mainline Support

No mainline support exists for this processor

Credits

Huge thanks to cheadrian for their work on samsung-goyawifi. Many patches (like those for audio and memfd) and configuration (like Alsa UCM, Lightdm and Wifi firmware related) have been copied over from samsung-goyawifi with some minor modification. In case if anyone wishes to work on this device, do check goyawifi's device page and XDA forum post

See Also