2019年8月23日 星期五

manjaro 獨立顯卡驅動安裝 - nVidia

選擇有兩種
  1. 開機預設使用內顯, 依情況指定程式使用獨顯: 較省電
  2. 開機預設使用獨顯: 高效, 耗電
1的選擇使用bumbleblee, 2的選擇使用nvidia optimus
本次採用2的選項做安裝

  1. 開啟manjaro-settings-manager-> Hardware Configuration
  2. 找到video-nvidia,點右鍵選擇安裝
  3. 安裝完成後, 做以下設定
    • 移除/etc/X11/xorg.conf.d/90-mhwd.conf
    • 新增/etc/X11/xorg.conf.d/optimus.conf, 內容如下
      •   Section "Module"
            Load        "modesetting"
        EndSection

        Section "Device"
            Identifier  "nvidia"
            Driver      "nvidia"
            BusID       "PCI:1:0:0"
            Option      "AllowEmptyInitialConfiguration"
        EndSection
    • 移除 /etc/modprobe.d/mhwd-gpu.conf
    • 新增 /etc/modprobe.d/nvidia.conf
      •   blacklist nouveau
        blacklist nvidiafb
        blacklist rivafb
    • 新增 /etc/modprobe.d/nvidia-drm.conf
      •   options nvidia_drm modeset=1
    • 新增 /usr/local/bin/optimus.sh
      •  #!/bin/sh

        xrandr --setprovideroutputsource modesetting NVIDIA-0
        xrandr --auto
    • 賦予權限 chmod a+rx /usr/local/bin/optimus.sh
    • 修改桌面管理的設定 sudo vi /etc/lightdm/lightdm.conf
      • 找到 [Seat:*] 段落
      • 加入 display-setup-script=/usr/local/bin/optimus.sh
      • 修改完成, 存檔離開
    • 重新開機 sudo reboot
  4. 無法進入桌面, ctrl+f2切至tty2
  5. 登入後執行命令 sudo pacman -Syyu (註1)
  6. 更新完成後, 重開機
  7. 祈禱, 成功進桌面
  8. 開terminal, 執行 sudo nvidia-settings,如果成功叫出設定面板, 恭喜成功
註1: 一定要先安裝driver再更新,反過來會在安裝driver的時候系統freeze, 原因不明

小結: manjaro已經算是把驅動安裝簡化了很多, 但硬體環境不同還是會有一堆奇怪問題. 基礎安裝那篇有提到修改開機設定, 和這篇發現要先裝driver再更新系統都是, 雖然不知道為什麼, 但這樣做就能通過了. 很難保證到其他環境可以照搬, 也許又要重新折騰一遍 orz

reference: https://www.youtube.com/watch?v=am7xeUFQ8uY

Manjaro安裝設定 - 起步

安裝環境: 這是一台有獨顯的laptop, 後續會安裝顯卡驅動
CPU: i5-7400 (有內顯)
GPU: nVidia GeForce FTX 1050 Mobile


  1. 下載Manjaro iso: 挑一個你喜歡的發行版
    https://manjaro.org/download/
     
  2. 將iso 燒錄成dvd, 或製作可開機usb (推薦使用rufus-註1)
  3. 使用manjaro dvd/usb開機, 到開機選單, 修改開機選項(註2)
    • 移至空白列前面有個筆記圖示的, 按e
    • 第一行引號內, 輸入 drive=intel acpi_osi=! acpi_osi="Windows 2009"
    • 修改完成, 按ctrl+x回到開機選單
  4. 在開機選單, 移動到boot列, 按enter
  5. 開機進桌面, 開始安裝(有界面引導, 中略)
  6. 安裝完成, 重新開機進新系統
  7. 開機進桌面後, 開啟terminal, 修改開機選項
    • sudo vi /etc/default/grub
      • 找到GRUB_CMDLINE_LINUX_DEFAULT, 游標移動到quiet後方
      • 空一格, 加入下列選項 acpi_osi=! acpi_osi='Windows 2009'
      • 完成後存檔離開
    • 更新開機選項 sudo update-grub
    • 重開機 - 可能會卡死, 切電源重開進桌面
    • 若成功, 下次重開就不會再有卡死問題

註1: 我是用rufus 3.5, 3.6不知道為什麼不給指定開機格式. 本次用GPT-EFI, dd模式寫入
註2: 看個人情況, 可能不用改, 我的環境因為有獨顯, 不改會無法進入桌面



2015年5月18日 星期一

raspberry pi cross compile kernel

Cross compile platform: Ubuntu x64
Target: Raspberry pi

1. Download tool chain and configuration
  • Get from git
git clone https://github.com/raspberrypi/tools.git
  • Add tool chain gcc path to /etc/profile, it will take effect when next login.
PATH="$PATH:/usr/local/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin" >> /etc/profile

2. Download kernel source
git clone https://github.com/raspberrypi/linux.git
  
3. Get raspberry pi config


  • Login to raspberry pi console and:
zcat /proc/config.gz > .config
  • Back to download source code location
  • Copy config file 
scp pi@:~/.config .
4. Make kernel and module0
  • Make config
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- oldconfig
  • kernel compile
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
  • module install
mkdir ../modules
make modules_install ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=../modules/
  •  Generate image
cd ~/tools/mkimage
./imagetool-uncompressed.py ~/linux/arch/arm/boot/zImage"

5. Copy image and modules to pi
scp ~/tools/mkimage/kernel.img pi@:~/
scp -r ~/modules ~/ pi@:~/

6. Login pi console and move image and modules to system boot path

  • Backup original kernel if needed
mv /boot/kernel.img /boot/kernel.img.bak
  • Move new kernel image to boot partition
mv kernel.img /boot/kernel.img
  • Move corresponding modules to lib
mv modules/lib/modules/3.18.x /lib/modules/

7. Reboot pi and check the it uses new kernel
uname -r

2015年5月14日 星期四

Raspberry pi vsftp安裝設定

安裝vstfp
apt-get install vsftpd

修改設定
local_enable=yes
write_enable=yes
(optional) chroot_local_user=YES 

重新啟動服務 使修改生效
service vsftpd restart

2015年4月19日 星期日

Raspberry pi安裝媒體伺服器(dlna)

安裝minidlna
apt-get install minidlna
如果遭遇錯誤要求update, 執行以下命令再安裝一次
apt-get update

修改設定
vi /etc/minidlna.conf

media_dir=/media/usb_hdd/download
friendly_name={your dlna name}

設定完成, 重啟服務
service minidlna restart

Raspberry pi Transmission 安裝與設定

安裝
apt-get install transmission-daemon

停止服務並修改設定 (註)
/etc/init.d/transmission-daemon stop
vi /etc/transmission-daemin/settings.json

download完成位置和未完成檔案位置
"download-dir": "/media/usb-hdd/download",
"incomplete-dir": "/media/usb-hdd/download/tmp",
"incomplete-dir-enabled": true,

下載任務相關限制
"max-peers-global": 200,
"peer-limit-global": 60,
"peer-limit-per-torrent": 30,

lazy-bitfield-enabled
"lpd-enabled": true,

遠端管理介面的登入帳號密碼, 密碼可直接明碼輸入, 服務啟動後會加密
"rpc-username": "{your name}",
"rpc-password": "{your password}",

關閉白名單設定
"rpc-whitelist": false,

設定完成後, 啟動服務
/etc/init.d/transmission-daemon start

註: 服務未停的狀態下, 設定檔修改的內容會在停止時被覆蓋, 所以要先停服務

Raspberry pi 外接USB硬碟

遭遇無額外供電硬碟電源不足問題
修改/boot/config.txt
加入max_usb_current=1

支援ntfs: 安裝ntfs-3g
apt-get install ntfs-3g

掛載ntfs格式硬碟
mount -t ntfs-3g /dev/sda1 /media/usb-hdd