Cài PostmarketOS lên nexus 7 2012 wifi/3G 8Gb/16Gb/32Gb
LuxiTD
3 tháng trướcBình luận: 3Lượt xem: 3.202
Dual boot Android và Ubuntu 14.04 trên MultiROM
https://tinhte.vn/threads/multirom-cai-ubuntu-14-04-6-lts-len-nexus-7-2012-grouper-dualboot-android.3134764/?_xfNoRedirect=1#post-56815958

THỦ THUẬT - MultiROM - Cài Ubuntu 14.04.6 LTS lên Nexus 7 2012 grouper dualboot Android

Chạy Linux thuần thì xem bài https://tinhte.vn/threads/cai-postmarketos-len-nexus-7-2012-16gb.3113099/?_xfNoRedirect=1#post-56448223 Nếu không muốn...
tinhte.vn


Cài postmarketOS lên nexus 7 2012 wifi/3G 8Gb/16Gb/32Gb asus-grouper(hoặc 200 thiết bị được hỗ trợ ngay thời điểm này) mainline kernel linux 5.6.0-rc2-next-20200218

https://twitter.com/postmarketOS

1. Nếu dùng linux thì quá dễ theo hướng dẫn install pmbootstrap trên wiki

2. Nếu dùng windows thì giải pháp là cài virtualbox, sau đó tải iso alpine linux nhỏ gọn tại đây

https://www.virtualbox.org/wiki/Downloads
Downloads – Oracle VM VirtualBox
virtualbox.org


https://alpinelinux.org/downloads/

downloads | Alpine Linux

Alpine Linux
alpinelinux.org


Sau đó làm theo hướng dẫn trên youtube



2.1 Nhớ cài xfce4-terminal để dễ cài các package khác, tạo user mới và cấp cho quyền root qua visudo

2.2 Cài pmbootstrap trên alpine linux trên user đã tạo, chú ý các bước

$ sudo apk add python3 coreutils procps git

$ sudo pip3 install --upgrade pip

$ pip3 install --user pmbootstrap

$ git clone https://gitlab.com/postmarketOS/pmbootstrap.git

Projects · postmarketOS / pmbootstrap

Sophisticated chroot/build/flash tool to develop and install postmarketOS
gitlab.com


$ sudo python3 "$PWD/pmbootstrap/setup.py" install

$ pmbootstrap --version

Install adb android tools:
RUN apk --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ add android-tools
Index of /alpine/edge/testing/
dl-cdn.alpinelinux.org


hoặc sửa file repositories trong:
$ nano /etc/apk/repositories
bỏ dấu # trước http://dl-cdn.alpinelinux.org/alpine/edge/testing/
Index of /alpine/edge/testing/
dl-cdn.alpinelinux.org


$ apk add android-tools

Root và unlock bootloader Nexus 7 dùng tool
https://www.google.com/amp/s/www.wugfresh.com/nrt/amp/

http://www.mediafire.com/file/d9kssrtg1dtnx3l/NRT_v2.1.9.sfx.zip/file

Cài đặt và mở TWRP-3.3.1-0-grouper.img tải tại đây:
https://dl.twrp.me/grouper/ trên Nexus 7 2012 wifi

Download TWRP for grouper

Download TWRP Open Recovery for grouper
dl.twrp.me


https://dl.twrp.me/tilapia/ -> Nexus 7 2012 3G

Download TWRP for tilapia

Download TWRP Open Recovery for tilapia
dl.twrp.me


Build rootfs và kernel cho nexus 7 2012 16Gb wifi(code name: grouper)

$ pmbootstrap init

$ asus

$ grouper

$ xfce4

$ extra packages [nano, etc]: nano,xvkbd,dillo, xfce4-terminal,thunar-volman

$ pmbootstrap status

Bắt đầu 2 lựa chọn khi chạy là cài vào /system với dung lượng nhỏ hơn 650Mb và /userdata với dung lượng lớn hơn 650Mb

*** CÀI ĐẶT VÀO /system ***

$ sudo modprobe binfmt_misc

$ sudo mount -t binfmt_misc none /proc/sys/fs/binfmt_misc

$ pmbootstrap install

$ pmbootstrap flasher flash_kernel

Mở một terminal khác trên linux để mở permission cho adb, gõ:

$ sudo adb kill-server

$ sudo adb start-server

$ sudo adb devices -l

Quay lại terminal có pmbootstrap, đưa nexus 7 về bootloader/twrp/ chọn usb/asus google trên virtualbox và cắm vào máy tính để upload boot.img(mainline linux kernel 5.6.0-rc2-next-20200218)

$ pmbootstrap flasher flash_rootfs

$ pmbootstrap shutdown

*** CÀI ĐẶT VÀO /userdata ***

Phải sửa file deviceinfo trong

$ nano ../.local/var/pmbootstrap/cache_git/pmaports/device/testing/device-asus-grouper/deviceinfo

Sửa dòng: deviceinfo_flash_fastboot_max_size="650" thành "13773" (Nexus 7 8gb là 5829, nexus 7 32gb là 27944)

Thông tin các phân vùng của nexus 7 2012 16Gb wifi(grouper)

Partition Name Partition Description by_name Size in Blocks Size in MB
mmcblk0p1 recovery SOS 12288 12
mmcblk0p2 boot LNX 8192 8
mmcblk0p3 system APP 665600 650
mmcblk0p4 cache CAC 453632 443
mmcblk0p5 misc MSC 512 0.5
mmcblk0p6 staging MSP 10240 10
mmcblk0p7 provisioned PER 5120 5
mmcblk0p8 unknown MDA 512 0.5
mmcblk0p9 userdata UDA 14103552 13773
mmcblk0boot0 2048 2
mmcblk0boot1 2048 2

Bắt đầu:

Cẩn thận thì xoá /system và /userdata. Cũng không cần thiết lắm
$ fastboot erase system
$ fastboot erase userdata

$ sudo modprobe binfmt_misc

$ sudo mount -t binfmt_misc none /proc/sys/fs/binfmt_misc

$ pmbootstrap install

$ pmbootstrap flasher flash_kernel

Mở một terminal khác trên linux để mở permission cho adb, gõ:

$ sudo adb kill-server

$ sudo adb start-server

$ sudo adb devices -l

Quay lại terminal có pmbootstrap, đưa nexus 7 về bootloader/twrp/ chọn usb/asus google trên virtualbox và cắm vào máy tính để upload boot.img(mainline linux kernel 5.6.0-rc2-next-20200218)

$ pmbootstrap export

Mở TWRP trên nexus 7(nhấn nút nguồn + nút giảm âm lượng) và cắm vào máy tính, làm theo các bước sau:

(computer) $ adb shell
(twrp) $ df # look for the data partition. should be something like /dev/block/mmcblk0p9 or p10 with /data next to it
(twrp) $ umount /dev/block/mmcblk0p__ <- fill partition number
(twrp) $ umount /dev/block/mmcblk0p__ <- fill partition number # again, it can be mounted as /sdcard and as /data
(computer again) $ adb push /tmp/postmarketOS-export/asus-grouper.img /dev/block/mmcblk0p__ <- fill partition number

Với điều kiện:

grouper(bản wifi) /dev/block/mmcblk0p9
tilapia(bản 3G) /dev/block/mmcblk0p10

$ pmbootstrap shutdown

Tập tin asus-grouper.img được lưu ở đây

.local/var/pmbootstrap/chroot_native/home/pmos/rootfs/asus-grouper.img

Không nên dùng lệnh bên dưới để flash vì sẽ làm dừng hệ thống:
$ pmbootstrap flasher flash_rootfs --partition userdata

Thưởng thức nexus 7 chạy xfce4(2D accelerate graphics) trên mainline kernel linux 5.6. Chúc bạn thành công 😁

Có thể chọn Phosh thay vì xfce4 và vẫn chạy tốt, chỉ có hơi chậm vì là soft render, OpenGL 1.4, chưa có 3D accelerate graphics

*********** OPTIMIZE XFCE4 **********

Khi vào postmarketos, mở terminal

$ apk update

$ apk upgrade

Cài các pakage:

$ apk add onboard firefox-esr midori gimp libreoffce mpv gpicview xfce4-taskmanager htop retroarch galculator ffmpeg gvfs lxdm xarchiver matchbox-keyboard

Để cài được chromium bạn phải chọn repo về alpine linux 3.11 như sau

$ nano /etc/apk/repositories

Thêm 2 dòng sau đây

http://dl-cdn.alpinelinux.org/alpine/v3.11/main
Index of /alpine/v3.11/main/
dl-cdn.alpinelinux.org

http://dl-cdn.alpinelinux.org/alpine/v3.11/community
Index of /alpine/v3.11/community/
dl-cdn.alpinelinux.org


Cài chromium

$ sudo apk update

$ sudo apk add chromium

Cài thêm các package cần thiết nếu alpine có hỗ trợ, optimize chromium trong chrome://flags

https://www.techidence.com/30-google-chrome-flags-to-improve-browser-speed/

30 Google Chrome Flags to Improve Browser Speed - Techidence

Google Chrome flags are defined as a series of commands. Here are 30 Google Chrome flags and commands to improve their performance on low-powered computers.
techidence.com


$ leafpad /usr/share/applications/chromium.desktop

Sửa dòng Exec = chromium-browser %U thành

Exec = chromium-browser --start-maximized --user-agent=
"Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/58.0.1025.166 Safari/535.19" --force-device-scale-factor=1.2 --enable-pinch --default-tile-height=512 --use-gl=egl --enable-quic --enable-tcp-fast-open --enable-fast-unload --enable-scroll-prediction --enable-simple-cache-backend --answers-in-suggest --flag-switches-begin --force-color-profile=srgb --disable-lcd-text --enable-smooth-scrolling --enable-features=BackgroundVideoTrackOptimization,ParallelDownloading --flag-switches-end --disk-cache-size=536870912 %U

Option 2:

Exec = chromium-browser --start-maximized --user-agent="Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/58.0.1025.166 Safari/535.19" --force-device-scale-factor=1.2 --use-gl=egl --ppapi-flash-path=/usr/lib/chromium-browser/plugins/libpepflashplayer.so --ppapi-flash-args=enable_stagevideo_auto=0 --ppapi-flash-version=12.0.0.77 --password-store=detect --user-data-dir --max-tiles-for-interest-area=512 --num-raster-threads=4 --default-tile-height=512 --enable-features="CheckerImaging" --enable-native-gpu-memory-buffers --disk-cache-size=536870912 --top-controls-show-threshold=0.27 --top-controls-hide-threshold=0.17 --enable-high-end-ui-undo --enable-begin-frame-scheduling --enable-begin-frame-scheduling --enable-pinch --enable-overlay-fullscreen-video --enable-overlay-scrollbar --validate-input-event-stream --disable-gpu-process-crash-limit --enable-viewport-meta --main-frame-resizes-are-orientation-changes --disable-composited-antialiasing --ui-prioritize-in-gpu-process --enable-delegated-renderer --profiler-timing=0 --prerender=auto --prerender-from-omnibox=enabled --enable-dom-distiller --flag-switches-begin --enable-display-list-2d-canvas --enable-gpu-rasterization --enable-threaded-gpu-rasterization --enable-zero-copy --ignore-gpu-blacklist --flag-switches-end --enable-instant-extended-api --force-dark-mode --enable-features=WebUIDarkMode %U

Fix chromium ở 560 DPI thêm dòng --force-device-scale-factor=1.2

Cài firefox-esr-68.10.0-r0 tại repo v3.12

$ sudo nano /etc/apk/repositories

http://dl-cdn.alpinelinux.org/alpine/v3.12/main
http://dl-cdn.alpinelinux.org/alpine/v3.12/community

$ sudo apk update

$ sudo apk add firefox-esr

firefox-esr config gõ about:config vào thanh URL và tìm sửa theo bên dưới:

Set browser.download.animateNotifications to False
Set security.dialog_enable_delay to 0
Set network.prefetch-next to False (Only on slow internet connections)
Set browser.newtabpage.activity-stream.feeds.telemetry to false
Set browser.newtabpage.activity-stream.telemetry to false
Set browser.ping-centre.telemetry to false
Set toolkit.telemetry.archive.enabled to false
Set toolkit.telemetry.bhrPing.enabled to false
Set toolkit.telemetry.enabled to false
Set toolkit.telemetry.firstShutdownPing.enabled to false
Set toolkit.telemetry.hybridContent.enabled to false
Set toolkit.telemetry.newProfilePing.enabled to false
Set toolkit.telemetry.reportingpolicy.firstRun to false
Set toolkit.telemetry.shutdownPingSender.enabled to false
Set toolkit.telemetry.unified to false
Set toolkit.telemetry.updatePing.enabled to false

In about:config, set reader.parse-on-load.enabled to False
In about:config, set reader.parse-on-load.force-enabled to False
In about:config, set browser.pocket.enabled to False
In about:config, set loop.enabled to False

Scroll down to the first entry labeled "gfx.font," or instead type "gfx.font" in the "Filter" text box at the top of the screen to automatically scroll to the proper section. Locate the "gfx.font_rendering.directwrite.enabled" entry and double-click it to change the value from "False" to "True."
3. Right-click the the entry and click "New." Select the "Integer" option. Type the phrase "mozilla.widget.render-mode" in the "Name" text box and click "OK." Type "6" in the "Value" text box and click "OK."

Set browser.cache.disk.enable to false
Set browser.cache.memory.enable to true
Set browser.cache.memory.capacity to 262144
Set browser.sessionstore.interval to 15000000
Set gfx.font_rendering.cleartype_params.rendering_mode to 5

Create New > Integer > content.notify.interval to 500000
Create New > Boolean > content.notify.ontimer to true
Create New > Integer > content.switch.threshold to 250000
Create New > Boolean > content.interrupt.parsing to false
Create New > Boolean > javascript.options.jit.chrome to true
Create New > Boolean > javascript.options.jit.content to true

dom.gamepad.extensions.enabled to false
extensions.formautofill.addresses.enabled to false
extensions.formautofill.available
extensions.formautofill.creditCards.available to false
extensions.formautofill.creditCards.enabled to false
extensions.formautofill.firstTimeUse to false
extensions.formautofill.heuristics.enabled to false
extensions.formautofill.section.enabled to false
extensions.pocket.api
extensions.pocket.enabled to false
extensions.pocket.site
extensions.screenshots.disabled to true
extensions.webcompat-reporter.enabled to false
media.navigator.enabled to false
media.peerconnection.enabled to false
network.http.max-persistent-connections-per-server to 12
geo.enabled to false
geo.wifi.uri
geo.wifi.xhr.timeout to 1
network.dns.disablePrefetch to true
network.prefetch-next to false
dom.webnotifications.enabled to false
dom.push.enabled to false
browser.cache.disk.enable to false
browser.cache.offline.capacity to 0
browser.cache.offline.enable to false
browser.cache.disk_cache_ssl to false
browser.cache.memory.enable to true
network.trr.mode to 2
network.trr.uri to https://mozilla.cloudflare-dns.com/dns-query
network.security.esni.enabled to true
browser.tabs.allowTabDetach value to false
Create New > Boolean > dom.image-lazy-loading.enabled to true
layout.css.dpi to 560

Create New > Boolean > dom.w3c.touch_events.enable to true
general.useragent.site_specific_override to false
Create New > String > general.useragent.override to
Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/58.0.1025.166 Safari/535.19

Verify Integrity của Places Database trong about:support

Fix firefox-esr ở 120 DPI chỉnh about:config dòng layout.css.devPixelsPerPx thành 1.25

Trong firefox-esr, mở touch gestures cho firefox-esr bằng cách thêm MOZ_USE_XINPUT2 DEFAULT=1 vào /etc/security/pam_env.conf, vào about:config sửa dom.w3c.touch_events.enabled thành 1. Xem youtube thì cài addons h264ify, nên để ở quality 360p-480p không bị giật và laggy hình. Enable multitouch gestures in firefox

browser.snapshots.limit to 5
browser.gesture.pinch.in to cmd_fullZoomReduce
browser.gesture.pinch.out to cmd_fullZoomEnlarge
browser.gesture.pinch.latched to false
browser.gesture.pinch.threshold to 35

fix firefox/chromium freeze vì trình duyệt tìm kiếm local font trước khi trỏ system wide font, cài fontconfig version >= 2.13

$ sudo apk add fontconfig

Tạo thư mục /.fonts/Library

$ mkdir ~/.fonts

$ mkdir ~/.fonts/Library

$ cp [fonts folder] ~/.fonts/Library

firefox mojave theme:
https://github.com/vinceliuice/Mojave-gtk-theme/tree/master/src/other/firefox

vinceliuice/Mojave-gtk-theme

Mojave is a macos Mojave like theme for GTK 3, GTK 2 and Gnome-Shell - vinceliuice/Mojave-gtk-theme
github.com



Move chrome cache và firefox cache đến ramdisk theo link bên dưới:
https://www.omgubuntu.co.uk/2010/11/move-google-chrome-cache-to-ramdisk

Move Google Chrome Cache to a ram disk and speed up page loading - OMG! Ubuntu!

Got ample RAM installed? Want to speed up web page loading in Google Chrome? By moving your web cache to a RAM disk you can do just that. "It is possible
omgubuntu.co.uk

https://askubuntu.com/questions/99506/what-can-i-move-to-ram-drive-to-have-the-system-working-faste

What can I move to RAM drive to have the system working faster?

Which files/directories can I move to RAM drive to have the system working faster? I'm planning to upgrade my laptop's memory to 8GB soon, so I'll have some fast memory to use. How to configure the
askubuntu.com


Căn cho các apps chạy QT đúng tỷ lệ màn hình bằng cách thêm
QT_SCALE_FACTOR=2
QT_AUTO_SCREEN_SCALE_FACTOR=2
Vào /etc/environment

Vào settings của xfce4, trong Settings/Panel, chọn Power Manager Plugin thay cho Battery Monitor sẽ hiển thị đúng % pin và sạc

cài đặt alsamixer, thiết lập các thông số như sau:

https://wiki.alpinelinux.org/wiki/Desktop-notes
Desktop-notes - Alpine Linux
wiki.alpinelinux.org


Setting up Alsa audio
  1. apk add alsa-utils
  2. rc-update add alsa
  3. rc-service alsa start
  4. Set the default sound device
    1. List sound devices: cat /proc/asound/card*/id
    2. Depending on your setup select the proper device
      1. create a /etc/asound.conf with following content where PCH is Grouper sound card name.

$ nano /etc/asound.conf

pcm.!default {
type plug
slave.pcm {
@func getenv
vars [ ALSAPCM ]
#default "hw: PCH"
default "hw:Grouper"
}
}

Vào terminal:

$ alsamixer -c 0

Enable các thông số thiết lập (phím M hoặc phím mũi tên lên/xuống): "Speaker R" "Speaker L" "DAC MIXR INF1" "DAC MIXL INF1" "SPOL MIX DAC R1" "SPOL MIX DAC L1" "Stereo DAC MIXR DAC R1" "Stereo DAC MIXL DAC L1"

Cài iio-sensor-proxy và bluetooth, xem các package hỗ trợ

https://wiki.postmarketos.org/wiki/User:Gull_Code

$ apk -v search 'iio-sensor-proxy-openrc-*'

$ apk -v search 'bluez-*'

chủ yếu cài iio-sensor-proxy, bluez, btmon, btmgmt, hid2hci, chưa có bluez-utils và blueman

*********************************************************

Khuyên dùng rotate-screen tạo ở cuối bài.

Xoay ngang màn hình trên xfce4 dùng fbdev:

https://wiki.postmarketos.org/wiki/Display
Display - postmarketOS
wiki.postmarketos.org


Tạo file 00-fbdev-rotate.conf trong
$ nano etc/X11/xorg.conf.d/00-fbdev-rotate.conf

Section "Device"
Identifier "LCD"
Driver "fbdev"
Option "Rotate" "CW" #90 độ
#Option "Rotate" "UD" #180 độ
#Option "Rotate" "CCW" #270 độ
EndSection

Xoay touchscreen cho đúng với màn hình ngang, thêm dòng vào file 90-device-asus-grouper.rules

$ nano /etc/udev/rules.d/90-device-asus-grouper.rules

# Right - 270 degree clockwise
ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1"

# Left - 90 degree clockwise
# ENV{LIBINPUT_CALIBRATION_MATRIX}="0 -1 1 1 0 0"
# 180 degree clockwise
# ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0 1 0 -1 1"
# reflect along y axis
# ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0 1 1 0 0"

**********************************************************************

*** ACCELERATE 2D GRAPHICS dùng grate-driver/opentegra ***

Vào terminal, cài đặt xf86-video-opentegra và libvdpau-tegra

$ sudo apk add xf86-video-opentegra libvdpau-tegra

sửa tên file opentegra.conf thành 00-opentegra.conf trong /usr/share/X11/xorg.conf.d để chạy trước fbdev

$ cd /usr/share/X11/xorg.conf.d/

$ sudo mv opentegra.conf 00-opentegra.conf

$ sudo reboot

Khuyên dùng rotate-screen tạo ở cuối bài

Xoay touchscreen cho đúng với màn hình ngang, thêm dòng vào file 90-device-asus-grouper.rules

$ nano /etc/udev/rules.d/90-device-asus-grouper.rules

# Right - 270 degree clockwise
ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1"

# Left - 90 degree clockwise
# ENV{LIBINPUT_CALIBRATION_MATRIX}="0 -1 1 1 0 0"
# 180 degree clockwise
# ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0 1 0 -1 1"
# reflect along y axis
# ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0 1 1 0 0"

Chọn Settings -> Display -> Rotate chọn Right -> Apply để xoay ngang màn hình đúng với touchscreen đã xoay ở trên

*********************************************************************

Chỉnh thông số swappiness và vfs_cache_pressure trong terminal

$ cat /proc/sys/vm/swappiness

$ cat /proc/sys/vm/vfs_cache_pressure

$ cat /proc/sys/vm/dirty_background_ratio

$ cat /proc/sys/vm/dirty_ratio

$ cat /proc/sys/vm/dirty_background_bytes

$ cat /proc/sys/vm/dirty_bytes

$ cat /proc/sys/vm/min_free_kbytes

$cat /proc/sys/vm/drop_caches

$ sudo systcl -w vm.swappiness=1 #giá trị thay đổi từ 0 đến 100, mặc định là 60

$ sudo systcl -w vm.vfs_cache_pressure=200 #giá trị thay đổi từ 0 đến 500, mặc định là 100

$ sudo sysctl -w vm.dirty_background_ratio=55 #giá trị thay đổi từ 1 đến 10, mặc định là 10

$ sudo sysctl -w vm.dirty_ratio=90 #giá trị thay đổi từ 20 đến 50, mặc định là 20

$ sudo sysctl -w vm.dirty_background_bytes=16777216 #mặc định là 0

$ sudo sysctl -w vm.dirty_bytes=50331648 #mặc định là 0

$ sudo sysctl -w vm.min_free_kbytes=4096

$ sudo sysctl -w vm.panic_on_oom=2

$ sudo sysctl -w kernel.panic=5

$ sudo sysctl -w vm.overcommit_memory=1

$ sudo sysctl -w vm.drop_caches=1

$ nano /etc/sysctl.conf

vm.swappiness=1
vm.vfs_cache_pressure=200
vm.dirty_background_ratio=55
vm.dirty_ratio=90
vm.dirty_background_bytes=16777216
vm.dirty_bytes=50331648
vm.min_free_kbytes=4096
vm.panic_on_oom=2
kernel.panic=5
vm.overcommit_memory=1
vm.drop_caches=1

$ sudo sysctl -p

Chỉnh CPU frequency scaling về 80% up_threshold tham khảo
https://wiki.alpinelinux.org/wiki/CPU_frequency_scaling
CPU frequency scaling - Alpine Linux
wiki.alpinelinux.org


Optimize ondemand governor:

https://forum.xda-developers.com/showthread.php?t=1778975

[MOD] Tweaked Ondemand V1.0.2 [28/07/12]

What this does: This mod sets your CPU governor to ondemand instead of the default interactive. Why? While it gives a smooth UI performance interactive ea…
forum.xda-developers.com


[***]Recommand config:

$ nano /etc/local.d/cpufreq.start

#!/bin/sh

# Set the governor to ondemand for all processors
for cpu in /sys/devices/system/cpu/cpufreq/policy*; do
echo ondemand > ${cpu}/scaling_governor
done

# Reduce the boost ignore_nice_load to 0 (có hai giá trị 0 và 1)
echo 0 > /sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load

# Reduce the boost io_is_busy to 0 ( có hai giá trị 0 và 1)
echo 0 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy

# Reduce the boost powersave_bias to 300 (giá trị thay đổi từ 0-1000) <-- tăng giảm xung của cpu/gpu
echo 300 > /sys/devices/system/cpu/cpufreq/ondemand/powersave_bias

# Reduce the boost sampling_down_factor to 1 (giá trị thay đổi từ 1-4
echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor

# Reduce the boost sampling_rate to 20000 (giá trị thay đổi từ 10000 - 300000)
echo 20000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate

# Reduce the boost threshold to 75% (giá trị thay đổi từ 1-100)
echo 75 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold

Note:
  • ignore_nice_load (TFP default: 0; Agressive: 0; Balanced: 1; Battery: 1)
  • io_is_busy (TFP default: 0; Agressive: 1; Balanced: 1; Battery: 1)
  • powersave_bias (TFP default: 0; Agressive: 0; Balanced: 0; Battery: 0)
  • sampling_down_factor (TFP default: 1; Agressive: 1; Balanced: 2; Battery: 4)
  • sampling_rate (TFP default: 300000; Agressive: 30000; Balanced: 50000; Battery: 100000)
  • sampling_rate_min (TFP default: 30000; Agressive: 3000; Balanced: 5000; Battery: 1000)
  • up_threshold (TFP default: 95; Agressive: 85; Balanced: 90; Battery: 95)

$ sudo chmod +x /etc/local.d/cpufreq.start
$ sudo rc-update add local default
$ sudo lbu commit

Sửa lỗi xfce4/xfwm4 version 4.14.2 spike cpu 100% trên 1 core bằng cách tắt vblank mode và Settings -> Windows manager tweak -> compositor -> uncheck enable checkbox

https://github.com/vinceliuice/vimix-gtk-themes/issues/56

Single Core 100% load on xfce · Issue #56 · vinceliuice/vimix-gtk-themes

I'm using xfce4 with the compiz 0.9 as default wm on my archlinux running on an Lenovo laptop (4720HQ, HD4600). The vimix theme coms from AUR. I'm facing 100% CPU usage on single core, whic...
github.com

Vào Settings -> Desktop -> Color -> Solid color
Vào Settings -> Panel -> Appearance -> Style -> Solid color cho 2 panel hoặc nhiều hơn

Kiểm tra trước khi cài xem có hỗ trợ glx, xpresent hoặc off:

$ xfwm4 --version

$ xfwm4 --vblank=off --replace

# $ xfwm4 --vblank=xpresent --replace
# $ xfwm4 --vblank=glx --replace

Khi đã chạy ổn thì cài luôn cho xfwm4

$ xfconf-query -c xfwm4 -p /general/vblank_mode -t string -s "off" --create

# $ xfconf-query -c xfwm4 -p /general/vblank_mode -t string -s "xpresent" --create
# $ xfconf-query -c xfwm4 -p /general/vblank_mode -t string -s "glx" --create

hoặc:

$ xfconf-query -c xfwm4 -p /general/vblank_mode -s off

# $ xfconf-query -c xfwm4 -p /general/vblank_mode -s xpresent
# $ xfconf-query -c xfwm4 -p /general/vblank_mode -s glx

Vì trên Android, Nexus 7 2012 wifi grouper chạy tốt với DPI 120-560 nên ta chỉnh cho đúng DPI. Vào Settings system -> Appearance -> Font chỉnh DPI thành 120, các cỡ font trong windows manager và xfce-terminal thành min:9px-max:12px(120 Custom DPI), nên dùng font Luxi Sans/Serif/Mono và bật antialiasing, vào Windows manager tweak -> compositor -> disable

http://xorg.freedesktop.org/releases/individual/font/font-bh-ttf-1.0.3.tar.bz2

copy các file .ttf vào /usr/share/fonts

$ sudo fc-cache -f

Chạy SSD/eMMC nên thêm noatime vào fstab như sau:

$ sudo nano /etc/fstab

LABEL="pmOS_root" / ext4 noatime,relatime,data=ordered 0 1
LABEL="pmOS_root" /boot auto noatime,defaults 0 2

Cài bash vì alpine dùng ash

$ sudo apk add bash bash-doc bash-completion

$ sudo nano /etc/passwd

sửa root và username login thành bash

root: x :0:0:root:/root:/bin/ash -> root: x :0:0:root:/root:/bin/bash

Chỉnh màu cho terminal emulator

$ nano ~/.bashrc

alias update='apk update && apk upgrade'
export HISTTIMEFORMAT="%d/%m/%y %T "
export PS1='\u@\h:\W \$ '
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
source /etc/profile.d/bash_completion.sh
export PS1="\[\e[31m\][\[\e[m\]\[\e[38;5;172m\]\u\[\e[m\]@\[\e[38;5;153m\]\h\[\e[m\] \[\e[38;5;214m\]\W\[\e[m\]\[\e[31m\]]\[\e[m\]\\$ "

Cài musl-locales

$ sudo apk add musl-locales musl-locales-lang

$ locale

$ locale -a

Tạo file ~/.bashrc và ~/.profile và thêm các dòng này vào

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

$ source .bashrc

Chỉnh hostname như sau

$ sudo cat /etc/hostname

$ sudo hostname <tên hostname>

Điền hostname vào /etc/hosts

$ sudo nano /etc/hosts

127.0.1.1 <tên hostname> localhost.localdomain
127.0.1.1 <tên hostname> localhost.localdomain <tên hostname>

Chỉnh timezone GMT +7

$ sudo apk update
$ sudo apk add tzdata
$ sudo ln -fs /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime

hoặc theo hướng dẫn Alpine Linux:
https://wiki.alpinelinux.org/wiki/Setting_the_timezone
Setting the timezone - Alpine Linux
wiki.alpinelinux.org


glibc based installs use different timezone setup.

apk add tzdata
ls /usr/share/zoneinfo

Suppose you want to use Asia/Ho_Chi_Minh. First copy the proper zone to localtime

cp /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime

Now specify your timezone

echo "Asia/Ho_Chi_Minh" > /etc/timezone
date

Result: Wed Mar 8 00:46:05 CET 2006

You can now remove the other timezones

apk del tzdata

Cài iwd thay thế wpa_supplicant(hay làm treo network manager và trình duyệt web)

$ sudo apk add iwd

$ sudo rc-service wpa_supplicant stop

$ sudo rc-update add iwd default

$ sudo rc-service iwd start

$ sudo rc-update del wpa_supplicant default

Recommend theme Qogir-dark/Mojave-dark-solid, window manager Dots Black, icon Mojave/Numix/Papirus-Dark-Custom

Qogir Theme
https://www.gnome-look.org/p/1230631/

Qogir theme

Qogir is a flat Design theme for GTK 3, GTK 2 and Gnome-Shell which supports GTK 3 and GTK 2 based desktop environments like Gnome, Unity, Budgie, Pantheon, XFCE, Cinnamon, Mate,...
gnome-look.org


Papirus Custom icon
https://github.com/owl4ce/dotfiles/tree/master/.icons

owl4ce/dotfiles

My house is now your home ^ w ^. Contribute to owl4ce/dotfiles development by creating an account on GitHub.
github.com


Dots theme windows manager
https://www.xfce-look.org/p/1151531/

Dots Theme

A simple xfwm4 theme on two tones, black and white.For install download and unzip into /home/user/.themes/ folder.
xfce-look.org


$ sudo gtk-update-icon-cache /usr/share/icons/[theme name]

Tạo file rotate-screen.sh để xoay màn hình 90 độ theo cách thủ công

$ sudo apk add xrandr xinput xinput_calibrator perl iio-sensors-proxy

$ nano ~/rotate-screen.sh

#!/bin/bash
# This script rotates the screen and touchscreen input 90 degrees each time it is called,
# also disables the touchpad, and enables the virtual keyboard accordingly

#### configuration
# find your Touchscreen and Touchpad device with `xinput`
TouchscreenDevice='Elan Touchscreen'

if [ "$1" = "--help" ] || [ "$1" = "-h" ] ; then
echo 'Usage: rotate-screen.sh [OPTION]'
echo
echo 'This script rotates the screen and touchscreen input 90 degrees each time it is called,'
echo 'also disables the touchpad, and enables the virtual keyboard accordingly'
echo
echo Usage:
echo ' -h --help display this help'
echo ' -j (just horizontal) rotates the screen and touchscreen input only 180 degrees'
echo ' -n always rotates the screen back to normal'
exit 0
fi

screenMatrix=$(xinput --list-props "$TouchscreenDevice" | awk '/Coordinate Transformation Matrix/{print $5$6$7$8$9$10$11$12$NF}')

# Matrix for rotation
# ⎡ 1 0 0 ⎤
# ⎜ 0 1 0 ⎥
# ⎣ 0 0 1 ⎦
right='1 0 0 0 1 0 0 0 1'
right_float='1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000'

# inverted
#⎡ -1 0 1 ⎤
#⎜ 0 -1 1 ⎥
#⎣ 0 0 1 ⎦
left='-1 0 1 0 -1 1 0 0 1'
left_float='-1.000000,0.000000,1.000000,0.000000,-1.000000,1.000000,0.000000,0.000000,1.000000'

# 90° to the left
# ⎡ 0 -1 1 ⎤
# ⎜ 1 0 0 ⎥
# ⎣ 0 0 1 ⎦
normal='0 -1 1 1 0 0 0 0 1'
normal_float='0.000000,-1.000000,1.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000'

# 90° to the right
#⎡ 0 1 0 ⎤
#⎜ -1 0 1 ⎥
#⎣ 0 0 1 ⎦
inverted='0 1 0 -1 0 1 0 0 1'
inverted_float='0.000000,1.000000,0.000000,-1.000000,0.000000,1.000000,0.000000,0.000000,1.000000'

if [ $screenMatrix == $normal_float ] && [ "$1" != "-n" ]
then
echo "90° to the left"
xrandr --output LVDS-0 --rotate normal
xinput set-prop "$TouchscreenDevice" --type=float "Coordinate Transformation Matrix" 1 0 0 0 1 0 0 0 1
# Remove hashtag below if you want pop-up the virtual keyboard
#onboard &
elif [ $screenMatrix == $inverted_float ] && [ "$1" != "-j" ] && [ "$1" != "-n" ]
then
echo "Back to normal"
xrandr --output LVDS-0 --rotate inverted
xinput set-prop "$TouchscreenDevice" --type=float "Coordinate Transformation Matrix" -1 0 1 0 -1 1 0 0 1
#killall onboard
elif [ $screenMatrix == $left_float ] && [ "$1" != "-j" ] && [ "$1" != "-n" ]
then
echo "Upside down"
xrandr --output LVDS-0 --rotate left
xinput set-prop "$TouchscreenDevice" --type=float "Coordinate Transformation Matrix" 0 -1 1 1 0 0 0 0 1
#killall onboard
else
echo "90° to the right"
xrandr --output LVDS-0 --rotate right
xinput set-prop "$TouchscreenDevice" --type=float "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1
#killall onboard
fi

$ sudo chmod +x ~/rotate-screen.sh

Để mỗi lần xoay màn hình 90 độ, chạy file trong terminal

$ sudo bash ~/rotate-screen.sh

Hoặc tạo .desktop icon

$ nano ~/rotate.desktop

[Desktop Entry]
Type=Application
Terminal=false
Icon=system-reboot
Name=Rotate Screen
Exec=~/rotate-screen.sh
Name[en_US]=Rotate Screen

Mỗi lần click icon xoay 90 độ

BẠN SẼ THẤY NEXUS 7 CHẠY NHANH CHÓNG MẶT NHƯ NHỮNG TABLET, LAPTOP HIỆN TẠI



Tham khảo:
[/I]
https://wiki.postmarketos.org/wiki/Google_Nexus_7_2012_(asus-grouper)

https://wiki.postmarketos.org/wiki/Display

https://wiki.postmarketos.org/wiki/XFCE4

http://kapper1224.sblo.jp/s/article/187353938.html

https://wiki.ixit.cz/alpinemobile_devices_nexus_7_2012

Bonus thêm thông tin về MultiROM của Tasssadar đã die toàn bộ link:

TWRP_multirom_grouper_20160210.img

http://www.mediafire.com/file/jjd0hgtdf4beeji/TWRP_multirom_grouper_20160210.img/file

Kernel_kexec_grouper_5.1
http://www.mediafire.com/file/k2a1dp4gtz2skpo/kernel_kexec_grouper_510.zip/file

MultiROM_Manager Apps
http://www.mediafire.com/file/r7kk8mono1th619/MultiROM_Manager_v1.188_apkpure.com.apk/file


MultiROM core
http://www.mediafire.com/file/bsmfixl6rq1j0cn/multirom_v10_n7-signed.zip/file

http://www.mediafire.com/file/3uqryjrmyc40jba/multirom-20160207-v33-grouper.zip/file

Multirom Full package:
http://www.mediafire.com/file/2xbdacvn3v0aetz/multirom-20160207-v33-grouper-full.zip/file

English install guide:
http://www.mediafire.com/file/so9d11ynz4bdxpy/PostmarketOS_on_Nexus_7_2012_wifi_grouper.pdf/file pmnexus7.jpg
Screenshot_20200410-211114.png
IMG_20200504_161515.jpg
IMG_20200506_133911.jpg
dgq68liugjx41.jpg
DEBUG_IMG_20200511_214715.jpg
Great guide! Nhưng pmOS dùng lâu có gặp vấn đề về nhiệt, lag không anh? Và nó có đầy đủ tính năng như 1 distro trên workstations chứ ạ?
@Alien Cipher Vấn đề trên là do coding kernel và các tinh chỉnh, cài và trải nghiệm từ từ chứ không phải os làm sẵn để dùng như windows, mac, android, ios v.v.. Còn về tính năng thì nó custom cho arm từ alpine linux đơn giản nên các distro khác chạy apps được chưa chắc nó chạy,cần thêm devs hỗ trợ. Đây là os của các devs có thời gian rảnh rỗi làm thêm. Apps thì dùng chợ snapcraft.io, flathub.org, các apps tương thích với os xem ở đây https://wiki.postmarketos.org/wiki/Potential_apps
Potential apps - postmarketOS
wiki.postmarketos.org
  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2020 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: 209 Đường Nam Kỳ Khởi Nghĩa, Phường 7, Quận 3, TP.HCM
  • Số điện thoại: 02862713156
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019