最近因為工作上的需求,所以開始在研究印表機的設定和行為,主要用GUI的方式有兩個,一個是使用『cups』,另一個則是使用你的桌面環境(desktop environments)的工具,像我的話就是用『gnome-control-center』裡面的『printer』工具來設定的。有時候你的環境沒有網路也沒有桌面環境的話,更進階有另外兩種方式可以設定你的印表機,一個是透過terminal上的『lpadmin』和ppd來加入你的印表機,令一個則是使用『udev-configure-printer』的工具。
Ubuntu Support Printers
Ununtu裡面所支援的印表機請參考:
https://help.ubuntu.com/community/Printers
IJS VS HPLIP
因為這篇文裡面用的是HP的印表機,有用到HPLIP和IJS的東西,一開始我還蠻混亂的,所以就當筆記,寫一下這兩個東西的差別。
HPLIP是給CUPS用的完整版 imaging and printing system,裡面已經有包含HPIJS了。
而HPIJS則是HPLIP的子元件,提供了一些基本的列印功能,可以使用在CUPS, LPD, PPR和其他的spoolers上。
其他的還有像是HPIJS提供了沒有postscript功能的印表機支援,也可以在沒有spoolers的環境上運作,無法提供IO。而HPLIP則提供了雙向(bi-directional)的IO溝通,並且可以掃描(scanning), photo card存取, 和toolbox的功能. 但是HPLIP則一定需要CUPS的spooler.
Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts
Monday, 21 May 2018
Ubuntu下幾個Printer設定方式
Thursday, 13 July 2017
sshfs
命令描述
通常在Linux裡面,一般我們要操作到遠端的檔案系統的話,都會用『samba』和『nfs』,這兩個方式比較正統,但是其實有第三種方式 - 『SSHFS (Secure SHell FileSystem)』的存在。sshfs可以直接用ssh的方式來掛載一個遠端檔案系統,主要是在linux上的檔案操作(還有其他有實做FUSE的OS,像是Mac OS X和FreeBSD等等)。 在本地端如果要把sshfs給掛載起來的話,實做的話會採用到FUSE (Filesystem in Userspace)的kernel module。所以呢,本地端就是要安裝這個軟體,而遠端則只要SSH的SFTP subsystem就夠了。這個命令如果要用到IPv6的話,記得要將IP給放在中括號(square brackets)裡面,像是[fe80::1025:45d0:9e4e:65c7]。
Sunday, 16 April 2017
建立自己的作業系統 - step by step
之前研究過使用buildroot來建立一個客製化的Linux作業系統-『buildRoot study - 建立自己的作業系統』,那時候就想說想要把buildroot給抽掉,結果經過一年多,終於有空可以繼續之前的這個研究,這次完全的將buildroot給抽掉,『Bootloader-uboot』, 『Kernel』, 『Rootfs-busybox』,『glibc』完全都自己建立,藉由此了解一個小型OS的構成。![]()
大綱
1.Preparation Ubuntu 數莓派2 TTL Cable Enviroment 2.目標 Firmware U-boot Kernel Root FileSystem 3.Partition SD Card 4.raspberry pi 官方軔體 5.Root File System 6.Glibc 7.Kernel 8.u-boot 9.Boot-up 10. Ref
Monday, 10 April 2017
Linux poll 機制
語法 #須引入這個header #include <poll.h> #poll用法 int poll(struct pollfd *fds, nfds_t nfds, int timeout); #define _GNU_SOURCE /* See feature_test_macros(7) */ #include <signal.h> #include <poll.h> int ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *tmo_p, const sigset_t *sigmask);
Monday, 27 March 2017
[Linux][Bash] 如何分享別人自己的Terminal畫面
如何分享別人自己的Terminal畫面 有時後在使用Terminal上有一些狀況,還是有一些問題,所以想要跟別人討論,通常都是擷取畫面或是錄製操作流程後在打電話或是使用像Line之類的軟體來討論。這種方式通常會有一些步驟會流失,或者是你描述的另一個人會無法想像。 所以最好的方式就是你可以在那個人面前操作terminal,然後直接討論,在有VNC還是有遠端桌面的狀況之下可以這樣,但是如果是terminal的話,似乎比較難,所以這篇文教你怎麼可以跟別人share你的terminal畫面。
Saturday, 7 January 2017
[Linux] bash-completion
介紹 之前我不知道原來『bash-completion』沒有在Ubuntu上是預設,還以為是ubuntu上面就沒有這個功能,還在社群上鬧笑話=.=,這篇文來紀錄一下bash-completion的用法。 bash-completion是一系列的bash script,不只可以對檔案,資料夾,還可以對指令做自動完成的功能。
Thursday, 5 January 2017
[Linux] bash - set指令
介紹 Linux 這個Unix-like的架構所使用的shell - 『Bourne shell』,底下有內建一個『set』指令,主要用來設置/取消/檢視shell的參數和變數。
Monday, 2 January 2017
[Linux] Buildroot架構解析
這篇文章會以『free-electrons』官網上的資料,來研究buildroot的架構並且撰寫一篇簡單的教學文,成果會從buildroot專案中建置出「bootloader」, 「kernel」和「root fileSystem」。
關於buildroot我總共寫了三篇文章,主題各有些不一樣:
第一篇『buildRoot study - 建立自己的作業系統』,主要研究Linux在raspberry pi 2上的開機流程。
第二篇『raspberry_mp3』則是實際拿buildroot來建置一個隨插即用的mp3在raspberry pi 2上,只要通電後,插上裡面有mp3的隨身碟,系統就會開始撥放音樂。
第三篇,也就是這一篇主要將會把buildroot的知識和架構在好好的解釋清楚,算是buildroot的補強吧,硬體的話則改成使用Raspberry Pi3的組態(但是本篇文章主要講buildroot,所以這台pi3沒有太多探討)。
老話一句,如果覺的容器太小,請直接看我的gitbook:
https://hugh712.gitbooks.io/buildroot/content/
Sunday, 13 November 2016
[Linux] RHCE 7
RHCE 7 這張證照分成兩個部份-「RHCSA 7 (EX200)」和「RHCE 7 (Ex300)」,兩張都要過才能拿這張證照,通過的成績都是210/300,寫這篇文章時都是RHEL (Red-Hat-Certified-Engineer )7版本。 官方主要的exam-objectives如下:RHCSA: https://www.redhat.com/en/services/training/ex200-red-hat-certified-system-administrator-rhcsa-examRHCE: https://www.redhat.com/en/services/training/ex300-red-hat-certified-engineer-rhce-exam 整理一下如下,就是如果你真的練習很久,很熟練的話,你會學到底下的東西:
Wednesday, 26 October 2016
[Linux] pidstat - 行程(任務)資源統計
pidstat pidstat是Linux 裡面一套統計/監控目前被kernel所管理的任務(task)的軟體。使用前必須先掛載proc。主要有底下幾種方式顯示統計數據: 1. 顯示區間和顯示筆數。 2. 根據特定task為單位。 3. 根據IO。 4. 根據PID。 5. CPU使用量。 6. 分頁錯誤(page faults)和記憶體使用量(memory utilization)。 7. 堆疊(stack utilization)。 8. task切換分頁。 (這文章並不是在同一天,同一台主機內寫的,所以顯示數據的hostname, CPU,還有裡面的例子等等資訊可能會不太一樣,並且以下內容都是以版本11.2.0所撰寫)
Sunday, 16 October 2016
[Linux] Uncomplicated Firewall (UFW)
Uncomplicated Firewall 之前一直在用firewalld,用法請參考之前的文章『firewalld』,但是我的PC安裝的是Ubuntu阿, 所以還是來研究一下UFW (Uncomplicated Firewall),然後將firewalld取代掉吧。 在Linux的kernel裡面提供了一個過濾封包的subsystem稱為『netfilter』,主要用來決定外來或內部網路封包是否可以通過的規則,傳統操縱netfilter的介面是『iptables套件』,iptables提供了一套完全彈性和很好去組態的防火牆機制。但是想要精通iptables需要花很多時間,而且對於初學者來說想要使用iptables來設定你的防火牆是一件非常堅巨的任務。所以有許多的前端軟體被建立出來,每個都有不同的用途。 UFW是Ubuntu上的防火牆(iptables)的前端CLI工具,提供了控制netfilter的framework,但是在其他的distros上面也可以安裝,如果不喜歡用CLI的話,可以使用『Gufw』這套GUI程式。而UFW是在Ubuntu 版本8.04 LTS (Hardy Heron)被引入的,後面的版本都可以直接安裝: - Ubuntu 12.04 LTS: 0.31.1-1 - Ubuntu 14.04 LTS: 0.34~rc-0ubuntu2 - Ubuntu 15.10: 0.34-2 - Ubuntu 16.04 LTS: 0.35-0ubuntu2 - Ubuntu Core: 0.35pre
Monday, 8 August 2016
[Linux] Firewalld
Firewalld 介紹 firewalld是一套Linux上的防火牆管理工具,最初版本是在2011年1月3號釋出的,穩定版直到2016年4月20號才釋出。主要提供Linux核心的iptables封包過濾(packet filtering)系統 - 『netfilter』的前端(front-end)功能。命名規則主要遵循著Unix的命名規則daemon的名字加一個『d』。這一套工具是由Python所寫的,之前原本想要移植到C++上面,但是這個計畫在2015年時就取消了。 官方上有firewalld的主要功能: - D-Bus API - Timed firewall rules - Rich Language for specific firewall rules - IPv4 and IPv6 NAT support - Firewall zones - IP set support - Simple log of denied packets - Direct interface - Lockdown: Whitelisting of applications that may modify the firewall - Support for iptables, ip6tables, ebtables and ipset firewall backends - Automatic loading of Linux kernel modules - Integration with Puppet
Tuesday, 2 August 2016
[Linux][Ubuntu][RedHat] bonding and teaming
Link aggregation
網路聚合(Link Aggregation),在電腦網路領域這個名詞代表的是將多重網路介面NIC(Network interfaces)用並列的方式結合來增進網路流量,也可以提高其容錯能力。主要的方式是建立一個LAG(Link Aggregation Group),而這個LAG群組底下會有多個實體的埠(port),每個port都有辦法處理高流量的封包,所以將這些port都結合在一起的話,就可以增加很大的彈性。
Thursday, 28 July 2016
[Linux][Red Hat] Network Teaming
在Linux裡面,可以透過將多個實體網路介面分配到單一個邏輯網路,這樣可以增加網路的流通量和穩定性。舉例來說,可以將兩個網路介面「eth0」和「eth1」組成一個群組「group1」,然後分配一個IP給這個群組,這樣的話,妳就有兩倍的流量了,又或者是你也可以設置成備用的用途,像是如果eth0壞掉了,這個群組會自動的改走「eth1」。
將兩個網路介面設定群組「Link aggregation」,可以藉由「teaming」或是「network bonding」來達成,但是在Red Hat的官方網站上,有比較兩邊的差異,請參考→ here for a full list of the differences.
我參考的這邊文章,主要講解如何用「team」將兩個不同的網路介面給設定成一個群組。
Sunday, 24 July 2016
[Linux] Single Mode
前言
使用Linux系統,有時候我們會忘記密碼,這時候就會無法登入,此時就必須要在開機時做一點手腳,然後由『Single mode』去修改密碼。
不過你也許會想,這樣不就是只要接觸到你電腦的人,都可以藉由這種方式來取得你的root嗎?@@,所以這就是為什麼有些公司的重要機房都會管制,以防止被竊取資訊(然後有些駭客就必須要爬杜拜塔進去機房.....,阿~對不起,我電影看太多了~~=.=)。
Menu entries可以藉由在開機之前修改參數,然後在傳遞這個參數到Kernel裡。要進行這個動作,就必須要用到『menu entry 編輯介面』,底下主要紀錄一下『Ubuntu』和『Redhat』怎麼進入Single Mode的。
Ubuntu 16.04
在Ubuntu裡,開機時按著「shift」就會進入Boot Menu,但是像我自己曾遇到,狂按著「Shift」還是不會進去,所以這時候就必須要強制打開它,請修改檔案「/etc/default/grub」,將這一行如下圖一樣註解掉「GRUB_HIDDEN_TIMEOUT=0」,然後儲存後在更新grub table:
update-grub
這時候重開機後就會看到Boot Menu在倒數了:

接下來就是選擇你要的系統上按「e」進入編輯,然後在如下的地方帶入額外的參數「single」以後,直接按「Ctrl+x」或是「F10」以這份修改後的Boot Table開機:

重開機後你就會看到進入single mode了,接下來如下一樣,使用指令「passwd」修改密碼,然後在用「reboot」或是「init 6」重新開機後,在用你的新密碼開機瞜~。

RetHat
從RHEL7開始,grub版本就變成『grub2』了,所以這邊需要分成兩個部份來介紹:RHEL6.X 的『grub』和 RHEL7.X 的『grub2』:
RHEL 6.X

在這個介面,選擇你要啟動的OS版本,按下『e』鍵修改,像這個例子,只有一個版本,所以不需要選擇,直接按下『e』就好。
按下去以後,就會跳進去下一個表單,像這個例子來說,有三行資訊,第一行是我的root file system的磁碟位置,第二行為kernel image的印象檔檔名和傳入參數,第三行則是initrd印象檔的檔名。我們想要修改的是kernel的傳入參數,所以選擇第二行後再按『e』。

進來之後就會看到比較細節的參數資訊了,這時候請在此行最後面加入一個『single』或者是『1』都可以,這邊記得跟前面的參數之間要隔一個空格,然後按下『Enter』儲存改變後回到上一層。

回到上一層以後,在按下『b』鍵,代表用這個修改過的『Menu entry』來開機,但是記得,這個只是對於這一次的開機,也就是說,你下次開機後,你剛剛修改的值就會消失恢復成預設值了。

按下『b』以後,你就會看到一堆的開機程序,然後就進入root了,這時候你只要簡單的輸入:
passwd
修改你的密碼以後再輸入
reboot
或是
init 6
就可以用你的新密碼開機了

RHEL 7.X
RHEL7.X的grub2會有一點點不太一樣,主要差異是『SELinux』和『systemctl』。開機後一樣,看到boot menu後,移到你要的版本上按下『e』鍵:

然後你就會發現在比較進階的資訊,這些資訊其實都是在檔案『/boot/grub2/grub.cfg』裡面的內容,接下來你要找到讀入kernel檔案的那一行,將『rhgb quiet』取代成『init=/bin/bash』,然後按下『Ctrl+x』用這個組態開機以後就會進入到Single Mode了,如下圖:


一旦你進入Single Mode以後,你的root的分區(Partition)將會是唯獨(read only)的狀態,你可以藉由底下指令來確認:
mount | grep root
這時為了要將這個partition改為可以寫入的狀態,所以我們必須要重新掛載(remount)成Read/Write的模式:
mount -o remount,rw /
然後再次確認:
mount | grep root
掛載成Read/Write 模式以後,我們就可以改root的密碼了,請輸入『passwd』:
passwd
如果你的系統的Selinux是開啟的話,你就必須要在執行底下這個步驟,來重新修改SELinux的內容,否則你的密碼將不會生效:
touch ./autorelabel
接下來只要重開機就好了,你就可以使用你新的密碼開機了:
exec /sbin/init(2016.08.24 更新)
如果在RHEL7下,用上面的方式不行的話,可以用底下的方法:
Interrupt the boot process in order to gain access to a system.
Ref:
Monday, 4 July 2016
Monday, 9 May 2016
raspberry_mp3
這個專案是參考mpolakovic的qemrdux-player專案,然後藉由buildroot,實做一個mp3 player,主要差別是他是跑在qemu上,但是我將他移植到Raspberry Pi2上,藉由這個專案,可以了解以下項目:
- 一個客製化的作業系統是怎麼被建立出來的。
- 如何客製化的引入套件。
- busybox 的設定和修改。
- Root File system的建置原理。
- 產生與燒入映像檔。
如果這個文章裡面有任何錯誤,還是有需要討論的地方,都歡迎交流,你的指正,都會讓我更進步 ^^。
老話一句,如果覺的容器太小,請直接看我的gitbook:
或者是直接下載code去build:
其他的相關研究結果請參考:
buildRoot study - 建立自己的作業系統
Buildroot架構解析
Tuesday, 3 May 2016
vmstat
Introduction
這是一套虛擬記憶體的統計軟體,統計關於行程,記憶體,分頁,block IO, traps, 磁碟和cpu的活動等等。
vmstat總共有四種模式,分別是「VM」, 「Disk」, 「Disk Partition」, 「Slab」。
Tuesday, 26 April 2016
Benchmark - mpstat
Introduction
統計跟處理器相關資料軟體,必須先把proc掛載起來才能使用。
這個指令會對輸出所有可取得的處理器的活動,「processor 0」 會是第一個. 所有處理器的平均也會被紀錄起來。不管是單處理器還是多處理器都可以用這個指令,只是單處理器只會印出一個值。
如果後面接數字參數「eg. mpstat 2」代表每2秒更新一次,持續更新資料。如果是0或是沒有參數則是從開機到這個時間點的平均。如果是兩個數字參數「eg. mpstat 2 5」,代表每兩秒更新一次,組共5次。
Monday, 28 March 2016
nmap 基本用法
Introduction
- man page的定義:「Network exploration tool and security / port scanner」,這套工具可以拿來掃描「遠端」或是「子網路」,以取得一些資訊,來作為資訊安全的考量或察核。因為最近很常用,所以這邊文章想要整理一下比較常用的用法,以供我自己或有需要的人查詢。
Subscribe to:
Posts (Atom)
