2016年3月30日 星期三

Linux 直接對 SCSI 下 SCSI Command


  探索 Linux 通用 SCSI 驅動器
   https://www.ibm.com/developerworks/cn/linux/l-scsi-api/
   範例程式:
    http://public.dhe.ibm.com/software/dw/linux/l-scsi-api/scsi_test.zip
  The Linux SCSI Generic (sg) Driver
   http://sg.danny.cz/sg/index.html?cm_mc_uid=74659717581214593228614&cm_mc_sid_50200000=1459322861

這是另一篇 SCSI Pass Through Interface

Linux LSI SAS 9211-8i Utility

Linux LSI SAS 9211-8i Utility
  sas-9211-8i Download
  
  LSIUtil 1.57
    lsiutil-1.57.tar.gz
  LSIUtil 1.62
   http://www.dzhang.com/blog/2013/03/22/where-to-get-download-lsiutil
     LSIUtil_1.62.zip

  LSIUtil 1.70
    https://kb.nc.tc/lsi_sas_controllers
    lsiutil_1.70_release_binaries.zip 
    
  LSIUtil 1.71
    https://kb.nc.tc/lsi_sas_controllers
    lsiutil-1.71.zip
    Include Source Code: \LSIUtil Kit 1.71\Source\lsiutil.tar.gz


  LSIUtil 1.72
   lsiutil-1.72.tar.gz
      lsiutil_1.72.bb

  LSIUtil configuration utility 
   lsiutil_manual.pdf 
   LSIUtil_UG.zip


Installing LSI megaCLI in Ubuntu 12.04

http://www.linuxcat.org/showthread.php?tid=68

megactl

 This project is a small collection of programs for examining configuration a
 nd status of LSI megaraid adapters, especially Dell PERC RAID adapters,
 and attached storage devices.
 https://sourceforge.net/projects/megactl/?source=typ_redirect



//=================================================

LSIUtil 的第16個功能是有Bug的
16.  Display attached devices
其 PhyNum 

但 LSIUtil 卻是相反的
也就是說其對應要是相反的

第一條 SAS Cable 是 0到3
 LSIUtil PhyNum        LSI PHY Cable Port
      3                        =>        0 
      2                        =>        1 
      1                        =>        2 
      0                        =>        3 

第二條 SAS Cable 是 4到7
 LSIUtil PhyNum        LSI PHY Cable Port
      7                        =>        4 
      6                        =>        5 
      5                        =>        6 
      4                        =>        7 

if( LSIUtil PhyNum >=0 && LSIUtil PhyNum <= 3)
 3-(LSIUtil PhyNum) = (LSI PHY Cable Port)
else if( LSIUtil PhyNum >= 4 && LSIUtil PhyNum <= 7)
 7-(LSIUtil PhyNum) + 4 = (LSI PHY Cable Port)



  PHY  P    H   T   L

:=====================
:  0/  0-[  0   0   0]
:  1/  0-[  0 353   0]
:  2/  0-[  0 351   0]
:  3/  0-[  0 352   0]
:  4/  0-[  0 356   0]
:  5/  0-[  0 355   0]
:  6/  0-[  0 354   0]
:  7/  0-[  0 357   0]
:=====================


                                                               My        Lsiutil
                                                               PhyNum    PhyNum  
[0:0:351:0]  disk    SEAGATE  ST3500414SS      0006  /dev/sdb   2           1   [0:0:352:0]  disk    SEAGATE  ST3500414SS      0006  /dev/sdc   3           0
[0:0:353:0]  disk    SEAGATE  ST3500620SS      0001  /dev/sdd   1           2
[0:0:354:0]  disk    ATA      ST3500413AS      JC45  /dev/sde   6           5 
[0:0:355:0]  disk    ATA      ST1000VX000-1CU1 CV22  /dev/sdf   5           6
[0:0:356:0]  disk    ATA      ST1000DM003-1CH1 CC44  /dev/sdg   4           7
[0:0:357:0]  disk    ATA      ST1000DM003-9YN1 CC4D  /dev/sdh   7           4
[1:0:0:0]    disk    ATA      ST1000DM003-9YN1 CC4B  /dev/sda 

# lsscsi -t

[0:0:351:0]  disk    sas:0x5000c50041ea5265          /dev/sdb 
[0:0:352:0]  disk    sas:0x5000c500418fac39          /dev/sdc 
[0:0:353:0]  disk    sas:0x5000c5000d2161f1          /dev/sdd 
[0:0:354:0]  disk    sas:0x4433221105000000          /dev/sde 
[0:0:355:0]  disk    sas:0x4433221106000000          /dev/sdf 
[0:0:356:0]  disk    sas:0x4433221107000000          /dev/sdg 
[0:0:357:0]  disk    sas:0x4433221104000000          /dev/sdh 
[1:0:0:0]    disk    sata:                           /dev/sda 







//=================================================
LSIUtil 的第42個功能是有Bug的 (LSIUtil 1.71以前, 1.72的 Source Code還沒有時間研究)
42.  Display operating system names for devices
在特定的時候, OS Devices Name 會取得失敗

因為 lsiutil 使用兩種方式

在 getOsDeviceNameEx(...)中
第一種是
 n = readlink(pathName, linkName, (int)sizeof linkName);
 這會取得失敗
例如:
 "/sys/class/scsi_device/0:0:351:0/device/block/"

第二種是

 n = ioctl(fd, SCSI_IOCTL_GET_IDLUN, id);
這個取得的 id[0] 會是錯誤的號碼.

所以兩種都得不正確的  OS Devices Name  /dev/sdx

猜測 SCSI_IOCTL_GET_IDLUN 對於Target ID大於 254 會出問題
有時間再去查這部份的 Linux Source Code

請參考 lsscsi的 source Code

這是取得失敗的畫面


2016年3月29日 星期二

Linux Samba Client Mount 遠端 SMB Server 幾種方式

原文
 http://www.vixual.net/blog/archives/228


[smbmount]
 smbmount -o username="Username",password="Password" //IP/share /mnt/smb
 smbumount /mnt/smb

[mount]
 mount -t smbfs -o username="Username",password="Password" //IP/share /mnt/smb
 umount /mnt/smb

[cifs]
 mount -t cifs -o username="Username",password="Password" //IP/share /mnt/smb
 umount /mnt/smb
 mount.cifs -o username="Username",password="Password" //IP/share /mnt/smb
 umount.cifs /mnt/smb
 

Linux 程式的 Sleep 指令


 方式 1:
  一般的標準程式, 使用這個.
  http://linux.die.net/man/3/usleep
  #include <unistd.h>
   usleep(microseconds);
 
 方式 2:
  有啟用 pthread後, 再使用這個.
  http://linux.die.net/man/3/pthread_cond_timedwait
  #include <pthread.h>
   pthread_cond_timedwait(pthread_cond_t* cond, pthread_mutex_t *mutex, const struct timespec *abstime)
 
  範例:
   http://www.verydemo.com/demo_c167_i14933.html
   http://fanli7.net/a/JAVAbiancheng/thread/2012/0827/212673.html



gcc ++ 在 Link 時, 要增加一個 pthread



2016年3月28日 星期一

Linux 簡易讀寫 Ini檔案


利用幾個 C函式, 可以快速對 ini 讀寫
minIni - a minimal INI file parser
 原來來自
  http://www.compuphase.com/minini.htm



Ubuntu Processes View

 1:
  軟體中心, 安裝 GNOME 系統監控程式


 2:
  軟體中心, 安裝 Htop程式


 3:
  軟體中心, 安裝 KsysGuard程式


 4:
 原文在此
   http://www.cyberciti.biz/faq/show-all-running-processes-in-linux/
 
 $ ps aux | less
 $ ps -A
 $ ps -e
   -A: select all processes
   a: select all processes on a terminal, including those of other users
   x: select processes without controlling ttys
 $ ps -U root -u root -N
  root 是使用者 root 帳號
 $ ps -u xxx  
    xxx 是使用者帳號
 $ pstree


2016年3月27日 星期日

Ubuntu上要設定開機後自動登入Console Mode

要改成文字模式做法是編輯 /etc/default/grub,
1: 將 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 此行註解掉
2: 然後將 GRUB_TERMINAL=console 那一行取消註解

(或用另一種做法,修改某一行的設定:GRUB_CMDLINE_LINUX_DEFAULT="text",
但此法較不推!),
存檔離開後,下 sudo update-grub 指令來更新開機管理程式之設定檔,
重新開機即為所求。
(P.S. 要切換回視窗介面,在文字介面下 startx 指令不一定能完全切換。
可用 sudo /etc/init.d/lightdm start)



另一種方式

安裝虛擬終端機程式 mingetty

apt-get update
apt-get install mingetty

修改開機到文字介面
 /etc/default/grub
將GRUB_CMDLINE_LINUX_DEFAULT設定值改為text(原本是quiet splash)

設定完成後更新grub
sudo update-grub

設定自動登入
sudo vi /etc/init/tty1.conf
將 exec /sbin/getty -8 38400 tty1
修改成
exec /sbin/mingetty --autologin root tty1即可

完成上述三個步驟,重新開機後就可以看到系統開啟文字終端機並且以root帳號自動登入,若要改成其他帳號登入,可將第三步驟的root改成對應帳號名稱。

Ubuntu 14.04以root的身分開啟檔案總管

sudo nautilus

Ubuntu 查看cpu參數

Ubuntu 查看cpu參數
$cat /proc/cpuinfo

Ubuntu 硬碟休眠

Ubuntu 硬碟休眠
hdparm -Y /dev/hd*:使硬碟進入睡眠模式;
hdparm -y /dev/hd*:使硬碟進入省電模式;
hdparm -S[num] /dev/hd*:設置超時值使硬碟進入睡眠模式

查看硬碟參數:
 hdparm /dev/hda

Ubuntu 列出 SCSI 磁碟機裝置


/dev/sd: sda 就是 SCSI 的硬碟. (but also SATA and USB disks)
/dev/scd: SCSI audio-oriented optical disc drives
/dev/sd: SCSI hard disks (also SATA or USB disks)
/dev/sg: SCSI generic devices
/dev/sr: SCSI data-oriented optical disc drives
/dev/st: SCSI magnetic tapes



lsscsi使用說明
  http://sg.danny.cz/scsi/lsscsi.html

 $ apt-get install lsscsi
 $ lsscsi

$ lsscsi  顯示所有連接裝置
[0:0:8:0]    disk    FUJITSU  MAM3184MP        0105  /dev/sda

$ lsscsi -s 顯示裝置,並顯示容量。
[0:0:0:0]    cd/dvd  PIONEER  DVD-RW  DVR-212D 1.22  /dev/sr0        -
[1:0:0:0]    disk    ATA      ST3320620AS      3.AA  /dev/sda    320GB

$ lsscsi -c 顯示類似 'cat /proc/scsi/scsi'
Attached devices:
Host: scsi0 Channel: 00 Id: 08 Lun: 00
  Vendor: FUJITSU  Model: MAM3184MP        Rev: 0105
  Type:   Direct-Access                    ANSI SCSI revision: 03

$ lsscsi -d 顯示裝置節點的主要與次要的數值
[0:0:1:0]    disk    FUJITSU  MAM3184MP        0105  /dev/sda[8:0]

$ lsscsi -H 顯示邏輯單位(LUN:logical units)
[0]    scsi_debug
[1]    aha152x

$ lsscsi -t 顯示傳輸資訊
[0:0:0:0]    disk    sata:                           /dev/sda
[3:0:0:0]    cd/dvd  ata:                            /dev/scd0
[5:0:0:0]    disk    usb: 7-1:1.0                    /dev/sdb

$ lsscsi -Ht 顯示邏輯單位的傳輸資訊
[0]    ahci          sata:
[1]    ahci          sata:
[3]    ata_piix      ata:


其他相關
 $ apt-get install sg3-utils
 $ sg_scan -i -x

 $sg_map
 $sg_map -i -x
  Soiurce Code:
   https://fossies.org/dox/sg3_utils-1.42/sg__map_8c_source.html
 


 $sg_inq /dev/sg0




 $sginfo -i /dev/sg0



 在不重開機情形下重新掃描SCSI裝置
 $rescan-scsi-bus.sh

$blkid






Ubuntu 列出磁碟機 Partitions 訊息

 # lsblk
or
 # sudo fdisk -l

 # sudo fdisk -l
 # sudo sfdisk -l /dev/sda
 # sudo sfdisk -lu /dev/sda
 # sudo sfdisk -ls /dev/sda



Listing Linux a Partition Size Larger Than 2TB
 # parted /dev/sdb
  (parted) unit TB
  or
  (parted) unit GB
 
  (parted) print
 
# parted -l


Ubuntu 列出已經Mount的磁碟機

# fsck -l

Ubuntu 列出 PCI-E Bus 裝置

 原文
http://b8807053.pixnet.net/blog/post/45059362-linux下查看pci-e插槽信息

# lspci

# lspci -n

Ubuntu 安裝Samba Server

Ubuntu 安裝 Samba Server

[1]
$ apt-get install samba

[2]
新增Samba Server的使用者 xxx
 $ smbpasswd -a XXX

例如新增一個 root 帳號
 $ smbpasswd -a root

[3]
設定Samba
編輯檔案內容
 /etc/samba/smb.conf

(1)
[global]
workgroup = root
security = share

(2)尾部加入
下面 = 的右邊 root , 就是smbpasswd新增的帳號名稱
因為在程式開發階段, 習慣用 root登入ubuntu桌面環境

[Home]
path = /home/jun
writable = yes
guest account = root
force user = root
public = yes
force group = root

[Root]
path = /
writable = yes
guest account = root
force user = root
public = yes
force group = root

[4]重新啟動 Samba Server
sudo /etc/init.d/samba restart

[5]將 Unbutu 電腦重新開機
  不重新開機,  Windows 端會連線不到,

[6]在Windows設定
在網路上的芳鄰圖示下按右鍵,
選 "連線網路磁碟機"
磁碟機: 任選
資料夾: \\Ubuntu下所設IP\分享資料夾的名稱


PS:
 使用 ifconfig 指令, 可以觀看 Unbutu 的網路卡 IP 資訊

Unbutu 中的小畫家軟體

Unbutu 中的小畫家軟體
 可以在 Unbutu軟體中心中找到
 名稱: KolourPaint

apt-get install kolourpaint

2016年3月25日 星期五

Unbutu Chrome 瀏覽器會要求"輸入預設鑰匙圈的密碼"解決方法

Unbutu Chrome 瀏覽器會要求"輸入預設鑰匙圈的密碼"解決方法

方法一:
 原文來自
  http://digitized-life.blogspot.tw/2012/09/xubuntu-chrome.html

 開啟檔案管理
 輸入搜尋的字串 keyrings 都會
 會顯示出好幾個和keyring有相關目錄
 點選打開每一個目錄
 查看檔案是否有一個 預設鑰匙圈密碼.keyring
 將這個檔案刪除
 登出桌面帳號, 再重新登入
 開啟 Chrome
 在Chrome的對話框"選擇登入鑰匙圈的密碼"畫面, 直接點選"確定"
 Chrome會再出一個對話框詢問"是否儲存不加密的密碼:
 點選"確定"
 登出桌面帳號, 再重新登入

方法二:
如果還是無效
開啟 "密碼及加密金鑰"
點選"預設鑰匙"->按滑鼠右鑑 -> 刪除
在重新登入 Ubuntu






2016年3月24日 星期四

Ubuntu 安裝 QT5

 https://www.qt.io/download-open-source/#section-2

Qt 5.6.0 for Linux 64-bit
 http://download.qt.io/archive/qt/5.6/5.6.0/
 http://download.qt.io/official_releases/qt/5.6/5.6.0/qt-opensource-linux-x64-5.6.0.run

Qt Creator 3.6.1 for Linux/X11 64-bit
 http://download.qt.io/official_releases/qtcreator/3.6/3.6.1/qt-creator-opensource-linux-x86_64-3.6.1.run

QT5.5
 檔案下載
  https://www.qt.io/download-open-source/
  Qt 5.5.0 for Linux 64-bit (532 MB)    (info)
   http://download.qt.io/official_releases/qt/5.5/5.5.0/qt-opensource-linux-x64-5.5.0-2.run
  http://download.qt.io/archive/qt/5.5/5.5.0/

 下載變更檔案
  sudo chmod +x qt-opensource-linux-x64-5.5.0-2.run
 安裝程式
  sudo qt-opensource-linux-x64-5.5.0-2.run

QT4.8.6
  http://download.qt.io/archive/qt/4.8/4.8.6/
http://blog.sina.com.cn/s/blog_4d661a8c0100jnpq.html  



QT Qidgets Applicaption會使用到 OpenGL
請參考這篇 Howto Install OpenGL Development Environment
  http://wiki.ubuntu-tw.org/index.php?title=Howto_Install_OpenGL_Development_Environment#.E5.AE.89.E8.A3.9DOpenGL_Library

安裝QT開發的Eclipse插件-Windows 版本

 其實QTCreate 已經很完善了.
 

 國外使用者建議是使用 Eclipse CDT Indigo + qt-eclipse-integration-win32-1.6.1.exe
 但我還未進行測試
 另有一篇教學
  http://qimo601.iteye.com/blog/1614945

 相關檔案都放在 github
  https://github.com/ygpark/nokia-qteclipse/find/master

 Install mingw-get-inst-20110802.exe. After installation I have D:\apps\MinGW\bin\mingw32-g++.exe
 Install qt-win-opensource-4.7.0-mingw.exe. After installation, I have D:\apps\Nokia\Qt\4.7.0\bin\qmake.exe
 Install qt-eclipse-integration-win32-1.6.1.exe. After installation I have D:\apps\Nokia\Eclipse\start.bat
 modify D:\apps\Nokia\Eclipse\start.bat
 set PATH=D:\apps\MinGW\bin;D:\apps\Nokia\Qt\4.7.0\bin;%SystemRoot%\System32

 Check QT path in Eclipse:
 Window -> Preferences -> Qt
 Bin Path: D:\apps\Nokia\Qt\4.7.0\bin
 Include Path: D:\apps\Nokia\Qt\4.7.0\include

 Start -> All Programs -> Qt by Nokia v4.7.0 (OpenSource) -> Qt 4.7.0 (Build Debug Libraries)

 Start -> All Programs -> Qt Eclipse Integration v1.6.1 -> Start Eclipse with MinGW

 Create a new Qt project in Eclipse;
 Update make file by menu “Project” -> “Run qmake”

安裝QT開發的Eclipse插件-Linux 版本

QT for Eclipse已停止開發,
一般都建議直接使用 QT Create


安裝QT開發的Eclipse插件-Linux 版本

  相關檔案都放在 github
   https://github.com/ygpark/nokia-qteclipse/find/master
   
    https://github.com/ygpark/nokia-qteclipse/blob/master/qt-eclipse-integration-linux.x86_64-1.6.1-src.tar.gz
    https://github.com/ygpark/nokia-qteclipse/blob/master/qt-eclipse-integration-linux.x86_64-1.6.1.tar.gz
   
  文件- Installation and Uninstallation
   https://doc.qt.io/archives/qt-eclipse-1.6/eclipse-integration-installation.html  

Unbutu 安裝 KDevelop 4

Unbutu 安裝 KDevelop 4
 apt-get install kdevelop cmake build-essential


 變更軟體語言
 Memu -> Help -> switch Applicaption Language...



Unbutu 安裝 g++ 編譯器

Unbutu 安裝 g++ 編譯器

 原文來自
   http://www.cnblogs.com/oomusou/archive/2007/10/20/931707.html
   http://blog.sciencenet.cn/blog-587102-780484.html
 
 1:
  apt-get install g++
 2:
  安裝完整的工具及lib
  apt-get install build-essential

其他:

 1: 修復安裝失敗時, 再一次安裝
  apt-get install build-essential --fix-missing

 2: 查詢軟體的安裝目錄
  dpkg -L 軟體名稱

  $ dpkg -Lgcc
  $ dpkg -Lgcc-4.4
  $ dpkg -Lg++
  $ dpkg -L g++-4.4

2016年3月23日 星期三

Linux RS-232 工具軟體

Linux RS-232 工具軟體


 Linux RS-232 程式設計

 GtkTerm
  http://odinq.blogspot.tw/2009/01/ubuntu-gtkterm.html
  $ apt-get install gtkterm

 CuteCom
  $ apt-get install cutecom

 MiniCom
  $ apt-get install minicom
  啟動 minicom 設定環境
  $ minicom -s
  啟動 minicom為英文模式
  $ LANG= minicom -s
    ( 請注意, 上面這行的指令,  = 和minicom 中間有一個空白)
  設定minicom的參數
   Serial port setup: 設定 serial device (/dev/ttyS0)、baud rate
   Modem and dialing: 將 Init string、Reset string 設成空字串
   Screen and keyboard: Status line Is : disabled
   Save setup as dfl:  儲存設定 ~/.minirc.dfl
  可以使用 Ctrl-A , 再按 x 退出 minicom軟體
   重新啟動 minicom, 後面就可以不用帶參數
    $ minicom


PS:

 COM1 是用  /dev/ttyS0

 USB轉RS-232 是用 /dev/ttyUSB0

 顯示 USB 裝置的資訊
  $ ls -l /dev/ttyUSB0
  $ lsusb
  $ lsusb -v

Ubuntu 查看所有硬體列表

Ubuntu 查看所有硬體列表
 $ lshw

 list all PCI devices
 $ lspci

 安裝 GUI hardinfo 工具
 $ apt-get install hardinfo
 $ hardinfo

Ubuntu 查看所有硬碟列表

有下列各種方法
 $ desktop 內含的磁碟工具
 $ lsblk
 $ fdisk -l
 $ sfdisk -l -uM
 $ cfdisk
 $ parted -l
 $ df -h
 $ pydf
 $ blkid

Ubuntu 安裝 Eclipse IDE for C/C++ Developers

Ubuntu 安裝 Eclipse IDE for C/C++ Developers

 請先安裝 g++ 編譯器


 本人習慣使用 Juno Packages
 http://www.eclipse.org/downloads/packages/release/Juno/SR2
 http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/junosr2
 下載 eclipse-cpp-juno-SR2-linux-gtk-x86_64.tar.gz
 直接在 Ubuntu下解壓縮下載 gz檔案
 Ubuntu在執行解壓縮後的 eclipse 目錄下的 eclipse 檔案

 PS: 如果發現 JAVE JRE 找不到, 請安裝 JAVE JRE.
     http://snoopymemory.blogspot.tw/2016/03/ubuntu-open-java-jdk-jre.html




Eclipse 換為英文
修改 eclipse.ini
增加下面這一行
 -Duser.language=en_US


Ubuntu 安裝 Open JAVA JDK 和 JRE

Ubuntu 安裝 Open JAVA JDK 和 JRE
 原文: http://linuxpilot.com/ubuntu-java

安裝 JRE
 sudo apt-get install default-jre
安裝 JDK
 sudo apt-get install default-jdk

PS: 要安裝Java 7或者Java 6
    使用 openjdk-7-jdk 或 openjdk-6jdk
    和 openjdk-7-jre 或 openjdk-6-jre




Ubuntu 安裝 Oracle JAVA JDK 和 JRE
 sudo add-apt-repository ppa:webupd8team/java
 sudo apt-get update
 sudo apt-get install oracle-java8-installer
 sudo apt-get install oracle-java8-set-default
PS: 安裝Java 7(i.e Java 1.7), 在上面的命令中用 java7 代替 java8

2016年3月22日 星期二

Ubuntu 安裝 Intel Graphics for Linux


下載和Ubuntu相同的版本
執行後, 在軟體中心點選進行安裝.

https://01.org/zh/linuxgraphics/downloads

Google Chrome 在 root 帳號下執行

 終端機指令
   google-chrome --user-data-dir

 unbutu 啟動欄修改方法
  打開 /usr/share/applicaions/google-chrome.desktop
  修改
   Exec=/user/bin/google-chrome-stable %U
  變為  
   Exec=/user/bin/google-chrome-stable --user-data-dir %U
  一共有三個, 都增加 --user-data-dir






Ubuntu啟用root賬戶後,登錄root賬戶時ttyname failed

原文來自

http://www.openhacktech.com/?p=89

Ubuntu啟用root賬戶後,登錄root賬戶時報錯:讀取/root/.profile時發現錯誤:mesg:ttyname failed:對設備不適當的ioctl操作 作為結果,會話不會被正確配置


方法一:

將/root/.profile文件中的mesg n
替換成tty -s && mesg n



重啟
方法二:
將非root賬戶目錄中的.profile複製到/root/:
例如:cp /home/username/.profile /root/
重啟

ubuntu 14.04 以後版本, 設置root自動登入

ubuntu14.04 或 15.10 設置root自動登入
試了各種方式, 終於在這位網友找到答案

原文來自
http://www.linuxdiyf.com/linux/17872.html

1: 建立 root 用戶密碼
sudo passwd root

2: 切換到root用戶
sudo -s

3: 登錄界面實現root登錄
gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

將檔案內容修改成下列
[SeatDefaults]
user-session=ubuntu
#啟動後以root身份自動登錄
autologin-user=root
greeter-session=unity-greeter
#手工輸入登陸系統的用戶名和密碼
greeter-show-manual-login=true
#禁用guest用戶
allow-guest=false


4:
編輯  /root/.profile文件中的 mesg n
替換成 tty -s && mesg n


5: 重啟 ubuntu
reboot