Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 29,701
» Latest member: Stunnned
» Forum threads: 16,261
» Forum posts: 117,193

Full Statistics

Latest Threads
Quill OS for the PineNote
Forum: PineNote Software
Last Post: Szybet
3 hours ago
» Replies: 0
» Views: 29
PinePhone, PinePhone Pro,...
Forum: PinePhone Hardware
Last Post: j_s
7 hours ago
» Replies: 2
» Views: 153
auto-owning the SD card i...
Forum: PineTab Software
Last Post: biketool
Today, 04:16 AM
» Replies: 1
» Views: 378
Old Danctnix server in Pa...
Forum: PineTab Software
Last Post: Stunnned
Yesterday, 01:27 PM
» Replies: 2
» Views: 187
Volumio (PINE A64-LTS / S...
Forum: Linux on PINE A64-LTS / SOPINE
Last Post: kapqa
11-23-2025, 02:02 AM
» Replies: 8
» Views: 15,547
Reinstallation Arch Linux...
Forum: General Discussion on PineTab
Last Post: rth
11-22-2025, 08:25 PM
» Replies: 1
» Views: 227
Recycling pinephone as ho...
Forum: PinePhone Hardware
Last Post: biketool
11-20-2025, 09:04 AM
» Replies: 5
» Views: 633
Light Sensor / Proximity ...
Forum: General Discussion on PinePhone
Last Post: WhiteHexagon
11-18-2025, 03:07 PM
» Replies: 1
» Views: 211
How to stop it turning on
Forum: General Discussion on PinePhone
Last Post: biketool
11-18-2025, 02:30 PM
» Replies: 3
» Views: 491
8/24 status of JumpDrive
Forum: PinePhone Software
Last Post: biketool
11-18-2025, 01:27 PM
» Replies: 5
» Views: 2,196

 
  How I am running ubports as a daily driver
Posted by: tahayassen - 03-01-2020, 12:35 PM - Forum: UBPorts on PinePhone - Replies (11)

1. Write ubports image to emmc
2. Extend root filesystem to 16GB as per https://askubuntu.com/a/958145

Code:
sudo parted /dev/mmcblk2
  resizepart 1
  yes
  -0
  quit
sudo resize2fs /dev/mmcblk2p1

3. Wifi work-around.


Code:
nano /home/phablet/fix-wifi.sh:
sudo nmcli radio all off
sudo rmmod 8723cs
sudo modprobe 8723cs
sudo nmcli radio all on


Heart Getting Started: Maemo Leste - Devuan / Debian distro for your PinePhone
Posted by: buffer - 03-01-2020, 11:47 AM - Forum: Maemo Leste on PinePhone - Replies (1)

Did you know Maemo Leste is Debian for your PinePhone? For real! Big Grin  It is Devuan with the arm64 architecture running on stretch. They will soon be upgrading to buster and supporting both Debian and Devuan simultaneously. They use automation in their package maintenance with jenkins (similar to debian's buildd) to ease porting and updates. Porting packages to Maemo Leste is basically a simple matter of porting to arm64 version of Debian, which benefits both projects. So you will pretty much have all the benefits of the Debian repository, especially as the project matures. In addition to the main repositories, there is a community repository (so, like AUR).

There have been a few parallel attempts to port Debian to the ARM architecture, Maemo being the longest running. Currently, the project for porting Debian to arm and arm64 is unmaintained. You might be wondering, why hasn't this been done sooner? Simply put, everyone has been relying on the Android kernel, so benefits are not making it back to Linux. However, there are a few more projects for Debian on ARM (mainly ARM64) including PureOS, Dragonbox Pyra, Armbian, and Debian + phosh, so that's about to change rapidly.

Most discussion about Maemo occurs on their website and platforms, go here for an updated list of links. There is an ongoing thread about Maemo Leste for the Pinephone.

With volunteers we can easily test and get it to a stable condition on the PinePhone, so I compiled some useful links:

Repository of PinePhone images to play with:
https://maedevu.maemo.org/images/pinephone/

Build your own image:
https://github.com/maemo-leste/image-builder
https://leste.maemo.org/Image_Builder

Introduction:
https://leste.maemo.org/Main_Page
https://maemo-leste.github.io/
https://maemo-leste.github.io/maemo-lest...kages.html
https://leste.maemo.org/Leste_FAQ

Wikis:
https://leste.maemo.org/PinePhone
https://wiki.pine64.org/index.php/PinePh...aemo_Leste

Development and Porting:
https://leste.maemo.org/Development
https://leste.maemo.org/Development/Porting_Packages
https://leste.maemo.org/Development/Building_Packages
https://leste.maemo.org/Development/Tasks
https://wiki.debian.org/HowToPackageForDebian

Vote for Maemo Leste to be added to distrowatch

If any corrections or updates are needed, let me know


  Battery life and ways to improve - request for official statement
Posted by: p1trson - 03-01-2020, 09:18 AM - Forum: PostmarketOS on PinePhone - No Replies

Hello folks,

so far I didn't see any official statement why the battery life is so poor and whether there's anything to try/test to improve it. This should be the top priority imho! Observations:
- it's always top of the phone which gets hot (where the modem is located).
- touching the uncovered modem my guess would be between 55-65C all the time. This higher heat from the modem can be felt also on the screen side
- pmOS with plasma-mobile is way cooler based on my tests today than the Phosh image (tested today with latest images, no SIM)
- checking the CPU frequencies seems to be ok, however the lowest frequency seems to be high imho, is this due to hw limitations ? Trying to set the available frequencies to be lower didn't do the trick

Code:
  current CPU frequency is 648 MHz (asserted by call to hardware).

  cpufreq stats: 648 MHz:73.58%, 816 MHz:3.03%, 912 MHz:0.67%, 960 MHz:0.54%, 1.01 GHz:0.60%, 1.06 GHz:0.57%, 1.10 GHz:0.84%, 1.15 GHz:20.17%  (4271)

- is there any way to exactly track what is eating up the battery ?
- is the a known method to reduce power usage siginificantly ?
- is there any supported way to measure the temperature of various components in alpine linux ?
- why is the modem so hot even though I have no SIM inside the phone ?

Cheers!


  pip install not working -- Manjaro
Posted by: User 15552 - 03-01-2020, 08:21 AM - Forum: Linux on Pinebook Pro - Replies (2)

Hi, 

I recently switched my pinebook pro to Manjaro. Everything seems good so far. 

But I cannot install the scipy package via `pip`. After installing Blas and some cmake stuff I got it to install numpy via `pip install numpy` but scipy  still does not work. I know that there is a python-scipy package that I can get via pacman but I was wondering why `pip install scipy` does not work. 


At first it crashed because of memory issues, but I set up swap as described here and it worked. However it still will not work -- output below . What is `ld` and what is `collect2` and does anybody understand what is going on? 

Some of the output:

Code:
g++ -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now build/temp.linux-aarch64-3.8/scipy/sparse/sparsetools/sparsetools.o build/temp.linux-aarch64-3.8/scipy/sparse/sparsetools/csr.o build/temp.linux-aarch64-3.8/scipy/sparse/sparsetools/csc.o build/temp.linux-aarch64-3.8/scipy/sparse/sparsetools/bsr.o build/temp.linux-aarch64-3.8/scipy/sparse/sparsetools/other.o -L/usr/lib -Lbuild/temp.linux-aarch64-3.8 -o build/lib.linux-aarch64-3.8/scipy/sparse/_sparsetools.cpython-38-aarch64-linux-gnu.so -Wl,--version-script=build/temp.linux-aarch64-3.8/link-version-scipy.sparse._sparsetools.map
 collect2: error: ld returned 1 exit status
 Running from scipy source directory.
 /tmp/pip-build-env-op9fysr1/overlay/lib/python3.8/site-packages/numpy/distutils/system_info.py:690: UserWarning:
     Optimized (vendor) Blas libraries are not found.
     Falls back to netlib Blas library which has worse performance.
     A better performance should be easily gained by switching
     Blas library.
   self.calc_info()
 /tmp/pip-build-env-op9fysr1/overlay/lib/python3.8/site-packages/numpy/distutils/system_info.py:782: UserWarning: Specified path /usr/local/include/python3.8 is invalid.
   return self.get_paths(self.section, key)
 error: Command "g++ -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now build/temp.linux-aarch64-3.8/scipy/sparse/sparsetools/sparsetools.o build/temp.linux-aarch64-3.8/scipy/sparse/sparsetools/csr.o build/temp.linux-aarch64-3.8/scipy/sparse/sparsetools/csc.o build/temp.linux-aarch64-3.8/scipy/sparse/sparsetools/bsr.o build/temp.linux-aarch64-3.8/scipy/sparse/sparsetools/other.o -L/usr/lib -Lbuild/temp.linux-aarch64-3.8 -o build/lib.linux-aarch64-3.8/scipy/sparse/_sparsetools.cpython-38-aarch64-linux-gnu.so -Wl,--version-script=build/temp.linux-aarch64-3.8/link-version-scipy.sparse._sparsetools.map" failed with exit status 1
 ----------------------------------------
 ERROR: Failed building wheel for scipy
 ERROR: Command errored out with exit status 1:
  command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-mtu_9mu8/scipy/setup.py'"'"'; __file__='"'"'/tmp/pip-install-mtu_9mu8/scipy/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' clean --all
      cwd: /tmp/pip-install-mtu_9mu8/scipy
 Complete output (9 lines):
 
 `setup.py clean` is not supported, use one of the following instead:
 
   - `git clean -xdf` (cleans all files)
   - `git clean -Xdf` (cleans all versioned files, doesn't touch
                       files that aren't checked into the git repo)
 
 Add `--force` to your command to use it anyway if you must (unsupported).
 
 ----------------------------------------
 ERROR: Failed cleaning build dir for scipy
ERROR: Could not build wheels for scipy which use PEP 517 and cannot be installed directly
A bit earlier I found this
Code:
 creating /tmp/tmpkgfz2rq5/tmp
 creating /tmp/tmpkgfz2rq5/tmp/tmpkgfz2rq5
 compile options: '-I/usr/local/include -I/usr/include -c'
 gcc: /tmp/tmpkgfz2rq5/source.c
 gcc -pthread /tmp/tmpkgfz2rq5/tmp/tmpkgfz2rq5/source.o -L/usr/lib -lblas -o /tmp/tmpkgfz2rq5/a.out
 /usr/bin/ld: /tmp/tmpkgfz2rq5/tmp/tmpkgfz2rq5/source.o: in function `main':
 /tmp/tmpkgfz2rq5/source.c:6: undefined reference to `cblas_ddot'
 /usr/bin/ld: /tmp/tmpkgfz2rq5/source.c:6: undefined reference to `cblas_ddot'
 collect2: error: ld returned 1 exit status
 gcc -pthread /tmp/tmpkgfz2rq5/tmp/tmpkgfz2rq5/source.o -L/usr/lib -lcblas -lblas -o /tmp/tmpkgfz2rq5/a.out
 customize UnixCCompiler

Update:
tried to import numpy and get the following error:
Code:
Original error was: /usr/lib/python3.8/site-packages/numpy/core/_multiarray_umath.cpython-38-aarch64-linux-gnu.so: undefined symbol: cblas_sgemm


  Smooth scrolling between watch faces with RIOT and LittlevGL
Posted by: bergzand - 03-01-2020, 07:09 AM - Forum: Development Discussion on PineTime - Replies (3)

For a few weeks now, basic functionality is working with my PineTime firmware project. It displays the time, synchronized over Bluetooth, and I'm able to
navigate between simple applications with touchscreen gestures. This last week I started work on getting the hardware scroll support in the display working for my firmware. The goal was to have a smooth scrolling experience between different watch faces. Now that I have it working the way I want it, it is time to write down how I've done it. This post got a bit longer than I initially expected. Scroll down to the bottom for a link to my code and a video of the result.

For those not familiar with my firmware, I've been working on a generic, but fairly modular PineTime firmware for a while now. One of the goals is to make it easy to develop extra watch faces and applications by other developers and extend and tune their version of the firmware to their needs. The firmware is based on RIOT,  LittlevGL, Nimble and will use LittleFS for the filesystem. RIOT is an embedded operating systems geared towards IoT devices. It provides threading, power efficiency and the HAL out of the box to support devices like the PineTime.

Integrating smooth scrolling into the LittlevGL graphics was challenging. LittlevGL provides a high level graphics interface, screens are built from elements such as labels, buttons and other high level GUI elements. Setup of the library requires a few callbacks, one to render a rectangular area of pixels on the screen and one to retrieve input events from the touch screen. LittlevGL supports full partial updates where it will only render the rectangular area on the display that requires updating. LittlevGL is able to work with rendering buffers smaller than the display area and will send out multiple render commands to update the full display if this is the case.

However, for the scroll to work it is required to render the full screen of the PineTime and not only the diff between the two different watch faces. This is because of how the hardware scroll behaviour on the ST7789V works. The ST7789V is a 240x320 pixels TFT controller. With the display of the PineTime being only 240x240 pixels big, we have an area of 240x80 pixels that is not visible on the screen, but is available in the chip to write to. So of this 240x320 pixels of display RAM on the chip, an area of 240x240 is used for the screen. The exact area displayed on the screen can be adjusted with the VSCSAD command (0x37, page 218 of the manual). With this command it is possible to configure on which row the top of the screen will start to render.

To achieve vertical scrolling we first write part of the new screen content to the unused display RAM area. Then the scroll start address is modified to show the new part of the new screen content and the remaining part of the old screen content. With the scroll start address adjusted, the next area that is out of the display can be updated after which the scroll start address is adjusted again to show the new area. Repeat this until the old content is completely replaced with the new content. If this is done fast enough, the stutter of the piecewise content updates is not visible to the human eye. The direction of the scroll start address adjustments will determine the direction of the display scroll motion. The catch with this hardware scroll is that it requires a full display content update. Even if both screens are similar in content, the content of the display RAM is shifted by 80 rows compared to the previous content. Furthermore, most of the previous content is overwritten by this operation.

LittlevGL is optimized to efficiently update partial areas of the screen to minimize the amount of data transfers required to the display. With the SPI connection to the ST7789V chip limited at 8Mhz, this is most of the time the limiting factor in the refresh rate of the screen content. The partial updates help here to make screen updates as smooth and fast as possible and minimize the screen render tearing associated with this.But for the smooth scrolling to work, it is LittlevGL needs to be convinced to render the full screen content instead of a partial refresh. To know how to do this we need to know of the refresh behavior of LittlevGL is done.

Internally, LittlevGL tracks which objects are modified between render operations. Modifying the text string of a label, or pressing a button sets a flag on those objects and triggers a re-render of the area occupied by those objects and all child objects. The rendered objects are internally organized within LittlevGL as a tree with a screen type object at the root. Multiple levels are possible, for example a button and a label contained within a small pop-up message. As mentioned, a screen type object is the base object of the tree structure of the GUI elements. It can be replaced by a new screen object for example to render different applications.

My PineTime firmware creates a new screen when switching between applications. The application itself will build a new screen and the GUI library only has to pass the new screen object to LittlevGL and remove the old screen object. The trick is that this in turn can be used to trigger a scroll operation. As a screen object encompasses the full display area, invalidating it by replacing it triggers a refresh of the full 240x240 display area. At this point it hooks into the low level GUI code of my firmware. When the firmware is instructed to switch between two applications, it is passed a scroll direction. It will switch the active screen object for a new one in LittlevGL and store locally the specified scroll direction. As soon as LittlevGL starts calling the rendering callback, this scroll direction is retrieved and used to determine if and how both the render offset and a new display scroll start address should be modified. After a full 240x240 pixels render, the GUI code automatically switch back to non-scroll behaviour to allow partial updates of the current screen by LittlevGL.

Results:

The result of this is visible in a short video I recorded. It shows smooth scrolling between different watch faces. Only the watch face
showing the time is fully functional, the other two are dummies two demonstrate the scroll operation. Switching between the watch faces is triggered by up and down swipe gestures as detected by the touch screen controller. A single render chunk is 240x5 pixels of content on the display. After every pixel chunk transferred, the scroll start address is updated to show the new chunk. This slows down the refresh speed a tiny bit, but this is acceptable to get this result.

Full firmware source (binaries available) on the Github project


  Android TV 8 or 9 on Rock64 ?
Posted by: chrbar - 02-29-2020, 10:36 PM - Forum: Android on Rock64 - Replies (2)

Hello,

Is it possible to install and run Android TV 8 or 9 on Rock64 ?

Thanks,
Chris


  Methods to Power Off PinePhone
Posted by: Rocky - 02-29-2020, 06:47 PM - Forum: UBPorts on PinePhone - Replies (3)

First off let me say how pleased I am with this device. 
UBPorts Ubuntu Touch seems very functional.
Interface is just easy to navigate.

I hope this subject isn't stupid as I prefer GUI interface and the actual hardware power button (switch) seems funky.
Like why should I have to hold in power button for 30 seconds < > to powerdown.
Sometimes device goes through shutdown actions just to suspend.

In Ubuntu Touch software interface I can't find shutdown nor poweroff setting.

Oh yea plugging in the usb-c charging adapter to charge the PinePhone powers phone on? What the heck am I missing.
Is that normal.

Do I have resort to terminal commands
As this is my first mobile "phone" I wish there was some very basic documentation for PinePhone like a PDF user manual.

Maybe I'm asking for too much.
Please be my community!
How to be a newb - Just ask me ...  Undecided


  Sharing a breakout board I've made for the pogo pins
Posted by: SMR404 - 02-29-2020, 02:15 PM - Forum: PinePhone Accessories - Replies (1)

Hi all,

I've made a breakout board for the Pinephone's pogo pins. This might make the process of testing accessory hardware easier when it is in an early stage of development (e.g. not ready to be mounted directly to the phone).

Here is the Github repository with pictures of it installed and the KiCad source files: https://github.com/SMR404/PinephonePogoBreakout


Also, I made a Reddit post with the same (redundant) info: https://old.reddit.com/r/pinephone/comments/fa43gp/time_to_get_acquainted_with_the_expansion_port

I hope this is a help to some of you!


  Preferred distro in Feb 2020?
Posted by: e-minguez - 02-29-2020, 09:24 AM - Forum: Linux on Pinebook - Replies (21)

Hi folks,
What is the best distro as of today for the original Pinebook/1080p in terms of features available? Does hardware acceleration, suspend, wifi, etc. landed in the kernel?

It seems the major focus is the Pinebook Pro those days but I'm wonder what can be done with the original Pinebook.

Thanks.

Enviado desde mi ONEPLUS A5010 mediante Tapatalk


  gigging with the PBP
Posted by: mamboman777 - 02-29-2020, 09:19 AM - Forum: General Discussion on Pinebook Pro - Replies (2)

Record18 tracks of audio onto my PBP this weekend. No plugins, just fader automation. Still, though...



Attached Files
.jpg   IMG_20200229_092103_01_compress33.jpg (Size: 285.34 KB / Downloads: 501)