2019年9月17日 星期二

T480 雙顯卡在系統無法順利從 intel 切換為 Nvidia 的解決方案


T480 雙顯卡在 Linux MInt 18.3 ,安裝完 cuda driver 後,發現可以在視窗介面下從 Nvidia 轉換為 Intel ,但,就再也開不起它的對話框。
可以從指令模式下,簡單的用底下的指令就可以從 Intel 切換為 Nvidia 了。

sudo prime-select nvidia

重新登入後就可以了。

ref: https://unix.stackexchange.com/questions/438908/mint-18-3-does-not-boot-after-i-changed-graphics-card-from-nvidia-to-intel

2019年6月27日 星期四

ubuntu 18.04/Linux Mint 19.1 setting thinkpad Trackpoint


from: http://nrvale0.github.io/posts/adjusting-thinkpad-trackpoint-sensitivity-on-ubuntu-1604-and-others/

說明如下:
  1. 編輯 /etc/tmpfiles.d/trackpoint.conf 檔案
  2. 貼上以下內容
    w /sys/devices/platform/i8042/serio1/serio2/speed - - - - 255
    w /sys/devices/platform/i8042/serio1/serio2/sensitivity - - - - 175
  3. 執行以下指令
    sudo systemd-tmpfiles --prefix=/sys --create 
  4. 接著,要到 系統設定/滑鼠,將 自定義靈敏度 功能關閉
  5. 重新啟動系統,trackpoint 就很好用了~ 

2019年5月25日 星期六

How to Install Wine 4.0 on Ubuntu 18.04 & 16.04 LTS


參考以下內容:

https://tecadmin.net/install-wine-on-ubuntu/

以 ubuntu 16.04 版本為例的話,指令如下:

sudo dpkg --add-architecture i386
wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main'
sudo apt-get update
sudo apt-get install --install-recommends winehq-stable
wine --version

2019年1月20日 星期日

Linux Mint 19.1 的字型顏色設定


參考這篇:
https://www.dedoimedo.com/computers/linux-mint-cinnamon-edit-theme.html

找到 cinnamon 及 gtk-3.0 , 將其中的 css 檔案的 #4a4a4a 改為 #000000 就能將字型改為純黑色了。

2018年7月29日 星期日

ubuntu 1804 的 php 升級為 php7.2

sudo apt-get install apache2 mariadb-server mariadb-client php7.2  libapache2-mod-php7.2 php7.2-mysql phpmyadmin php7.2-curl php7.2-gd  php-pear  php-imagick  php7.2-imap php-memcache  php7.2-pspell php7.2-recode php7.2-snmp php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl php-mbstring php7.2-mbstring php-gettext p7zip* fcitx-table-scj6 fcitx-config-gtk shutter vlc kdenlive kazam gimp audacious






PHP 7.2 將 mcrypt 移除了,建議使用 Openssl 來取代




另, 預設 mysql 不會要我們輸入密碼, 所以, 在啟動後, 要 sudo mysql -uroot -p 不用密碼直接登入, 再用 grant all on *.* to root@localhost identified by '123456';  指定新的密碼.

2018年5月16日 星期三

php 的 $_SESSION 失效的處理方式


由於資訊安全考量的緣故,Web Server 被設定為比較安全的環境,造成 php 的 $_SESSION 失效,試了很多方式測試,$_SESSION 是啟動的,但是它的值就是無法傳遞到下一個頁面!
後來參考以下二個頁面: link 1, link 2
總算知道原因,並且解決了~~

第一部份,
先確認 /var/lib/php/session/ 目錄的權限是否正確?
通常都沒有問題!
再來確認 /var/lib/php/session/ 裡,有沒有你使用 $_SESSION 產生的暫存檔?
由於檔名是亂數編的,從檔案名稱看不出來,可能只能從檔案的日期找出最新的,看看它的檔案內容,如果有存在你所儲存的值,表示這部份沒有問題了。
值可以存進去,但是提不出來!

第二部份
用 phpinfo() 檢查 session.use_trans_sid 的值是否為 0。
若為 0 ,問題就找到了! 設為 0 的意思是,每一個 url 都為生成一個 session,其他的頁面也會生成新的 session,而造成無法追蹤前一個頁面的狀況。
也有二個解決方式,一個是修改 php.ini 的檔案,將它改為 1。 另一個,則是修改 php 頁面,在 session_start() 之前,先加上  session_id(SID) 敘述,就可以了。例如:
    session_id(SID);
    session_start();


2018年5月14日 星期一

android app 的資料備份

開發 app 時,常會寫入一些資料做些收集、檢測的工作,實體手機有權限的限制,寫入在 app 的 private data 時,資料的備份是一個麻煩事。
以下方式可以處理~

from:
https://stackoverflow.com/questions/15558353/how-can-one-pull-the-private-data-of-ones-own-android-app

從 android 手機要備份資料,用 adb 可能會用以下方式:
adb pull /data/data/com.corp.appName/files/myFile.txt myFile.txt
 
對於 android virtual device 可能可以,但對實體手機可能會產生錯誤,它不讓我們複製。 
 
先離題一下,連線到實體手機時,以下指令可以進入到 app 的目錄裡,可以看到相關檔案,但無法複製。 
adb shell
run-as com.example.appName 

回題,要複製 app 的資料方式,要用備份的概念來做,指令如下:
adb backup  -f myFiles com.example.appName 

這個指令執行時,為了安全考量,手機上會顯示是否允許備份的動作,所以,必須在手機上配合操作才能允許備份某個 app 的資料。 
其中,myFiles 是備份出來的檔案,這個檔案是有壓縮的。
解開的方式如下:
dd if=myFiles bs=4K iflag=skip_bytes skip=24 | openssl zlib -d > myFiles.tar
 
如果上面這個指令產生 zlib 的錯誤,我用以下方式可以解開壓縮檔,成為 tar 的檔案。
dd if=myFiles bs=4K iflag=skip_bytes skip=24 | zlib-flate -uncompress > myFiles.tar 

再用 tar xf myFiles.tar 方式解開就完成了。 
 
2020.12.02 更新
ref: https://stackoverflow.com/questions/29830981/error-zlib-is-an-invalid-command
如果出現 zlib 或 flate 錯誤,可以用底下方式,用 python 來解決~ 
dd if=myFiles bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -

========================

討論串的下方還有幾種方式,我沒試,也許簡單些~ 
 
方式1 
$ adb shell
$ run-as {app-package-name}
$ cd /data/data/{app-package-name}
$ chmod 777 {file}
$ cp {file} /mnt/sdcard/
再回到 linux 將檔案複製出來
$ adb pull /mnt/sdcard/{file}
 
方式2
adb -d shell "run-as com.example.test cat /data/data/com.example.test/databases/data.db" > data.db
直接用 print 的方式將檔案 dump 到 linux 的檔案裡。