Difference between revisions of "PineTab2 FAQ"

From PINE64
Jump to navigation Jump to search
(→‎Can PineTab2 play back DRM content such as Netflix?: Improve wording about user agent spoofing)
(Please no html code, the wiki is not a website)
 
(2 intermediate revisions by one other user not shown)
Line 170: Line 170:
==== Can PineTab2 play back DRM content such as Netflix? ====
==== Can PineTab2 play back DRM content such as Netflix? ====


Yes. Procedure below was confirmed to get working Disney+, Amazon Prime and Netflix, as of 2023-12-11.
Yes. Procedure below was confirmed to get working Disney+, Amazon Prime and Netflix, as of 2023-12-14.


<ol>
1 '''Install [https://aur.archlinux.org/packages/glibc-widevine glibc-widevine] from AUR.'''
  <li>
    <p>'''Install [https://aur.archlinux.org/packages/glibc-widevine glibc-widevine].'''


    <p>This adds the necessary bits that are missing from glibc versions below 2.36.
This adds the necessary bits that are missing from glibc versions below 2.36. It's available in AUR, so you can follow the standard installation process for any AUR package. E.g. <code>yay -S glibc-widevine</code> if you use <code>yay</code>. During installation it says it conflicts with, and will replace, glibc. That's OK, as expected.


    <p>It's available in AUR, so you can follow the standard installation process for any AUR package. E.g. <code>yay -S glibc-widevine</code> if you use <code>yay</code>.
Doing this explicitly is no longer actually necessary, as installing [https://aur.archlinux.org/packages/widevine widevine] should automatically install <code>glibc-widevine</code> too.


    <p>During installation it says it conflicts with, and will replace, glibc. That's OK, as expected.
2. '''Install [https://aur.archlinux.org/packages/widevine widevine] from AUR.'''
  </li>


  <li>
It automatically registers the libraries with Firefox and Chromium. After first installation, you will need to log out and back in. It might also be required to restart the browser up to 2 times before the widevine library is fully recognized and registered.
    <p>'''Install <code>widevine-aarch64</code>.'''


    <p>It used to be available in AUR, but got removed because it was ARM only (see e.g. https://forum.manjaro.org/t/widevine-in-arm/34657/66 for notes). So the https://aur.archlinux.org/packages/widevine-aarch64 page returns 404 error now, and AUR helper programs (like yay) will not be able to install it.
3. '''Test.'''


    <p>However, luckily, the GIT repository is still available. So you install it using these commands:
At this point, playing some DRM content should already work. It is best to test https://bitmovin.com/demos/drm . Disney+ and Amazon Prime also should already work fine.


<pre>
4. '''User agent spoofing for Netflix.'''
git clone https://aur.archlinux.org/widevine-aarch64.git
cd widevine-aarch64/
makepkg -sri
./register_widevine_firefox # or ./register_widevine_chromium, if you use Chromium
</pre>


    <p>The last command should answer something along the lines:
For Netflix, you will need an extra step -- spoof the user agent, i.e. pretend you're using a different device. For some reason, Netflix doesn't tolerate "WWW browser on Linux on 64-bit Arm" which you use. You can use various Firefox or Chromium extensions to change the user agent, like  like [https://addons.mozilla.org/en-US/firefox/addon/user-agent-string-switcher/ User-Agent Switcher and Manager for Firefox]. You have to pretend to be a user agent coming from ChromeOS, so it matches the ARM architecture (choosing a popular user agent like Windows on x86_64 will not work). You can peek at sample user agent strings on https://user-agents.net/platforms/chromeos/user-agents .


<pre>
User agent confirmed to work on 2023-12-11:
Widevine registered for profile xxx.default
   
Widevine registered for profile yyy.default-release
Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36
</pre>
  </li>
 
  <li>
    <p>'''Test.'''
 
    <p>At this point, playing some DRM content should already work. It is best to test https://bitmovin.com/demos/drm . Disney+ and Amazon Prime also should already work fine.
  </li>


  <li>
In the preferences of the extension (for Firefox or Chromium) you should be able to define a new entry to pretend you're using ''ChromeOS'' with the user agent string as above. Double-check you changed the user agent correctly by visiting e.g. [https://duckduckgo.com/?q=my+user+agent&t=ffab&ia=answer DuckDuckGo answer for "my user agent"].  
    <p>'''User agent spoofing for Netflix.'''


    <p>For Netflix, you will need an extra step -- spoof the user agent, i.e. pretend you're using a different device. For some reason, Netflix doesn't tolerate "Firefox on Linux on 64-bit Arm" which you use.
Once this is set up correctly, Netflix should work.


    <p>You can use various Firefox or Chromium extensions to change the user agent, like  like [https://addons.mozilla.org/en-US/firefox/addon/user-agent-string-switcher/ User-Agent Switcher and Manager for Firefox]. You have to pretend to be a user agent coming from ChromeOS, so it matches the ARM architecture (choosing a popular user agent like Windows on x86_64 will not work). You can peek at sample user agent strings on https://user-agents.net/platforms/chromeos/user-agents .
When you're confident Netflix works, you can change the "user agent spoofing" extension preferences to only change the user agent for the <code>*.netflix.com</code> domains. Otherwise you are pretending for all sites that you come from ''ChromeOS'' -- which is unnecessary (albeit harmless).
         
    <p>User agent confirmed to work on 2023-12-11:
   
<pre>
Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36
</pre>
   
    <p>In the preferences of the extension (for Firefox or Chromium) you should be able to define a new entry to pretend you're using ''ChromeOS'' with the user agent string as above. Double-check you changed the user agent correctly by visiting e.g. [https://duckduckgo.com/?q=my+user+agent&t=ffab&ia=answer DuckDuckGo answer for "my user agent"].  


    <p>Once this is set up correctly, Netflix should work.
'''Notes:'''


    <p>When you're confident Netflix works, you can change the "user agent spoofing" extension preferences to only change the user agent for the <code>*.netflix.com</code> domains. Otherwise you are pretending for all sites that you come from ''ChromeOS'' -- which is unnecessary (albeit harmless).
* https://aur.archlinux.org/packages/glibc-widevine has version 2.35 . And that is OK, despite e.g. https://github.com/AsahiLinux/widevine-installer saying that ''"Using Widevine requires glibc version 2.36 or later."'' . The https://aur.archlinux.org/packages/glibc-widevine adds the necessary glibc RELRO bits and that's enough for widevine to work.
  </li>
* In case you have <code>mobile-config-firefox</code> installed, it may cause issues according to https://forum.pine64.org/showthread.php?tid=18933&pid=120956#pid120956 . Check do you have it by a command like <code>sudo pacman -Qi mobile-config-firefox</code>. Remove it by a command like <code>sudo pacman -R mobile-config-firefox</code>.
</ol>
   
<p>Notes:


<ul>
  <li>
    <p>https://aur.archlinux.org/packages/glibc-widevine has version 2.35 . And that is OK, despite e.g. https://github.com/AsahiLinux/widevine-installer saying that ''"Using Widevine requires glibc version 2.36 or later."'' . The https://aur.archlinux.org/packages/glibc-widevine adds the necessary glibc RELRO bits and that's enough for widevine to work.
  </li>
 
  <li>
    <p>In case you have <code>mobile-config-firefox</code> installed, it may cause issues according to https://forum.pine64.org/showthread.php?tid=18933&pid=120956#pid120956 . Check do you have it by a command like <code>sudo pacman -Qi mobile-config-firefox</code>. Remove it by a command like <code>sudo pacman -R mobile-config-firefox</code> .
</ul>


[[Category:Rockchip RK3566]]
[[Category:Rockchip RK3566]]

Latest revision as of 21:10, 15 December 2023

This is a collection of tutorials and frequently asked questions for the PineTab2.

Tutorials

Putting the Device into Maskrom Mode

To recover from a bad eMMC/SPI flash, plug the included debug adapter into the charging USB-C port and switch the white switch to its "ON" position to bypass eMMC/SPI boot. This tries to boot from SD, and if no SD is inserted, enters Maskrom mode.

Networking using USB

Until the internal BES2600 WIFI has a stable driver, the community suggests that you connect using USB. This section summarizes the more detailed information in File:PineTab2 USB Guide.pdf, which covers connecting via a tethered Android phone, a suitable USB WIFI adapter, a wired USB Ethernet adapter, and a tethered iOS device.

Selecting a USB WIFI Adapter

Insert a supported WIFI dongle in the upper USB port, using a USB-C to USB-A adapter as necessary. As a general rule, single state adapters are recommended. Even better, select one from this list: https://github.com/morrownr/USB-WiFi/blob/main/home/The_Short_List.md

If you must use a multi-state adapter and it isn't recognized by the kernel, you can try ejecting the device. This should force it back into adapter mode. If this does not work, you can try installing usb_modeswitch to troubleshoot. You will need to temporarily use another method to get internet (such as phone tethering below) or load the package on an SD card to install it.

Performing USB Tethering with an Android Phone

This guide simply describes HOW to undertake this option. The user is responsible for ensuring that their wireless plan permits such use, and for any fees incurred.

You can use an Android phone as a network adapter.

You'll need:

  • An Android phone
  • A USB OTG adapter (or the USB-C to USB-C cable)
  • Some knowledge of your variation of Android

Do the following in order:

  • Plug in the device to the PineTab2 using the USB cable and a USB OTG adapter
  • On your android phone, open the settings app (specifics from here may vary on version)
    • Navigate to "Network & Internet"
    • Navigate to "Hotspot & Tethering"
    • Tap on "USB Tethering"

You should now see a new network interface on the PineTab2.

Performing USB Tethering with an iPhone

Prerequisite:

On the iPhone make sure that Settings -> Personal Hotspot -> Allow others to join is turned on.

  1. Use an Lightning (Apple) to USB-C (Pinetab2) cable to connect the devices.
  2. In the Pinetab make sure to use the USB-C port next to the volume keys.
  3. Once the cable is connected open your iPhone.
  4. You will see a request to trust the new device. Trust it.
  5. Confirm by typing in your Apple Device PIN

This should be it. The Pinetab2 will show you the new device and the network connects to `Wired connection 1`

Make sure to open the iPhone once you reconnect.

Performing USB Tethering with a KaiOS phone

This guide simply describes HOW to undertake this option. The user is responsible for ensuring that their wireless plan permits such use, and for any fees incurred.

You can use a KaiOS phone for mobile Internet use with your PineTab2.

You'll need:

  • A KaiOS phone
  • A USB OTG adapter
  • Your device’s charging cable
  • Some knowledge of your KaiOS phone

Do the following in order:

  • Plug the device into the PineTab2 using the USB cable and a USB OTG adapter
  • On your KaiOS phone, open settings (specifics from here may vary on version)
  • Navigate to "Network & Connectivity"
  • Navigate to "Internet Sharing"
  • Select "USB" and select On under USB tethering (Note: This option will be greyed out unless connected to the PineTab2)

You should now see a new network interface on the PineTab2 and it should show a wired connection icon.

Screen Rotation

Auto-rotating the Screen

Auto-rotation is handled by your operating system. However, the following general steps should work on distributions that support iio-sensor-proxy:

  • To enable auto-rotation, install the iio-sensor-proxy package: sudo pacman -S iio-sensor-proxy and reboot.
  • Some desktop environments, such as KDE, default to only allowing screen rotation while in tablet mode (detached from the case.) To enable it with the keyboard attached, go to System Settings-->Display and Monitor -> Display Configuration -> Uncheck "Only when in tablet mode" and click "Apply."

Rotating the Login Screen

Login screen orientation is handled by your operating system. Below are the instructions for the SDDM login screen that ships with the factory image:

By default, the login screen is set to display in portrait mode. If you wish to change it to landscape mode to match the keyboard while in the case, use the following steps (Credit to chzbacon) :

  • Install necessary software: sudo pacman -S xorg-xrandr xorg-xinput
  • Edit /usr/share/sddm/scripts/Xsetup. For example, using nano: sudo nano /usr/share/sddm/scripts/Xsetup and add the following two lines to the end of file:
    • xrandr --output DSI-1 --mode 800x1280 --rate 60.00 --rotate right
    • xinput set-prop "pointer:Goodix Capacitive TouchScreen" --type=float "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1
  • Now edit /etc/sddm.conf.d/sddm.conf, for example: sudo nano /etc/sddm.conf.d/sddm.conf and add the following two lines (case sensitive):
    • [X11]
    • DisplayCommand=/usr/share/sddm/scripts/Xsetup
  • Reboot, and your login screen should now display in landscape mode.

Frequently Asked Questions

General

How does the PineTab2 compare to the Pinebook Pro?

It's slower, as it is intended to be a successor to the PineTab1, not the Pinebook Pro. It'll still handle web browsing, video playback and documents fine though.

What is the Performance of the PineTab2 compared to the PineTab-V?

The PineTab2 is notably faster than the PineTab-V. You can see this by comparing the Quartz64 sbc-bench results to the Star64 ones. Performance should not be a factor of consideration when purchasing a PineTab-V.

I am a casual user with minimal Linux experience. Is this device for me?

The PineTab 2 is considered early release at this point, and the community is expected to develop support for it over time. For example, the PineTab2#Known_Issues page details several features that are not yet fully working. You may at times need to troubleshoot this device and some development experience is ideal if you want to realize the tablet's full potential at this stage.

For these reasons, the PineTab2 may not be the ideal device for casual users. However, if you feel up to the challenge and want to learn while joining a great community, you are more than welcome! Please join one of our chat platforms: the community is always happy to help!

What works, what doesn't?

Please see PineTab2#Known_Issues.

I only know Python, can I help with drivers?

Drivers are (at least typically) written in the C programming language. Unfortunately, there is no way to "code drivers in Python" because usually drivers need to access and process memory allocation directly. If you feel like this is interesting to you, we suggest you to spend some time learning the C programming language, maybe with an emphasis in device driver development. The good news is that, since you already know a programming language, you already know part of the skill.

In short, you can only help with drivers development if you learn the C programming language first.

Hardware

Does the Tablet support a Pen?

No, adding a digitiser for pen inputs would make the price too high.

Is there SPI Flash?

Yes! A 128 Mbit flash chip (sk25lp128) is reportedly present on production devices.

Software

What operating systems are currently available?

The PineTab2 uses ARM operating systems. Please see PineTab2 Releases for a current list of software releases.

How can I install an operating system on the SD card / eMMC?

See the article PineTab2.

Can I run Android on it?

Theoretically yes, practically there's little chance anyone wants to make a well-supported Android build for this device. If you're looking for an Android tablet, buy any mainstream tablet, and you'll get better value for your money.

However, if you just need to run a few simple android apps, you might want to have a look at Waydroid which can be installed on Arch Linux ARM using the following command: sudo pacman -S waydroid

Booting

What's the boot order for SD cards and eMMC?

The SPI and the internal memory (eMMC) have a higher boot priority than the microSD card. Please see the PineTab2 for more detailed information.

Can I install a different OS on my PineTab2?

Yes! While all PineTab2 come with an OS preinstalled, you are free to use any OS on the integrated storage (the eMMC) or an SD card. See PineTab2 and PineTab2 Releases for how to install them.

Bluetooth

The Bluetooth isn't working

The BES2600 Bluetooth driver still needs to be implemented. Please see the #Networking Using USB section above for a workaround.

Wi-Fi

The Wi-Fi isn't working

The BES2600 Wi-Fi driver needs major cleanup and bugfixing: at the moment it causes system crashes. Please see the #Networking Using USB section above for a workaround.

Video

Can PineTab2 play back DRM content such as Netflix?

Yes. Procedure below was confirmed to get working Disney+, Amazon Prime and Netflix, as of 2023-12-14.

1 Install glibc-widevine from AUR.

This adds the necessary bits that are missing from glibc versions below 2.36. It's available in AUR, so you can follow the standard installation process for any AUR package. E.g. yay -S glibc-widevine if you use yay. During installation it says it conflicts with, and will replace, glibc. That's OK, as expected.

Doing this explicitly is no longer actually necessary, as installing widevine should automatically install glibc-widevine too.

2. Install widevine from AUR.

It automatically registers the libraries with Firefox and Chromium. After first installation, you will need to log out and back in. It might also be required to restart the browser up to 2 times before the widevine library is fully recognized and registered.

3. Test.

At this point, playing some DRM content should already work. It is best to test https://bitmovin.com/demos/drm . Disney+ and Amazon Prime also should already work fine.

4. User agent spoofing for Netflix.

For Netflix, you will need an extra step -- spoof the user agent, i.e. pretend you're using a different device. For some reason, Netflix doesn't tolerate "WWW browser on Linux on 64-bit Arm" which you use. You can use various Firefox or Chromium extensions to change the user agent, like like User-Agent Switcher and Manager for Firefox. You have to pretend to be a user agent coming from ChromeOS, so it matches the ARM architecture (choosing a popular user agent like Windows on x86_64 will not work). You can peek at sample user agent strings on https://user-agents.net/platforms/chromeos/user-agents .

User agent confirmed to work on 2023-12-11:

Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36

In the preferences of the extension (for Firefox or Chromium) you should be able to define a new entry to pretend you're using ChromeOS with the user agent string as above. Double-check you changed the user agent correctly by visiting e.g. DuckDuckGo answer for "my user agent".

Once this is set up correctly, Netflix should work.

When you're confident Netflix works, you can change the "user agent spoofing" extension preferences to only change the user agent for the *.netflix.com domains. Otherwise you are pretending for all sites that you come from ChromeOS -- which is unnecessary (albeit harmless).

Notes: