User:Ldj/Full setup
This seems to be personal notes, shouldn't be in the main namespace |
Preamble - recommendations
We will assume you've already installed lk2nd and pmbootstrap.
We will also assume you'll use a text editor like nano to alter system files, and that you're using it with SSH
Note that you may have to use CTRL+SHIFT+V to paste in your terminal (check with your Linux distro)
Commands to be entered are displayed with a leading $
Your default password will be
147147
as long as you don't change it in
$ pmbootstrap init
And your default IP (when connected through USB) should be
172.16.42.1
Finally, your default username is
user
Part I - Install and setup generic system
Install postmarketOS
Obviously, the first thing we need to do is installing pmOS on our device[s], here’s how
Follow the required procedure
$ pmbootstrap init
$ pmbootstrap install
Put phone into "lk2nd mode", and continue
To put the phone in lk2nd mode, turn it on holding down the "Volume down" key pressed. NO OTHER KEYS THAN VOLUME DOWN
$ pmbootstrap flasher flash_kernel
$ pmbootstrap flasher flash_rootfs --partition userdata
$ fastboot erase system
$ fastboot reboot
$ pmbootstrap shutdown
DON'T FORGET TO
$ pmbootstrap shutdown
OR YOU'LL HAVE A BUNCH OF MOUNT POINTS DUE TO CHROOT ENVIRONMENT. LAUNCHING IT REMOVES THE MOUNT POINTS
Start the SSH Daemon
You’ll greatly appreciate setting up everything through SSH, typing commands on the device is possible, but it’s a pain
Edit the required configuration files
I put this in a shell script named ssh.sh (in your WorkStation)
#!/usr/bin/sh
ssh user@172.16.42.1
And
chmod a+x ssh.sh
Run the required commands
From a console window IN YOUR DEVICE, type
$ sudo rc-service sshd start
If everything went fine, then
$ sudo rc-update add sshd
To connect to SSH, you have to type (in your WorkStation, not on the device)
$ ssh user@172.16.42.1
Install software
Now, boot in your OS, connect through SSH (the IP should be 172.16.42.1), and run this (long) command:
Install the required packages
$ sudo apk add epiphany celluloid cheese corepdf corerenamer telegram-desktop umbrello scribus remmina pidgin gnome-music lmms libreoffice kompare ktorrent inkscape httrack handbrake-gtk gimp filezilla evolution kwave bluefish dia tesseract-ocr sphinx espeak zip unzip unrar solvespace recordmydesktop gnome-photos nano eog aml libxkbcommon pixmanAdjust it to your liking
I'm used to get rid of FireFox in favor of Epiphany, if you're too, just
$ sudo apk del firefox-esr
Install and setup FlatPak
FlatPak provides some packages I like, that aren’t in the Alpine/pmOS repos
Install the required packages
$ sudo apk add flatpak
Run the required commands
$ sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Enable your MicroSD (if you have it) in fstab
MicroSD is almost mandatory, especially when using many Apps - 16/32 Gb aren’t enough to carry the OS AND our data
Install the required packages
$ sudo apk add fuse-exfat fuse3-libs fuse3 fuse fuse-static s3fs-fuse fuse-common fuse-exfat-utils
Edit the required configuration files
$ sudo blkid
Your MicroSD should be the mmcblk1p1 device, so look at the line which is like this
/dev/mmcblk1p1: UUID="UUID-OF-YOUR-SD" BLOCK_SIZE="512" TYPE="YOUR-FILESYSTEM"
And remember the UUID and FILESYSTEM you got, then add to /etc/fstab (create the file if it doesn't exist)$ sudo touch /etc/fstab$ sudo mkdir /media/sd
UUID="UUID-OF-YOUR-SD" /media/sd YOUR-FILESYSTEM auto,exec,user,rw,sync 0 2
Run the required commands
$ sudo mount -a
Create symlinks to the MicroSD
Replace every directory you're interested in inside your home with a symbolic link to a directory on your SD (if you do, first delete the directory from your home. If it's not empty, first move all files to the directory in your SD)
This is the command
$ ln -s directoryName linkName
So, you will have to type (in example)
$ rmdir /home/user/yourDirectory
$ ln -s /media/sd/targetDirectory /home/user/yourDirectory
And repeat for each directoryNote, the available directories areDesktop, Music, Templates, Documents, Pictures, Videos, Downloads, Public
Fix windows overflowing content
If you use Desktop Apps on pmOS, you will notice the App’s windows overflow the screen. This option fixes this. Note the windows will fit the screen, but will be scaled according to the scale factor you set in phoc.ini, by the way they won’t overflow anymore (may be the UI Scale will be so big that the GUI of the App will be a mess)
Launch the required commands
Launch this command to make all windows fit the screen
$ sudo gsettings set sm.puri.phoc scale-to-fit true
Note your scale factor it's kept, so you may want to change it anyhow. I use 1.2
If the UI is too small for your taste, launch the inverse command
$ sudo gsettings set sm.puri.phoc scale-to-fit false
Edit the required configuration files
You can set a scale rate in /usr/share/phosh/phoc.ini, but the windows could overflow laterally. Edit the file and, in the first entry, modify scale from 2 to something lower (or higher, if you prefer)
The line appears like this
[output:DSI-1]
scale = 2
Replace 2 with your preferred scale factor
Start wayvnc service - create a wayvnc service and start it
As previously said in the SSH section, the ability to use a computer to drive your device will be very useful - think if you have to launch a command that can’t be ran from SSH, or you have to copy text from the Terminal, it would be a pain to do that on the device, anyhow, it’s possible
Install the required packages
$ sudo apk add wayvnc neatvnc
Edit the required configuration files
First, create a ssh key
$ openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout key.pem -out cert.pem -subj /CN=localhost -addext subjectAltName=DNS:samsung-a5ulte,DNS:samsung-a5ulte,IP:172.16.42.1
Create a configuration file in /home/user/.config/wayvnc/config containing
address=0.0.0.0
enable_auth=true
username=user
password=YourPassword
private_key_file=/path/to/key.pem
certificate_file=/path/to/cert.pem
Launch the required commands
To start the VNC Server, just type
$ wayvnc 0.0.0.0
Install and setup KeyMapper
KeyMapper will be very useful when using Desktop Apps like Gimp, LMMS, Wings3D, etc. Most Desktop Apps require a 3 button mouse, so you need to replace missing buttons (on a touchscreen, you’ll only have left mouse button, on tapping the display) with something else. Here comes KeyMapper. There also is the Synaptics driver, which supports gestures to emulate mouse buttons and scroll event, among others, but I don’t know how to configure it. Indeed, if you made it to configure Synaptics, please, tell me how you did.
Install the required packages
$ sudo apk add py3-pip build-base libevdev-dev py3-libevdev libevdev xf86-input-evdev xf86-input-evdev-dev linux-headers python3-dev git xf86-input-synaptics xf86-input-libinput evtest
$ sudo pip3 install git+https://github.com/sezanzeb/key-mapper.git
Edit the required configuration files
$ sudo nano /etc/modules
And append
uinput
Create the XOrg configuration file
$ sudo touch /etc/X11/xorg.confAnd insert this linesSection "InputDevice"
Identifier"Syn"
Driver"libinput"
Device"yourDevice (something like /dev/input/event - discover the device with evtest)”
Option"ClickMethod""clickfinger"
Option"Tapping""on"
EndSection
Section "Inputclass"
Identifier"Syn"
Driver"libinput"
MatchIsTouchpad"on"
Option"Tapping""on"
Option"ClickMethod""clickfinger"
EndSectionUnfortunately, the key-mapper service won't work with postmarketOS, so you'll have to manually start the service from the App
Follow the required procedure
Bind buttons to simulated mouse buttons
You'll have several input devices, in my situation I have 4, but I'm only interested in tm2-touchkey
Once chosen the device, name the preset with a meaningful name, then tap on "click here" and press the button you want to map
I used APPSELECT and BACK
Once pressed ONE of the above keys, the key name will appear, and, on its right, you can enter a key name
I used BTN_MIDDLE near APPSELECT, and BTN_RIGHT near BACK
Mapping these keys is recommended if you want to use Desktop Software, such as Gimp, LMMS, etc
Configure your cups printer and start service
Almost every computer user has a printer, most also have a scanner (or an All In One printer). The ability to print and scan from the device will avoid ping-pong file transfers between the device, the computer and the printer
Install the required packages
$ sudo apk add cups cups-libs cups-pdf cups-client cups-filters hplip libusb ghostscript qt py-qt python3 py-reportlab libjpeg libjpeg-turbo net-snmp
Run the required commands
$ sudo adduser root lp
$ sudo adduser root lpadmin
$ sudo adduser user lp
$ sudo adduser user lpadmin
$ sudo rc-service cupsd start
$ sudo rc-update add cupsd
If you have an HP printer, you should also install hplip
$ sudo apk add hplip
Follow the required procedure
connect with your printer with WiFi and setup it by opening, in a browser the following (assuming you have a WiFi Printer)
I have an HP All In One printer, so I usually connect the Printer's JetDirect HotSpot. Do this BEFORE opening the address above
Then, go to Administration and choose Add Printer, then follow directions on the page
Configure your sane scanner
Almost every computer user has a printer, most also have a scanner (or an All In One printer). The ability to print and scan from the device will avoid ping-pong file transfers between the device, the computer and the printer
Install the required applications
$ sudo apk add sane sane-saned sane-utils sane-backends
TODO: FINISH THIS SECTION
Part II, Install and setup additional services and applications
Set the ringtone
If you come from Android, you might have a favourite ringtone you want to use in pmOS, or maybe you just don’t like the default one
Run the required commands
$ sudo touch /usr/share/glib-2.0/schemas/11_librem5.gschema.override
$ sudo mkdir /usr/share/glib-2.0/schemas/stereo
Edit the required configuration files
Edit /usr/share/glib-2.0/schemas/11_librem5.gschema.override inserting the following content[Sound Theme]
Name=Default
Directories=stereo
Alert=YourAlertTone.ogg/wav/oga
Notification=YourNotificationTone.ogg/wav/oga
Note you don't have to put /s in the filename, they're there just to point out that the valid file types are, indeed, ogg, wav or oga
Change the background
If you come from Android, you might have a favourite background image you want to use in pmOS, or maybe you just don’t like the default one
Follow the required procedure
Open the image you want as background with Eye Of Gnome, then click on the three bars in the upper-right corner, choose "set as background"
$ eog
Install Google web Apps
If you come from Android, you might have a bunch of Google Apps you want to use in pmOS, but, chances are1) Install AnBox$ sudo apk add postmarketos-anbox2) Launch Google services through EpiphanyAnd here, we will take in account the second method (because I failed running AnBox - because of a segmentation fault on AnBox loading)
Follow the required procedure
The procedure is simple*
- If needed, log in the App
- Tap on the three bars at the top right
- Tap on "Install WebSite as a web Application"
Configure Telegram
Unfortunately, we don't have WhatsApp in Linux (either Desktop or Mobile), but Telegram is almost as great, if not better.Well, in truth, we have WhatsApp Web, but it requires to periodically authenticate from our Android device, which maybe we don’t use anymore
Follow the required procedure
To configure Telegram, you have two options:
1) Using an already existing account from your Android/iOS SmartPhone
Tap "Start messaging"
Tap "Scan QR Code"
In your SmartPhone, in Telegram, go to Settings->Devices->Scan QR Code
Scan the QR Code with your SmartPhone
You're set!
2) Creating an account from scratch or login with your existing account
Tap "Start messaging"
Insert your mobile phone number (its SIM have to be inserted in your pmOS device, you just need the ability to receive SMS from the device the SIM is in)
Tap on next
Wait for the code to be sent with SMS
Insert the code
You're ready to go
Configure your Google account with gnome-control-center
If you come from Android, you might have a Google account you used with Play Store, GMail, and so on. You might, in this case, want to keep using it, so here’s how
Follow the required procedure*
- Tap on "OnLine Accounts"
- Tap on "Google"
- Login as usual
- Authorize GNOME to access your Account
- Select Google services to use on your device
- Dismiss the Settings App