A month of Mobian
#1
Rainbow 
About a month ago, I got my PinePhone CE with Mobian. Since soon after the box was opened, I have used it as my "daily driver" - but I am not a normal user. If the phone doesn't work, I experience no withdrawl, but instead a pleasant sense of normalcy. Perhaps I sorta live in the 1980s... It's not perfect, but it works about 95% of the time, by my rather limited definition of "works" (calls, basic texts, commandline, internet).

Below I'll mention the remaining issues, my todo items left, stuff I resolved, and some of my customizations.

Issues

  1. Too hot while on a call.
  2. Headset audio out (speaker) works, but audio in (mic) does not work.
  3. Speakerphone mute does not work (pretty sure that this is a known issue, but can't find any posts).
  4. Speakerphone creates heavy echo for caller.
  5. Keyboard: "CTRL lock" by default, prefer only CTRL for next key.
  6. Keyboard: no CAPs lock.

Todos

  1. Get MMS to work (currently no picture / group messages).
  2. Numeric password bothers me.
  3. Firewall needs attention (I assume, haven't looked yet).
  4. Finish going through all the FAQs and forums.

Resolved

  1. After setup, I got a blank screen with a bar across it, lacking any kind of prompt. This is normal, it's the disk encryption key prompt. Shouldn't it maybe have a prompt, though?
  2. T-Mobile US works? Yes, it does. A major concern when I ordered the phone.
  3. Modem answers after a long downtime? Yes, it does. This was just paranoia on my part. Observed the phone waking upon incoming call, as it should.
  4. "Software" app doesn't update well. I don't try daily, but whenever I do it gives me one error or another. Rather than putting effort into it, I just use apt directly from shell. See related customizations below.
  5. During first upgrade (via apt), my PIN stopped working. It's known issue with a full description and workaround.
  6. After the first upgrade, some packages were "kept back". This happens infrequently with any Debian-based distribution, and various options exist to fix the issue. I prefer the safe way, with apt --with-new-pkgs upgrade.
  7. After fixing the last issue, some important packages were not installed. Two or three packages were missing, and mentioned in error messages. One was pinephone-support, I don't recall the other(s). I identified the packages, installed them, and marked them as automatically installed, e.g.: apt install pinephone-support and then apt-mark auto pinephone-support.
  8. Commandline tools (e.g. wget, perl, curl) had no root CA certificates. Determined /etc/ca-certificates.conf was blank. Fixed via dpkg-reconfigure ca-certificates.
  9. My contacts had not magically appeared on the phone. Very non-frustrating. I had them in a VCF, so I followed this guide to import contacts from VCF.
  10. My desktop (debian) got disconnected from its network each time I plugged in the pine phone. USB networking was overriding other network interfaces. I feel there's a more elegant solution than what I did, which would allow me to make network connections over USB. Since that hasn't been a priority, I just set USB network not to automatically reconnect by running this on the desktop: nmcli con mod "Wired connection 1" connection.autoconnect no.
  11. The UI presents no clean way to turn on and off wifi. The buttons exist, sure. However when you toggle just wifi, it also affects airplane mode, and will toggle bluetooth on even when it was previously off. Others have posted about this, and I think I recall it mentioned that it's an issue with phosh somehow, but I didn't find a "central" post. Instead, I just toggle via commandline. See related customizations below.

Customization: Screen Stays On

In commandline, many commands take a while to finish, while no input is needed but the user wants to watch anyway. This wrapper alias allows you to keep the screen on until the command exits. It's a mobian tweak to use it for sudo in general. This alias lets you use it for non-sudo commands, e.g. wake ping -c 30 pine64.org.

Code:
alias wake=/usr/bin/gnome-session-inhibit


Customization: Change Background Image

If you want to change the background image automatically or otherwise via commandline, do something like this:

Code:
gsettings get org.gnome.desktop.background picture-uri file:///home/mobian/new-background.jpg
gsettings get org.gnome.desktop.screensaver picture-uri file:///home/mobian/new-background.jpg


Customization: Microsecond Sleep

If you want to wait for a partial second, use this function. It requires Ruby or Python to be installed. This isn't really pinephone specific, but it's a prerequisite for some of the other customizations below.

Code:
function usleep {
    local rubycmd pythoncmd cmddone
    cmddone=""
    rubycmd=`command -v ruby`
    if [ ! -z "$rubycmd" -a -x "$rubycmd" ]; then
        $rubycmd -e "sleep($1)"
        cmddone=done
    fi
    pythoncmd=`command -v python`
    if [ ! -z "$pythoncmd" -a -x "$pythoncmd" ]; then
        $pythoncmd -c "import time; time.sleep($1);"
        cmddone=done
    fi
    if [ -z "$cmddone" ]; then
        echo subsecond sleep function not found 2>&1
        return 1
    fi
}


Customization: Wait for Network Connectivity

If you're automating something that needs networking to come up before running a command, use this function. Requires the usleep function from above, or a similar way to get usleep at the commandline. E.g. inet-block && ping -c 1 pine64.org.

Code:
function inet-block {
    while [ $( nmcli --colors no networking connectivity ) != full ]; do
        usleep 0.15
    done
}


Customization: Wifi On for Just a Specific Command

If you want to be stingy with your battery and bring wifi up for just one specific command, use this function wrapper. Requires the inet-block function from above. E.g. wifi apt-get update.

Code:
function wifi {
    local state
    state=$( nmcli --colors no radio wifi )

    if [ $state = disabled ]; then
        nmcli radio wifi on
        inet-block
    fi

    "$@"

    if [ $state = disabled ]; then
        nmcli radio wifi off
    fi
}


Customization: Disable Packagekit for Just a Specific Command

If you want to do something Packagekit (the automated package updater) temporarily disabled, use this function wrapper. This is good for apt and related commands, to avoid being locked out. E.g. no-pkgkit wifi sudo apt update.

Code:
function no-pkgkit {
    local state
    systemctl is-active --quite packagekit
    state=$!

    [ $state = 0 ] && sudo systemctl stop packagekit

    "$@"

    [ $state = 0 ] && sudo systemctl start packagekit
}


Customization: Update Software Using Wifi Minimally

If you want to do a quick update, while using wifi only when it's necessary, use this alias. The alias name is kept short for easy typing, but you could rename it to something that makes more obvious sense. This will ask for user confirmation an additional time, compared with a normal apt update && apt upgrade, since it is doing the download first, and then the install as a seperate command. Requires no-pkgkit and wifi functions from above. E.g. uuu.

Code:
alias uuu='no-pkgkit wifi bash -c "sudo apt update && sudo apt --download-only upgrade" && sudo apt --no-download upgrade'

If instead you want to get rid of that extra confirmation, at the cost of a little bit of extra time with wifi on, then use this simpler version instead:

Code:
alias uuu='no-pkgkit wifi bash -c "sudo apt update && sudo apt upgrade"'


Customization: Cellular Network On for Just a Specific Command

If you want to run a single command with cellular networking enabled, use this function wrapper. E.g. wwan ping -c 1 pine64.org.

Code:
function wwan {
    local device state

    device=$( nmcli --color no --terse device status | awk 'BEGIN {FS=":"} $2=="gsm" {print $1}' )
    if [ -z "$device" ]; then
        echo wwan: could not find wwan device name 1>&2
        return 1
    fi

    state=$( nmcli --colors no --terse device status | grep -E ^$device | cut -f3 -d: )

    if [ $state = disconnected ]; then
        nmcli device connect $device
        inet-block
    fi

    "$@"

    if [ $state = disconnected ]; then
        nmcli device disconnect $device
    fi
}


Customization: Keep Home Directory in Git Repo

This isn't pinephone specific, and nothing above needs it. I've been doing it for a while and it made the whole process of developing and using the stuff above easier. See this guide.
  Reply
#2
Forgot one customization, to go along with the uuu alias above. This one installs an app, using minimal wifi:

alias iii='no-pkgkit wifi sudo apt install'
  Reply
#3
(04-08-2021, 02:56 PM)Ri3qXkW4hjb Wrote:
  1. ... Speakerphone creates heavy echo for caller. ...

The speaker and mic are almost touching each other.  Big Grin 
Call audio via bluetooth will help (when/if it comes along) but I don't see any solution other than to move the speaker or mic (or maybe a louder earpiece spkr). Undecided
In addition to the echo, speaker-to-mic bleed will "auto select" voice prompt menu options. Big Grin Big Grin 

it is kind of hilarious when a menu navigates itself by asking to press or SAY a number then selecting the number for you because the mic heard the robot say a number, love it! 

but.... It's hard to hear voice menus through the earpiece spkr while holding it to see and navigate the screen.
I'm quite pleased that this is my biggest usability problem with the PinePhone. Big Grin

Thanks for the post.
  Reply
#4
Quote:Call audio via bluetooth will help (when/if it comes along) but I don't see any solution other than to move the speaker or mic (or maybe a louder earpiece spkr).

I'm using a wired microphone/earbud headset until such time as bluetooth audio is working.
  Reply
#5
(04-10-2021, 06:14 AM)Zebulon Walton Wrote:
Quote:Call audio via bluetooth will help (when/if it comes along) but I don't see any solution other than to move the speaker or mic (or maybe a louder earpiece spkr).

I'm using a wired microphone/earbud headset until such time as bluetooth audio is working.

It's good to know that the wired headset jack is working for somebody. My headset doesn't work, the speaker (audio out) does but mic (audio in) doesn't. I've yet to determine why.

Bluetooth headsets are not my thing; I like wired.
  Reply
#6
(04-08-2021, 02:56 PM)Ri3qXkW4hjb Wrote: About a month ago, I got my PinePhone CE with Mobian. Since soon after the box was opened, I have used it as my "daily driver" - but I am not a normal user. If the phone doesn't work, I experience no withdrawl, but instead a pleasant sense of normalcy. Perhaps I sorta live in the 1980s... It's not perfect, but it works about 95% of the time, by my rather limited definition of "works" (calls, basic texts, commandline, internet).

Below I'll mention the remaining issues, my todo items left, stuff I resolved, and some of my customizations.

  1. My desktop (debian) got disconnected from its network each time I plugged in the pine phone. USB networking 

Great post! Smile

On your #10 try the ifmetric command. It allows you to change routing device priority. Allowing you to use internet while having your device hooked up (so 'ethernet' does not take over priority).
- RTP

"In the beginner's mind there are many possibilities, in the expert's mind there are few." -Shunryu Suzuki

My Blog: https://politictech.wordpress.com
  Reply
#7
(04-09-2021, 11:56 PM)MtnSk8 Wrote: I don't see any solution other than to move the speaker or mic (or maybe a louder earpiece spkr). Undecided
That's what echo cancellation is for, but I couldn't find much about how/if this is implemented in Pinephone distributions. Only some stuff regarding the Librem 5, but audio routing is handled very differently there as far as I know. Does anybody have more info on that?
  Reply
#8
(04-11-2021, 04:15 AM)kqlnut Wrote:
(04-09-2021, 11:56 PM)MtnSk8 Wrote: I don't see any solution other than to move the speaker or mic (or maybe a louder earpiece spkr). Undecided
That's what echo cancellation is for, but I couldn't find much about how/if this is implemented in Pinephone distributions. Only some stuff regarding the Librem 5, but audio routing is handled very differently there as far as I know. Does anybody have more info on that?
Last time I looked it wasn't implemented yet. It _should_ be possible to use the PulseAudio echo cancellation plugin, but it was crashing when I tried it. That may just mean I wasn't using it correctly though. It probably needs to be built into the audio profiles, but they were work in progress at the time.
  Reply
#9
(04-12-2021, 10:47 AM)wibble Wrote:
(04-11-2021, 04:15 AM)kqlnut Wrote:
(04-09-2021, 11:56 PM)MtnSk8 Wrote: I don't see any solution other than to move the speaker or mic (or maybe a louder earpiece spkr). Undecided
That's what echo cancellation is for, but I couldn't find much about how/if this is implemented in Pinephone distributions. Only some stuff regarding the Librem 5, but audio routing is handled very differently there as far as I know. Does anybody have more info on that?
Last time I looked it wasn't implemented yet. It _should_ be possible to use the PulseAudio echo cancellation plugin, but it was crashing when I tried it. That may just mean I wasn't using it correctly though. It probably needs to be built into the audio profiles, but they were work in progress at the time.
Thanks for the info! Do you know of any GitLab issue or something where I can track the progress on this? I couldn't find anything on that.
  Reply
#10
(04-10-2021, 11:56 PM)RTP Wrote:
(04-08-2021, 02:56 PM)Ri3qXkW4hjb Wrote: About a month ago, I got my PinePhone CE with Mobian. Since soon after the box was opened, I have used it as my "daily driver" - but I am not a normal user. If the phone doesn't work, I experience no withdrawl, but instead a pleasant sense of normalcy. Perhaps I sorta live in the 1980s... It's not perfect, but it works about 95% of the time, by my rather limited definition of "works" (calls, basic texts, commandline, internet).

Below I'll mention the remaining issues, my todo items left, stuff I resolved, and some of my customizations.

  1. My desktop (debian) got disconnected from its network each time I plugged in the pine phone. USB networking 

Great post! Smile

On your #10 try the ifmetric command. It allows you to change routing device priority. Allowing you to use internet while having your device hooked up (so 'ethernet' does not take over priority).
Thanks! I'll give this a try.
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Why do you use mobian? unrealb2 17 633 09-18-2021, 03:44 AM
Last Post: TRS-80
  Axolotl on PinePhone / Mobian arno_nuehm 116 32,787 09-17-2021, 02:36 AM
Last Post: arno_nuehm
  Mobian September 13 Nightly bcnaz 1 166 09-14-2021, 03:50 PM
Last Post: bcnaz
  Updating old Mobian installation? SocialNetworkingWasAMistake 1 92 09-14-2021, 03:41 PM
Last Post: bcnaz
  Installing Mobian --> "Resizing file system" forever Anna 13 2,865 09-09-2021, 04:26 AM
Last Post: spaetz
  I'd like to have a Discord client on Mobian lsitongia 2 162 09-03-2021, 06:56 PM
Last Post: ryo
  Mobian September 01, 2021 bcnaz 2 319 09-01-2021, 11:45 AM
Last Post: bcnaz
  Mobian 'HotSpot" bcnaz 2 371 08-29-2021, 07:34 AM
Last Post: bcnaz
  mobile data on mobian not working synaption 10 836 08-29-2021, 07:22 AM
Last Post: bcnaz
  Hot Spot on Mobian/Bookworm ? bcnaz 1 168 08-29-2021, 02:47 AM
Last Post: bcnaz

Forum Jump:


Users browsing this thread: goku499, 1 Guest(s)