發表文章

目前顯示的是有「Linux」標籤的文章

偷懶亂改之老 DIY CD player

圖片
小時候做了一台這個: 自製 CD 播放器 KTZ CD Player 現在其實很懶,本來是想要弄個切換器,可以切換原本的 CD Player 和現在想接的 Asus Tinker Board 板子,然後就挖到一個以前電腦顯卡有一片接 S 端子和 RCA 頭的東西,亂接一通就先用了。 接上 Asus Tinker Board 上面裝 Volumio 2,然後再把 Macbook 拆下來的 DVD-ROM 用 USB 外接上,用 abcde 這個轉檔程式轉 flac。 把以前的 CD 轉一轉,也可以用了,不用再做切換了。

[數位音樂] Listen Music Through Snapcast 實現多空間音樂同步聆聽 (Client 端)

圖片
Snapcast Server 裝好之後,你可以利用 Snapcast Client 去同步 Server 端正在播放的音樂。 目前 Snapcast 支援的環境有: Linux FreeBSD macOS Android OpenWrt Buildroot Raspberry Pi 文件在此: https://github.com/badaix/snapcast/blob/master/doc/build.md From: https://github.com/badaix/snapcast/releases/latest 一、Android 手機 有 apk 可以裝,記得打開允許安裝不明來源的應用程式,下載裝完。 打開 app 設定 Server 然後就按上面的箭頭就可以聽到聲音囉,也可以用 app 控制連上同一台 Snapcast Server 的 Client,調整音量或切換 Server 的頻道等。 二、樹莓派板子 有 deb 可以裝,不是用 debian 套件管理的就要自己編了。 wget https://github.com/badaix/snapcast/releases/download/v0.11.1/snapclient_0.11.1_armhf.deb sudo dpkg -i snapclient_0.11.1_armhf.deb 編輯 Snapcast Client Config,比方說 Server 端 IP 在 192.168.0.100 sudo vi /etc/default/snapclient START_SNAPCLIENT=true USER_OPTS="--user snapclient:audio" SNAPCLIENT_OPTS="-d -h 192.168.0.100" 啟動服務 sudo service snapclient start Server 開著並且有播音樂的話,應該就會聽到聲音了 三、MacBook 按照文件可以編譯成功 (Sierra 10.12.6),請參考: Build.md macOS (Native)

[數位音樂] Listen Spotify and Use Snapcast 實現多空間音樂聆聽 (Server 端)

圖片
昨天 那篇 ,如果是很單純只想聽 Spotify Premium,然後又不想只是切換到其中一個裝置,其實有比較簡單的解法。 只要使用 librespot 的 pipe backend 配合 Snapcast 即可。 一、Build librespot (Ubuntu) Udoo X86 use Ubuntu 17.04 (Zesty Zapus) 先裝 Rust 編譯環境 curl https://sh.rustup.rs -sSf " sh 裝相依的 library sudo apt update sudo apt install build-essential portaudio19-dev Clone 專案並編譯 git clone https://github.com/plietar/librespot.git cd librespot export PATH=$HOME/.cargo/bin:$PATH cargo build --release 然後把編譯好的 librespot 執行檔放到 /usr/local/bin 去 sudo cp target/release/librespot /usr/local/bin/ 二、Install Snapcast (Ubuntu) Download From: https://github.com/badaix/snapcast/releases/latest Get snapserver_0.11.1_amd64.deb wget https://github.com/badaix/snapcast/releases/download/v0.11.1/snapserver_0.11.1_amd64.deb dpkg -i snapserver_0.11.1_amd64.deb 三、Edit Snapcast Config file sudo vi /etc/default/snapserver START_SNAPSERVER=true USER_OPTS="--user snapserver:snapserver" SNAPSERVER_OPTS="-d -s spotify:///librespot?name=Spotify&username=YOURUS...

[數位音樂] Mopidy with Spotify and Snapcast 實現多空間音樂聆聽 (Server 端)

圖片
一、Install Modipy (Ubuntu) Udoo X86 use Ubuntu 17.04 (Zesty Zapus) apt update apt install mopidy mopidy-spotify 二、Install Snapcast (Ubuntu) Download From: https://github.com/badaix/snapcast/releases/latest Get snapserver_0.11.1_amd64.deb wget https://github.com/badaix/snapcast/releases/download/v0.11.1/snapserver_0.11.1_amd64.deb dpkg -i snapserver_0.11.1_amd64.deb 三、Edit Mopidy Config file sudo vi /etc/mopidy/mopidy.conf Add This [spotify] username = spotify premium account username password = spotify premium account password client_id = client_id you got from mopidy.com client_secret = client_secret you got from mopidy.com enabled = true bitrate = 320 [audio] output = audioresample ! audioconvert ! audio/x-raw,rate=48000,channels=2,format=S16LE ! wavenc ! filesink location=/tmp/mopidyfifo mixer_volume = 100 Client ID and Client Secret get from: https://www.mopidy.com/authenticate/#spotify 四、Edit Snapcast Config file sudo vi /etc/default/snapserver START_SNAPSERVER=true USER_OPTS=...

Gentoo Portage 改用 git 同步

圖片
Gentoo Portage 改用 git 同步 安裝 portage-2.2.16 以上版本 $ sudo emerge \>=sys-apps/portage-2.2.16 修改 repos.conf $ sudo mkdir -p /etc/portage/repos.conf $ sudo cat > /etc/portage/repos.conf/gentoo.conf << EOF [DEFAULT] main-repo = gentoo [gentoo] location = /usr/portage sync-type = git sync-uri = https://github.com/gentoo/gentoo-portage-rsync-mirror auto-sync = true EOF 從 git 同步 portage,並更新 eix db $ sudo rm -rf /usr/portage $ sudo eix-sync Ref:  Gentoo Wiki: Project:Portage/Sync

Ubuntu Tablet OS on Nexus

圖片
已經發表了 Tablet OS 的介面,並且這個 OS 將可以安裝在 Nexus 7 以及 Nexus 10 上面。 Ubuntu Wiki 已經有一篇文件: https://wiki.ubuntu.com/Nexus7/Installation 官方 Ubuntu Tablet OS 影片介紹: Ubuntu for tablets - Full video (From: http://youtu.be/h384z7Ph0gU ) 國外相關報導: Canonical cracks the slate code, brings Ubuntu to Nexus tablets by CNET Canonical launches Ubuntu tablet interface to run on top of its OS by PCWorld

Ubuntu Tablet Time !! 倒數

圖片
去年 1 月的時候,Canonical 在 CES 發表了 Ubuntu 概念設備,雖然後來發表的是 Ubuntu TV ,而不是傳說中的平板,但熱心的網友假想圖也不曾少過。 再四個半小時,Ubuntu 的平板就要跟大家見面了!! 先看看兩年前有人把 Ubuntu 10.10 裝到 DELL 的 Latitude XT2 Tablet PC 上的影片好了: Ubuntu's New Touch Support (From: http://youtu.be/nn3m09zkcbo )

在 Android 手機上跑 Ubuntu

圖片
這個 Linux on Android 專案的目的是將 Ubuntu 等 Linux 的版本 Port 到 Android 的手機上,作者是 zacthespack ,目前作者正在上傳最新的 12.04 版本,所以這次我先使用了作者提供的最後一個版本 (V5) 來做測試,上圖是實際在我的 SGS2 上跑出來的畫面。 環境介紹 一、首先你需要有一台已經 root 的手機,Android Kernel 必須要有 loop device 的支援。至於怎麼做我想網路上文章很多,高手很多我就不多寫,去 XDA 論壇 找找看應該都找得到。 二、手機先至 Market 下載兩個 App: Android Terminal Emulator 和 android-vnc-viewer 。這兩支是等下要跑 Ubuntu 用得到的程式,Terminal 是用來執行指令的,vnc 是用來連 local 的 X Server 跑 Ubuntu 視窗給跑出來。 三、至 Linux on Android 專案的 下載頁面 下載壓縮檔,用電腦下載下來解壓縮之後再傳到手機上 (比較建議這麼做,因為那個 Ubuntu 的映像壓縮檔案有 1.5GB,解壓縮後至少有 3.5 GB,這些動作讓電腦做就好。 下載兩個框起來的檔案-ubuntuV5-script.zip 和 ubuntuV5-image.zip,如果你的手機 /sdcard/ 的空間不夠 3.5GB 那麼大的話,你可以抓另一個 ubuntuV5-sm-image.zip。[注意,這裡指的 /sdcard/ 並不是手機的外接記憶卡] 四、兩個 zip 檔解開會得到兩個檔案:ubuntu.sh 和 ubuntu.img,手機開 USB 偵錯模式接上電腦,上傳到 /sdcard/ubuntu/ 的位置裡面。 五、開 Terminal,按照底下輸入: # su # cd /sdcard/ubuntu/ # sh ubuntu.sh 執行了之後,第一個是設定 X Window 解析度的選項,好像是會自動偵測,按 Enter 就好,再來是選桌面環境,LXDE 或是 Gnome,如果執行成功就會 chroot 一個環境,有開 VNC Server 以及 SSH Server。 六、再來,不要關閉 Termi...

OpenVPN 筆記:如何讓遠端 Client 連上之後可以存取內部網路

圖片
先說文解字一下 VPN: 虛擬私人網路 ,又稱為 虛擬專用網路 (英文︰ Virtual Private Network ,簡稱 VPN ),是一種常用於連接中、大型企業或團體與團體間的私人網路的通訊方法。虛擬私人網路的訊息透過公用的網路架構(例如:網際網路)來傳送內聯網的網路訊息。 FROM WIKI 好物一個!提供不同作業系統都能通用的 VPN,Windows 上也有 GUI 介面可用。國外有一些玩法是配合裝在無線 Router 的 OpenWRT 架設 OpenVPN,即使出門在外也可以方便地存取家中內部網路環境。 官方的文件和網路上可以查到的文件都夠了,懶得完整的寫一次 (其實是還沒研究得很透徹啦),這裡只稍微提一下如何讓外部透過 VPN 進來的 Client 可以存取位在主機端的內部網路,其實 官方文件 也有寫到就是了。 環境假設: 主機端的內部網路環境是 192.168.100.0/24 在 Server 的 conf 檔加入: push "route 192.168.100.0 255.255.255.0" 如果有 iptables 的話,再利用 iptables 去設定讓 tun 網路介面可以進到內部網路,如: # Allow TUN interface connections to OpenVPN server iptables -A INPUT -i tun+ -j ACCEPT # Allow TUN interface connections to be forwarded through other interfaces iptables -A FORWARD -i tun+ -j ACCEPT OpenVPN 2.x 功能蠻強大的,還有很多可以玩,像是不同的 VPN Client 設定不同的內部網路存取權限等等,有其他心得再說。 安裝時可以參考的文件: OpenVPN 官方 HOWTO GentooWiki: OpenVPN

用 AutoMySQLBackup 備份 MySQL,並加入清除舊備份功能

圖片
除了 MySQL Replication 以外,我還有用 SourceForge 上的 AutoMySQLBack 來備份 MySQL DB。 寫得夠好了,所以懶得自己寫。 不過,該支 script 沒有寫 purge 的功能,也就是說,備份會不斷的增加,並不會去清除,由於該支 script 有 daily、weekly、monthly 的備份,所以我覺得 daily 的備份保留七天內夠了。 在 automysqlbackup.sh.2.5 的 script 裡找到: POSTBACKUP="" 然後加進一支在完成備份後要執行的 script,注意路徑,如: POSTBACKUP="/roo/remove-olddailydb.sh" 然後,用你順手的編輯器來寫這支 script,內容: #!/bin/sh #Your Backup DIR, Set it the same as automysqlbackup's BACKUPDIR BACKUPDIR="/YOUR/BACKDIR" #Set You want to Keep how many days KEEPDAYS="7" for DD in `ls $BACKUPDIR/daily` do printf "\nRemove Files in $DD older than $KEEPDAYS days..........\n" find $BACKUPDIR/daily/$DD/ -type f -mtime +$KEEPDAYS -exec rm {} \; done 記得 chmod 這支另外寫的 script,然後執行 automysqlbackup.sh.2.5 就會在備份完之後執行另外這支用來刪除 7 天以上舊 db 備份的 script,訊息也會產生在同一份報表之中。

其實還蠻混的

圖片
前陣子 Web Server 主機板電容爆漿,硬碟又出問題,還是終於讓我小小的積極起來。 於是,一口氣搞成了三台 Gentoo,手邊湊得出來的兩台電腦加上原先修復的主機,跑 distcc 編譯的時候,的確是有一種說不上來的快感。 之前主機的硬碟塞到快滿點 (>90%),分散成三台之後看起來舒服多了,也終於認真地做異機備援 (Rsync & MySQL Replication)。 Gentoo 的 Portage 還是強大的!即使舊主機上關鍵的 lib 已經陳舊到不行,塞進新的 Stage3 配上其他兩台跑 distccd,emerge 還是能夠輕鬆完成大復活戲碼,爽! 本來幾百年沒玩 Xwindow 了,想想好像可以來玩一下啦。

媽呀,ReiserFS 還是有用的!

Superblock was missing! Superblock 很重要,他包含了重要的硬碟資訊: File system type Size Status Information about other metadata structures 我覺得我的運氣算不錯的,至少還讓我救回來了! 先 Rebuild SuperBlock,照著提示做下去 # reiserfsck --rebuild-sb /dev/sdb1 會問幾個問題: Do you want to run this program?[N/Yes] Yes (廢話,當然要) Did you use resizer(y/n)[n]:n (不變動) Set flags in SB: Is this ok ? (y/n)[n]: y 然後做一次 –check,檢查結果如果有 Bad Root block 0 的 Error,就會出現底下: Running with --rebuild-tree is required # reiserfsck --check /dev/sdb1 所以接著就再執行 # reiserfsck --scan-whole-partition --rebuild-tree /dev/sdb1 然後會看到 0%....20%....40%....60%....80%....100%,那就是在修了~ 完全沒備份這顆硬碟的資料還真是刺激啊!繼主機板電容暴掉,這台操勞的主機真的該退休了,加速移機動作先! 可以參考的詳細救援文件(有兩篇): 中文: http://plog.longwin.com.tw/news-unix/2007/01/11/linux_reiserfs_recovery_2007 英文: http://www.cyberciti.biz/tips/repairing-reiserfs-file-system-with-reiserfsck.html

這樣的電子書才有翻書的感覺 The Kno from Kno Inc.

圖片
(圖片來源:截自 http://vimeo.com/12223465 影片) 雙 14 吋觸碰螢幕,感覺就有像在翻一本百科全書的爽度! 跨螢幕翻頁,做筆記,點閱電子書章節裡的多媒體素材,功能相當強大。 採用 Linux 作業系統,the Kno 還支援 Adobe Flash,不會像某家知名水果公司的產品不支援 Flash!Kno 的價格據聞會在 1000 美元以下。 (規格與價格摘自: http://mashable.com/2010/06/03/kno-tablet/ ) 當一台 14 吋 Tablet 變成上下都是螢幕的時候,突然覺得把 Tablet 翻開有好多事情可以做哦! 接下來看看影片介紹吧!

如果你沒錢買 Combi 電動餐搖椅,但你有一台 Linux 主機的話

圖片
窮爸爸還是富爸爸,都是好爸爸! Shell Script 原始碼 (baby_rocker.sh) #!/bin/sh while  [i= 1] do         eject         eject t done 或者直接在命令列輸入 $ while :; do eject ; eject -t ; done 當然,如果你有錢的話

Some Ext3 Filesystem Tips

[摘錄自 http://forums.gentoo.org/viewtopic-t-305871.html] 記得要用 LiveCD 開機去做唷~ 1. 目錄索引 (針對大目錄以及目錄裡有很多檔案) 啟用功能 # tune2fs -O dir_index /dev/hdXY 產生現有目錄的索引檔 # e2fsck -D /dev/hdXY 2. 完整日誌功能 方法a: edit /etc/fstab , 加入 mount option /dev/hda6 / ext3 noatime, data=journal 0 0 edit /etc/grub (bootloader 使用 grub 為例) kernel /kernel-2.6.12-gentoo-r2 root=/dev/hda6 rootflags=data=journal 方法b: 不適用於 2.4.20 以前的 Kernel 使用 tune2fs 改變掛載時的預設模式 # tune2fs -o has_journal,journal_data /dev/hdXY 微調設定(請自行參考tune2fs手冊) # tune2fs -J size=$SIZE /dev/hdXY 3. 停用漫長的開機檢查 (僅對 ext3 有用) # tune2fs -c 0 -i 0 /dev/hdXY

Xorg.conf

Section "Files" FontPath "unix/:7100" # local font server # if the local font server has problems, we can fall back on these FontPath "/usr/share/X11/fonts/misc" FontPath "/usr/share/X11/fonts/cyrillic " FontPath "/usr/share/X11/fonts/100dpi/ :unscaled" FontPath "/usr/share/X11/fonts/75dpi/ :unscaled" FontPath "/usr/share/X11/fonts/Type1" FontPath "/usr/share/X11/fonts/CID" FontPath "/usr/share/X11/fonts/100dpi" FontPath "/usr/share/X11/fonts/75dpi" # paths to defoma fonts FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID" EndSection Section "Module" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod...