0%

2014-11-07 ~ 2014-11-14 美西一週峽谷之旅

閱讀全文 »

今年十一月中因緣際會去奧蘭多參加了 SUSEcon14,會後有提供 NCLA、NCLP 11&12 的認證。因為小弟已經有 NCLA (考過 LPIC-1 就會送了),所以本次想說順便拿個 NCLP 的認證。

考試前就很不順,我考試的場次是 11:00 ~ 2:00,大約 10:40 就去報到,等啊等,等到 10:55 突然考試人員出來考場說,因為他們的資料中心發生網路問題,現在連不上考試系統,當下一囧,想說不知道要等多久…我的飛機不等人啊,幸好後來在 11:20 左右排除了。

閱讀全文 »

因為敝公司系統的環境有 OpenSUSE 跟 SUSE Linux Enterprise Sever SP2/SP3 混合,所以要更新 nginx 時往往要生出三個版本,實在有點搞人,不過其實也可以不要理會 libcrypt 版本不合的訊息啦,可是還是覺得編譯一個萬用的版本比較方便維護。

nginx 一共需要用到 libpthread, libcrypt, libpcre, libssl, libcrypto, libz, libdl,其中可以另外設定的有 OpenSSL, PCRE, Zlib 這三種,可以提供 libcrypt, libpcre, libssl, libcrypto, libz, libdl,然後 pthread 的就靠系統提供的 static 的 .a 了,所以要生出編譯的指令如下:

備註:假設 我們自己 Download 的 openssl, pcre, zlib 的原始碼都放在 /usr/src 底下

Conky 是一款類似 Mac OS X GeekTool 的桌面小工具 (其實 Conky 比較早出生,不過我比較晚發現 XD)。

他們都可以透過一些內建的 Function 或者寫 shell script 來顯示電腦的狀態(或者想印在桌面的狀態),例如我現在的桌面是這樣的

大致上就是顯示天氣,網路速度、流量,CPU、記憶體、硬碟等使用率,然後還有 CPU 溫度跟風扇的資訊,最下面有 parse RSS (Gentoo Security) 的部分

參考網路設計師 Conky Google Now 這個主題

小弟合併了官網其他人貢獻的設定,稍微修改了一下

閱讀全文 »

Graylog2 是一個開源的 log 收容器,主要有兩個部份集合而成 serverweb interface,兩個都是由 Java 寫的,Server 的部份可以收容 syslog over TCP/UDP, 同時他也有自己的格式 GRLF (Graylog Extended Log Format),背後的儲存是搭配 mongodb,而搜尋引擎則由 elasticsearch 提供。另外的 web interface 也是 Java 寫成的(早期好像是 Ruby on Rails),主要的功能就是提供一個漂亮的搜尋與分析的界面。

所以要使用 Graylog2 需要安裝五個元件

軟體 版本
Java Runtime Environment 7u51
elasticsearch 0.90.10
mongodb 2.4.9
graylog2-server 0.20.1-1rc
graylog2-web-interface 0.20.1-1rc

我們先從 elasticsearch 開始安裝起,以下都用目前最新的版本來示範,基本上不分什麼 Linux Distribution,我們單位都用 SUSE,不過 Gentoo 或 Ubuntu 也都適用就是

閱讀全文 »

上一集 中,簡單的介紹了 Salt 的使用方法,這集要稍微深入的介紹 Salt 的其中一個部份 - Grains,Grains 基本上就是機器的資訊,通常指的是不會變動的部份,比方說 CPU 有幾顆、記憶體有多少、作業系統是用什麼的(CentOS, Ubuntu, SUSE…etc)、網卡資訊,至於會變動的資訊通常會用 Salt 的 Pilar 功能,雖然 SaltStack 支援很多種 Linux Distribution,而且他的 API 也儘可能的豐富每一個 Distro,像是套件管理系統就有支援 CentOS 的 yum、 Ubuntu 的 APT、 SUSE 的 zypper,但是終究不是每一個系統的特色都能夠完整的支援(可能需要自己貢獻上去?),像是 SUSE Linux Enterprise Server (簡稱 SLES) 除了大版本號,還有小版本的 Service Pack,撰文的今天剛好出了 SLES 11 SP3,但是 Salt 內建的 Grains 只有偵測到 OS 是 SLES 就沒了,有時候我會依照不同的 Service Pack 需要不一樣的設定(因為 SP2 的套件有時候會支援某些功能,但是 SP1 時候還沒有,像是 sudoer 的設定),但是不能判斷版本怎麼辦? 沒關係 Salt 具有高度擴充性,我們可以自定想要的 Grains。

閱讀全文 »

注意這款號稱「自拍神器」系列的相機也已經大概半年多了吧,大概是半年前小弟的女友跟小弟提起的,不過可怕的神器連價格也很可怕,此款的前兩代 TR150 台灣官方售價是一萬一,但是因為出貨速度緩慢,市場缺貨缺得要死,市場上大陸的水貨竟然叫價到接近 3 萬,實在是不知道台灣卡西歐在做什麼,製造速度有這麼慢嗎?這種水貨商實在讓人覺得坑殺小朋友不眨眼,尤其是在 Facebook 卡西歐的官方粉絲頁更有一些電信商趾高氣昂,更氣的是還買了一台兩百多萬的賓士!讓我都想去開通訊行坑殺高中生&俗稱的水水(管他是不是正妹,這台拍下去保證各個都是正咩) XD

其實我後來也就忘記這件事了,因為女友也叫我不要買,因為實在背離原價太多了,一直到六月中,再逛 Mobile01 時,突然看到消費相機版的卡西歐有人 po 了一篇文章說 TR200 的下一代 TR350 (大陸的稱呼) 已經在六月初上市了,然後台灣也會上國際版的,代號是 TR15,於是就上了 Facebook 的卡西歐粉絲頁看了一下,果然會上!!但是!他媽的卡西歐是搶劫嗎,TR15 的售價竟然是兩萬四,竟然比 TR150 貴了一倍多 = =,不過功能也多一些些就是了(他媽的再罵一次 Casio 以為你是萊卡嗎!),電容式觸碰螢幕,螢幕解析度也提升到 92 萬畫素,然後有 Wifi ,在傳輸照片或者是自拍控制都相當方便,核心處理引擎也變成兩顆,不管是開機速度或者拍照處理速度都比之前的更快,但主要的規格都差不多還是維持 1/2.3 寸的 1210 萬畫素、光圈 2.8、超廣角的等效焦距 21mm。

閱讀全文 »

身為一個系統管理者,當你管理的機器數量只有十來台時,你可以很輕鬆的一台一台進去管理、設定機器,但是隨著服務開始搞大了,機器數量變成數十台時,也許會需要一些工具來輔助管理,之前我都是用 Fabric 來幫忙管理,不過 Fabric 有個缺點是他只是一個下指令的管理工具,當然我之前都硬幹,用 put 硬把他當成管理 configuration 的工具,上傳完了再下一個 reload 的指令,當然這樣也不是不行,不過似乎真的是一個很土炮的方法,但是隨著機器的數量越來越大,已經到達幾百臺的時候,就算是用 Fabric + parallel 其實還是覺得很怪,一來是雖然他已經平行處理了,但是他的 output 卻變成無序的,也就是當受管理的機器有 output 他就直接顯示在管理端上,有點惱人就是,另外一個是 Fabric 需要自己寫 Group 管理,要自己定義東西,而不能透過簡單的 query 來對想要的機器下指令就好,所以最近開始想要轉型使用 configuration management tool,常見的選擇是 puppetchefCFEngine 之類的,不過最近有個當紅的 OpenSource 軟體出現了,那就是 SaltStack

閱讀全文 »

My Linux box installed a nVidia GeForce GT210 (a.k.a. Chipset GT218) graphic card. Before kernel 3.7, I append video=VGA-1:1440x900@60 to kernel parameters. Because I use a 2-meter-long VGA line to connect my computer and monitor, I have to enforce using VGA port as display output. And it works perfectly.

The dmesg before kernel 3.7 says

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
[drm] Initialized drm 1.1.0 20060810
[drm] nouveau 0000:01:00.0: Detected an NV50 generation card (0x0a8280a2)
[drm] nouveau 0000:01:00.0: Checking PRAMIN for VBIOS
[drm] nouveau 0000:01:00.0: ... appears to be valid
[drm] nouveau 0000:01:00.0: Using VBIOS from PRAMIN
[drm] nouveau 0000:01:00.0: BIT BIOS found
[drm] nouveau 0000:01:00.0: Bios version 70.18.2c.00
[drm] nouveau 0000:01:00.0: TMDS table version 2.0
[drm] nouveau 0000:01:00.0: MXM: no VBIOS data, nothing to do
[drm] nouveau 0000:01:00.0: DCB version 4.0
[drm] nouveau 0000:01:00.0: DCB outp 00: 01000302 00020030
[drm] nouveau 0000:01:00.0: DCB outp 01: 02000300 00000000
[drm] nouveau 0000:01:00.0: DCB outp 02: 02011362 0f220010
[drm] nouveau 0000:01:00.0: DCB outp 03: 01022310 00020010
[drm] nouveau 0000:01:00.0: DCB conn 00: 00001030
[drm] nouveau 0000:01:00.0: DCB conn 01: 00202161
[drm] nouveau 0000:01:00.0: DCB conn 02: 00000200
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0xD0B7
[drm] nouveau 0000:01:00.0: 0xD40D: Condition still not met after 20ms, skipping following opcodes
[drm] nouveau 0000:01:00.0: 0xD411: Condition still not met after 20ms, skipping following opcodes
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0xD608
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0xE0DA
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xE10F
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xE2C2
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table at offset 0xE327
[drm] nouveau 0000:01:00.0: 0xE327: Condition still not met after 20ms, skipping following opcodes
[TTM] Zone kernel: Available graphics memory: 3051544 kiB
[TTM] Zone dma32: Available graphics memory: 2097152 kiB
[TTM] Initializing pool allocator
[TTM] Initializing DMA pool allocator
[drm] nouveau 0000:01:00.0: Detected 512MiB VRAM (DDR2)
mtrr: type mismatch for e0000000,10000000 old: write-back new: write-combining
[drm] nouveau 0000:01:00.0: 512 MiB GART (aperture)
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] No driver support for vblank timestamp query.
[drm] nouveau 0000:01:00.0: 3 available performance level(s)
[drm] nouveau 0000:01:00.0: 0: core 135MHz shader 270MHz memory 135MHz voltage 850mV
[drm] nouveau 0000:01:00.0: 1: core 405MHz shader 810MHz memory 405MHz voltage 900mV
[drm] nouveau 0000:01:00.0: 3: core 589MHz shader 1402MHz memory 400MHz voltage 1000mV
[drm] nouveau 0000:01:00.0: c: core 405MHz shader 810MHz memory 405MHz voltage 900mV
[drm] nouveau 0000:01:00.0: allocated 1440x900 fb: 0x310000, bo ffff8801a78dc000
fbcon: nouveaufb (fb0) is primary device
[drm] nouveau 0000:01:00.0: no native mode, forcing panel scaling
Console: switching to colour frame buffer device 180x56
fb0: nouveaufb frame buffer device

The kernel 3.7 or prior version was enforced using VGA as output successfully. And the resolution is right.

But after upgrading to 3.8 or above, I found that the parameter video=VGA-1:1440x900@60 causes a faulty screen after booting. I google it, and find some people bump into the same problem. No signal to monitor after kernel modesetting fails Problems with kernel-3.8 and kernel-3.9 modesetting

The kernel 3.8 or above says

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
[drm] Initialized drm 1.1.0 20060810
nouveau [ DEVICE][0000:01:00.0] BOOT0 : 0x0a8280a2
nouveau [ DEVICE][0000:01:00.0] Chipset: GT218 (NVA8)
nouveau [ DEVICE][0000:01:00.0] Family : NV50
nouveau [ VBIOS][0000:01:00.0] checking PRAMIN for image...
nouveau [ VBIOS][0000:01:00.0] ... appears to be valid
nouveau [ VBIOS][0000:01:00.0] using image from PRAMIN
nouveau [ VBIOS][0000:01:00.0] BIT signature found
nouveau [ VBIOS][0000:01:00.0] version 70.18.2c.00.04
nouveau [ PFB][0000:01:00.0] RAM type: DDR2
nouveau [ PFB][0000:01:00.0] RAM size: 512 MiB
nouveau [ PFB][0000:01:00.0] ZCOMP: 960 tags
nouveau [ PTHERM][0000:01:00.0] FAN control: none / external
nouveau [ PTHERM][0000:01:00.0] fan management: disabled
nouveau [ PTHERM][0000:01:00.0] internal sensor: yes
[TTM] Zone kernel: Available graphics memory: 3050978 kiB
[TTM] Zone dma32: Available graphics memory: 2097152 kiB
[TTM] Initializing pool allocator
[TTM] Initializing DMA pool allocator
mtrr: type mismatch for e0000000,10000000 old: write-back new: write-combining
nouveau [ DRM] VRAM: 512 MiB
nouveau [ DRM] GART: 512 MiB
nouveau [ DRM] TMDS table version 2.0
nouveau [ DRM] DCB version 4.0
nouveau [ DRM] DCB outp 00: 01000302 00020030
nouveau [ DRM] DCB outp 01: 02000300 00000000
nouveau [ DRM] DCB outp 02: 02011362 0f220010
nouveau [ DRM] DCB outp 03: 01022310 00020010
nouveau [ DRM] DCB conn 00: 00001030
nouveau [ DRM] DCB conn 01: 00202161
nouveau [ DRM] DCB conn 02: 00000200
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] No driver support for vblank timestamp query.
nouveau [ DRM] 3 available performance level(s)
nouveau [ DRM] 0: core 135MHz shader 270MHz memory 135MHz voltage 850mV
nouveau [ DRM] 1: core 405MHz shader 810MHz memory 405MHz voltage 900mV
nouveau [ DRM] 3: core 589MHz shader 1402MHz memory 400MHz voltage 1000mV
nouveau [ DRM] c: core 405MHz shader 810MHz memory 405MHz voltage 900mV
nouveau [ DRM] MM: using COPY for buffer copies
nouveau 0000:01:00.0: No connectors reported connected with modes
[drm] Cannot find any crtc or sizes - going 1024x768
nouveau [ DRM] allocated 1024x768 fb: 0x70000, bo ffff8801a7c37c00
fbcon: nouveaufb (fb0) is primary device

The kernel 3.8 says it cannot find a connector?

I read the documents of KMS, and then I solved the problem.

閱讀全文 »