2016年7月15日金曜日

Fontの話とGoogle drive がUbuntuでデフォで使える話

唐突に話題2種

その1.
Google DriveがPPAとかから何もインストールしなくてもつかえます。
それにはアカウントをOS登録するのみでOK
①端末から下記実行
$sudo apt-get install gnome-control-center gnome-online-accounts
② 続いて実行
$gnome-control-center
これunityの設定画面と違う物なので注意
この項目に オンラインアカウントがあるのでそれを選択

このようにGoogleのアカウントを追加する 
右でファイルがONになっているのを確認
これがUnitiy版の同画面にはない。
③このあとnautilusとかで見るかデスクトップで見ると項目が増えてます

それをクリックするだけでGoogle Driveが見れます。

なお同じようにmicrosoft accountを登録してもOneDrivceは見れません。

その2
Fontについての覚書
ubuntuのFont一覧はFont-mamangerで見れる
CUIから見るときのコマンド
fc-list
fc-cache -fv
fc-match -s sans
fc-match -s serif
fc-match -s monospace
fc-match -s fantasy
fc-match -s cursive
fc-match serif:lang=ja
fc-match sans:lang=ja
fc-match monospace:lang=ja
fc-match fantasy:lang=ja
fc-match cursive:lang=ja
上記に現れるsans,serif,monospace,fantasy,cursiveとは?
普通font名と書体は1:1だが
(※書体=フォントのデザイン)
sans,serif,monospace,fantasy,cursive
は総称なのでそうではない。あるFONTをユーザー(OSが)決めて
sans,serif,monospace,fantasy,cursive
としてつかう。そのとき普通は
sans      セリフのない書体、ゴシック体を指すことも多い
serif      セリフのある書体、明朝体とか
monospace  等幅
fantasy    装飾体
cursive           手書き体風
となるように決める。
それを確認するのが
fc-match serif:lang=ja
fc-match sans:lang=ja
fc-match monospace:lang=ja
fc-match fantasy:lang=ja
fc-match cursive:lang=ja
この内重要なのは上3こ sans,serif,monospace,
fantasy,cursive はどうでもいい。(ほとんど使われない)
Webでもsans,serif,monospace,fantasy,cursiveの用語は使う。
もしブラウザーのFONT設定がOSの設定をそのまま使う設定なら

(※firefoxのそれ、fantasy,cursiveはそもそも設定できない)
OSの設定フォントがWEBにそのままでる
確認は
http://msugai.fc2web.com/web/app/font.html
http://rinrin.saiin.net/~aor/fonts/defaultfonts
またFirefoxならWEBの文字を指定してFONTを調べることが可能
https://addons.mozilla.org/ja/firefox/addon/font-finder/
OSの設定に戻り
sans,serif,monospace,fantasy,cursive
を設定するGUIソフトはないらしい。 ただ設定ファイルは
~/.config/fontconfig/fonts.conf
ただしfont-managerを入れていると
~/.config/font-manager/local.conf
書き換えると即反映される。(なにもしなくても)
私の場合こうした



 
  
   serif
  
  
   ヒラギノ明朝 ProN
   Noto Serif
   Takao P明朝
   IPA P明朝
   IPA モナー P明朝
   梅P明朝
   さざなみ明朝
   東風明朝
   EUDC
   DejaVu Serif
   MS P明朝
  
 
 
  
   sans-serif
  
  
   ヒラギノ角ゴ ProN
   Noto Sans
   Takao Pゴシック
   メイリオ
   IPA Pゴシック
   IPA モナー Pゴシック
   UmePlus P Gothic
   梅Pゴシック
   VL Pゴシック
   さざなみゴシック
   東風ゴシック
   EUDC
   DejaVu Sans
   MS Pゴシック
   Aegyptus
   Gardiner
  
 
 
  
   monospace
  
  
   Osaka-等幅
   Noto Mono
   Takaoゴシック
   IPAゴシック
   IPA モナー ゴシック
   UmePlus Gothic
   梅ゴシック
   VL ゴシック
   さざなみゴシック
   東風ゴシック
   EUDC
   DejaVu Sans Mono
   MS ゴシック
  
 
 
  
   cursive
  
  
   HGS祥南行書体
  
 
 
  
   fantasy
  
  
   HGS創英角ポップ体
  
 
 
  
   false
  
  
   hintnone
  
 

2016年5月16日月曜日

ubuntu 16.04のwifiのバグ

若干唐突なのだがubuntu 16.04のNetwork Managerにバグがあるのを今日知った。
それは無線を有効にしてもアクセスポイントのリストが出ないという
ちょっと分かりやすすぎるバグ。
解決の仕方は
①iwconfigでインターフェースの名前を知る。
enp63s0   no wireless extensions.

ra0     

lo        no wireless extensions.


のような感じなので私の場合 ra0 がインターフェースになる.
このあとは

sudo ifconfig ra0  up
service network-manager restart
でOK。
http://askubuntu.com/questions/760075/cant-view-wifi-networks-after-upgrading-to-ubuntu-16-04
ちょっと面倒。




2016年4月3日日曜日

ubuntuにWN-AC433UKを認識させてWiFiする件

WN-AC433UKを買ってみた。
http://www.iodata.jp/product/network/adp/wn-ac433u/
どうもドコモ光のルーターのWiFiの受信がPCだけ弱かったので。

しかしUbuntu15.04のPCに挿してもうごかね
ドライバーの追加をやっても検出しない。

ここであきらめようかとも思ったが
しつこく考えてみた。

まず分かったのはドライバーはmt7610u_wifi_sta_v3002_dpo_20130916で
http://www.mediatek.com/en/downloads1/downloads/mt7610u-usb/
にあるということ。もし切れてたら
http://www.mediatek.com/en/downloads1/downloads/
でMT-7610UのLINUX向けをヒントに探してくれ
要するにIODATAは自前でチップを作ってなくてMEDIATEKのMT-7610Uというチップセット
をWN-AC433UKに使っているってこと。

でこれを解凍して使おうとしたが、コンパイルに失敗する。
で更に調査

ここからの書き換えは
http://qnighy.hatenablog.com/entry/2015/02/05/155016
のとおりでOKだが更に
 -Wno-error=date-time
のフラグをGCCに追加してできた。

列記する
\common\rtusb_dev_id.cの45行目



USB_DEVICE_ID rtusb_dev_id[] = {
#ifdef MT76x0
    +{USB_DEVICE(0x2019,0xAB31)}, /* GW-450D */
    +{USB_DEVICE(0x04BB,0x0951)}, /* WN-AC433UK */
    {USB_DEVICE(0x148F,0x7610)}, /* MT7610U */
    {USB_DEVICE(0x0E8D,0x7610)}, /* MT7610U */
    {USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7630, 0xff, 0x2, 0xff)}, /* MT7630U */
    {USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7650, 0xff, 0x2, 0xff)}, /* MT7650U */
#endif
    { }/* Terminating entry */
};  

\conf\RT2870STA.datの7行目
ChannelGeography=1
-SSID=11n-AP
+SSID=
NetworkType=Infra
WirelessMode=5
EfuseBufferMode=0
 
\conf\RT2870STA.datの22行目

 WmmCapable=1
AckPolicy=0;0;0;0
-AuthMode=OPEN
+AuthMode=WPA2PSK
-EncrypType=NONE
+EncrypType=AES
WPAPSK=
DefaultKeyID=1


\include\os\rt_linux.hの280行目
typedef struct _OS_FS_INFO_
{
    -int                fsuid;
    +kuid_t                    fsuid;
    -int                fsgid;
    +kgid_t                    fsgid;
    mm_segment_t    fs;
} OS_FS_INFO;

\os\linux\config.mkの26行目
# Support Wpa_Supplicant
# i.e. wpa_supplicant -Dralink
-HAS_WPA_SUPPLICANT=n
+HAS_WPA_SUPPLICANT=y


# Support Native WpaSupplicant for Network Maganger
# i.e. wpa_supplicant -Dwext
-HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n
+HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y




\os\linux\config.mkの216行目
CC := $(CROSS_COMPILE)gcc
LD := $(CROSS_COMPILE)ld

-WFLAGS := -g -DAGGREGATION_SUPPORT -DPIGGYBACK_SUPPORT -DWMM_SUPPORT  -DLINUX -Wall -Wstrict-prototypes -Wno-trigraphs
+WFLAGS := -g -DAGGREGATION_SUPPORT -DPIGGYBACK_SUPPORT -DWMM_SUPPORT  -DLINUX -Wall -Wstrict-prototypes -Wno-trigraphs -Wno-error=date-time
WFLAGS += -DSYSTEM_LOG_SUPPORT -DRT28xx_MODE=$(RT28xx_MODE) -DCHIPSET=$(MODULE) -DRESOURCE_PRE_ALLOC -DENHANCED_STAT_DISPLAY
#WFLAGS += -DFPGA_MODE
WFLAGS += -I$(RT28xx_DIR)/include


\os\linux\config.mkの663行目

ifeq ($(HAS_CSO_SUPPORT), y)
WFLAGS += -DCONFIG_CSO_SUPPORT -DCONFIG_TSO_SUPPORT
endif

CHIPSET_DAT = 2860
CHIPSET_DAT = 2870
endif

ここまでやってなんとか認識した。ドライバーのインストールは通常の
makeでOKを確認したあとで
sudo make install
でできた。

一応このファイルを
 https://github.com/kokawa2003/WN-AC433UK-ubuntu-driver
に置いておく。
興味のある人はみて改造してください。
DKMS対応は気が向いたらやります。

なお5Gの方の電波は拾えてない。
理由は不明 場所が悪いのか?

PowerShellまとめ

久々WINDOWSネタだ。
ここでPowerShellについてまとめておきたい。


※まず最初にすべきこととしてスクリプトが動くようにするってのがある。
それにはこれ
Set-ExecutionPolicy RemoteSigned
管理者権限で実行すること

※次の作業としてフォントを変更する。
全角文字を入れた時おかしくなるため
 
このようにPOWERSHELLの左上アイコンクリックー>プロパティで出来る
MS ゴシックを選択

※次にすべきことしてバージョンを確認する
それにはこれ
$PSVersionTable
もしくは
$Host.version

$PSVersionTableだと出力は
Name                           Value
----                           -----
PSVersion                      5.0.10586.117
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.10586.117
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
このPSVersion がそれ

$Host.version
だと
Major  Minor  Build  Revision
-----  -----  -----  --------
5      0      10586  117
みたいに出る
これがそのOSの最新であるのを確認
windows7 以降だと今現在5になる
というかぜひ5にすべきだ。便利なので。 

https://www.microsoft.com/en-us/download/details.aspx?id=50395
(英語のみ)



※次の作業としてchocolatey(https://chocolatey.org/)をインストールする。
パッケージ管理だ。以下は要管理者権限
POWERSHELL5 だと 旧来の
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
 の他に

Get-PackageProvider Chocolatey -ForceBootstrap
で使えるようにして
Get-PackageSource 
で確認する方法もある。これをonegetというらしい。
ただchocolateyだとパッケージのアップデート可能だがonegetだとできないみたいだ。


※次の作業として コマンド履歴をpowershell終了しても残るように変更する。
終了しあとまた次使うときいちいち打ち込むのはやだろう。
それにはモジュールpsreadlineを入れればいい
cinst psget
install-module  psreadline
でOK 
Powershell4だといろいろ小細工する必要があったが 5 でなくなった。ちょっとうれしい。

※次にドライブを確認する
Get-PSDrive
でOK

 Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
Alias                                  Alias
C                 187.86          8.71 FileSystem    C:\
Cert                                   Certificate   \
D                  25.57          3.42 FileSystem    D:\
Env                                    Environment
F                                      FileSystem    F:\
Function                               Function
G                   0.04          0.16 FileSystem    G:\
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
I                 195.11         26.19 FileSystem    I:\
Variable                               Variable
WSMan                                  WSMan

みたいにでる。

ここで 物理 ドライブ(C:\、D:\...)以外のものがあることに注意
すべてのドライブにcd で行けてlsで確認できるのでしてほしい。

ここで覚えておくべきなのは
envで環境変数にアクセスでき
 Variableで変数にアクセス出来ることだ。  
例えば echo $variable:profile でプロファイルのパスが出る
これは 省略して   echo $profile でも OK 

ちなみに 値は 
 C:\Users\kouji\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1



※次にプロファイルを編集
このプロファイルだがbashとかと同じく起動時に読み込まれるスクリプト
なんでも書けるのでalias とかfunction を切っておく

まずファイルを作る
New-item –type file –force $profile

編集
notepad $profile

中身はこんな感じ
Set-Alias grep Select-String
Set-Alias firefox "C:\Program Files\Mozilla Firefox\firefox.exe"

#再起動
function reboot(){
  shutdown -r -t 0
}

#管理者権限で起動
function su
{
    Start-Process powershell.exe -Verb runas
}


※次にSSHする方法
powershellでSSHするには
Win32-OpenSSH
で可能
名前に反して64bitに対応している
インストールは
cinst Win32-OpenSSH
でOK
ssh ....
が使える。
ただし事前に文字コードを変える必要がある(LINUXはほとんどUTF8なので)
 [Console]::OutputEncoding = [Text.Encoding]::UTF8;
でOK 

※次に画面の色


あと色に関するものは
$Host.UI.RawUI.BackgroundColor
$Host.UI.RawUI.ForegroundColor
$Host.PrivateData.ErrorForegroundColor
$Host.PrivateData.ErrorBackgroundColor
$Host.PrivateData.WarningForegroundColor
$Host.PrivateData.WarningBackgroundColor
$Host.PrivateData.DebugForegroundColor
$Host.PrivateData.DebugBackgroundColor
$Host.PrivateData.VerboseForegroundColor
$Host.PrivateData.VerboseBackgroundColor
$Host.PrivateData.ProgressForegroundColor
$Host.PrivateData.ProgressBackgroundColor
[console]::ForegroundColor
[console]::BackgroundColor
[System.Console]::ForegroundColor
[System.Console]::BackgroundColor

Get-PSReadlineOption
Set-PSReadlineOption -TokenKind Command -ForegroundColor Magenta
Set-PSReadlineOption -TokenKind Comment -ForegroundColor Black -BackgroundColor White



モジュールについて
モジュールの追加で機能拡張可能
そのパスは
$env:PSModulePath
インストール可能なモジュールのリスト
find-module
検索
find-module XXXX
インストールされたモジュールのリスト
Get-Module -ListAvailable
モジュールインストール
install-module XXXXX

モジュールのコマンドリストアップ
get-command -module XXXX
 

  
※最後に
己自身が勉強する必要がある。

 


    
      

2016年4月2日土曜日

家のUBUNTUのDNSが失敗する件

最近ドコモ光にした話をしたと思うが、それ以来問題になっているのが実は1件ある。
それはPCを立ち上げた直後DNS変換に失敗すること。
正確にいうと起動後数十秒で
ping google.com
に失敗する。
これ最初WEBが落ちるのかとおもったが、よくよく調べて見ると
ping 8.8.8.8
には成功するので要するに ドメイン名ー>IP の変換に失敗しているってことが分かった。
だが一旦NETWORK MANAGERから接続断にして繋ぎ直すとOKなのであまり問題視してなかった。

しかしながら最近リモートデスクトップとかするようになり、そのときリモートでPCは見れるが
その時PCからWEBができないので物足りなさを感じてはいた。当然ながらこのとき接続断にして繋直すことはできない。切るとリモートできなくなるからだ。

この件なのだが今日解決した。
sudo vi /etc/NetworkManager/NetworkManager.conf

dns=dnsmasq
の行があるのでこの行をコメントアウト
#dns=dnsmasq
でOK